3_0_2_283

This commit is contained in:
Компания 1С committed 2019-05-07 12:55:00 +03:00
1 parent 303564046f
commit 53ad58684d
30 files changed
+961 -432

No files matched your search

@@ -47,6 +47,10 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ВнутренниеДанные = Неопределено Тогда
Отказ = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ИмяПоляАктивизироватьПоУмолчанию) Тогда
ТекущийЭлемент = Элементы[ИмяПоляАктивизироватьПоУмолчанию];
КонецЕсли;
@@ -124,6 +124,9 @@
</picture>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаСообщенияОбОшибках</name>
<id>273</id>
<items xsi:type="form:FormField">
<name>СообщенияОбОшибках</name>
<id>238</id>
@@ -176,6 +179,75 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>НужнаПомощь</name>
<id>270</id>
<title>
<key>ru</key>
<value>Нужна помощь?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НужнаПомощьРасширеннаяПодсказка</name>
<id>272</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НужнаПомощьКонтекстноеМеню</name>
<id>271</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Left</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>НужнаПомощьНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа сообщения об ошибках</value>
</title>
<extendedTooltip>
<name>ГруппаСообщенияОбОшибкахРасширеннаяПодсказка</name>
<id>274</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>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -167,6 +167,13 @@
ИспользоватьЗащищенноеСоединениеДляВходящейПочты = ШифрованиеПриПолученииПочты = "SSL";
КонецПроцедуры
&НаКлиенте
Процедура НужнаПомощьНажатие(Элемент)
РаботаСПочтовымиСообщениямиКлиент.ПерейтиКДокументацииПоВводуУчетнойЗаписиЭлектроннойПочты();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -2173,6 +2173,46 @@
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>НужнаПомощь</name>
<id>269</id>
<title>
<key>ru</key>
<value>Нужна помощь?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<contextMenu>
<name>НужнаПомощьКонтекстноеМеню</name>
<id>270</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<groupHorizontalAlign>Right</groupHorizontalAlign>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>НужнаПомощьНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -287,6 +287,13 @@
УстановитьВидНастройкиХраненияПисемНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НужнаПомощьНажатие(Элемент)
РаботаСПочтовымиСообщениямиКлиент.ПерейтиКДокументацииПоВводуУчетнойЗаписиЭлектроннойПочты();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -135,7 +135,75 @@
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ЛогинДляОтправкиSMS</name>
<name>СпособАвторизации</name>
<id>24</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СпособАвторизации</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>СпособАвторизацииПриИзменении</name>
</handlers>
<extendedTooltip>
<name>СпособАвторизацииРасширеннаяПодсказка</name>
<id>26</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СпособАвторизацииКонтекстноеМеню</name>
<id>25</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">
<width>30</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>false</horizontalStretch>
<wrap>true</wrap>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<choiceList>
<presentation>
<key>ru</key>
<value>По ключу (рекомендуется)</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ПоКлючу</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>По логину и паролю (устаревший способ)</value>
</presentation>
<value xsi:type="core:StringValue">
<value>ПоЛогинуИПаролю</value>
</value>
</choiceList>
<backColor xsi:type="core:ColorRef">
<color>Style.ФонУправляющегоПоля</color>
</backColor>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Логин</name>
<id>1</id>
<title>
<key>ru</key>
@@ -150,7 +218,7 @@
<segments>ЛогинДляОтправкиSMS</segments>
</dataPath>
<extendedTooltip>
<name>ЛогинДляОтправкиSMSExtendedTooltip</name>
<name>ЛогинРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -160,7 +228,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЛогинДляОтправкиSMSКонтекстноеМеню</name>
<name>ЛогинКонтекстноеМеню</name>
<id>2</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -184,7 +252,7 @@
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ПарольДляОтправкиSMS</name>
<name>Пароль</name>
<id>3</id>
<title>
<key>ru</key>
@@ -199,7 +267,7 @@
<segments>ПарольДляОтправкиSMS</segments>
</dataPath>
<extendedTooltip>
<name>ПарольДляОтправкиSMSExtendedTooltip</name>
<name>ПарольРасширеннаяПодсказка</name>
<id>13</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -209,7 +277,7 @@
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПарольДляОтправкиSMSКонтекстноеМеню</name>
<name>ПарольКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
@@ -371,12 +439,45 @@
</edit>
</attributes>
<attributes>
<name>ОписаниеУслуги</name>
<name>СпособАвторизации</name>
<title>
<key>ru</key>
<value>Описание услуги</value>
<value>Способ авторизации</value>
</title>
<id>5</id>
<id>6</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>СпособыАвторизации</name>
<title>
<key>ru</key>
<value>Способы авторизации</value>
</title>
<id>7</id>
<valueType/>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>НастройкиПровайдера</name>
<title>
<key>ru</key>
<value>Настройки провайдера</value>
</title>
<id>8</id>
<valueType/>
<view>
<common>true</common>
@@ -11,22 +11,29 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
УстановитьПривилегированныйРежим(Истина);
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);
НастройкиПровайдера = ОтправкаSMS.НастройкиПровайдера(НастройкиОтправкиSMS.Провайдер);
ЗаполнитьСпособыАвторизации(ЭтотОбъект);
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации")
И ЗначениеЗаполнено(НастройкиОтправкиSMS.СпособАвторизации)
И Элементы.СпособАвторизации.СписокВыбора.НайтиПоЗначению(НастройкиОтправкиSMS.СпособАвторизации) <> Неопределено Тогда
СпособАвторизации = НастройкиОтправкиSMS.СпособАвторизации;
КонецЕсли;
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS");
УстановитьПривилегированныйРежим(Истина);
НастройкиПровайдера = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, "Пароль, Логин, ИмяОтправителя");
УстановитьПривилегированныйРежим(Ложь);
ЛогинДляОтправкиSMS = НастройкиПровайдера.Логин;
ИмяОтправителя = НастройкиПровайдера.ИмяОтправителя;
ПарольДляОтправкиSMS = ?(ЗначениеЗаполнено(НастройкиПровайдера.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
УстановитьПоляАвторизации(ЭтотОбъект);
ЗаполнитьОписаниеУслуги();
ЛогинДляОтправкиSMS = НастройкиОтправкиSMS.Логин;
ИмяОтправителя = НастройкиОтправкиSMS.ИмяОтправителя;
ПарольДляОтправкиSMS = НастройкиОтправкиSMS.Пароль;
Элементы.ЛогинДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеЛогина;
Элементы.ПарольДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеПароля;
Если Элементы.Пароль.РежимПароля Тогда
ПарольДляОтправкиSMS = ?(ЗначениеЗаполнено(НастройкиОтправкиSMS.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
КонецЕсли;
КонецПроцедуры
@@ -47,6 +54,7 @@
КонецЕсли;
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ЛогинДляОтправкиSMS, "Логин");
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ИмяОтправителя, "ИмяОтправителя");
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, СпособАвторизации, "СпособАвторизации");
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
@@ -56,34 +64,79 @@
&НаКлиенте
Процедура ПровайдерSMSПриИзменении(Элемент)
НастройкиПровайдера = НастройкиПровайдера(НаборКонстант.ПровайдерSMS);
ЗаполнитьСпособыАвторизации(ЭтотОбъект);
УстановитьПоляАвторизации(ЭтотОбъект);
ЛогинДляОтправкиSMS = "";
ПарольДляОтправкиSMS = "";
ИмяОтправителя = "";
ЗаполнитьОписаниеУслуги();
Элементы.ЛогинДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеЛогина;
Элементы.ПарольДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеПароля;
КонецПроцедуры
&НаКлиенте
Процедура СпособАвторизацииПриИзменении(Элемент)
ЛогинДляОтправкиSMS = "";
ПарольДляОтправкиSMS = "";
УстановитьПоляАвторизации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОписаниеУслугиНажатие(Элемент)
АдресВИнтернете = ОписаниеУслуги.АдресВИнтернете;
АдресВИнтернете = НастройкиПровайдера.АдресОписанияУслугиВИнтернете;
ОтправкаSMSКлиентПереопределяемый.ПриПолученииАдресаПровайдераВИнтернете(НаборКонстант.ПровайдерSMS, АдресВИнтернете);
Если Не ПустаяСтрока(АдресВИнтернете) Тогда
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресВИнтернете);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОписаниеУслуги()
ОписаниеУслуги = Новый Структура;
ОписаниеУслуги.Вставить("АдресВИнтернете", "");
ОписаниеУслуги.Вставить("ПредставлениеЛогина", НСтр("ru = 'Логин'"));
ОписаниеУслуги.Вставить("ПредставлениеПароля", НСтр("ru = 'Пароль'"));
&НаСервереБезКонтекста
Функция НастройкиПровайдера(Провайдер)
МодульОтправкаSMSЧерезПровайдера = ОтправкаSMS.МодульОтправкаSMSЧерезПровайдера(НаборКонстант.ПровайдерSMS);
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
МодульОтправкаSMSЧерезПровайдера.ЗаполнитьОписаниеУслуги(ОписаниеУслуги);
Возврат ОтправкаSMS.НастройкиПровайдера(Провайдер);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляАвторизации(Форма)
ПоляАвторизации = Форма.НастройкиПровайдера.СпособыАвторизации[Форма.СпособАвторизации];
Для Каждого ИмяПоля Из СтрРазделить("Логин,Пароль", ",") Цикл
Поле = ПоляАвторизации.НайтиПоЗначению(ИмяПоля);
Если Поле <> Неопределено Тогда
Форма.Элементы[ИмяПоля].Заголовок = Поле.Представление;
КонецЕсли;
Форма.Элементы[ИмяПоля].Видимость = Поле <> Неопределено;
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСпособыАвторизации(Форма)
Форма.Элементы.СпособАвторизации.СписокВыбора.Очистить();
СпособыАвторизацииПоУмолчанию = Новый СписокЗначений;
СпособыАвторизацииПоУмолчанию.Добавить("ПоКлючу", НСтр("ru = 'По ключу (рекомендуется)'"));
СпособыАвторизацииПоУмолчанию.Добавить("ПоЛогинуИПаролю", НСтр("ru = 'По логину и паролю'"));
Для Каждого Элемент Из СпособыАвторизацииПоУмолчанию Цикл
Если Форма.НастройкиПровайдера.СпособыАвторизации.Свойство(Элемент.Значение) Тогда
Форма.Элементы.СпособАвторизации.СписокВыбора.Добавить(Элемент.Значение, Элемент.Представление);
КонецЕсли;
КонецЦикла;
Форма.СпособАвторизации = Форма.Элементы.СпособАвторизации.СписокВыбора[0].Значение;
Форма.Элементы.СпособАвторизации.Видимость = Форма.Элементы.СпособАвторизации.СписокВыбора.Количество() > 1;
КонецПроцедуры
#КонецОбласти
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.2.274";
Описание.Версия = "3.0.2.283";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -68,7 +68,7 @@
ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске();
Если ПараметрыКлиента.Свойство("НеобходимоОбновлениеПараметровРаботыПрограммы") Тогда
Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения(
"ЗагрузитьОбновитьПараметрыРаботыПрограммы", ОбновлениеИнформационнойБазыКлиент, Параметры);
"ЗагрузитьОбновитьПараметрыРаботыПрограммы", ОбновлениеИнформационнойБазыКлиент);
КонецЕсли;
КонецПроцедуры
@@ -142,25 +142,29 @@
// Для процедуры ОбновитьИнформационнуюБазу.
Процедура ЗакрытьФормуИндикацииХодаОбновленияЕслиОткрыта(Параметры)
Если Параметры.Свойство("ФормаИндикацияХодаОбновленияИБ") Тогда
Если Параметры.ФормаИндикацияХодаОбновленияИБ.Открыта() Тогда
Параметры.ФормаИндикацияХодаОбновленияИБ.НачатьЗакрытие();
ИмяПараметра = "СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ";
Форма = ПараметрыПриложения.Получить(ИмяПараметра);
Если Форма = Неопределено Тогда
Возврат;
КонецЕсли;
Параметры.Удалить("ФормаИндикацияХодаОбновленияИБ");
Если Форма.Открыта() Тогда
Форма.НачатьЗакрытие();
КонецЕсли;
ПараметрыПриложения.Удалить(ИмяПараметра);
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ОбновитьИнформационнуюБазу.
Процедура НачатьОбновлениеИнформационнойБазы(Параметры, ОбработкаПродолжения) Экспорт
Если Параметры.Свойство("ФормаИндикацияХодаОбновленияИБ") Тогда
Форма = Параметры.ФормаИндикацияХодаОбновленияИБ;
Иначе
ИмяПараметра = "СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ";
Форма = ПараметрыПриложения.Получить(ИмяПараметра);
Если Форма = Неопределено Тогда
ИмяФормы = "Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОбновленияИБ";
Форма = ОткрытьФорму(ИмяФормы,,,,,, Новый ОписаниеОповещения(
"ПослеЗакрытияФормыИндикацияХодаОбновленияИБ", ЭтотОбъект, Параметры));
Параметры.Вставить("ФормаИндикацияХодаОбновленияИБ", Форма);
ПараметрыПриложения.Вставить(ИмяПараметра, Форма);
КонецЕсли;
Форма.ОбновитьИнформационнуюБазу();
@@ -173,7 +177,7 @@
ИмяФормы = "Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОбновленияИБ";
Форма = ОткрытьФорму(ИмяФормы,,,,,, Новый ОписаниеОповещения(
"ПослеЗакрытияФормыИндикацияХодаОбновленияИБ", ЭтотОбъект, Параметры));
Параметры.Вставить("ФормаИндикацияХодаОбновленияИБ", Форма);
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ", Форма);
Форма.ЗагрузитьОбновитьПараметрыРаботыПрограммы(Параметры);
КонецПроцедуры
@@ -38,20 +38,23 @@
Возврат Результат;
КонецЕсли;
НастройкиОтправкиSMS = ОтправкаSMSПовтИсп.НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Истина);
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);
Если ИмяОтправителя = Неопределено Тогда
ИмяОтправителя = НастройкиОтправкиSMS.ИмяОтправителя;
КонецЕсли;
ПровайдерыSMS = Новый Соответствие;
Для Каждого Провайдер Из Метаданные.Перечисления.ПровайдерыSMS.ЗначенияПеречисления Цикл
ПровайдерыSMS.Вставить(Перечисления.ПровайдерыSMS[Провайдер.Имя], Провайдер.Имя);
КонецЦикла;
МодульОтправкаSMSЧерезПровайдера = МодульОтправкаSMSЧерезПровайдера(НастройкиОтправкиSMS.Провайдер);
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
Результат = МодульОтправкаSMSЧерезПровайдера.ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя,
НастройкиОтправкиSMS.Логин, НастройкиОтправкиSMS.Пароль);
Логин = "";
Пароль = "";
Если НастройкиОтправкиSMS.СпособАвторизации <> "ПоКлючу" Тогда
Логин = НастройкиОтправкиSMS.Логин;
Пароль = НастройкиОтправкиSMS.Пароль;
КонецЕсли;
Результат = МодульОтправкаSMSЧерезПровайдера.ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя, Логин, Пароль);
Иначе
ПараметрыОтправки = Новый Структура;
ПараметрыОтправки.Вставить("НомераПолучателей", НомераПолучателей);
@@ -133,11 +136,26 @@
Функция НастройкаОтправкиSMSВыполнена() Экспорт
УстановитьПривилегированныйРежим(Истина);
НастройкиОтправкиSMS = ОтправкаSMSПовтИсп.НастройкиОтправкиSMS();
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);
Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Провайдер) Тогда
Отказ = ПустаяСтрока(НастройкиОтправкиSMS.Логин) Или ПустаяСтрока(НастройкиОтправкиSMS.Пароль);
НастройкиПровайдера = НастройкиПровайдера(НастройкиОтправкиSMS.Провайдер);
ПоляАвторизации = СпособыАвторизацииПровайдераПоУмолчанию().ПоЛогинуИПаролю;
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации") И ЗначениеЗаполнено(НастройкиОтправкиSMS.СпособАвторизации)
И НастройкиПровайдера.СпособыАвторизации.Свойство(НастройкиОтправкиSMS.СпособАвторизации) Тогда
ПоляАвторизации = НастройкиПровайдера.СпособыАвторизации[НастройкиОтправкиSMS.СпособАвторизации];
КонецЕсли;
Отказ = Ложь;
Для Каждого Поле Из ПоляАвторизации Цикл
Если Не ЗначениеЗаполнено(НастройкиОтправкиSMS[Поле.Значение]) Тогда
Отказ = Истина;
КонецЕсли;
КонецЦикла;
ОтправкаSMSПереопределяемый.ПриПроверкеНастроекОтправкиSMS(НастройкиОтправкиSMS, Отказ);
Возврат Не Отказ;
КонецЕсли;
@@ -232,26 +250,104 @@
Возврат Результат;
КонецФункции
Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса) Экспорт
Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, ПоместитьПараметрыВТелоЗапроса = Истина) Экспорт
Заголовки = Новый Соответствие;
Если ПоместитьПараметрыВТелоЗапроса Тогда
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
КонецЕсли;
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
Если НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда
Заголовки.Вставить("Authorization", "Bearer" + " " + НастройкиОтправкиSMS.Пароль);
КонецЕсли;
Если ТипЗнч(ПараметрыЗапроса) = Тип("Строка") Тогда
СтрокаПараметров = ПараметрыЗапроса;
Иначе
СписокПараметров = Новый Массив;
Для Каждого Параметр Из ПараметрыЗапроса Цикл
СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Параметр.Значение, СпособКодированияСтроки.КодировкаURL));
Значения = Параметр.Значение;
Если ТипЗнч(Параметр.Значение) <> Тип("Массив") Тогда
Значения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметр.Значение);
КонецЕсли;
Для Каждого Значение Из Значения Цикл
СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL));
КонецЦикла;
КонецЦикла;
СтрокаПараметров = СтрСоединить(СписокПараметров, "&");
КонецЕсли;
Если Не ПоместитьПараметрыВТелоЗапроса Тогда
АдресРесурса = АдресРесурса + "?" + СтрокаПараметров;
КонецЕсли;
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
Если ПоместитьПараметрыВТелоЗапроса Тогда
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров);
КонецЕсли;
Возврат HTTPЗапрос;
КонецФункции
Функция СпособыАвторизацииПровайдераПоУмолчанию()
СпособыАвторизации = Новый Структура;
ПоляАвторизации = Новый СписокЗначений;
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'Логин'"));
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Пароль'"), Истина);
СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации);
Возврат СпособыАвторизации;
КонецФункции
Функция НастройкиОтправкиSMS() Экспорт
Результат = Новый Структура("Логин,Пароль,Провайдер,ИмяОтправителя,СпособАвторизации");
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS");
НастройкиПровайдера = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, "Пароль,Логин,ИмяОтправителя,СпособАвторизации");
ЗаполнитьЗначенияСвойств(Результат, НастройкиПровайдера);
Результат.Провайдер = Константы.ПровайдерSMS.Получить();
КонецЕсли;
Возврат Результат;
КонецФункции
Функция НастройкиПровайдераПоУмолчанию()
Результат = Новый Структура;
Результат.Вставить("ПриОпределенииСпособовАвторизации", Ложь);
Результат.Вставить("АдресОписанияУслугиВИнтернете", "");
Результат.Вставить("СпособыАвторизации", СпособыАвторизацииПровайдераПоУмолчанию());
Возврат Результат;
КонецФункции
Функция НастройкиПровайдера(Провайдер) Экспорт
НастройкиПровайдера = НастройкиПровайдераПоУмолчанию();
МодульОтправкаSMSЧерезПровайдера = МодульОтправкаSMSЧерезПровайдера(Провайдер);
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
МодульОтправкаSMSЧерезПровайдера.ПриОпределенииНастроек(НастройкиПровайдера);
Если НастройкиПровайдера.ПриОпределенииСпособовАвторизации Тогда
МодульОтправкаSMSЧерезПровайдера.ПриОпределенииСпособовАвторизации(НастройкиПровайдера.СпособыАвторизации);
КонецЕсли;
КонецЕсли;
Возврат НастройкиПровайдера;
КонецФункции
#КонецОбласти
@@ -17,7 +17,9 @@
КонецЕсли;
Результат = Неопределено;
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Истина);
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);
МодульОтправкаSMSЧерезПровайдера = ОтправкаSMS.МодульОтправкаSMSЧерезПровайдера(НастройкиОтправкиSMS.Провайдер);
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
@@ -33,19 +35,4 @@
КонецФункции
Функция НастройкиОтправкиSMS() Экспорт
Результат = Новый Структура("Логин, Пароль, Провайдер, ИмяОтправителя");
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS");
УстановитьПривилегированныйРежим(Истина);
НастройкиПровайдера = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, "Пароль,Логин,ИмяОтправителя");
УстановитьПривилегированныйРежим(Ложь);
Результат.Логин = НастройкиПровайдера.Логин;
Результат.Пароль = НастройкиПровайдера.Пароль;
Результат.ИмяОтправителя = НастройкиПровайдера.ИмяОтправителя;
Результат.Провайдер =Константы.ПровайдерSMS.Получить();
КонецЕсли;
Возврат Новый ФиксированнаяСтруктура(Результат);
КонецФункции
#КонецОбласти
@@ -270,10 +270,23 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://gsm-inform.ru";
ОписаниеУслуги.ПредставлениеЛогина = НСтр("ru = 'ID кабинета'");
ОписаниеУслуги.ПредставлениеПароля = НСтр("ru = 'API-ключ'");
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://gsm-inform.ru";
Настройки.ПриОпределенииСпособовАвторизации = Истина;
КонецПроцедуры
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
СпособыАвторизации.Очистить();
ПоляАвторизации = Новый СписокЗначений;
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'ID кабинета'"));
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'API-ключ'"));
СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации);
КонецПроцедуры
#КонецОбласти
@@ -238,8 +238,10 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://sms4b.ru";
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://sms4b.ru";
КонецПроцедуры
#КонецОбласти
@@ -252,8 +252,10 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://sms.ru";
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://sms.ru";
КонецПроцедуры
#КонецОбласти
@@ -273,9 +273,12 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "https://smsc.ru";
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "https://smsc.ru";
КонецПроцедуры
#КонецОбласти
@@ -220,8 +220,10 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://b2b.beeline.ru/msk/sb/mobile/services/index.wbp?id=3a15308a-7b14-4f8e-acda-0841dd6c750e";
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://b2b.beeline.ru/msk/sb/mobile/services/index.wbp?id=3a15308a-7b14-4f8e-acda-0841dd6c750e";
КонецПроцедуры
#КонецОбласти
@@ -23,53 +23,52 @@
// ОписаниеОшибки - Строка - пользовательское представление ошибки, если пустая строка,
// то ошибки нет.
Функция ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя, Логин, Знач Пароль) Экспорт
Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, "");
Пароль = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль);
ИдентификаторыПолучателей = Новый Массив;
Получатели = Новый Массив;
Для Каждого Элемент Из НомераПолучателей Цикл
ИдентификаторПолучателя = ФорматироватьНомер(Элемент);
Если ИдентификаторыПолучателей.Найти(ИдентификаторПолучателя) = Неопределено Тогда
ИдентификаторыПолучателей.Добавить(ИдентификаторПолучателя);
НомерПолучателя = ФорматироватьНомер(Элемент);
Если Получатели.Найти(НомерПолучателя) = Неопределено Тогда
Получатели.Добавить(НомерПолучателя);
КонецЕсли;
КонецЦикла;
Попытка
ВебСервис = ПодключитьВебСервис();
Исключение
ОбработатьИсключение(ИнформацияОбОшибке(), Результат.ОписаниеОшибки);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("msids", Получатели);
ПараметрыЗапроса.Вставить("message", Текст);
ПараметрыЗапроса.Вставить("naming", ИмяОтправителя);
Если ЗначениеЗаполнено(Логин) Тогда
ПараметрыЗапроса.Вставить("login", Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль));
КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("SendMessages", ПараметрыЗапроса);
Если Не РезультатЗапроса.ЗапросВыполнен Тогда
Результат.ОписаниеОшибки = ОписаниеОшибкиПоКоду(РезультатЗапроса.ОтветСервера);
Возврат Результат;
КонецПопытки;
КонецЕсли;
ТипArrayOfString = ВебСервис.ФабрикаXDTO.Пакеты.Получить("http://mcommunicator.ru/M2M").Получить("ArrayOfString");
ArrayOfString = ВебСервис.ФабрикаXDTO.Создать(ТипArrayOfString);
ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера);
Разыменователь = ДокументDOM.СоздатьРазыменовательПИ();
Для Каждого ИдентификаторПолучателя Из ИдентификаторыПолучателей Цикл
ArrayOfString.string.Добавить(ИдентификаторПолучателя);
КонецЦикла;
ОтправленныеСообщения = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfSendMessageIDs/xmlns:SendMessageIDs",
ДокументDOM, Разыменователь);
Если ИдентификаторыПолучателей.Количество() > 0 Тогда
ОтветПолучен = Ложь;
Попытка
ArrayOfSendMessageIDs = ВебСервис.SendMessages(ArrayOfString, Лев(Текст, 1000), ИмяОтправителя, Логин, Пароль);
ОтветПолучен = Истина;
Исключение
ОбработатьИсключение(ИнформацияОбОшибке(), Результат.ОписаниеОшибки, Истина, ВебСервис);
Возврат Результат;
КонецПопытки;
Сообщение = ОтправленныеСообщения.ПолучитьСледующий();
Пока Сообщение <> Неопределено Цикл
НомерПолучателя = ДокументDOM.ВычислитьВыражениеXPath("xmlns:Msid", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое;
ИдентификаторСообщения = ДокументDOM.ВычислитьВыражениеXPath("xmlns:MessageID", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое;
Если ОтветПолучен Тогда
Для Каждого SendMessageID Из ArrayOfSendMessageIDs.SendMessageIDs Цикл
НомерПолучателя = SendMessageID.Msid;
ИдентификаторСообщения = SendMessageID.MessageID;
Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения",
"+" + НомерПолучателя, Формат(ИдентификаторСообщения, "ЧГ=")));
Сообщение = ОтправленныеСообщения.ПолучитьСледующий();
КонецЦикла;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает текстовое представление статуса доставки сообщения.
@@ -81,23 +80,35 @@
// Возвращаемое значение:
// Строка - статус доставки. См. описание функции ОтправкаSMS.СтатусДоставки.
Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт
Результат = "Ошибка";
Логин = НастройкиОтправкиSMS.Логин;
Пароль = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль);
ВебСервис = ПодключитьВебСервис();
Попытка
ArrayOfDeliveryInfo = ВебСервис.GetMessageStatus(ИдентификаторСообщения, Логин, Пароль);
Исключение
ОбработатьИсключение(ИнформацияОбОшибке(),, Истина, ВебСервис);
Возврат Результат;
КонецПопытки;
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("messageID", ИдентификаторСообщения);
Для Каждого DeliveryInfo Из ArrayOfDeliveryInfo.DeliveryInfo Цикл
Результат = СтатусДоставкиSMS(DeliveryInfo.DeliveryStatus);
КонецЦикла;
Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Логин) Тогда
ПараметрыЗапроса.Вставить("login", НастройкиОтправкиSMS.Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль));
КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("GetMessageStatus", ПараметрыЗапроса);
Если Не РезультатЗапроса.ЗапросВыполнен Тогда
Возврат Результат;
КонецЕсли;
ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера);
Разыменователь = ДокументDOM.СоздатьРазыменовательПИ();
НайденныйЭлемент = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfDeliveryInfo/xmlns:DeliveryInfo/xmlns:DeliveryStatus",
ДокументDOM, Разыменователь).ПолучитьСледующий();
Если НайденныйЭлемент = Неопределено Тогда
Возврат Результат;
КонецЕсли;
Результат = СтатусДоставкиSMS(НайденныйЭлемент.ТекстовоеСодержимое);
Возврат Результат;
КонецФункции
Функция ФорматироватьНомер(Номер)
@@ -126,20 +137,6 @@
Возврат ?(Результат = Неопределено, "Ошибка", Результат);
КонецФункции
Функция ПодключитьВебСервис()
ПараметрыПодключения = ОбщегоНазначения.ПараметрыПодключенияWSПрокси();
ПараметрыПодключения.АдресWSDL = "https://www.mcommunicator.ru/m2m/m2m_api.asmx?WSDL";
ПараметрыПодключения.URIПространстваИмен = "http://mcommunicator.ru/M2M";
ПараметрыПодключения.ИмяСервиса = "MTS_x0020_Communicator_x0020_M2M_x0020_XML_x0020_API";
ПараметрыПодключения.ИмяТочкиПодключения = "MTS_x0020_Communicator_x0020_M2M_x0020_XML_x0020_APISoap12";
ПараметрыПодключения.Таймаут = 60;
ПараметрыПодключения.ЗащищенноеСоединение = ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение();
Возврат ОбщегоНазначения.СоздатьWSПрокси(ПараметрыПодключения);
КонецФункции
Функция ОписанияОшибок()
ОписанияОшибок = Новый Соответствие;
ОписанияОшибок.Вставить("SYSTEM_FAILURE", НСтр("ru = 'Временная проблема на стороне МТС.'"));
@@ -169,29 +166,12 @@
ОписанияОшибок = ОписанияОшибок();
ТекстСообщения = ОписанияОшибок[КодОшибки];
Если ТекстСообщения = Неопределено Тогда
ТекстСообщения = НСтр("ru = 'Отказ выполнения операции.'");
ТекстСообщения = НСтр("ru = 'Отказ выполнения операции.'") + Символы.ПС
+ КодОшибки;
КонецЕсли;
Возврат ТекстСообщения;
КонецФункции
Функция КодОшибкиИзОписания(Знач ТекстОшибки)
Результат = Неопределено;
Позиция = СтрНайти(ТекстОшибки, "<description");
Если Позиция > 0 Тогда
ТекстОшибки = Сред(ТекстОшибки, Позиция);
Позиция = СтрНайти(ТекстОшибки, "</description");
Если Позиция > 0 Тогда
ТекстОшибки = Лев(ТекстОшибки, Позиция - 1);
Позиция = СтрНайти(ТекстОшибки, ">");
Если Позиция > 0 Тогда
ТекстОшибки = Сред(ТекстОшибки, Позиция + 1);
Результат = ТекстОшибки;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров.
//
// Возвращаемое значение:
@@ -212,42 +192,58 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://www.mtscommunicator.ru/service/";
КонецПроцедуры
Функция ВыполнитьЗапрос(ИмяМетода, ПараметрыЗапроса)
Процедура ОбработатьИсключение(ИнформацияОбОшибке, ТекстОшибки = Неопределено, ВыполнятьДиагностику = Ложь, ВебСервис = Неопределено)
Результат = Новый Структура;
Результат.Вставить("ЗапросВыполнен", Ложь);
Результат.Вставить("ОтветСервера", "");
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
,
,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос("/m2m/m2m_api.asmx/" + ИмяМетода, ПараметрыЗапроса, Ложь);
HTTPОтвет = Неопределено;
КодОшибки = КодОшибкиИзОписания(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
Попытка
Соединение = Новый HTTPСоединение("api.mcommunicator.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"),
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
Если КодОшибки = Неопределено Тогда
HTTPОтвет = Соединение.Получить(HTTPЗапрос);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Если ВыполнятьДиагностику Тогда
АдресТочкиПодключения = ВебСервис.ТочкаПодключения.Местоположение;
РезультатДиагностики = ПолучениеФайловИзИнтернета.ДиагностикаСоединения(АдресТочкиПодключения);
Результат.ЗапросВыполнен = HTTPОтвет.КодСостояния = 200;
Результат.ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Результат диагностики:
|%2'"),
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
РезультатДиагностики.ОписаниеОшибки);
Иначе
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
КонецЕсли;
Возврат Результат;
Иначе
ТекстОшибки = ОписаниеОшибкиПоКоду(КодОшибки);
КонецЕсли;
КонецФункции
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://www.mtscommunicator.ru/service/";
Настройки.ПриОпределенииСпособовАвторизации = Истина;
КонецПроцедуры
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
ПоляАвторизации = Новый СписокЗначений;
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Ключ API'"));
СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации);
КонецПроцедуры
Функция ДокументDOM(Строка)
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(Строка);
ПостроительDOM = Новый ПостроительDOM;
ДокументDOM = ПостроительDOM.Прочитать(ЧтениеXML);
ЧтениеXML.Закрыть();
Возврат ДокументDOM;
КонецФункции
#КонецОбласти
@@ -256,9 +256,12 @@
Возврат Разрешения;
КонецФункции
Процедура ЗаполнитьОписаниеУслуги(ОписаниеУслуги) Экспорт
ОписаниеУслуги.АдресВИнтернете = "http://sms-uslugi.ru";
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://sms-uslugi.ru";
КонецПроцедуры
#КонецОбласти
@@ -224,4 +224,10 @@
ВыполнитьОбработкуОповещения(ОбработчикРезультата, Ложь);
КонецПроцедуры
Процедура ПерейтиКДокументацииПоВводуУчетнойЗаписиЭлектроннойПочты() Экспорт
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://its.1c.ru/db/translate?db=bspdoc&path=src/5.48 работа с почтовыми сообщениями.htm&anchor=issogl1_ввод_учетной_записи_электронной_почты");
КонецПроцедуры
#КонецОбласти
@@ -225,7 +225,7 @@
УстановитьРазделениеСеанса();
Параметры = Новый Структура;
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
// Внешние параметры описания результата.
Параметры.Вставить("Отказ", Ложь);
@@ -241,13 +241,13 @@
// Внутренние параметры.
Параметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыОбработкаЗавершения", ЭтотОбъект, Параметры));
"ДействияПередНачаломРаботыСистемыОбработкаЗавершения", ЭтотОбъект));
ОбновитьПараметрыРаботыКлиента(Параметры, Истина, ОповещениеЗавершения <> Неопределено);
// Подготовка перехода к следующей процедуре.
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыВИнтеграционнойПроцедуре", ЭтотОбъект, Параметры));
"ДействияПередНачаломРаботыСистемыВИнтеграционнойПроцедуре", ЭтотОбъект));
Если ОтключенаЛогикаНачалаРаботыСистемы() Тогда
Попытка
@@ -303,7 +303,7 @@
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("СтандартныеПодсистемыКлиент.ПриНачалеРаботыСистемы",
"НепрерывноеВыполнение", НепрерывноеВыполнение, Тип("Булево"));
Параметры = Новый Структура;
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
// Внешние параметры описания результата.
Параметры.Вставить("Отказ", Ложь);
@@ -318,11 +318,11 @@
// Внутренние параметры.
Параметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыОбработкаЗавершения", ЭтотОбъект, Параметры));
"ДействияПриНачалеРаботыСистемыОбработкаЗавершения", ЭтотОбъект));
// Подготовка перехода к следующей процедуре.
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре", ЭтотОбъект, Параметры));
"ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре", ЭтотОбъект));
Попытка
УстановитьРасширенныйЗаголовокПриложения(Истина); // Для главного окна.
@@ -902,14 +902,16 @@
// ПередНачаломРаботыСистемы
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыВИнтеграционнойПроцедуре(Неопределен, Параметры) Экспорт
Процедура ДействияПередНачаломРаботыСистемыВИнтеграционнойПроцедуре(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
Если Не ПродолжитьДействияПередНачаломРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыВМодуляхИнтеграционнойПроцедуры", ЭтотОбъект, Параметры));
"ДействияПередНачаломРаботыСистемыВМодуляхИнтеграционнойПроцедуры", ЭтотОбъект));
Параметры.Вставить("ИндексТекущегоМодуля", 0);
Параметры.Вставить("ДобавленныеМодули", Новый Массив);
@@ -930,14 +932,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыВМодуляхИнтеграционнойПроцедуры(Неопределен, Параметры) Экспорт
Процедура ДействияПередНачаломРаботыСистемыВМодуляхИнтеграционнойПроцедуры(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
Если Не ПродолжитьДействияПередНачаломРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Если Параметры.ИндексТекущегоМодуля >= Параметры.ДобавленныеМодули.Количество() Тогда
ДействияПередНачаломРаботыСистемыВПереопределяемойПроцедуре(Неопределено, Параметры);
ДействияПередНачаломРаботыСистемыВПереопределяемойПроцедуре(Неопределено, Неопределено);
Возврат;
КонецЕсли;
@@ -972,14 +976,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыВПереопределяемойПроцедуре(Неопределен, Параметры)
Процедура ДействияПередНачаломРаботыСистемыВПереопределяемойПроцедуре(Неопределен, Контекст)
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
Если Не ПродолжитьДействияПередНачаломРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыВМодуляхПереопределяемойПроцедуры", ЭтотОбъект, Параметры));
"ДействияПередНачаломРаботыСистемыВМодуляхПереопределяемойПроцедуры", ЭтотОбъект));
Параметры.ИнтерактивнаяОбработка = Неопределено;
@@ -1006,14 +1012,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыВМодуляхПереопределяемойПроцедуры(Неопределен, Параметры) Экспорт
Процедура ДействияПередНачаломРаботыСистемыВМодуляхПереопределяемойПроцедуры(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
Если Не ПродолжитьДействияПередНачаломРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Если Параметры.ИндексТекущегоМодуля >= Параметры.ДобавленныеМодули.Количество() Тогда
ДействияПередНачаломРаботыСистемыПослеВсехПроцедур(Неопределено, Параметры);
ДействияПередНачаломРаботыСистемыПослеВсехПроцедур(Неопределено, Неопределено);
Возврат;
КонецЕсли;
@@ -1034,7 +1042,9 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыПослеВсехПроцедур(Неопределен, Параметры)
Процедура ДействияПередНачаломРаботыСистемыПослеВсехПроцедур(Неопределен, Контекст)
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы();
Если Не ПродолжитьДействияПередНачаломРаботыСистемы(Параметры) Тогда
Возврат;
@@ -1056,7 +1066,9 @@
КонецПроцедуры
// Только для внутреннего использования. Завершение процедуры ПередНачаломРаботыСистемы.
Процедура ДействияПередНачаломРаботыСистемыОбработкаЗавершения(Неопределен, Параметры) Экспорт
Процедура ДействияПередНачаломРаботыСистемыОбработкаЗавершения(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПередНачаломРаботыСистемы(Истина);
Параметры.ОбработкаПродолжения = Неопределено;
Параметры.ОбработкаЗавершения = Неопределено;
@@ -1092,18 +1104,46 @@
КонецПроцедуры
// Только для внутреннего использования.
Функция ПараметрыОбработкиПередНачаломРаботыСистемы(Удалить = Ложь)
ИмяПараметра = "СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы";
Свойства = ПараметрыПриложения[ИмяПараметра];
Если Свойства = Неопределено Тогда
Свойства = Новый Структура;
ПараметрыПриложения.Вставить(ИмяПараметра, Свойства);
КонецЕсли;
ИмяСвойства = "ПараметрыОбработкиПередНачаломРаботыСистемы";
Если Свойства.Свойство(ИмяСвойства) Тогда
Параметры = Свойства[ИмяСвойства];
Иначе
Параметры = Новый Структура;
Свойства.Вставить(ИмяСвойства, Параметры);
КонецЕсли;
Если Удалить Тогда
Свойства.Удалить(ИмяСвойства);
КонецЕсли;
Возврат Параметры;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// ПриНачалеРаботыСистемы
// Только для внутреннего использования. Продолжение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре(Неопределен, Параметры) Экспорт
Процедура ДействияПриНачалеРаботыСистемыВИнтеграционнойПроцедуре(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
Если Не ПродолжитьДействияПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыВМодуляхИнтеграционнойПроцедуры", ЭтотОбъект, Параметры));
"ДействияПриНачалеРаботыСистемыВМодуляхИнтеграционнойПроцедуры", ЭтотОбъект));
Параметры.Вставить("ИндексТекущегоМодуля", 0);
Параметры.Вставить("ДобавленныеМодули", Новый Массив);
@@ -1124,14 +1164,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыВМодуляхИнтеграционнойПроцедуры(Неопределен, Параметры) Экспорт
Процедура ДействияПриНачалеРаботыСистемыВМодуляхИнтеграционнойПроцедуры(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
Если Не ПродолжитьДействияПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Если Параметры.ИндексТекущегоМодуля >= Параметры.ДобавленныеМодули.Количество() Тогда
ДействияПриНачалеРаботыСистемыВПереопределяемойПроцедуре(Неопределено, Параметры);
ДействияПриНачалеРаботыСистемыВПереопределяемойПроцедуре(Неопределено, Неопределено);
Возврат;
КонецЕсли;
@@ -1164,14 +1206,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыВПереопределяемойПроцедуре(Неопределен, Параметры)
Процедура ДействияПриНачалеРаботыСистемыВПереопределяемойПроцедуре(Неопределен, Контекст)
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
Если Не ПродолжитьДействияПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПриНачалеРаботыСистемыВМодуляхПереопределяемойПроцедуры", ЭтотОбъект, Параметры));
"ДействияПриНачалеРаботыСистемыВМодуляхПереопределяемойПроцедуры", ЭтотОбъект));
Параметры.Вставить("ИндексТекущегоМодуля", 0);
Параметры.Вставить("ДобавленныеМодули", Новый Массив);
@@ -1192,14 +1236,16 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыВМодуляхПереопределяемойПроцедуры(Неопределен, Параметры) Экспорт
Процедура ДействияПриНачалеРаботыСистемыВМодуляхПереопределяемойПроцедуры(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
Если Не ПродолжитьДействияПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
КонецЕсли;
Если Параметры.ИндексТекущегоМодуля >= Параметры.ДобавленныеМодули.Количество() Тогда
ДействияПриНачалеРаботыСистемыПослеВсехПроцедур(Неопределено, Параметры);
ДействияПриНачалеРаботыСистемыПослеВсехПроцедур(Неопределено, Неопределено);
Возврат;
КонецЕсли;
@@ -1220,7 +1266,9 @@
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыПослеВсехПроцедур(Неопределен, Параметры)
Процедура ДействияПриНачалеРаботыСистемыПослеВсехПроцедур(Неопределен, Контекст)
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы();
Если Не ПродолжитьДействияПриНачалеРаботыСистемы(Параметры) Тогда
Возврат;
@@ -1243,7 +1291,9 @@
КонецПроцедуры
// Только для внутреннего использования. Завершение процедуры ПриНачалеРаботыСистемы.
Процедура ДействияПриНачалеРаботыСистемыОбработкаЗавершения(Неопределен, Параметры) Экспорт
Процедура ДействияПриНачалеРаботыСистемыОбработкаЗавершения(Неопределен, Контекст) Экспорт
Параметры = ПараметрыОбработкиПриНачалеРаботыСистемы(Истина);
Параметры.ОбработкаПродолжения = Неопределено;
Параметры.ОбработкаЗавершения = Неопределено;
@@ -1280,6 +1330,32 @@
КонецПроцедуры
// Только для внутреннего использования.
Функция ПараметрыОбработкиПриНачалеРаботыСистемы(Удалить = Ложь)
ИмяПараметра = "СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы";
Свойства = ПараметрыПриложения[ИмяПараметра];
Если Свойства = Неопределено Тогда
Свойства = Новый Структура;
ПараметрыПриложения.Вставить(ИмяПараметра, Свойства);
КонецЕсли;
ИмяСвойства = "ПараметрыОбработкиПриНачалеРаботыСистемы";
Если Свойства.Свойство(ИмяСвойства) Тогда
Параметры = Свойства[ИмяСвойства];
Иначе
Параметры = Новый Структура;
Свойства.Вставить(ИмяСвойства, Параметры);
КонецЕсли;
Если Удалить Тогда
Свойства.Удалить(ИмяСвойства);
КонецЕсли;
Возврат Параметры;
КонецФункции
// Обработать параметры запуска программы.
//
// Возвращаемое значение:
@@ -1374,7 +1450,7 @@
КонецЕсли;
Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения(
"ИнтерактивнаяОбработкаПроверкиВерсииПлатформыПриЗапуске", ЭтотОбъект, Параметры);
"ИнтерактивнаяОбработкаПроверкиВерсииПлатформыПриЗапуске", ЭтотОбъект);
КонецПроцедуры
@@ -1461,7 +1537,7 @@
КонецЕсли;
Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения(
"ИнтерактивнаяОбработкаВосстановленияСвязиСГлавнымУзлом", ЭтотОбъект, Параметры);
"ИнтерактивнаяОбработкаВосстановленияСвязиСГлавнымУзлом", ЭтотОбъект);
КонецПроцедуры
@@ -147,6 +147,7 @@
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
ПараметрыВыполнения.Вставить("ИнтерактивныйРежим", Ложь);
ПараметрыВыполнения.Вставить("Оповещение", Новый ОписаниеОповещения(
"НайтиУстановленныеПрограммыЦиклПродолжение", ЭтотОбъект, Контекст));
+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="09464420-3584-44f2-961f-dd23cd2f1de8">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="743c227a-1fa4-450f-970f-4a29f065593e">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="162d896e-72ed-44d1-8b7d-d7d96bd1aa89"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="ae5a1170-d027-4aad-9bf7-4bf8a08e2a45"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="500dae08-3cf6-42f8-8115-eb965d4dd98b"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="db6e9a58-9464-4ceb-9e99-bbd8c352d5f1"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="00565a7c-b482-420c-bf37-4a87304838f1"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="96a51cd2-8a53-469e-acd3-2d8df99f5b6c"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="295724ae-ecc5-4f4e-bc1a-f5fd43efda21"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="133cfffc-af69-49db-a51e-81ca6737339e"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="2eaf88b6-f05f-456c-9ef2-3ad1f5c0e439"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f69e09a5-f7e6-4411-8b6b-b0d2b821435f"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="b3696bd9-130b-4c6a-b3b4-b8a567d067e9"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="54be0449-83f5-438a-80c5-4a46e078d638"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="04138291-e4c7-416d-83ba-69b15ab6522b"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="5c45f9d2-d5eb-4198-9610-b71a016d5fe5"/>
<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.0.2.274</version>
<version>3.0.2.283</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,6717968c-5130-45a6-878f-821d8471c79a,1,86b194d5-70d8-48a7-b5d6-52223f305d26,"3.0.2.274","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6027,1,0,09464420-3584-44f2-961f-dd23cd2f1de8,09464420-3584-44f2-961f-dd23cd2f1de8,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
{6,1,1,6b8359bc-e9d8-4ad1-a1f1-cccd887e758d,1,152d551c-d637-4dac-b0f4-5e9140b54abb,"3.0.2.283","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6027,1,0,743c227a-1fa4-450f-970f-4a29f065593e,743c227a-1fa4-450f-970f-4a29f065593e,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8Line truncated
@@ -6537,11 +6537,50 @@
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаСлужбаПоддержки</name>
<id>630</id>
<name>ГруппаТребуетсяПомощь</name>
<id>725</id>
<items xsi:type="form:Decoration">
<name>ДекорацияОписание</name>
<id>727</id>
<title>
<key>ru</key>
<value>Описание, условия и цены</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияОписаниеРасширеннаяПодсказка</name>
<id>729</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияОписаниеКонтекстноеМеню</name>
<id>728</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ДекорацияОписаниеНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>СлужбаПоддержки</name>
<id>632</id>
<id>730</id>
<title>
<key>ru</key>
<value>Служба поддержки: &lt;b>8-800-333-9313 &lt;/>&lt;b>edo@1c.ru&lt;/></value>
@@ -6553,7 +6592,7 @@
</userVisible>
<extendedTooltip>
<name>СлужбаПоддержкиРасширеннаяПодсказка</name>
<id>634</id>
<id>732</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -6563,7 +6602,7 @@
</extendedTooltip>
<contextMenu>
<name>СлужбаПоддержкиКонтекстноеМеню</name>
<id>633</id>
<id>731</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
@@ -6584,11 +6623,11 @@
</userVisible>
<title>
<key>ru</key>
<value>Служба поддержки</value>
<value>Требуется помощь?</value>
</title>
<extendedTooltip>
<name>ГруппаСлужбаПоддержкиРасширеннаяПодсказка</name>
<id>631</id>
<name>ГруппаТребуетсяПомощьРасширеннаяПодсказка</name>
<id>726</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -6598,10 +6637,12 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<group>Vertical</group>
<behavior>PopUp</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<showTitle>auto</showTitle>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
@@ -171,6 +171,13 @@
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияОписаниеНажатие(Элемент)
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://portal.1c.ru/applications/31");
КонецПроцедуры
// Реквизиты организации.
&НаКлиенте
@@ -882,7 +889,8 @@
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии") Тогда
Объект.Программа = Неопределено;
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание ключа электронной подписи'"), "", Результат, Новый Структура);
НСтр("ru = 'Создание ключа электронной подписи'"), "", Результат,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
Доступность = Истина;
Возврат;
@@ -3161,7 +3169,8 @@
Если ТипЗнч(Менеджер) <> Тип("МенеджерКриптографии") Тогда
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Установка сертификата на компьютер'"), "", Менеджер, Новый Структура);
НСтр("ru = 'Установка сертификата на компьютер'"), "", Менеджер,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ОшибкаУстановкиСертификата = Менеджер.ОписаниеОшибки;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ложь);
@@ -4283,7 +4292,8 @@
Если Контекст.ПоказатьОшибку Тогда
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Выбор программы электронной подписи'"), "", Менеджер, Новый Структура);
НСтр("ru = 'Выбор программы электронной подписи'"), "", Менеджер,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
КонецЕсли;
КонецЕсли;
@@ -4594,7 +4604,8 @@
ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке)));
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание ключа электронной подписи'"), "", Ошибка, Новый Структура);
НСтр("ru = 'Создание ключа электронной подписи'"), "", Ошибка,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ложь);
@@ -4926,7 +4937,8 @@
+ Символы.ПС + ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке));
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание запроса на сертификат'"), "", Ошибка, Новый Структура);
НСтр("ru = 'Создание запроса на сертификат'"), "", Ошибка,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ИначеЕсли Не Контекст.ЗапросСоздан Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Запрос на сертификат не создан.'"));
@@ -453,7 +453,20 @@
&НаСервере
Функция ЕстьИзменениеРеквизитов(ТекущаяВерсия, ПредыдущаяВерсия, СписокРеквизитов)
Для Каждого Реквизит Из СписокРеквизитов Цикл
Если ЕстьИзменениеРеквизита(ТекущаяВерсия, ПредыдущаяВерсия, Реквизит) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
&НаСервере
Функция ЕстьИзменениеРеквизита(ТекущаяВерсия, ПредыдущаяВерсия, Реквизит)
ИмяТабличнойЧасти = Неопределено;
ИмяРеквизита = Реквизит;
Если СтрНайти(ИмяРеквизита, ".") > 0 Тогда
@@ -479,6 +492,10 @@
Возврат Истина;
КонецЕсли;
Если ИмяРеквизита = "*" Тогда
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущаяТабличнаяЧасть) <> ОбщегоНазначения.ЗначениеВСтрокуXML(ПредыдущаяТабличнаяЧасть);
КонецЕсли;
// реквизит отсутствует
ТекущийРеквизитСуществует = ТекущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
ПредыдущийРеквизитСуществует = ПредыдущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
@@ -501,6 +518,10 @@
// проверка реквизита шапки
Если ИмяРеквизита = "*" Тогда
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущаяВерсия) <> ОбщегоНазначения.ЗначениеВСтрокуXML(ПредыдущаяВерсия);
КонецЕсли;
ТекущийРеквизит = ТекущаяВерсия.Реквизиты.Найти(ИмяРеквизита, "НаименованиеРеквизита");
ТекущийРеквизитСуществует = ТекущийРеквизит <> Неопределено;
ЗначениеТекущегоРеквизита = Неопределено;
@@ -519,7 +540,6 @@
Или ЗначениеТекущегоРеквизита <> ЗначениеПредыдущегоРеквизита Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
@@ -113,8 +113,6 @@
ЗначенияОтборовНезависимогоРегистра.Вставить(ЭлементОтбора.Имя, ЭлементОтбора.Значение);
КонецЦикла;
ЗначенияОтборовНезависимогоРегистра = НаборЗаписейРегистраПоПараметрамОтбора(ЗначенияОтборовНезависимогоРегистра);
Иначе
Ссылка = ПроблемныйОбъект.Отбор.Регистратор.Значение;
КонецЕсли;
@@ -128,9 +126,11 @@
НаборЗаписейКонфликта.Отбор.ОбъектМетаданных.Установить(ИдентификаторОбъектаМетаданных);
НаборЗаписейКонфликта.Отбор.ПроблемныйОбъект.Установить(ПроблемныйОбъект);
СериализованныеЗначенияОтборов = Неопределено;
Если ЗначенияОтборовНезависимогоРегистра <> Неопределено Тогда
СериализованныеЗначенияОтборов = СериализоватьЗначенияОтбора(ЗначенияОтборовНезависимогоРегистра, МетаданныеОбъекта);
НаборЗаписейКонфликта.Отбор.КлючУникальности.Установить(
РассчитатьХэшНезависимогоРегистра(СериализоватьЗначенияОтбора(ЗначенияОтборовНезависимогоРегистра)));
РассчитатьХэшНезависимогоРегистра(СериализованныеЗначенияОтборов));
КонецЕсли;
ЗаписьКонфликта = НаборЗаписейКонфликта.Добавить();
@@ -144,9 +144,8 @@
ЗаписьКонфликта.Пропущена = Ложь;
Если ЗначенияОтборовНезависимогоРегистра <> Неопределено Тогда
ЗаписьКонфликта.КлючУникальности = РассчитатьХэшНезависимогоРегистра(
СериализоватьЗначенияОтбора(ЗначенияОтборовНезависимогоРегистра));
ЗаписьКонфликта.ЗначенияОтборовНезависимогоРегистра = ЗначенияОтборовНезависимогоРегистра;
ЗаписьКонфликта.КлючУникальности = РассчитатьХэшНезависимогоРегистра(СериализованныеЗначенияОтборов);
ЗаписьКонфликта.ЗначенияОтборовНезависимогоРегистра = СериализованныеЗначенияОтборов;
КонецЕсли;
Если ОбщегоНазначения.ЭтоОбъектСсылочногоТипа(МетаданныеОбъекта) Тогда
@@ -358,18 +357,30 @@
#Область СлужебныеПроцедурыИФункции
Функция СериализоватьЗначенияОтбора(ПараметрыОтбора)
Функция СериализоватьЗначенияОтбора(ПараметрыОтбора, МетаданныеОбъекта)
НаборЗаписейКонфликта = НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора);
НаборЗаписей = НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора, МетаданныеОбъекта);
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, НаборЗаписейКонфликта);
ЗаписатьXML(ЗаписьXML, НаборЗаписей);
Возврат ЗаписьXML.Закрыть();
КонецФункции
Функция РассчитатьХэшНезависимогоРегистра(СериализованныеЗначенияОтбора)
ХешОтбораМД5 = Новый ХешированиеДанных(ХешФункция.MD5);
ХешОтбораМД5.Добавить(СериализованныеЗначенияОтбора);
ХешСуммаОтбора = ХешОтбораМД5.ХешСумма;
ХешСуммаОтбора = СтрЗаменить(ХешСуммаОтбора, " ", "");
Возврат ХешСуммаОтбора;
КонецФункции
Функция ПараметрыОтборыРегистра()
ПоляОтбора = Новый Структура();
@@ -383,25 +394,6 @@
КонецФункции
Процедура ОчиститьЗаписиРегистра(ПараметрыОтбора)
НаборЗаписейКонфликта = НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора);
НаборЗаписейКонфликта.Записать();
КонецПроцедуры
Функция РассчитатьХэшНезависимогоРегистра(СериализованныеЗначенияОтбора)
ХешОтбораМД5 = Новый ХешированиеДанных(ХешФункция.MD5);
ХешОтбораМД5.Добавить(СериализованныеЗначенияОтбора);
ХешСуммаОтбора = ХешОтбораМД5.ХешСумма;
ХешСуммаОтбора = СтрЗаменить(ХешСуммаОтбора, " ", "");
Возврат ХешСуммаОтбора;
КонецФункции
Процедура Игнорировать(Ссылка, ТипПроблемы, Игнорировать, УзелИнформационнойБазы = Неопределено) Экспорт
МетаданныеОбъекта = Ссылка.Метаданные();
@@ -422,39 +414,28 @@
КонецПроцедуры
Функция НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора)
Функция НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора, МетаданныеОбъекта)
НаборЗаписейКонфликта = СоздатьНаборЗаписей();
НаборЗаписей = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбъекта.ПолноеИмя()).СоздатьНаборЗаписей();
Если ПараметрыОтбора.Свойство("ТипПроблемы")
И ЗначениеЗаполнено(ПараметрыОтбора.ТипПроблемы) Тогда
НаборЗаписейКонфликта.Отбор.ТипПроблемы.Установить(ПараметрыОтбора.ТипПроблемы);
Для Каждого ЭлементОтбора Из НаборЗаписей.Отбор Цикл
ЗначениеОтбора = Неопределено;
Если ПараметрыОтбора.Свойство(ЭлементОтбора.Имя, ЗначениеОтбора) Тогда
ЭлементОтбора.Установить(ЗначениеОтбора);
КонецЕсли;
КонецЦикла;
Если ПараметрыОтбора.Свойство("УзелИнформационнойБазы")
И ЗначениеЗаполнено(ПараметрыОтбора.УзелИнформационнойБазы) Тогда
НаборЗаписейКонфликта.Отбор.УзелИнформационнойБазы.Установить(ПараметрыОтбора.УзелИнформационнойБазы);
КонецЕсли;
Если ПараметрыОтбора.Свойство("ОбъектМетаданных")
И ЗначениеЗаполнено(ПараметрыОтбора.ОбъектМетаданных) Тогда
НаборЗаписейКонфликта.Отбор.ОбъектМетаданных.Установить(ПараметрыОтбора.ОбъектМетаданных);
КонецЕсли;
Если ПараметрыОтбора.Свойство("ПроблемныйОбъект")
И ЗначениеЗаполнено(ПараметрыОтбора.ПроблемныйОбъект) Тогда
НаборЗаписейКонфликта.Отбор.ПроблемныйОбъект.Установить(ПараметрыОтбора.ПроблемныйОбъект);
КонецЕсли;
Если ПараметрыОтбора.Свойство("КлючУникальности")
И ЗначениеЗаполнено(ПараметрыОтбора.КлючУникальности) Тогда
НаборЗаписейКонфликта.Отбор.КлючУникальности.Установить(ПараметрыОтбора.КлючУникальности);
КонецЕсли;
Возврат НаборЗаписейКонфликта;
Возврат НаборЗаписей;
КонецФункции
Процедура ОчиститьЗаписиРегистра(ПараметрыОтбора)
НаборЗаписейКонфликта = НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора, Метаданные.РегистрыСведений.РезультатыОбменаДанными);
НаборЗаписейКонфликта.Записать();
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -178,93 +178,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right>
@@ -3181,6 +3094,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.СозданиеСвязанныхОбъектов</name>
<right>
@@ -14,6 +14,13 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -45,13 +52,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -235,45 +235,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.НаборыДополнительныхРеквизитовИСведений</name>
<right>
@@ -4118,6 +4079,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ПроизводственныеКалендари</name>
<right>