This commit is contained in:
Компания 1С committed 2019-05-07 13:37:00 +03:00
1 parent cbb3ec2668
commit 8af5d8c85a
41 files changed
+1411 -694

No files matched your search

@@ -43,6 +43,10 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ВнутренниеДанные = Неопределено Тогда
Отказ = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ИмяПоляАктивизироватьПоУмолчанию) Тогда
ТекущийЭлемент = Элементы[ИмяПоляАктивизироватьПоУмолчанию];
КонецЕсли;
@@ -124,21 +124,113 @@
</picture>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>СообщенияОбОшибках</name>
<id>238</id>
<items xsi:type="form:FormGroup">
<name>ГруппаСообщенияОбОшибках</name>
<id>270</id>
<items xsi:type="form:FormField">
<name>СообщенияОбОшибках</name>
<id>238</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>СообщенияОбОшибках</segments>
</dataPath>
<titleLocation>None</titleLocation>
<extendedTooltip>
<name>СообщенияОбОшибкахРасширеннаяПодсказка</name>
<id>240</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СообщенияОбОшибкахКонтекстноеМеню</name>
<id>239</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>false</verticalStretch>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<backColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</backColor>
<borderColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</borderColor>
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>НужнаПомощь</name>
<id>272</id>
<title>
<key>ru</key>
<value>Нужна помощь?</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<contextMenu>
<name>НужнаПомощьКонтекстноеМеню</name>
<id>273</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>
<dataPath xsi:type="form:DataPath">
<segments>СообщенияОбОшибках</segments>
</dataPath>
<titleLocation>None</titleLocation>
<title>
<key>ru</key>
<value>Группа сообщения об ошибках</value>
</title>
<extendedTooltip>
<name>СообщенияОбОшибкахРасширеннаяПодсказка</name>
<id>240</id>
<name>ГруппаСообщенияОбОшибкахРасширеннаяПодсказка</name>
<id>271</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -146,34 +238,14 @@
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СообщенияОбОшибкахКонтекстноеМеню</name>
<id>239</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<readOnly>true</readOnly>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<height>2</height>
<autoMaxHeight>true</autoMaxHeight>
<verticalStretch>false</verticalStretch>
<wrap>true</wrap>
<multiLine>true</multiLine>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<backColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</backColor>
<borderColor xsi:type="core:ColorRef">
<color>Style.FormBackColor</color>
</borderColor>
<textSize>Normal</textSize>
<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>
@@ -164,6 +164,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>
@@ -283,6 +283,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,18 +11,29 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.ПровайдерSMS");
УстановитьПривилегированныйРежим(Истина);
НастройкиПровайдера = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Владелец, "Пароль, Логин, ИмяОтправителя");
НастройкиОтправкиSMS = ОтправкаSMS.НастройкиОтправкиSMS();
УстановитьПривилегированныйРежим(Ложь);
ЛогинДляОтправкиSMS = НастройкиПровайдера.Логин;
ИмяОтправителя = НастройкиПровайдера.ИмяОтправителя;
ПарольДляОтправкиSMS = ?(ЗначениеЗаполнено(НастройкиПровайдера.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
ЗаполнитьОписаниеУслуги();
НастройкиПровайдера = ОтправкаSMS.НастройкиПровайдера(НастройкиОтправкиSMS.Провайдер);
ЗаполнитьСпособыАвторизации(ЭтотОбъект);
Элементы.ЛогинДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеЛогина;
Элементы.ПарольДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеПароля;
Если НастройкиОтправкиSMS.Свойство("СпособАвторизации")
И ЗначениеЗаполнено(НастройкиОтправкиSMS.СпособАвторизации)
И Элементы.СпособАвторизации.СписокВыбора.НайтиПоЗначению(НастройкиОтправкиSMS.СпособАвторизации) <> Неопределено Тогда
СпособАвторизации = НастройкиОтправкиSMS.СпособАвторизации;
КонецЕсли;
УстановитьПоляАвторизации(ЭтотОбъект);
ЛогинДляОтправкиSMS = НастройкиОтправкиSMS.Логин;
ИмяОтправителя = НастройкиОтправкиSMS.ИмяОтправителя;
ПарольДляОтправкиSMS = НастройкиОтправкиSMS.Пароль;
Если Элементы.Пароль.РежимПароля Тогда
ПарольДляОтправкиSMS = ?(ЗначениеЗаполнено(НастройкиОтправкиSMS.Пароль), ЭтотОбъект.УникальныйИдентификатор, "");
КонецЕсли;
КонецПроцедуры
@@ -43,6 +54,7 @@
КонецЕсли;
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ЛогинДляОтправкиSMS, "Логин");
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, ИмяОтправителя, "ИмяОтправителя");
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Владелец, СпособАвторизации, "СпособАвторизации");
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
@@ -52,34 +64,79 @@
&НаКлиенте
Процедура ПровайдерSMSПриИзменении(Элемент)
НастройкиПровайдера = НастройкиПровайдера(НаборКонстант.ПровайдерSMS);
ЗаполнитьСпособыАвторизации(ЭтотОбъект);
УстановитьПоляАвторизации(ЭтотОбъект);
ЛогинДляОтправкиSMS = "";
ПарольДляОтправкиSMS = "";
ИмяОтправителя = "";
ЗаполнитьОписаниеУслуги();
Элементы.ЛогинДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеЛогина;
Элементы.ПарольДляОтправкиSMS.Заголовок = ОписаниеУслуги.ПредставлениеПароля;
КонецПроцедуры
&НаКлиенте
Процедура СпособАвторизацииПриИзменении(Элемент)
ЛогинДляОтправкиSMS = "";
ПарольДляОтправкиSMS = "";
УстановитьПоляАвторизации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОписаниеУслугиНажатие(Элемент)
АдресВИнтернете = ОписаниеУслуги.АдресВИнтернете;
АдресВИнтернете = НастройкиПровайдера.АдресОписанияУслугиВИнтернете;
ОтправкаSMSКлиентПереопределяемый.ПриПолученииАдресаПровайдераВИнтернете(НаборКонстант.ПровайдерSMS, АдресВИнтернете);
Если Не ПустаяСтрока(АдресВИнтернете) Тогда
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(АдресВИнтернете);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОписаниеУслуги()
ОписаниеУслуги = Новый Структура;
ОписаниеУслуги.Вставить("АдресВИнтернете", "");
ОписаниеУслуги.Вставить("ПредставлениеЛогина", НСтр("ru = 'Логин'"));
ОписаниеУслуги.Вставить("ПредставлениеПароля", НСтр("ru = 'Пароль'"));
&НаСервереБезКонтекста
Функция НастройкиПровайдера(Провайдер)
Возврат ОтправкаSMS.НастройкиПровайдера(Провайдер);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляАвторизации(Форма)
ПоляАвторизации = Форма.НастройкиПровайдера.СпособыАвторизации[Форма.СпособАвторизации];
Для Каждого ИмяПоля Из СтрРазделить("Логин,Пароль", ",") Цикл
Поле = ПоляАвторизации.НайтиПоЗначению(ИмяПоля);
Если Поле <> Неопределено Тогда
Форма.Элементы[ИмяПоля].Заголовок = Поле.Представление;
КонецЕсли;
Форма.Элементы[ИмяПоля].Видимость = Поле <> Неопределено;
КонецЦикла;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьСпособыАвторизации(Форма)
Форма.Элементы.СпособАвторизации.СписокВыбора.Очистить();
СпособыАвторизацииПоУмолчанию = Новый СписокЗначений;
СпособыАвторизацииПоУмолчанию.Добавить("ПоКлючу", НСтр("ru = 'По ключу (рекомендуется)'"));
СпособыАвторизацииПоУмолчанию.Добавить("ПоЛогинуИПаролю", НСтр("ru = 'По логину и паролю'"));
Для Каждого Элемент Из СпособыАвторизацииПоУмолчанию Цикл
Если Форма.НастройкиПровайдера.СпособыАвторизации.Свойство(Элемент.Значение) Тогда
Форма.Элементы.СпособАвторизации.СписокВыбора.Добавить(Элемент.Значение, Элемент.Представление);
КонецЕсли;
КонецЦикла;
Форма.СпособАвторизации = Форма.Элементы.СпособАвторизации.СписокВыбора[0].Значение;
Форма.Элементы.СпособАвторизации.Видимость = Форма.Элементы.СпособАвторизации.СписокВыбора.Количество() > 1;
МодульОтправкаSMSЧерезПровайдера = ОтправкаSMS.МодульОтправкаSMSЧерезПровайдера(НаборКонстант.ПровайдерSMS);
Если МодульОтправкаSMSЧерезПровайдера <> Неопределено Тогда
МодульОтправкаSMSЧерезПровайдера.ЗаполнитьОписаниеУслуги(ОписаниеУслуги);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -94,6 +94,7 @@
КонецЕсли;
УбратьПодписьИПечать();
ИнтеграцияПодсистемБСП.ПечатьДокументовПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
КонецПроцедуры
@@ -101,6 +102,7 @@
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
ИнтеграцияПодсистемБСП.ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(ЭтотОбъект, Настройки);
УправлениеПечатьюПереопределяемый.ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(ЭтотОбъект, Настройки);
КонецПроцедуры
@@ -108,6 +110,7 @@
&НаСервере
Процедура ПриСохраненииДанныхВНастройкахНаСервере(Настройки)
ИнтеграцияПодсистемБСП.ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(ЭтотОбъект, Настройки);
УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(ЭтотОбъект, Настройки);
КонецПроцедуры
@@ -140,6 +143,7 @@
УстановитьТекущуюСтраницу();
РассчитатьПоказатели();
ИнтеграцияПодсистемБСПКлиент.ПечатьДокументовПослеОткрытия(ЭтотОбъект);
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовПослеОткрытия(ЭтотОбъект);
КонецПроцедуры
@@ -243,6 +247,7 @@
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ИнтеграцияПодсистемБСПКлиент.ПечатьДокументовОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаНавигационнойСсылки(ЭтотОбъект, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецПроцедуры
@@ -419,6 +424,9 @@
ПродолжитьВыполнениеНаСервере = Ложь;
ДополнительныеПараметры = Неопределено;
ИнтеграцияПодсистемБСПКлиент.ПечатьДокументовВыполнитьКоманду(
ЭтотОбъект, Команда, ПродолжитьВыполнениеНаСервере, ДополнительныеПараметры);
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовВыполнитьКоманду(
ЭтотОбъект, Команда, ПродолжитьВыполнениеНаСервере, ДополнительныеПараметры);
@@ -1384,6 +1392,7 @@
СписокОбъектов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметры.ПараметрКоманды);
КонецЕсли;
ИнтеграцияПодсистемБСП.ПередОтправкойПоПочте(Результат, ПараметрыВывода, СписокОбъектов, ПечатныеФормы);
УправлениеПечатьюПереопределяемый.ПередОтправкойПоПочте(Результат, ПараметрыВывода, СписокОбъектов, ПечатныеФормы);
Возврат Результат;
@@ -1587,7 +1596,10 @@
&НаСервере
Процедура ПриВыполненииКомандыНаСервере(ДополнительныеПараметры)
ИнтеграцияПодсистемБСП.ПечатьДокументовПриВыполненииКоманды(ЭтотОбъект, ДополнительныеПараметры);
УправлениеПечатьюПереопределяемый.ПечатьДокументовПриВыполненииКоманды(ЭтотОбъект, ДополнительныеПараметры);
КонецПроцедуры
#Область РасчетПоказателейВыделенныхЯчеек
@@ -2228,26 +2228,6 @@
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати.
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
МодульЗащитаПерсональныхДанных.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСКомандамиПечати Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСКомандамиПечати Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ИнтерфейсOData
@@ -2653,17 +2633,14 @@
//
Процедура ПриПолученииПриоритетаОбновления(Приоритет) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ПриПолученииПриоритетаОбновления(Приоритет);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПриоритетаОбновления Тогда
ТребуемаяВерсияБТС = "1.0.17.3";
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
ТекущаяВерсияБТС = МодульТехнологияСервиса.ВерсияБиблиотеки();
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ТекущаяВерсияБТС, ТребуемаяВерсияБТС) >= 0 Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриПолученииПриоритетаОбновления(Приоритет);
КонецЕсли;
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриПолученииПриоритетаОбновления(Приоритет);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПриоритетаОбновления Тогда
@@ -2696,6 +2673,163 @@
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПриОпределенииОбъектовСКомандамиПечати.
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
МодульЗащитаПерсональныхДанных.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбъектовСКомандамиПечати Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриОпределенииОбъектовСКомандамиПечати Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПередДобавлениемКомандПечати.
Процедура ПередДобавлениемКомандПечати(ИмяФормы, КомандыПечати, СтандартнаяОбработка) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередДобавлениемКомандПечати Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПередДобавлениемКомандПечати(ИмяФормы, КомандыПечати, СтандартнаяОбработка);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередДобавлениемКомандПечати Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПередДобавлениемКомандПечати(ИмяФормы, КомандыПечати, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПриПолученииНастроекСпискаКомандПечати.
Процедура ПриПолученииНастроекСпискаКомандПечати(НастройкиСписка) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииНастроекСпискаКомандПечати Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриПолученииНастроекСпискаКомандПечати(НастройкиСписка);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииНастроекСпискаКомандПечати Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриПолученииНастроекСпискаКомандПечати(НастройкиСписка);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПриПечати.
Процедура ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПечати Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриПечати(
МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПечати Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриПечати(
МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПередОтправкойПоПочте.
Процедура ПередОтправкойПоПочте(ПараметрыОтправки, ПараметрыВывода, ОбъектыПечати, ПечатныеФормы) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПередОтправкойПоПочте Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПередОтправкойПоПочте(ПараметрыОтправки, ПараметрыВывода, ОбъектыПечати, ПечатныеФормы);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПередОтправкойПоПочте Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПередОтправкойПоПочте(ПараметрыОтправки, ПараметрыВывода, ОбъектыПечати, ПечатныеФормы);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПриПолученииПодписейИПечатей.
Процедура ПриПолученииПодписейИПечатей(Документы, ПодписиИПечати) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриПолученииПодписейИПечатей Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриПолученииПодписейИПечатей(Документы, ПодписиИПечати);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриПолученииПодписейИПечатей Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПриПолученииПодписейИПечатей(Документы, ПодписиИПечати);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСозданииНаСервере.
Процедура ПечатьДокументовПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПечатьДокументовПриСозданииНаСервере Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПечатьДокументовПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПечатьДокументовПриСозданииНаСервере Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПечатьДокументовПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере.
Процедура ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(Форма, Настройки) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(Форма, Настройки);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере(Форма, Настройки);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере.
Процедура ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(Форма, Настройки) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(Форма, Настройки);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере(Форма, Настройки);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюПереопределяемый.ПечатьДокументовПриВыполненииКоманды.
Процедура ПечатьДокументовПриВыполненииКоманды(Форма, ДополнительныеПараметры) Экспорт
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПечатьДокументовПриВыполненииКоманды Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПечатьДокументовПриВыполненииКоманды(Форма, ДополнительныеПараметры);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПечатьДокументовПриВыполненииКоманды Тогда
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
МодульИнтеграцияПодсистемБИП.ПечатьДокументовПриВыполненииКоманды(Форма, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПодключаемыеКоманды
@@ -4497,7 +4631,6 @@
// ЗапретРедактированияРеквизитовОбъектов
События.Вставить("ПриОпределенииОбъектовСЗаблокированнымиРеквизитами", Ложь);
События.Вставить("ПриОпределенииОбъектовСКомандамиПечати", Ложь);
// ИнтерфейсOData
События.Вставить("ПриЗаполненииТиповИсключаемыхИзВыгрузкиЗагрузкиOData", Ложь);
@@ -4518,6 +4651,16 @@
// Печать
События.Вставить("ПриПодготовкеСпискаМакетовВФорматеОфисныхДокументовФормируемыхНаСервере", Ложь);
События.Вставить("ПриОпределенииОбъектовСКомандамиПечати", Ложь);
События.Вставить("ПередДобавлениемКомандПечати", Ложь);
События.Вставить("ПриПолученииНастроекСпискаКомандПечати", Ложь);
События.Вставить("ПриПечати", Ложь);
События.Вставить("ПередОтправкойПоПочте", Ложь);
События.Вставить("ПриПолученииПодписейИПечатей", Ложь);
События.Вставить("ПечатьДокументовПриСозданииНаСервере", Ложь);
События.Вставить("ПечатьДокументовПриЗагрузкеДанныхИзНастроекНаСервере", Ложь);
События.Вставить("ПечатьДокументовПриСохраненииДанныхВНастройкахНаСервере", Ложь);
События.Вставить("ПечатьДокументовПриВыполненииКоманды", Ложь);
// ПодключаемыеКоманды
События.Вставить("ПриОпределенииВидовПодключаемыхКоманд", Ложь);
@@ -484,6 +484,59 @@
#КонецОбласти
#Область Печать
// См. УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовПослеОткрытия.
Процедура ПечатьДокументовПослеОткрытия(Форма) Экспорт
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПечатьДокументовПослеОткрытия Тогда
МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент");
МодульИнтеграцияПодсистемБТСКлиент.ПечатьДокументовПослеОткрытия(Форма);
КонецЕсли;
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПечатьДокументовПослеОткрытия Тогда
МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент");
МодульИнтеграцияПодсистемБИПКлиент.ПечатьДокументовПослеОткрытия(Форма);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаНавигационнойСсылки.
Процедура ПечатьДокументовОбработкаНавигационнойСсылки(Форма, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка) Экспорт
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПечатьДокументовОбработкаНавигационнойСсылки Тогда
МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент");
МодульИнтеграцияПодсистемБТСКлиент.ПечатьДокументовОбработкаНавигационнойСсылки(
Форма, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПечатьДокументовОбработкаНавигационнойСсылки Тогда
МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент");
МодульИнтеграцияПодсистемБИПКлиент.ПечатьДокументовОбработкаНавигационнойСсылки(
Форма, Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
// См. УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовВыполнитьКоманду.
Процедура ПечатьДокументовВыполнитьКоманду(Форма, Команда, ПродолжитьВыполнениеНаСервере, ДополнительныеПараметры) Экспорт
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБТС().ПечатьДокументовВыполнитьКоманду Тогда
МодульИнтеграцияПодсистемБТСКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБТСКлиент");
МодульИнтеграцияПодсистемБТСКлиент.ПечатьДокументовВыполнитьКоманду(
Форма, Команда, ПродолжитьВыполнениеНаСервере, ДополнительныеПараметры);
КонецЕсли;
Если ИнтеграцияПодсистемБСПКлиентПовтИсп.ПодпискиБИП().ПечатьДокументовВыполнитьКоманду Тогда
МодульИнтеграцияПодсистемБИПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияПодсистемБИПКлиент");
МодульИнтеграцияПодсистемБИПКлиент.ПечатьДокументовВыполнитьКоманду(
Форма, Команда, ПродолжитьВыполнениеНаСервере, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПрофилиБезопасности
// См. РаботаВБезопасномРежимеКлиентПереопределяемый.ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов.
@@ -586,6 +639,11 @@
// ЗавершениеРаботыПользователей
События.Вставить("ПриЗавершенииСеансов", Ложь);
// Печать
События.Вставить("ПечатьДокументовПослеОткрытия", Ложь);
События.Вставить("ПечатьДокументовОбработкаНавигационнойСсылки", Ложь);
События.Вставить("ПечатьДокументовВыполнитьКоманду", Ложь);
// ПрофилиБезопасности
События.Вставить("ПриПодтвержденииЗапросовНаИспользованиеВнешнихРесурсов", Ложь);
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.1.91";
Описание.Версия = "3.1.1.99";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -81,7 +81,7 @@
ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске();
Если ПараметрыКлиента.Свойство("НеобходимоОбновлениеПараметровРаботыПрограммы") Тогда
Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения(
"ЗагрузитьОбновитьПараметрыРаботыПрограммы", ОбновлениеИнформационнойБазыКлиент, Параметры);
"ЗагрузитьОбновитьПараметрыРаботыПрограммы", ОбновлениеИнформационнойБазыКлиент);
КонецЕсли;
КонецПроцедуры
@@ -155,25 +155,29 @@
// Для процедуры ОбновитьИнформационнуюБазу.
Процедура ЗакрытьФормуИндикацииХодаОбновленияЕслиОткрыта(Параметры)
Если Параметры.Свойство("ФормаИндикацияХодаОбновленияИБ") Тогда
Если Параметры.ФормаИндикацияХодаОбновленияИБ.Открыта() Тогда
Параметры.ФормаИндикацияХодаОбновленияИБ.НачатьЗакрытие();
КонецЕсли;
Параметры.Удалить("ФормаИндикацияХодаОбновленияИБ");
ИмяПараметра = "СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ";
Форма = ПараметрыПриложения.Получить(ИмяПараметра);
Если Форма = Неопределено Тогда
Возврат;
КонецЕсли;
Если Форма.Открыта() Тогда
Форма.НачатьЗакрытие();
КонецЕсли;
ПараметрыПриложения.Удалить(ИмяПараметра);
КонецПроцедуры
// Только для внутреннего использования. Продолжение процедуры ОбновитьИнформационнуюБазу.
Процедура НачатьОбновлениеИнформационнойБазы(Параметры, ОбработкаПродолжения) Экспорт
Если Параметры.Свойство("ФормаИндикацияХодаОбновленияИБ") Тогда
Форма = Параметры.ФормаИндикацияХодаОбновленияИБ;
Иначе
ИмяПараметра = "СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ";
Форма = ПараметрыПриложения.Получить(ИмяПараметра);
Если Форма = Неопределено Тогда
ИмяФормы = "Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОбновленияИБ";
Форма = ОткрытьФорму(ИмяФормы,,,,,, Новый ОписаниеОповещения(
"ПослеЗакрытияФормыИндикацияХодаОбновленияИБ", ЭтотОбъект, Параметры));
Параметры.Вставить("ФормаИндикацияХодаОбновленияИБ", Форма);
ПараметрыПриложения.Вставить(ИмяПараметра, Форма);
КонецЕсли;
Форма.ОбновитьИнформационнуюБазу();
@@ -186,7 +190,7 @@
ИмяФормы = "Обработка.РезультатыОбновленияПрограммы.Форма.ИндикацияХодаОбновленияИБ";
Форма = ОткрытьФорму(ИмяФормы,,,,,, Новый ОписаниеОповещения(
"ПослеЗакрытияФормыИндикацияХодаОбновленияИБ", ЭтотОбъект, Параметры));
Параметры.Вставить("ФормаИндикацияХодаОбновленияИБ", Форма);
ПараметрыПриложения.Вставить("СтандартныеПодсистемы.ОбновлениеВерсииИБ.ФормаИндикацияХодаОбновленияИБ", Форма);
Форма.ЗагрузитьОбновитьПараметрыРаботыПрограммы(Параметры);
КонецПроцедуры
@@ -648,6 +648,11 @@
КонецПроцедуры
// См. ИнтеграцияПодсистемБСП.ПриПолученииПриоритетаОбновления.
Процедура ПриПолученииПриоритетаОбновления(Приоритет) Экспорт
Приоритет = Константы.ПриоритетОбновленияВОбластяхДанных.Получить();
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -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, Отказ);
Возврат Не Отказ;
КонецЕсли;
@@ -217,26 +235,104 @@
Возврат Результат;
КонецФункции
Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса) Экспорт
Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, ПоместитьПараметрыВТелоЗапроса = Истина) Экспорт
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
Если ПоместитьПараметрыВТелоЗапроса Тогда
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
КонецЕсли;
НастройкиОтправкиSMS = НастройкиОтправкиSMS();
Если НастройкиОтправкиSMS.СпособАвторизации = "ПоКлючу" Тогда
Заголовки.Вставить("Authorization", "Bearer" + " " + НастройкиОтправкиSMS.Пароль);
КонецЕсли;
Если ТипЗнч(ПараметрыЗапроса) = Тип("Строка") Тогда
СтрокаПараметров = ПараметрыЗапроса;
Иначе
СписокПараметров = Новый Массив;
Для Каждого Параметр Из ПараметрыЗапроса Цикл
СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Параметр.Значение, СпособКодированияСтроки.КодировкаURL));
Значения = Параметр.Значение;
Если ТипЗнч(Параметр.Значение) <> Тип("Массив") Тогда
Значения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметр.Значение);
КонецЕсли;
Для Каждого Значение Из Значения Цикл
СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL));
КонецЦикла;
КонецЦикла;
СтрокаПараметров = СтрСоединить(СписокПараметров, "&");
КонецЕсли;
Если Не ПоместитьПараметрыВТелоЗапроса Тогда
АдресРесурса = АдресРесурса + "?" + СтрокаПараметров;
КонецЕсли;
HTTPЗапрос = Новый 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";
КонецПроцедуры
#КонецОбласти
@@ -50,7 +50,7 @@
Если Ответ = Неопределено Тогда
Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'");
Возврат Результат;
КонецЕсли;
КонецЕсли;
// Обработка результата запроса (получение идентификаторов сообщений).
СтруктураОтвета = Новый ЧтениеXML;
@@ -70,7 +70,7 @@
КонецЦикла;
Если Не ПустаяСтрока(НомерПолучателя) Тогда
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения",
НомерПолучателя,ИдентификаторСообщения);
НомерПолучателя, ИдентификаторСообщения);
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
КонецЕсли;
ИначеЕсли СтруктураОтвета.Имя = "error" Тогда
@@ -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", ИмяОтправителя);
ТипArrayOfString = ВебСервис.ФабрикаXDTO.Пакеты.Получить("http://mcommunicator.ru/M2M").Получить("ArrayOfString");
ArrayOfString = ВебСервис.ФабрикаXDTO.Создать(ТипArrayOfString);
Для Каждого ИдентификаторПолучателя Из ИдентификаторыПолучателей Цикл
ArrayOfString.string.Добавить(ИдентификаторПолучателя);
КонецЦикла;
Если ИдентификаторыПолучателей.Количество() > 0 Тогда
ОтветПолучен = Ложь;
Попытка
ArrayOfSendMessageIDs = ВебСервис.SendMessages(ArrayOfString, Лев(Текст, 1000), ИмяОтправителя, Логин, Пароль);
ОтветПолучен = Истина;
Исключение
ОбработатьИсключение(ИнформацияОбОшибке(), Результат.ОписаниеОшибки, Истина, ВебСервис);
Возврат Результат;
КонецПопытки;
Если ОтветПолучен Тогда
Для Каждого SendMessageID Из ArrayOfSendMessageIDs.SendMessageIDs Цикл
НомерПолучателя = SendMessageID.Msid;
ИдентификаторСообщения = SendMessageID.MessageID;
Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения",
"+" + НомерПолучателя, Формат(ИдентификаторСообщения, "ЧГ=")));
КонецЦикла;
КонецЕсли;
Если ЗначениеЗаполнено(Логин) Тогда
ПараметрыЗапроса.Вставить("login", Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(Пароль));
КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("SendMessages", ПараметрыЗапроса);
Если Не РезультатЗапроса.ЗапросВыполнен Тогда
Результат.ОписаниеОшибки = ОписаниеОшибкиПоКоду(РезультатЗапроса.ОтветСервера);
Возврат Результат;
КонецЕсли;
ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера);
Разыменователь = ДокументDOM.СоздатьРазыменовательПИ();
ОтправленныеСообщения = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfSendMessageIDs/xmlns:SendMessageIDs",
ДокументDOM, Разыменователь);
Сообщение = ОтправленныеСообщения.ПолучитьСледующий();
Пока Сообщение <> Неопределено Цикл
НомерПолучателя = ДокументDOM.ВычислитьВыражениеXPath("xmlns:Msid", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое;
ИдентификаторСообщения = ДокументDOM.ВычислитьВыражениеXPath("xmlns:MessageID", Сообщение, Разыменователь).ПолучитьСледующий().ТекстовоеСодержимое;
Результат.ОтправленныеСообщения.Добавить(Новый Структура("НомерПолучателя,ИдентификаторСообщения",
"+" + НомерПолучателя, Формат(ИдентификаторСообщения, "ЧГ=")));
Сообщение = ОтправленныеСообщения.ПолучитьСледующий();
КонецЦикла;
Возврат Результат;
КонецФункции
// Возвращает текстовое представление статуса доставки сообщения.
@@ -81,23 +80,35 @@
// Возвращаемое значение:
// Строка - статус доставки. См. описание функции ОтправкаSMS.СтатусДоставки.
Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт
Результат = "Ошибка";
Логин = НастройкиОтправкиSMS.Логин;
Пароль = ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль);
ВебСервис = ПодключитьВебСервис();
Попытка
ArrayOfDeliveryInfo = ВебСервис.GetMessageStatus(ИдентификаторСообщения, Логин, Пароль);
Исключение
ОбработатьИсключение(ИнформацияОбОшибке(),, Истина, ВебСервис);
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("messageID", ИдентификаторСообщения);
Если ЗначениеЗаполнено(НастройкиОтправкиSMS.Логин) Тогда
ПараметрыЗапроса.Вставить("login", НастройкиОтправкиSMS.Логин);
ПараметрыЗапроса.Вставить("password", ОбщегоНазначения.КонтрольнаяСуммаСтрокой(НастройкиОтправкиSMS.Пароль));
КонецЕсли;
РезультатЗапроса = ВыполнитьЗапрос("GetMessageStatus", ПараметрыЗапроса);
Если Не РезультатЗапроса.ЗапросВыполнен Тогда
Возврат Результат;
КонецПопытки;
КонецЕсли;
Для Каждого DeliveryInfo Из ArrayOfDeliveryInfo.DeliveryInfo Цикл
Результат = СтатусДоставкиSMS(DeliveryInfo.DeliveryStatus);
КонецЦикла;
ДокументDOM = ДокументDOM(РезультатЗапроса.ОтветСервера);
Разыменователь = ДокументDOM.СоздатьРазыменовательПИ();
НайденныйЭлемент = ДокументDOM.ВычислитьВыражениеXPath("/xmlns:ArrayOfDeliveryInfo/xmlns:DeliveryInfo/xmlns:DeliveryStatus",
ДокументDOM, Разыменователь).ПолучитьСледующий();
Если НайденныйЭлемент = Неопределено Тогда
Возврат Результат;
КонецЕсли;
Результат = СтатусДоставкиSMS(НайденныйЭлемент.ТекстовоеСодержимое);
Возврат Результат;
КонецФункции
Функция ФорматироватьНомер(Номер)
@@ -109,7 +120,7 @@
Результат = Результат + Символ;
КонецЕсли;
КонецЦикла;
Возврат Результат;
Возврат Результат;
КонецФункции
Функция СтатусДоставки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/";
Функция ВыполнитьЗапрос(ИмяМетода, ПараметрыЗапроса)
Результат = Новый Структура;
Результат.Вставить("ЗапросВыполнен", Ложь);
Результат.Вставить("ОтветСервера", "");
HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос("/m2m/m2m_api.asmx/" + ИмяМетода, ПараметрыЗапроса, Ложь);
HTTPОтвет = Неопределено;
Попытка
Соединение = Новый HTTPСоединение("api.mcommunicator.ru", , , , ПолучениеФайловИзИнтернета.ПолучитьПрокси("https"),
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
HTTPОтвет = Соединение.Получить(HTTPЗапрос);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Результат.ЗапросВыполнен = HTTPОтвет.КодСостояния = 200;
Результат.ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку();
Возврат Результат;
КонецФункции
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://www.mtscommunicator.ru/service/";
Настройки.ПриОпределенииСпособовАвторизации = Истина;
КонецПроцедуры
Процедура ОбработатьИсключение(ИнформацияОбОшибке, ТекстОшибки = Неопределено, ВыполнятьДиагностику = Ложь, ВебСервис = Неопределено)
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
,
,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ПоляАвторизации = Новый СписокЗначений;
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'Ключ API'"));
КодОшибки = КодОшибкиИзОписания(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
Если КодОшибки = Неопределено Тогда
Если ВыполнятьДиагностику Тогда
АдресТочкиПодключения = ВебСервис.ТочкаПодключения.Местоположение;
РезультатДиагностики = ПолучениеФайловИзИнтернета.ДиагностикаСоединения(АдресТочкиПодключения);
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1
|
|Результат диагностики:
|%2'"),
КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
РезультатДиагностики.ОписаниеОшибки);
Иначе
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
КонецЕсли;
Иначе
ТекстОшибки = ОписаниеОшибкиПоКоду(КодОшибки);
КонецЕсли;
СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации);
КонецПроцедуры
Функция Документ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 @@
КонецЕсли;
Параметры.ИнтерактивнаяОбработка = Новый ОписаниеОповещения(
"ИнтерактивнаяОбработкаВосстановленияСвязиСГлавнымУзлом", ЭтотОбъект, Параметры);
"ИнтерактивнаяОбработкаВосстановленияСвязиСГлавнымУзлом", ЭтотОбъект);
КонецПроцедуры
@@ -2304,7 +2304,7 @@
// Проверка настройки совместимости конфигурации с версией платформы.
СистемнаяИнформация = Новый СистемнаяИнформация;
МинимальнаяВерсияПлатформы = "8.3.14.1533";
МинимальнаяВерсияПлатформы = "8.3.14.1694";
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, МинимальнаяВерсияПлатформы) < 0 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для запуска необходима версия платформы 1С:Предприятие %1 или выше.'"), МинимальнаяВерсияПлатформы);
@@ -169,6 +169,7 @@
КомандыПечати = СоздатьКоллекциюКомандПечати();
СтандартнаяОбработка = Истина;
ИнтеграцияПодсистемБСП.ПередДобавлениемКомандПечати(ИмяФормы, КомандыПечати, СтандартнаяОбработка);
УправлениеПечатьюПереопределяемый.ПередДобавлениемКомандПечати(ИмяФормы, КомандыПечати, СтандартнаяОбработка);
Если СтандартнаяОбработка Тогда
@@ -182,6 +183,7 @@
НастройкиСписка.Вставить("МенеджерКомандПечати", ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя()));
НастройкиСписка.Вставить("АвтоматическоеЗаполнение", ЭтоЖурналДокументов);
Если ЭтоЖурналДокументов Тогда
ИнтеграцияПодсистемБСП.ПриПолученииНастроекСпискаКомандПечати(НастройкиСписка);
УправлениеПечатьюПереопределяемый.ПриПолученииНастроекСпискаКомандПечати(НастройкиСписка);
КонецЕсли;
@@ -2015,6 +2017,7 @@
КонецЦикла;
ИнтеграцияПодсистемБСП.ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
УправлениеПечатьюПереопределяемый.ПриПечати(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
// Установка количества экземпляров табличным документам, проверка областей.
@@ -2512,6 +2515,7 @@
СписокОбъектов = ОбъектыПечати.ВыгрузитьЗначения();
ПодписиИПечати = Новый Соответствие;
ИнтеграцияПодсистемБСП.ПриПолученииПодписейИПечатей(СписокОбъектов, ПодписиИПечати);
УправлениеПечатьюПереопределяемый.ПриПолученииПодписейИПечатей(СписокОбъектов, ПодписиИПечати);
Возврат ПодписиИПечати;
@@ -141,12 +141,13 @@
ОписанияПрограмм.Добавить(Контекст.ОписаниеПрограммы);
ПараметрыВыполнения = Новый Структура;
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
ПараметрыВыполнения.Вставить("ЭтоLinux", Не ОбщегоНазначенияКлиент.ЭтоWindowsКлиент());
ПараметрыВыполнения.Вставить("Менеджер", Неопределено);
ПараметрыВыполнения.Вставить("ОписанияПрограмм", ОписанияПрограмм);
ПараметрыВыполнения.Вставить("Индекс", -1);
ПараметрыВыполнения.Вставить("ПоказатьОшибку", Ложь);
ПараметрыВыполнения.Вставить("СвойстваОшибки", Новый Структура("Ошибки", Новый Массив));
ПараметрыВыполнения.Вставить("Это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="68dcd69d-e5d3-44c2-9e8e-74c29446652a">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3c6865c6-378f-47bd-b127-cc7b18a8c38d">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="54327fbe-4689-4d21-8bfc-f23e09beb9b8"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="814e4d87-0c72-4573-9969-e56654fb9067"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="25a9f734-14e1-4247-ab9a-ca1407effff6"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="efc78e2e-c6d3-4833-955d-fc1a49aedef8"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="c3efc6b4-edce-4e6f-8a2f-7e21af735794"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="a23e695a-a7a1-41ae-a60b-5c07af756943"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="06a9d0f3-091d-4f92-9e75-64fed69499d3"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="fccd46be-11f4-48b5-b199-36abe1d333b3"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="208de06c-dbca-4f04-bd53-73d84d02e93d"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="ed93031d-ce5a-42d1-b4ff-c2070e5fdac7"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8c59a196-1413-4a53-b704-7797dd9e6f40"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="0d35eb50-f0fc-4a8c-b329-5901d7d19cb4"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="adb2d6f1-e429-4f39-a0ee-b54c3ef39603"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f1e10590-1f59-4eef-b46f-4fd189f01264"/>
<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.1.91</version>
<version>3.1.1.99</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,66005d30-14fa-4287-8c17-1f163ef0e1cb,1,ff244399-cedd-421d-b526-066a2c199344,"3.1.1.91","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5823,1,0,68dcd69d-e5d3-44c2-9e8e-74c29446652a,68dcd69d-e5d3-44c2-9e8e-74c29446652a,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,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-Line truncated
{6,1,1,4e18ce5e-2fb0-4db4-a4e8-3d814c56226e,1,a3512662-c376-49f8-a104-f44ee234b896,"3.1.1.99","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5823,1,0,3c6865c6-378f-47bd-b127-cc7b18a8c38d,3c6865c6-378f-47bd-b127-cc7b18a8c38d,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,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-Line truncated
@@ -35,17 +35,6 @@
Возврат;
КонецЕсли;
ПотокВПамяти = Новый ПотокВПамяти;
ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти);
ЗаписьДанных.Записать(ПолучитьИзВременногоХранилища(Адрес));
ЗаписьДанных.Закрыть();
ПотокВПамяти.Перейти(0, ПозицияВПотоке.Начало);
ЧтениеТекста = Новый ЧтениеТекста(ПотокВПамяти);
КлассификаторXML = ЧтениеТекста.Прочитать();
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(ИдентификаторКлассификатора(), КлассификаторXML);
Обработан = Истина;
КонецПроцедуры
@@ -268,14 +257,14 @@
// Процедура для загрузки курсов валют по определенному периоду.
//
// Параметры:
// Валюты - Любая коллекция - со следующими полями:
// Валюты - Любая коллекция - со следующими полями:
// КодВалюты - числовой код валюты.
// Валюта - ссылка на валюту.
// НачалоПериодаЗагрузки - Дата - начало периода загрузки курсов.
// ОкончаниеПериодаЗагрузки - Дата - окончание периода загрузки курсов.
// НачалоПериодаЗагрузки - Дата - начало периода загрузки курсов.
// ОкончаниеПериодаЗагрузки - Дата - окончание периода загрузки курсов.
//
// Возвращаемое значение:
// Массив состояния загрузки - каждый элемент - структура с полями.
// Массив состояния загрузки - каждый элемент - структура с полями.
// Валюта - загружаемая валюта.
// СтатусОперации - завершилась ли загрузка успешно.
// Сообщение - пояснение о загрузке (текст сообщения об ошибке или поясняющее сообщение).
@@ -592,16 +581,31 @@
Функция КлассификаторВалют() Экспорт
Попытка
КлассификаторXML = Неопределено;
КлассификаторXML = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(ИдентификаторКлассификатора());
Исключение
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
ИдентификаторКлассификатора = ИдентификаторКлассификатора();
// Не удалось получить классификатор из кэша, будем использовать поставляемый из макета.
КлассификаторXML = Неопределено;
КонецПопытки;
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
Идентификаторы = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ИдентификаторКлассификатора);
Результат = МодульРаботаСКлассификаторами.ПолучитьФайлыКлассификаторов(Идентификаторы);
Если ПустаяСтрока(Результат.КодОшибки) И Результат.ДанныеКлассификаторов <> Неопределено Тогда
ОписаниеКлассификатора = Результат.ДанныеКлассификаторов.Найти(ИдентификаторКлассификатора, "Идентификатор");
Если ОписаниеКлассификатора <> Неопределено Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ОписаниеКлассификатора.АдресФайла);
ПотокВПамяти = Новый ПотокВПамяти;
ЗаписьДанных = Новый ЗаписьДанных(ПотокВПамяти);
ЗаписьДанных.Записать(ДвоичныеДанные);
ЗаписьДанных.Закрыть();
ПотокВПамяти.Перейти(0, ПозицияВПотоке.Начало);
ЧтениеТекста = Новый ЧтениеТекста(ПотокВПамяти);
КлассификаторXML = ЧтениеТекста.Прочитать();
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если КлассификаторXML = Неопределено Тогда
КлассификаторXML = ПолучитьМакет("ОбщероссийскийКлассификаторВалют").ПолучитьТекст();
@@ -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>
@@ -167,6 +167,13 @@
КонецПроцедуры
&НаКлиенте
Процедура ДекорацияОписаниеНажатие(Элемент)
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://portal.1c.ru/applications/31");
КонецПроцедуры
// Реквизиты организации.
&НаКлиенте
@@ -878,7 +885,8 @@
Если ТипЗнч(Результат) <> Тип("МенеджерКриптографии") Тогда
Объект.Программа = Неопределено;
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание ключа электронной подписи'"), "", Результат, Новый Структура);
НСтр("ru = 'Создание ключа электронной подписи'"), "", Результат,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
Доступность = Истина;
Возврат;
@@ -3157,7 +3165,8 @@
Если ТипЗнч(Менеджер) <> Тип("МенеджерКриптографии") Тогда
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Установка сертификата на компьютер'"), "", Менеджер, Новый Структура);
НСтр("ru = 'Установка сертификата на компьютер'"), "", Менеджер,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ОшибкаУстановкиСертификата = Менеджер.ОписаниеОшибки;
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ложь);
@@ -4279,7 +4288,8 @@
Если Контекст.ПоказатьОшибку Тогда
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Выбор программы электронной подписи'"), "", Менеджер, Новый Структура);
НСтр("ru = 'Выбор программы электронной подписи'"), "", Менеджер,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
КонецЕсли;
КонецЕсли;
@@ -4590,7 +4600,8 @@
ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке)));
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание ключа электронной подписи'"), "", Ошибка, Новый Структура);
НСтр("ru = 'Создание ключа электронной подписи'"), "", Ошибка,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Ложь);
@@ -4922,7 +4933,8 @@
+ Символы.ПС + ПредставлениеОшибкиДляПользователя(ИнформацияОбОшибке));
ЭлектроннаяПодписьСлужебныйКлиент.ПоказатьОшибкуОбращенияКПрограмме(
НСтр("ru = 'Создание запроса на сертификат'"), "", Ошибка, Новый Структура);
НСтр("ru = 'Создание запроса на сертификат'"), "", Ошибка,
Новый Структура, Новый Структура("ПоказатьИнструкцию", Истина));
ИначеЕсли Не Контекст.ЗапросСоздан Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Запрос на сертификат не создан.'"));
@@ -26,14 +26,16 @@ TD {
<li><a href="../id99efdf21-009a-412a-a276-67f9b1b049a6/038b5c85-fb1c-4082-9c4c-e69f8928bf3a">События мониторинга 1СПАРК Риски</a>.</li></ul></li></ul><h3>Классификаторы, курсы валют</h3>
<p></p>
<table><tbody><tr><td colspan="2">
<ul><li><b>Обновление классификаторов</b> - переход к загрузке и <a href="../id5ef8446c-c380-4782-9297-9ccef9972174/038b5c85-fb1c-4082-9c4c-e69f8928bf3a">обновлению классификаторов</a> банков, валют, стран мира, производственных календарей. Обновление можно произвести на портале 1С:ИТС или из файла на компьютере.</li></ul></td></tr><tr><td>
<ul><li><b>Обновление классификаторов</b> - переход к загрузке и <a href="../id5ef8446c-c380-4782-9297-9ccef9972174/038b5c85-fb1c-4082-9c4c-e69f8928bf3a">обновлению классификаторов</a> банков, валют, стран мира, производственных календарей. Обновление можно произвести на портале 1С:ИТС или из файла на компьютере.</li></ul></td></tr><tr><td height="30px">
<ul><li><b>Автоматическое обновление классификаторов</b></li></ul></td>
<td height="30px">Можно обновлять классификаторы по расписанию с помощью регламентного задания. По умолчанию переключатель установлен в положение <b>Отключено</b>. Включите автоматическое обновление, выбрав <b>По расписанию через Интернет</b> или <b>По расписанию из файла</b>. По ссылке под переключателем перейдите к настройке расписания. Ссылка отображает состояние расписания.</td></tr><tr><td>
<ul><li><a href="InformationRegister.АдресныеОбъекты.Form.ЗагрузкаАдресногоКлассификатора/Help">Загрузка адресного классификатора</a></li></ul></td>
<td>
<ul><li>Загрузка адресного классификатора с портала 1С:ИТС или из папки на диске.</li></ul></td></tr><tr><td>
<ul><li><a href="InformationRegister.АдресныеОбъекты.Form.ОчисткаАдресногоКлассификатора/Help">Очистка адресных сведений</a></li></ul></td>
<td>
<ul><li>Удаление загруженных адресных сведений по выбранным, неиспользуемым регионам для уменьшения размера базы.</li></ul></td></tr></tbody></table><table><tbody><tr><td>
<ul><li><a href="DataProcessor.ЗагрузкаКурсовВалют/Help">Загрузить курсы валют</a></li></ul></td>
<ul><li><a href="DataProcessor.ЗагрузкаКурсовВалют/Help">Загрузка курсов валют</a></li></ul></td>
<td>
<ul><li>Загрузка курсов валют из сети Интернет.</li></ul></td></tr></tbody></table><h3>Обсуждения</h3>
<a name="СтандартныеПодсистемы.Обсуждения">
@@ -14,21 +14,29 @@
ЭтоНоваяГруппа = Параметры.ЭтоНоваяГруппа;
Если ЭтоНоваяГруппа Тогда
ОбъектЗначение = Справочники[Параметры.ИмяСправочникаХранилищаФайлов].СоздатьГруппу();
Если Параметры.Свойство("Родитель") И Параметры.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
ОбъектЗначение = Справочники[Параметры.ИмяСправочникаХранилищаФайлов].СоздатьГруппу();
Если Параметры.Свойство("Родитель")
И Параметры.Родитель <> Неопределено
И ТипЗнч(Параметры.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
Если Параметры.Родитель.ЭтоГруппа Тогда
ОбъектЗначение.Родитель = Параметры.Родитель;
ИначеЕсли Параметры.Родитель.Родитель <> Неопределено И ТипЗнч(Параметры.Родитель.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
ОбъектЗначение.Родитель = Параметры.Родитель.Родитель; // В качестве первого родителя была передана ссылка на элемент.
ОбъектЗначение.Родитель = Параметры.Родитель;
ИначеЕсли Параметры.Родитель.Родитель <> Неопределено
И ТипЗнч(Параметры.Родитель.Родитель) = ТипЗнч(ОбъектЗначение.Ссылка) Тогда
ОбъектЗначение.Родитель = Параметры.Родитель.Родитель; // В качестве первого родителя была передана ссылка на элемент.
КонецЕсли;
Иначе
ОбъектЗначение.Родитель = Неопределено;
ОбъектЗначение.Родитель = Неопределено;
КонецЕсли;
ОбъектЗначение.ВладелецФайла = Параметры.ВладелецФайла;
ОбъектЗначение.ДатаСоздания = ТекущаяУниверсальнаяДата();
ОбъектЗначение.Автор = Пользователи.АвторизованныйПользователь();
ОбъектЗначение.Изменил = ОбъектЗначение.Автор;
ИначеЕсли ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
КопируемыйОбъект = Параметры.ЗначениеКопирования.ПолучитьОбъект();
@@ -362,58 +362,40 @@
&НаКлиенте
Процедура СписокПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка, Строка, Поле)
СтандартнаяОбработка = Ложь;
МассивИменФайлов = Новый Массив;
МассивЭлементовСписка = Новый Массив;
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл")
И ПараметрыПеретаскивания.Значение.ЭтоФайл() Тогда
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив")
И ПараметрыПеретаскивания.Значение.Количество() > 0 Тогда
Если СтрСравнить(ИмяСправочникаХранилищаФайлов, "Файлы") <> 0 Тогда
МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя);
Иначе
ПеретаскиваниеФайлов(ВладелецФайла, ПараметрыПеретаскивания.Значение, ПараметрыПеретаскивания.Действие);
ПеретаскиваемыйФайл = ПараметрыПеретаскивания.Значение[0];
Если ВозможностьСоздаватьГруппыФайлов
И ТипЗнч(ПеретаскиваемыйФайл) = ТипСправочникаСФайлами
И ВладелецФайловСовпадает(Параметры.ВладелецФайла, ПеретаскиваемыйФайл) Тогда
Возврат;
КонецЕсли;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Массив") Тогда
Если ПараметрыПеретаскивания.Значение.Количество() > 0 Тогда
СтандартнаяОбработка = Ложь;
Для Каждого ПеретаскиваемыйФайл Из ПараметрыПеретаскивания.Значение Цикл
ТипПеретаскиваемого = ТипЗнч(ПараметрыПеретаскивания.Значение[0]);
Если ТипПеретаскиваемого = Тип("СправочникСсылка.Файлы") Тогда
РаботаСФайламиСлужебныйКлиент.ПеренестиФайлыВПриложенныеФайлы(
ПараметрыПеретаскивания.Значение,
ВладелецФайла);
Возврат;
Если ТипЗнч(ПеретаскиваемыйФайл) = Тип("Файл")
И ПеретаскиваемыйФайл.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ПеретаскиваемыйФайл.ПолноеИмя);
КонецЕсли;
Если ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = Тип("Файл") Тогда
Если СтрСравнить(ИмяСправочникаХранилищаФайлов, "Файлы") <> 0 Тогда
Для Каждого Значение Из ПараметрыПеретаскивания.Значение Цикл
Если ТипЗнч(Значение) = Тип("Файл") И Значение.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(Значение.ПолноеИмя);
КонецЕсли;
КонецЦикла;
Иначе
ПеретаскиваниеФайлов(ВладелецФайла, ПараметрыПеретаскивания.Значение, ПараметрыПеретаскивания.Действие);
Возврат;
КонецЕсли;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение[0]) = ТипСправочникаСФайлами Тогда
Для Каждого Значение Из ПараметрыПеретаскивания.Значение Цикл
МассивЭлементовСписка.Добавить(Значение);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ИначеЕсли ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("Файл")
И ПараметрыПеретаскивания.Значение.ЭтоФайл() Тогда
СтандартнаяОбработка = Ложь;
МассивИменФайлов.Добавить(ПараметрыПеретаскивания.Значение.ПолноеИмя);
КонецЕсли;
Если МассивИменФайлов.Количество() > 0 Тогда
РаботаСФайламиСлужебныйКлиент.ДобавитьФайлыПеретаскиванием(
Параметры.ВладелецФайла, УникальныйИдентификатор, МассивИменФайлов);
КонецЕсли;
Если МассивЭлементовСписка.Количество() > 0 И ВозможностьСоздаватьГруппыФайлов Тогда
СтандартнаяОбработка = Истина;
Параметры.ВладелецФайла, УникальныйИдентификатор, МассивИменФайлов);
КонецЕсли;
КонецПроцедуры
@@ -1097,7 +1079,6 @@
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -1349,45 +1330,6 @@
КонецПроцедуры
&НаКлиенте
Процедура ПеретаскиваниеФайлов(ВладелецФайла, ЗначениеПеретаскивания, Действие)
МассивИменФайлов = Новый Массив;
ТипЗначения = ТипЗнч(ЗначениеПеретаскивания);
Если ТипЗначения = Тип("Файл") Тогда
Если ЗначениеПеретаскивания.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ЗначениеПеретаскивания.ПолноеИмя);
КонецЕсли;
ИначеЕсли ТипЗнч(ЗначениеПеретаскивания) = Тип("Массив") Тогда
Для Каждого ФайлПринятый Из ЗначениеПеретаскивания Цикл
Если ФайлПринятый.ЭтоФайл() Тогда
МассивИменФайлов.Добавить(ФайлПринятый.ПолноеИмя);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ПараметрыДобавления = Новый Структура;
ПараметрыДобавления.Вставить("ОбработчикРезультата", Неопределено);
ПараметрыДобавления.Вставить("ПолноеИмяФайла", Неопределено);
ПараметрыДобавления.Вставить("ВладелецФайла", ВладелецФайла);
ПараметрыДобавления.Вставить("ФормаВладелец", ЭтотОбъект);
ПараметрыДобавления.Вставить("ИмяСоздаваемогоФайла", Неопределено);
ПараметрыДобавления.Вставить("НеОткрыватьКарточкуПослеСозданияИзФайла", Истина);
Для Каждого ФайлПринятый Из МассивИменФайлов Цикл
ПараметрыДобавления.ПолноеИмяФайла = ФайлПринятый;
РаботаСФайламиСлужебныйКлиент.ДобавитьИзФайловойСистемыСРасширением(ПараметрыДобавления);
КонецЦикла;
Элементы.Список.Обновить();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДоступностьФайловыхКоманд(Результат = Неопределено, ПараметрыВыполнения = Неопределено) Экспорт
@@ -1541,7 +1483,6 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьИменаКомандФормы()
@@ -1906,4 +1847,11 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВладелецФайловСовпадает(ВладелецФайлов, ПеретаскиваемыйФайл)
Возврат ВладелецФайлов = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПеретаскиваемыйФайл, "ВладелецФайла");
КонецФункции
#КонецОбласти
@@ -276,7 +276,7 @@
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="9ade0577-a8de-48f3-aca3-d62557d60b15">
<forms uuid="ef098c52-fcfa-4f0f-85b0-aba0d5aa46b2">
<name>СведенияОбАдресномКлассификаторе</name>
<synonym>
<key>ru</key>
@@ -449,74 +449,94 @@
&НаСервере
Функция ЕстьИзменениеРеквизитов(ТекущаяВерсия, ПредыдущаяВерсия, СписокРеквизитов)
Для Каждого Реквизит Из СписокРеквизитов Цикл
ИмяТабличнойЧасти = Неопределено;
ИмяРеквизита = Реквизит;
Если СтрНайти(ИмяРеквизита, ".") > 0 Тогда
ЧастиИмени = СтрРазделить(ИмяРеквизита, ".", Ложь);
Если ЧастиИмени.Количество() > 1 Тогда
ИмяТабличнойЧасти = ЧастиИмени[0];
ИмяРеквизита = ЧастиИмени[1];
КонецЕсли;
КонецЕсли;
// Проверка изменения реквизита табличной части.
Если ИмяТабличнойЧасти <> Неопределено Тогда
ТекущаяТабличнаяЧасть = ТекущаяВерсия.ТабличныеЧасти[ИмяТабличнойЧасти];
ПредыдущаяТабличнаяЧасть = ПредыдущаяВерсия.ТабличныеЧасти[ИмяТабличнойЧасти];
// Табличная часть отсутствует.
Если ТекущаяТабличнаяЧасть = Неопределено Или ПредыдущаяТабличнаяЧасть = Неопределено Тогда
Возврат Не ТекущаяТабличнаяЧасть = Неопределено И ПредыдущаяТабличнаяЧасть = Неопределено;
КонецЕсли;
// Если изменилось количество строк ТЧ.
Если ТекущаяТабличнаяЧасть.Количество() <> ПредыдущаяТабличнаяЧасть.Количество() Тогда
Возврат Истина;
КонецЕсли;
// реквизит отсутствует
ТекущийРеквизитСуществует = ТекущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
ПредыдущийРеквизитСуществует = ПредыдущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
Если ТекущийРеквизитСуществует <> ПредыдущийРеквизитСуществует Тогда
Возврат Истина;
КонецЕсли;
Если Не ТекущийРеквизитСуществует Тогда
Возврат Ложь;
КонецЕсли;
// сравнение по строкам
Для НомерСтроки = 0 По ТекущаяТабличнаяЧасть.Количество() - 1 Цикл
Если ТекущаяТабличнаяЧасть[НомерСтроки][ИмяРеквизита] <> ПредыдущаяТабличнаяЧасть[НомерСтроки][ИмяРеквизита] Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
// проверка реквизита шапки
ТекущийРеквизит = ТекущаяВерсия.Реквизиты.Найти(ИмяРеквизита, "НаименованиеРеквизита");
ТекущийРеквизитСуществует = ТекущийРеквизит <> Неопределено;
ЗначениеТекущегоРеквизита = Неопределено;
Если ТекущийРеквизитСуществует Тогда
ЗначениеТекущегоРеквизита = ТекущийРеквизит.ЗначениеРеквизита;
КонецЕсли;
ПредыдущийРеквизит = ПредыдущаяВерсия.Реквизиты.Найти(ИмяРеквизита, "НаименованиеРеквизита");
ПредыдущийРеквизитСуществует = ПредыдущийРеквизит <> Неопределено;
ЗначениеПредыдущегоРеквизита = Неопределено;
Если ПредыдущийРеквизитСуществует Тогда
ЗначениеПредыдущегоРеквизита = ПредыдущийРеквизит.ЗначениеРеквизита;
КонецЕсли;
Если ТекущийРеквизитСуществует <> ПредыдущийРеквизитСуществует
Или ЗначениеТекущегоРеквизита <> ЗначениеПредыдущегоРеквизита Тогда
Если ЕстьИзменениеРеквизита(ТекущаяВерсия, ПредыдущаяВерсия, Реквизит) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
&НаСервере
Функция ЕстьИзменениеРеквизита(ТекущаяВерсия, ПредыдущаяВерсия, Реквизит)
ИмяТабличнойЧасти = Неопределено;
ИмяРеквизита = Реквизит;
Если СтрНайти(ИмяРеквизита, ".") > 0 Тогда
ЧастиИмени = СтрРазделить(ИмяРеквизита, ".", Ложь);
Если ЧастиИмени.Количество() > 1 Тогда
ИмяТабличнойЧасти = ЧастиИмени[0];
ИмяРеквизита = ЧастиИмени[1];
КонецЕсли;
КонецЕсли;
// Проверка изменения реквизита табличной части.
Если ИмяТабличнойЧасти <> Неопределено Тогда
ТекущаяТабличнаяЧасть = ТекущаяВерсия.ТабличныеЧасти[ИмяТабличнойЧасти];
ПредыдущаяТабличнаяЧасть = ПредыдущаяВерсия.ТабличныеЧасти[ИмяТабличнойЧасти];
// Табличная часть отсутствует.
Если ТекущаяТабличнаяЧасть = Неопределено Или ПредыдущаяТабличнаяЧасть = Неопределено Тогда
Возврат Не ТекущаяТабличнаяЧасть = Неопределено И ПредыдущаяТабличнаяЧасть = Неопределено;
КонецЕсли;
// Если изменилось количество строк ТЧ.
Если ТекущаяТабличнаяЧасть.Количество() <> ПредыдущаяТабличнаяЧасть.Количество() Тогда
Возврат Истина;
КонецЕсли;
Если ИмяРеквизита = "*" Тогда
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущаяТабличнаяЧасть) <> ОбщегоНазначения.ЗначениеВСтрокуXML(ПредыдущаяТабличнаяЧасть);
КонецЕсли;
// реквизит отсутствует
ТекущийРеквизитСуществует = ТекущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
ПредыдущийРеквизитСуществует = ПредыдущаяТабличнаяЧасть.Колонки.Найти(ИмяРеквизита) <> Неопределено;
Если ТекущийРеквизитСуществует <> ПредыдущийРеквизитСуществует Тогда
Возврат Истина;
КонецЕсли;
Если Не ТекущийРеквизитСуществует Тогда
Возврат Ложь;
КонецЕсли;
// сравнение по строкам
Для НомерСтроки = 0 По ТекущаяТабличнаяЧасть.Количество() - 1 Цикл
Если ТекущаяТабличнаяЧасть[НомерСтроки][ИмяРеквизита] <> ПредыдущаяТабличнаяЧасть[НомерСтроки][ИмяРеквизита] Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
// проверка реквизита шапки
Если ИмяРеквизита = "*" Тогда
Возврат ОбщегоНазначения.ЗначениеВСтрокуXML(ТекущаяВерсия) <> ОбщегоНазначения.ЗначениеВСтрокуXML(ПредыдущаяВерсия);
КонецЕсли;
ТекущийРеквизит = ТекущаяВерсия.Реквизиты.Найти(ИмяРеквизита, "НаименованиеРеквизита");
ТекущийРеквизитСуществует = ТекущийРеквизит <> Неопределено;
ЗначениеТекущегоРеквизита = Неопределено;
Если ТекущийРеквизитСуществует Тогда
ЗначениеТекущегоРеквизита = ТекущийРеквизит.ЗначениеРеквизита;
КонецЕсли;
ПредыдущийРеквизит = ПредыдущаяВерсия.Реквизиты.Найти(ИмяРеквизита, "НаименованиеРеквизита");
ПредыдущийРеквизитСуществует = ПредыдущийРеквизит <> Неопределено;
ЗначениеПредыдущегоРеквизита = Неопределено;
Если ПредыдущийРеквизитСуществует Тогда
ЗначениеПредыдущегоРеквизита = ПредыдущийРеквизит.ЗначениеРеквизита;
КонецЕсли;
Если ТекущийРеквизитСуществует <> ПредыдущийРеквизитСуществует
Или ЗначениеТекущегоРеквизита <> ЗначениеПредыдущегоРеквизита Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
@@ -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 @@
КонецПроцедуры
Функция НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора)
Функция НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора, МетаданныеОбъекта)
НаборЗаписейКонфликта = СоздатьНаборЗаписей();
НаборЗаписей = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(МетаданныеОбъекта.ПолноеИмя()).СоздатьНаборЗаписей();
Если ПараметрыОтбора.Свойство("ТипПроблемы")
И ЗначениеЗаполнено(ПараметрыОтбора.ТипПроблемы) Тогда
НаборЗаписейКонфликта.Отбор.ТипПроблемы.Установить(ПараметрыОтбора.ТипПроблемы);
КонецЕсли;
Если ПараметрыОтбора.Свойство("УзелИнформационнойБазы")
И ЗначениеЗаполнено(ПараметрыОтбора.УзелИнформационнойБазы) Тогда
НаборЗаписейКонфликта.Отбор.УзелИнформационнойБазы.Установить(ПараметрыОтбора.УзелИнформационнойБазы);
КонецЕсли;
Для Каждого ЭлементОтбора Из НаборЗаписей.Отбор Цикл
ЗначениеОтбора = Неопределено;
Если ПараметрыОтбора.Свойство(ЭлементОтбора.Имя, ЗначениеОтбора) Тогда
ЭлементОтбора.Установить(ЗначениеОтбора);
КонецЕсли;
КонецЦикла;
Если ПараметрыОтбора.Свойство("ОбъектМетаданных")
И ЗначениеЗаполнено(ПараметрыОтбора.ОбъектМетаданных) Тогда
НаборЗаписейКонфликта.Отбор.ОбъектМетаданных.Установить(ПараметрыОтбора.ОбъектМетаданных);
КонецЕсли;
Если ПараметрыОтбора.Свойство("ПроблемныйОбъект")
И ЗначениеЗаполнено(ПараметрыОтбора.ПроблемныйОбъект) Тогда
НаборЗаписейКонфликта.Отбор.ПроблемныйОбъект.Установить(ПараметрыОтбора.ПроблемныйОбъект);
КонецЕсли;
Если ПараметрыОтбора.Свойство("КлючУникальности")
И ЗначениеЗаполнено(ПараметрыОтбора.КлючУникальности) Тогда
НаборЗаписейКонфликта.Отбор.КлючУникальности.Установить(ПараметрыОтбора.КлючУникальности);
КонецЕсли;
Возврат НаборЗаписейКонфликта;
Возврат НаборЗаписей;
КонецФункции
Процедура ОчиститьЗаписиРегистра(ПараметрыОтбора)
НаборЗаписейКонфликта = НаборЗаписейРегистраПоПараметрамОтбора(ПараметрыОтбора, Метаданные.РегистрыСведений.РезультатыОбменаДанными);
НаборЗаписейКонфликта.Записать();
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -1097,6 +1097,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>Catalog.СценарииОбменовДанными</name>
<right>
@@ -2022,93 +2109,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.МаксимальныйРазмерФайла</name>
<right>
@@ -14,13 +14,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -52,6 +45,13 @@
<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>
@@ -1602,6 +1602,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>Document.НазначениеОпросов</name>
<right>
@@ -2802,45 +2841,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>