3_1_6_118
This commit is contained in:
1 parent
6323e447c0
commit
3e5e0c470a
194 files changed
+6810
-1986
No files matched your search
@@ -39,6 +39,7 @@
|
||||
</li>
|
||||
<li>Задайте способ расчета курса валюты в соответствующем поле, например, <strong>(USD+EUR)/2</strong>.
|
||||
</li>
|
||||
<li>Для построения сложных формул можно использовать конструктор, который открывается с помощью кнопки <img src="StdPicture.InputFieldSelect"></img>.</li>
|
||||
<li>Допустимыми разделителями дробной части чисел в формуле являются знаки точки и запятой, т.е. правильно:
|
||||
<ul><li><strong>EUR*1.025</strong>
|
||||
</li>
|
||||
|
||||
@@ -161,7 +161,8 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
Или Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
|
||||
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -2630,7 +2630,7 @@
|
||||
НовыеПодсистемы = Новый Массив;
|
||||
ВсеНовыеПодсистемы = Новый Массив;
|
||||
НачалоИмени = "Подсистема.СтандартныеПодсистемы.";
|
||||
КлючВсеПодсистемы = "Подсистемы.";
|
||||
КлючВсеПодсистемы = "Подсистема.";
|
||||
|
||||
Для Каждого Объект Из ОбъектыДляЗаписи Цикл
|
||||
Если Не Объект.ЭтоНовый()
|
||||
@@ -2643,7 +2643,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ВРег(Лев(Объект.ПолноеИмя, СтрДлина(КлючВсеПодсистемы))) = ВРег(КлючВсеПодсистемы) Тогда
|
||||
НовыеПодсистемы.Добавить(Объект.ПолноеИмя);
|
||||
ВсеНовыеПодсистемы.Добавить(Объект.ПолноеИмя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>С помощью кнопки <b>Видимость в подменю "Печать"</b> можно ограничить доступность соответствующей команды печати в зависимости от значений реквизитов элементов.
|
||||
<div>Видимость команд печати нужна для того, чтобы печатная форма могла быть сформирована только для подходящего документа.
|
||||
<div>Для ввода условия нажмите <b>Добавить</b>.<br><div>Выберите <b>Поле</b> документа, <b>Вид сравнения</b>, напишите или выберите <b>Значение</b>, с которым будет сравниваться поле.</div></div></div></body></html>
|
||||
@@ -295,6 +295,11 @@
|
||||
<key>ru</key>
|
||||
<value>Условия видимости в подменю "Печать"</value>
|
||||
</synonym>
|
||||
<help>
|
||||
<pages>
|
||||
<lang>ru</lang>
|
||||
</pages>
|
||||
</help>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
|
||||
@@ -575,11 +575,16 @@
|
||||
|
||||
Если ЗначениеЗаполнено(Родитель) Тогда
|
||||
|
||||
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
Возврат Новый УникальныйИдентификатор(Родитель);
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Родитель) = Тип("Строка") Тогда
|
||||
Родитель = ПолучитьСсылку(Новый УникальныйИдентификатор(Родитель));
|
||||
ИначеЕсли ТипЗнч(Родитель) = Тип("УникальныйИдентификатор") Тогда
|
||||
Родитель = ПолучитьСсылку(Родитель);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Родитель;
|
||||
|
||||
@@ -0,0 +1,604 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form">
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВладелецДанных</name>
|
||||
<id>25</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Владелец данных</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ВладелецДанных</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Имя домена-владельца данных. По этому имени определяется возможность использования аутентификации по протоколу OAuth. Например, mycompany.zzz.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ВладелецДанныхРасширеннаяПодсказка</name>
|
||||
<id>27</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ВладелецДанныхКонтекстноеМеню</name>
|
||||
<id>26</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИмяИнтернетСервиса</name>
|
||||
<id>22</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ИмяИнтернетСервиса</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Доменное имя сервера, на котором хранятся данные. Например, outlook.com.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ИмяИнтернетСервисаРасширеннаяПодсказка</name>
|
||||
<id>24</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ИмяИнтернетСервисаКонтекстноеМеню</name>
|
||||
<id>23</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>АдресАвторизации</name>
|
||||
<id>4</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.АдресАвторизации</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес для интерактивной авторизации пользователя</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>АдресАвторизацииРасширеннаяПодсказка</name>
|
||||
<id>6</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>АдресАвторизацииКонтекстноеМеню</name>
|
||||
<id>5</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>АдресПеренаправления</name>
|
||||
<id>28</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.АдресПеренаправления</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес перенаправления пользователя после авторизации</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>АдресПеренаправленияРасширеннаяПодсказка</name>
|
||||
<id>30</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>АдресПеренаправленияКонтекстноеМеню</name>
|
||||
<id>29</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>АдресПолученияКлюча</name>
|
||||
<id>7</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.АдресПолученияКлюча</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес для получения и обновления токенов</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>АдресПолученияКлючаРасширеннаяПодсказка</name>
|
||||
<id>9</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>АдресПолученияКлючаКонтекстноеМеню</name>
|
||||
<id>8</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЗапрашиваемыеРазрешения</name>
|
||||
<id>34</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ЗапрашиваемыеРазрешения</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Идентификаторы разрешений, разделенные пробелом.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ЗапрашиваемыеРазрешенияРасширеннаяПодсказка</name>
|
||||
<id>36</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЗапрашиваемыеРазрешенияКонтекстноеМеню</name>
|
||||
<id>35</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИдентификаторПриложения</name>
|
||||
<id>16</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ИдентификаторПриложения</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор этого приложения на сервере с данными</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ИдентификаторПриложенияРасширеннаяПодсказка</name>
|
||||
<id>18</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ИдентификаторПриложенияКонтекстноеМеню</name>
|
||||
<id>17</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПарольПриложения</name>
|
||||
<id>19</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ПарольПриложения</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Секретный ключ доступа этого приложения к данным на сервере</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ПарольПриложенияРасширеннаяПодсказка</name>
|
||||
<id>21</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПарольПриложенияКонтекстноеМеню</name>
|
||||
<id>20</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<passwordMode>true</passwordMode>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ДополнительныеПараметрыАвторизации</name>
|
||||
<id>37</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ДополнительныеПараметрыАвторизации</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Дополнительные параметры, которые необходимо передать в запросе авторизации. Указываются в формате ИмяПараметра=Значение, разделитель - пробел.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ДополнительныеПараметрыАвторизацииРасширеннаяПодсказка</name>
|
||||
<id>39</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ДополнительныеПараметрыАвторизацииКонтекстноеМеню</name>
|
||||
<id>38</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ДополнительныеПараметрыПолученияТокена</name>
|
||||
<id>40</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ДополнительныеПараметрыПолученияТокена</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Дополнительные параметры, которые необходимо передать в запросе обмена кода авторизации на токен доступа. Указываются в формате ИмяПараметра=Значение, разделитель - пробел.</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ДополнительныеПараметрыПолученияТокенаРасширеннаяПодсказка</name>
|
||||
<id>42</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ДополнительныеПараметрыПолученияТокенаКонтекстноеМеню</name>
|
||||
<id>41</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИспользоватьКлючПроверкиПодлинностиPKCE</name>
|
||||
<id>31</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ИспользоватьКлючПроверкиПодлинностиPKCE</segments>
|
||||
</dataPath>
|
||||
<titleLocation>Right</titleLocation>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Установите этот флажок, если в запросах авторизации и обмена кода авторизации на токен доступа на сервере авторизации поддерживается защита с помощью ключа проверки подлинности "Proof Key for Code Exchange (PKCE)"</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ИспользоватьКлючПроверкиПодлинностиPKCEРасширеннаяПодсказка</name>
|
||||
<id>33</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ИспользоватьКлючПроверкиПодлинностиPKCEКонтекстноеМеню</name>
|
||||
<id>32</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>CheckBoxField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИспользоватьПарольПриложения</name>
|
||||
<id>43</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.ИспользоватьПарольПриложения</segments>
|
||||
</dataPath>
|
||||
<titleLocation>Right</titleLocation>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Установите этот флажок, если для получения токенов требуется передавать в запросах пароль приложения (client_secret)</value>
|
||||
</toolTip>
|
||||
<toolTipRepresentation>Button</toolTipRepresentation>
|
||||
<extendedTooltip>
|
||||
<name>ИспользоватьПарольПриложенияРасширеннаяПодсказка</name>
|
||||
<id>45</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ИспользоватьПарольПриложенияКонтекстноеМеню</name>
|
||||
<id>44</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>CheckBoxField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<windowOpeningMode>LockOwner</windowOpeningMode>
|
||||
<autoSaveDataInSettings>Use</autoSaveDataInSettings>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
<group>Vertical</group>
|
||||
<autoFillCheck>true</autoFillCheck>
|
||||
<allowFormCustomize>true</allowFormCustomize>
|
||||
<enabled>true</enabled>
|
||||
<showTitle>auto</showTitle>
|
||||
<showCloseButton>true</showCloseButton>
|
||||
<attributes>
|
||||
<name>Объект</name>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>CatalogObject.НастройкиАвторизацииИнтернетСервисов</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<main>true</main>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПарольПриложения</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пароль приложения</value>
|
||||
</title>
|
||||
<id>4</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<settingsSavedData xsi:type="form:DataPath">
|
||||
<segments>ПарольПриложения</segments>
|
||||
</settingsSavedData>
|
||||
</attributes>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:CatalogFormExtInfo"/>
|
||||
</form:Form>
|
||||
@@ -0,0 +1,119 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2022, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Ссылка - СправочникСсылка.НастройкиАвторизацииИнтернетСервисов
|
||||
// * ИмяИнтернетСервиса - Строка
|
||||
// * ВладелецДанных - Строка
|
||||
// * АдресАвторизации - Строка
|
||||
// * АдресПолученияКлюча - Строка
|
||||
// * АдресПеренаправления - Строка
|
||||
// * ЗапрашиваемыеРазрешения - Строка
|
||||
// * ИспользоватьКлючПроверкиПодлинностиPKCE - Булево
|
||||
// * ИдентификаторПриложения - Строка
|
||||
// * ИспользоватьПарольПриложения - Булево
|
||||
// * ПарольПриложения - Строка
|
||||
// * ДополнительныеПараметрыАвторизации - Строка
|
||||
// * ДополнительныеПараметрыПолученияТокена - Строка
|
||||
//
|
||||
Функция НастройкиАвторизацииИнтернетСервиса(ИмяИнтернетСервиса, ВладелецДанных) Экспорт
|
||||
|
||||
НастройкиАвторизации = Новый Структура;
|
||||
НастройкиАвторизации.Вставить("Ссылка");
|
||||
НастройкиАвторизации.Вставить("ИмяИнтернетСервиса");
|
||||
НастройкиАвторизации.Вставить("ВладелецДанных");
|
||||
НастройкиАвторизации.Вставить("АдресАвторизации");
|
||||
НастройкиАвторизации.Вставить("АдресПолученияКлюча");
|
||||
НастройкиАвторизации.Вставить("АдресПеренаправления");
|
||||
НастройкиАвторизации.Вставить("ЗапрашиваемыеРазрешения");
|
||||
НастройкиАвторизации.Вставить("ИспользоватьКлючПроверкиПодлинностиPKCE");
|
||||
НастройкиАвторизации.Вставить("ИдентификаторПриложения");
|
||||
НастройкиАвторизации.Вставить("ИспользоватьПарольПриложения");
|
||||
НастройкиАвторизации.Вставить("ПарольПриложения");
|
||||
НастройкиАвторизации.Вставить("ДополнительныеПараметрыАвторизации");
|
||||
НастройкиАвторизации.Вставить("ДополнительныеПараметрыПолученияТокена");
|
||||
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| НастройкиАвторизацииИнтернетСервисов.Ссылка,
|
||||
| НастройкиАвторизацииИнтернетСервисов.АдресАвторизации,
|
||||
| НастройкиАвторизацииИнтернетСервисов.АдресПолученияКлюча,
|
||||
| НастройкиАвторизацииИнтернетСервисов.АдресПеренаправления,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ИспользоватьКлючПроверкиПодлинностиPKCE,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ИдентификаторПриложения,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ЗапрашиваемыеРазрешения,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ИспользоватьПарольПриложения,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ДополнительныеПараметрыАвторизации,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ДополнительныеПараметрыПолученияТокена,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ИмяИнтернетСервиса,
|
||||
| НастройкиАвторизацииИнтернетСервисов.ВладелецДанных
|
||||
|ИЗ
|
||||
| Справочник.НастройкиАвторизацииИнтернетСервисов КАК НастройкиАвторизацииИнтернетСервисов
|
||||
|ГДЕ
|
||||
| НастройкиАвторизацииИнтернетСервисов.ВладелецДанных = &ВладелецДанных
|
||||
| И НастройкиАвторизацииИнтернетСервисов.ИмяИнтернетСервиса = &ИмяИнтернетСервиса
|
||||
| И НЕ НастройкиАвторизацииИнтернетСервисов.ПометкаУдаления";
|
||||
|
||||
Запрос = Новый Запрос(ТекстЗапроса);
|
||||
Запрос.УстановитьПараметр("ВладелецДанных", ВладелецДанных);
|
||||
Запрос.УстановитьПараметр("ИмяИнтернетСервиса", ИмяИнтернетСервиса);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
ЗаполнитьЗначенияСвойств(НастройкиАвторизации, Выборка);
|
||||
НастройкиАвторизации.ПарольПриложения = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Выборка.Ссылка, "ПарольПриложения");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НастройкиАвторизации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// НастройкиАвторизации - см. НастройкиАвторизацииИнтернетСервиса
|
||||
//
|
||||
Процедура ЗаписатьНастройкиАвторизации(НастройкиАвторизации) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.Ссылка) Тогда
|
||||
НастройкиАвторизацииОбъект = НастройкиАвторизации.Ссылка.ПолучитьОбъект();
|
||||
Иначе
|
||||
НастройкиАвторизацииОбъект = СоздатьЭлемент();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.Ссылка) Тогда
|
||||
Для Каждого Элемент Из НастройкиАвторизации Цикл
|
||||
Если Элемент.Ключ = "Ссылка" Или Элемент.Ключ = "ПарольПриложения" Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если НастройкиАвторизацииОбъект[Элемент.Ключ] <> Элемент.Значение Тогда
|
||||
НастройкиАвторизацииОбъект[Элемент.Ключ] = Элемент.Значение;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ЗаполнитьЗначенияСвойств(НастройкиАвторизацииОбъект, НастройкиАвторизации, , "Ссылка");
|
||||
КонецЕсли;
|
||||
|
||||
Если НастройкиАвторизацииОбъект.Модифицированность() Тогда
|
||||
НастройкиАвторизацииОбъект.Записать();
|
||||
КонецЕсли;
|
||||
Если НастройкиАвторизации.ИспользоватьПарольПриложения Тогда
|
||||
ПарольПриложения = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(НастройкиАвторизацииОбъект.Ссылка, "ПарольПриложения");
|
||||
Если ПарольПриложения <> НастройкиАвторизации.ПарольПриложения Тогда
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(НастройкиАвторизацииОбъект.Ссылка, НастройкиАвторизации.ПарольПриложения, "ПарольПриложения");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -0,0 +1,21 @@
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Copyright (c) 2022, ООО 1С-Софт
|
||||
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
|
||||
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
|
||||
// Текст лицензии доступен по ссылке:
|
||||
// https://creativecommons.org/licenses/by/4.0/legalcode
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
#Область ОбработчикиСобытий
|
||||
|
||||
Процедура ПередЗаписью(Отказ)
|
||||
Наименование = ВладелецДанных + " / " + ИмяИнтернетСервиса;
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Иначе
|
||||
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
|
||||
#КонецЕсли
|
||||
+309
@@ -0,0 +1,309 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Catalog xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ffd14055-0847-48da-8807-0ba07decf6a5">
|
||||
<producedTypes>
|
||||
<objectType typeId="10786051-eef0-4293-9fd5-9bca70fe4b6e" valueTypeId="cc9b5b7f-c034-4275-89a1-f02c7cd004a1"/>
|
||||
<refType typeId="f3b275ed-7599-4712-877a-e32d917ca3aa" valueTypeId="c719de67-cfd7-4f83-a854-8449b8353fe8"/>
|
||||
<selectionType typeId="dcfbeac1-6ba6-4ee1-b4ff-2f476f682117" valueTypeId="32841d34-e475-43c5-a681-b235e4216a26"/>
|
||||
<listType typeId="55d4f167-f67b-46e7-9b01-ee1d1cbe1fd0" valueTypeId="86132c10-16eb-4917-b829-030201004558"/>
|
||||
<managerType typeId="2318afd5-d8fa-4e7d-9be4-e59ce5e64e5d" valueTypeId="5ac18854-cca9-444f-baea-3227067fc31c"/>
|
||||
</producedTypes>
|
||||
<name>НастройкиАвторизацииИнтернетСервисов</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Настройки авторизации Интернет-сервисов</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<inputByString>Catalog.НастройкиАвторизацииИнтернетСервисов.StandardAttribute.Description</inputByString>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>PredefinedDataName</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Predefined</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Ref</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>DeletionMark</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>IsFolder</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Owner</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Parent</name>
|
||||
<fillFromFillingValue>true</fillFromFillingValue>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Description</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес сервера с данными</value>
|
||||
</synonym>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес сервера, предоставляющего доступ к данным по протоколу OAuth2</value>
|
||||
</toolTip>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<standardAttributes>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<name>Code</name>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
</standardAttributes>
|
||||
<createOnInput>Use</createOnInput>
|
||||
<dataLockControlMode>Managed</dataLockControlMode>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<descriptionLength>50</descriptionLength>
|
||||
<codeType>String</codeType>
|
||||
<codeAllowedLength>Variable</codeAllowedLength>
|
||||
<defaultPresentation>AsDescription</defaultPresentation>
|
||||
<editType>InDialog</editType>
|
||||
<choiceMode>BothWays</choiceMode>
|
||||
<defaultObjectForm>Catalog.НастройкиАвторизацииИнтернетСервисов.Form.ФормаЭлемента</defaultObjectForm>
|
||||
<attributes uuid="ee808b7e-8313-4838-8a5a-9b49e3ce7e3e">
|
||||
<name>ВладелецДанных</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Владелец данных</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>200</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="a8450a10-c18c-4b99-828b-870f38c32991">
|
||||
<name>АдресАвторизации</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес авторизации</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес для получения кода авторизации</value>
|
||||
</toolTip>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="ad5e61a9-2f12-4629-9d7b-7882cc885992">
|
||||
<name>АдресПолученияКлюча</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес получения ключа</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Адрес для получения и обновления ключей доступа</value>
|
||||
</toolTip>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="68a66e43-123c-4dc4-8eb7-3b728a6dbf40">
|
||||
<name>ИмяИнтернетСервиса</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Имя интернет сервиса</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>200</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="b016e858-7a3b-473a-a9b7-a6c718d0a028">
|
||||
<name>ИдентификаторПриложения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор приложения</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="7db81d96-e359-4157-b5cb-3b50622d6556">
|
||||
<name>АдресПеренаправления</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Адрес перенаправления</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="aa09ff66-3f4a-4746-9a99-697a2915b3fc">
|
||||
<name>ИспользоватьКлючПроверкиПодлинностиPKCE</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Использовать ключ проверки подлинности (PKCE)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="21305c37-31fb-46f3-85bc-8743c22faa02">
|
||||
<name>ЗапрашиваемыеРазрешения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Запрашиваемые разрешения</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="c5bace94-8fbc-4ad1-9567-a41332e8f00a">
|
||||
<name>ИспользоватьПарольПриложения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Использовать пароль приложения</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="9fc40f79-c538-4ea5-a939-67bdd540d805">
|
||||
<name>ДополнительныеПараметрыАвторизации</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Дополнительные параметры авторизации</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="70443b2a-04db-4573-a4ea-e35078b383d7">
|
||||
<name>ДополнительныеПараметрыПолученияТокена</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Дополнительные параметры получения токена</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<forms uuid="a4814357-6575-4a55-808f-4a4c94047110">
|
||||
<name>ФормаЭлемента</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Форма элемента</value>
|
||||
</synonym>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<usePurposes>MobileDevice</usePurposes>
|
||||
</forms>
|
||||
</mdclass:Catalog>
|
||||
@@ -906,7 +906,7 @@
|
||||
<textSize>Normal</textSize>
|
||||
<inputHint>
|
||||
<key>ru</key>
|
||||
<value>Введите имя пользователя</value>
|
||||
<value>Введите имя, адрес, телефон...</value>
|
||||
</inputHint>
|
||||
</extInfo>
|
||||
</items>
|
||||
@@ -2792,9 +2792,6 @@
|
||||
<segments>ВыбранныеПользователиИГруппы</segments>
|
||||
</dataPath>
|
||||
<titleLocation>Top</titleLocation>
|
||||
<excludedCommands>Add</excludedCommands>
|
||||
<excludedCommands>Change</excludedCommands>
|
||||
<excludedCommands>Copy</excludedCommands>
|
||||
<excludedCommands>EndEdit</excludedCommands>
|
||||
<excludedCommands>MoveDown</excludedCommands>
|
||||
<excludedCommands>MoveUp</excludedCommands>
|
||||
@@ -2811,6 +2808,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ВыбранныеПользователиИГруппы.Пользователь</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиИГруппыExtendedTooltip</name>
|
||||
<id>129</id>
|
||||
@@ -2827,8 +2825,7 @@
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<readOnly>true</readOnly>
|
||||
<editMode>Auto</editMode>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
@@ -2837,7 +2834,9 @@
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<choiceListButton>false</choiceListButton>
|
||||
<chooseType>true</chooseType>
|
||||
<choiceButton>false</choiceButton>
|
||||
<openButton>false</openButton>
|
||||
<quickChoice>true</quickChoice>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
@@ -2848,13 +2847,21 @@
|
||||
<id>80</id>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>OnEditEnd</event>
|
||||
<name>СписокВыбранныхПользователейИГруппПриОкончанииРедактирования</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>Selection</event>
|
||||
<name>СписокВыбранныхПользователейИГруппВыбор</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeAddRow</event>
|
||||
<name>СписокВыбранныхПользователейИГруппПередНачаломДобавления</name>
|
||||
<event>OnActivateRow</event>
|
||||
<name>СписокВыбранныхПользователейИГруппПриАктивизацииСтроки</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>OnStartEdit</event>
|
||||
<name>СписокВыбранныхПользователейИГруппПриНачалеРедактирования</name>
|
||||
</handlers>
|
||||
<searchStringAddition>
|
||||
<name>СписокВыбранныхПользователейИГруппСтрокаПоиска</name>
|
||||
@@ -3734,8 +3741,6 @@
|
||||
</title>
|
||||
<id>1</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.ВнешниеПользователи</types>
|
||||
<types>CatalogRef.ГруппыВнешнихПользователей</types>
|
||||
<types>CatalogRef.ГруппыПользователей</types>
|
||||
<types>CatalogRef.Пользователи</types>
|
||||
</valueType>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
ВыбиратьИерархически = Истина;
|
||||
Элементы.ГруппаКоманднаяПанельВыбора.Видимость = Ложь;
|
||||
|
||||
ЗаполнитьХранимыеПараметры();
|
||||
ХранимыеПараметры = ХранимыеПараметры();
|
||||
|
||||
Если Параметры.РежимВыбора Тогда
|
||||
СтандартныеПодсистемыСервер.УстановитьКлючНазначенияФормы(ЭтотОбъект, "ВыборПодбор");
|
||||
@@ -88,10 +88,7 @@
|
||||
НастроитьПараметрыСпискаПользователейДляКомандыУстановитьПароль();
|
||||
НастроитьПорядокГруппыВсеПользователи(ГруппыПользователей);
|
||||
|
||||
ХранимыеПараметры.Вставить("РасширенныйПодбор", Параметры.РасширенныйПодбор);
|
||||
Элементы.ВыбранныеПользователиИГруппы.Видимость = ХранимыеПараметры.РасширенныйПодбор;
|
||||
ХранимыеПараметры.Вставить(
|
||||
"ИспользоватьГруппы", ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей"));
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
Если НЕ Пользователи.ЭтоПолноправныйПользователь(, Не РазделениеВключено) Тогда
|
||||
@@ -131,7 +128,7 @@
|
||||
Элементы.ГруппаКоманднаяПанельВыбора.Видимость = Истина;
|
||||
Элементы.ПользователиСписок.ПоискПриВводе = ПоискВТаблицеПриВводе.НеИспользовать;
|
||||
Элементы.ГруппыПользователей.ПоискПриВводе = ПоискВТаблицеПриВводе.НеИспользовать;
|
||||
|
||||
ТекущийЭлемент = Элементы.СписокВыбранныхПользователейИГрупп;
|
||||
Элементы.ЗавершитьИЗакрыть.Заголовок = НСтр("ru='Завершить и закрыть'");
|
||||
КонецЕсли;
|
||||
|
||||
@@ -151,8 +148,6 @@
|
||||
"ВыбратьГруппуПользователей", "Видимость", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ХранимыеПараметры.Вставить("ГруппаВсеПользователи", Справочники.ГруппыПользователей.ВсеПользователи);
|
||||
ХранимыеПараметры.Вставить("ТекущаяСтрока", Параметры.ТекущаяСтрока);
|
||||
НастроитьФормуПоИспользованиюГруппПользователей();
|
||||
ХранимыеПараметры.Удалить("ТекущаяСтрока");
|
||||
|
||||
@@ -208,7 +203,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
#Если МобильныйКлиент Тогда
|
||||
Если ХранимыеПараметры.Свойство("ИспользоватьГруппы") И ХранимыеПараметры.ИспользоватьГруппы Тогда
|
||||
Если ХранимыеПараметры.ИспользоватьГруппы Тогда
|
||||
Элементы.ГруппаГруппы.Заголовок = Строка(Элементы.ГруппыПользователей.ТекущиеДанные.Ссылка);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
@@ -271,11 +266,11 @@
|
||||
&НаКлиенте
|
||||
Процедура СтрокаПоискаИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
|
||||
СтрокаПоискаТекст = Текст;
|
||||
ПодключитьОбработчикОжидания("СтрокаПоискаОчисткаЗавершение", 0.1, Истина);
|
||||
ПодключитьОбработчикОжидания("СтрокаПоискаЗавершение", 0.1, Истина);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СтрокаПоискаОчисткаЗавершение()
|
||||
Процедура СтрокаПоискаЗавершение()
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(СтрокаПоискаТекст) Тогда
|
||||
Элементы.СтраницыВыбораПользователей.ТекущаяСтраница = Элементы.СтраницаВыборПользователейИГрупп;
|
||||
@@ -310,11 +305,8 @@
|
||||
| ПользователиКонтактнаяИнформация.Представление ПОДОБНО &СтрокаПоиска";
|
||||
|
||||
Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоискаТекст+"%");
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
|
||||
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
|
||||
|
||||
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
|
||||
ОтборПоКонтактнойИнформации.Добавить(ВыборкаДетальныеЗаписи.Ссылка);
|
||||
КонецЦикла;
|
||||
@@ -631,8 +623,27 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокВыбранныхПользователейИГруппПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
|
||||
Отказ = Истина;
|
||||
Процедура СписокВыбранныхПользователейИГруппПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
|
||||
|
||||
Если НоваяСтрока И Не Копирование Тогда
|
||||
Элемент.ТекущиеДанные.Пользователь = ПредопределенноеЗначение("Справочник.Пользователи.ПустаяСсылка");
|
||||
Элемент.ТекущиеДанные.НомерКартинки = 1;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокВыбранныхПользователейИГруппПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
|
||||
|
||||
СписокВыбранныхПользователейИзменен = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СписокВыбранныхПользователейИГруппПриАктивизацииСтроки(Элемент)
|
||||
|
||||
ОбновитьКонтактнуюИнформациюПользователя(Элемент);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -863,12 +874,20 @@
|
||||
Процедура ОбновитьКонтактнуюИнформациюПользователя(ЭлементСписок)
|
||||
|
||||
ТекущиеДанные = ЭлементСписок.ТекущиеДанные;
|
||||
Если НЕ СтандартныеПодсистемыКлиент.ЭтоЭлементДинамическогоСписка(ЭлементСписок) Тогда
|
||||
Если ТекущиеДанные = Неопределено Тогда
|
||||
ЗаполнитьКонтактнуюИнформацию(ЭтотОбъект, Неопределено);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭлементСписок = Элементы.СписокВыбранныхПользователейИГрупп Тогда
|
||||
ТекущийПользователь = ТекущиеДанные.Пользователь;
|
||||
ИначеЕсли НЕ СтандартныеПодсистемыКлиент.ЭтоЭлементДинамическогоСписка(ЭлементСписок) Тогда
|
||||
ЗаполнитьКонтактнуюИнформацию(ЭтотОбъект, Неопределено);
|
||||
Возврат;
|
||||
Иначе
|
||||
ТекущийПользователь = ТекущиеДанные.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьОбработчикОжидания("ОбновитьКонтактнуюИнформациюПользователяЗавершение", 0.1, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -922,13 +941,30 @@
|
||||
Возврат КонтактнаяИнформация;
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ВыборГруппПользователей - Булево
|
||||
// * РасширенныйПодбор - Булево
|
||||
// * ИспользоватьГруппы - Произвольный
|
||||
// * ГруппаВсеПользователи - СправочникСсылка.ГруппыПользователей
|
||||
// * ТекущаяСтрока - СправочникСсылка, Неопределено
|
||||
// * ЗаголовокФормыПодбора - Строка
|
||||
// * ЗаголовокКнопкиЗавершенияПодбора - Строка
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьХранимыеПараметры()
|
||||
Функция ХранимыеПараметры()
|
||||
|
||||
ХранимыеПараметры = Новый Структура;
|
||||
ХранимыеПараметры.Вставить("ВыборГруппПользователей", Параметры.ВыборГруппПользователей);
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ВыборГруппПользователей", Параметры.ВыборГруппПользователей);
|
||||
Результат.Вставить("РасширенныйПодбор", Параметры.РасширенныйПодбор);
|
||||
Результат.Вставить("ИспользоватьГруппы", ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей"));
|
||||
Результат.Вставить("ГруппаВсеПользователи", Справочники.ГруппыПользователей.ВсеПользователи);
|
||||
Результат.Вставить("ТекущаяСтрока", Параметры.ТекущаяСтрока);
|
||||
Результат.Вставить("ЗаголовокФормыПодбора", "");
|
||||
Результат.Вставить("ЗаголовокКнопкиЗавершенияПодбора", "");
|
||||
Возврат Результат;
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Процедура ОформитьИСкрытьНедействительныхПользователей()
|
||||
@@ -1093,10 +1129,10 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
Пользователи.ЗаполнитьНомераКартинокПользователей(ВыбранныеПользователиИГруппы, "Пользователь", "НомерКартинки");
|
||||
ХранимыеПараметры.Вставить("ЗаголовокФормыПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокФормыПодбора);
|
||||
ХранимыеПараметры.ЗаголовокФормыПодбора = ПараметрыРасширеннойФормыПодбора.ЗаголовокФормыПодбора;
|
||||
|
||||
Если ПараметрыРасширеннойФормыПодбора.Свойство("ЗаголовокКнопкиЗавершенияПодбора") Тогда
|
||||
ХранимыеПараметры.Вставить("ЗаголовокКнопкиЗавершенияПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокКнопкиЗавершенияПодбора);
|
||||
ХранимыеПараметры.ЗаголовокКнопкиЗавершенияПодбора = ПараметрыРасширеннойФормыПодбора.ЗаголовокКнопкиЗавершенияПодбора;
|
||||
КонецЕсли;
|
||||
|
||||
// Установка параметров расширенной формы подбора.
|
||||
@@ -1182,10 +1218,10 @@
|
||||
Процедура НастроитьФормуПоИспользованиюГруппПользователей(ИзменилосьИспользованиеГрупп = Ложь)
|
||||
|
||||
Если ИзменилосьИспользованиеГрупп Тогда
|
||||
ХранимыеПараметры.Вставить("ИспользоватьГруппы", ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей"));
|
||||
ХранимыеПараметры.ИспользоватьГруппы = ПолучитьФункциональнуюОпцию("ИспользоватьГруппыПользователей");
|
||||
КонецЕсли;
|
||||
|
||||
ТекущиеХранимыеПараметры = ХранимыеПараметры; // Структура
|
||||
ТекущиеХранимыеПараметры = ХранимыеПараметры; // см. ХранимыеПараметры
|
||||
Если ТекущиеХранимыеПараметры.Свойство("ТекущаяСтрока") Тогда
|
||||
|
||||
Если ТипЗнч(ТекущиеХранимыеПараметры.ТекущаяСтрока) = Тип("СправочникСсылка.ГруппыПользователей") Тогда
|
||||
@@ -1195,7 +1231,7 @@
|
||||
Иначе
|
||||
Параметры.ТекущаяСтрока = Неопределено;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ИначеЕсли ТипЗнч(ТекущиеХранимыеПараметры.ТекущаяСтрока) = Тип("СправочникСсылка.Пользователи") Тогда
|
||||
ТекущийЭлемент = Элементы.ПользователиСписок;
|
||||
Элементы.ГруппыПользователей.ТекущаяСтрока = Справочники.ГруппыПользователей.ВсеПользователи;
|
||||
КонецЕсли;
|
||||
@@ -1267,7 +1303,7 @@
|
||||
Если ХранимыеПараметры.РасширенныйПодбор Тогда
|
||||
Заголовок = ХранимыеПараметры.ЗаголовокФормыПодбора;
|
||||
|
||||
Если ХранимыеПараметры.Свойство("ЗаголовокКнопкиЗавершенияПодбора") Тогда
|
||||
Если Не ПустаяСтрока(ХранимыеПараметры.ЗаголовокКнопкиЗавершенияПодбора) Тогда
|
||||
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы,
|
||||
"ЗавершитьИЗакрытьВыбор", "Заголовок", ХранимыеПараметры.ЗаголовокКнопкиЗавершенияПодбора);
|
||||
КонецЕсли;
|
||||
@@ -1311,7 +1347,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
#Если МобильныйКлиент Тогда
|
||||
Если ХранимыеПараметры.Свойство("РасширенныйПодбор") И Не ХранимыеПараметры.РасширенныйПодбор Тогда
|
||||
Если Не ХранимыеПараметры.РасширенныйПодбор Тогда
|
||||
Элементы.ГруппаГруппы.Заголовок = Строка(Элементы.ГруппыПользователей.ТекущиеДанные.Ссылка);
|
||||
ТекущийЭлемент = Элементы.ПользователиСписок;
|
||||
КонецЕсли;
|
||||
@@ -1369,7 +1405,7 @@
|
||||
ПоказатьПредупреждение(,СообщениеПользователю.Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
Оповестить("Запись_ГруппыВнешнихПользователей");
|
||||
Оповестить("Запись_ГруппыПользователей");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -196,7 +196,8 @@
|
||||
|
||||
ОбновитьВидимостьРеквизитаПоказыватьВСпискеВыбора();
|
||||
|
||||
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
Или Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
|
||||
Элементы.ГруппаИзменитьОграничение.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -313,21 +314,15 @@
|
||||
ОчиститьСообщения();
|
||||
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
|
||||
|
||||
Если ЗначениеЗаполнено(ИмяРеквизитаСПочтойДляВосстановленияПароля)
|
||||
И ПользовательИБАдресЭлектроннойПочты <> ЭтотОбъект[ИмяРеквизитаСПочтойДляВосстановленияПароля] Тогда
|
||||
|
||||
Если ПарольДляПодтвержденияИзмененияПочты = Неопределено Тогда
|
||||
|
||||
Отказ = Истина;
|
||||
|
||||
ДополнительныеПараметры = Новый Структура("ПараметрыЗаписи", ПараметрыЗаписи);
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеЗапросаПароляДляИзмененияПочты", ЭтотОбъект, ДополнительныеПараметры);
|
||||
ОткрытьФорму("Справочник.Пользователи.Форма.ВводПароля",, ЭтотОбъект,,,, Оповещение, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@
|
||||
ДополнительныеДанные.НеподписанныеДанные = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -739,6 +739,9 @@
|
||||
ПараметрыДействия.Вставить("НазначениеРолей",
|
||||
УправлениеДоступомСлужебныйКлиентСервер.НазначениеПрофиля(Объект));
|
||||
|
||||
ПараметрыДействия.Вставить("СтандартныеРолиРасширений",
|
||||
УправлениеДоступомСлужебныйПовтИсп.ОписаниеСтандартныхРолейРасширенийСеанса().РолиСеанса);
|
||||
|
||||
ПользователиСлужебный.ОбработатьИнтерфейсРолей(Действие, ПараметрыДействия);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -360,6 +360,53 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// РолиПрофиля - Массив из Строка - имена ролей.
|
||||
// - ТабличнаяЧасть:
|
||||
// * Роль - СправочникСсылка.ИдентификаторыОбъектовМетаданных
|
||||
// - СправочникСсылка.ИдентификаторыОбъектовРасширений
|
||||
// - ДанныеФормыКоллекция:
|
||||
// * Роль - Строка - имя роли.
|
||||
//
|
||||
Процедура ЗаполнитьСтандартныеРолиРасширений(РолиПрофиля, СтандартныеРолиРасширений = Неопределено) Экспорт
|
||||
|
||||
Если СтандартныеРолиРасширений = Неопределено Тогда
|
||||
СтандартныеРолиРасширений = УправлениеДоступомСлужебный.СтандартныеРолиРасширений();
|
||||
КонецЕсли;
|
||||
СтандартныеРолиПрофиля = СтандартныеРолиПрофиля(РолиПрофиля);
|
||||
|
||||
// АдминистраторСистемы.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.АдминистраторСистемы,
|
||||
СтандартныеРолиПрофиля.АдминистраторСистемы);
|
||||
|
||||
// ПолныеПрава.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.ПолныеПрава,
|
||||
СтандартныеРолиПрофиля.ПолныеПрава);
|
||||
|
||||
// БазовыеПраваБСП.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.БазовыеПрава,
|
||||
СтандартныеРолиПрофиля.БазовыеПраваБСП);
|
||||
|
||||
// БазовыеПраваВнешнихПользователейБСП.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.БазовыеПраваВнешнихПользователей,
|
||||
СтандартныеРолиПрофиля.БазовыеПраваВнешнихПользователейБСП);
|
||||
|
||||
// Общие права.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.ОбщиеПрава,
|
||||
СтандартныеРолиПрофиля.ПолныеПрава
|
||||
Или СтандартныеРолиПрофиля.БазовыеПраваБСП
|
||||
Или СтандартныеРолиПрофиля.БазовыеПраваВнешнихПользователейБСП);
|
||||
|
||||
// Очистка удаленных.
|
||||
ОчиститьУдаленныеСтандартныеРолиРасширений(РолиПрофиля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -1089,45 +1136,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьСтандартныеРолиРасширений(РолиПрофиля, СтандартныеРолиРасширений = Неопределено) Экспорт
|
||||
|
||||
Если СтандартныеРолиРасширений = Неопределено Тогда
|
||||
СтандартныеРолиРасширений = УправлениеДоступомСлужебный.СтандартныеРолиРасширений();
|
||||
КонецЕсли;
|
||||
СтандартныеРолиПрофиля = СтандартныеРолиПрофиля(РолиПрофиля);
|
||||
|
||||
// АдминистраторСистемы.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.АдминистраторСистемы,
|
||||
СтандартныеРолиПрофиля.АдминистраторСистемы);
|
||||
|
||||
// ПолныеПрава.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.ПолныеПрава,
|
||||
СтандартныеРолиПрофиля.ПолныеПрава);
|
||||
|
||||
// БазовыеПраваБСП.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.БазовыеПрава,
|
||||
СтандартныеРолиПрофиля.БазовыеПраваБСП);
|
||||
|
||||
// БазовыеПраваВнешнихПользователейБСП.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.БазовыеПраваВнешнихПользователей,
|
||||
СтандартныеРолиПрофиля.БазовыеПраваВнешнихПользователейБСП);
|
||||
|
||||
// Общие права.
|
||||
УстановитьРолиВПрофиле(РолиПрофиля,
|
||||
СтандартныеРолиРасширений.ОбщиеПрава,
|
||||
СтандартныеРолиПрофиля.ПолныеПрава
|
||||
Или СтандартныеРолиПрофиля.БазовыеПраваБСП
|
||||
Или СтандартныеРолиПрофиля.БазовыеПраваВнешнихПользователейБСП);
|
||||
|
||||
// Очистка удаленных.
|
||||
ОчиститьУдаленныеСтандартныеРолиРасширений(РолиПрофиля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для процедуры ОбновитьСтандартныеРолиРасширений.
|
||||
Функция СтандартныеРолиПрофиля(РолиПрофиля)
|
||||
|
||||
@@ -1157,6 +1165,11 @@
|
||||
Если РолиПрофиля.Найти(Роль.Имя) <> Неопределено Тогда
|
||||
Результат = Истина;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТипЗнч(РолиПрофиля) = Тип("ДанныеФормыКоллекция") Тогда
|
||||
Отбор = Новый Структура("Роль", Роль.Имя);
|
||||
Если РолиПрофиля.НайтиСтроки(Отбор).Количество() > 0 Тогда
|
||||
Результат = Истина;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ИдентификаторРоли = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Роль.ПолноеИмя());
|
||||
|
||||
@@ -1186,6 +1199,18 @@
|
||||
РолиПрофиля.Удалить(ИндексРоли);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
ИначеЕсли ТипЗнч(РолиПрофиля) = Тип("ДанныеФормыКоллекция") Тогда
|
||||
Для Каждого ИмяРоли Из ИменаРолей Цикл
|
||||
Отбор = Новый Структура("Роль", ИмяРоли);
|
||||
НайденныеСтроки = РолиПрофиля.НайтиСтроки(Отбор);
|
||||
Установлена = НайденныеСтроки.Количество() > 0;
|
||||
Если Установить И Не Установлена Тогда
|
||||
РолиПрофиля.Добавить().Роль = ИмяРоли;
|
||||
ИначеЕсли Не Установить И Установлена Тогда
|
||||
НайденнаяСтрока = НайденныеСтроки[0]; // ДанныеФормыЭлементКоллекции
|
||||
РолиПрофиля.Удалить(НайденнаяСтрока);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
СтрокаПолныхИменРолей = "Роль." + СтрСоединить(ИменаРолей, Символы.ПС + "Роль.");
|
||||
ПолныеИменаРолей = СтрРазделить(СтрокаПолныхИменРолей, Символы.ПС);
|
||||
@@ -1207,7 +1232,8 @@
|
||||
|
||||
Процедура ОчиститьУдаленныеСтандартныеРолиРасширений(РолиПрофиля)
|
||||
|
||||
Если ТипЗнч(РолиПрофиля) = Тип("Массив") Тогда
|
||||
Если ТипЗнч(РолиПрофиля) = Тип("Массив")
|
||||
Или ТипЗнч(РолиПрофиля) = Тип("ДанныеФормыКоллекция") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
+3
-2
@@ -171,7 +171,7 @@
|
||||
Элементы.ГруппаТребуетсяПомощь.Поведение = ПоведениеОбычнойГруппы.Свертываемая;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -498,7 +498,8 @@
|
||||
|
||||
ПроверитьВСервисеВместоПроверкиНаСервере = СтандартныеПроверки
|
||||
И ПроверятьЭлектронныеПодписиНаСервере
|
||||
И (ЕстьВстроенныйКриптопровайдер Или ЕстьУчетнаяЗаписьСервиса);
|
||||
И (ЕстьВстроенныйКриптопровайдер Или ЕстьУчетнаяЗаписьСервиса)
|
||||
И Не ОперацииНаСервере;
|
||||
|
||||
Если ПроверитьВСервисеВместоПроверкиНаСервере Тогда
|
||||
|
||||
|
||||
@@ -82,7 +82,6 @@
|
||||
<value>Строковое представление контакта взаимодействий</value>
|
||||
</toolTip>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
|
||||
@@ -108,10 +108,6 @@
|
||||
<key>ru</key>
|
||||
<value>Учетная запись DSS</value>
|
||||
</objectPresentation>
|
||||
<listPresentation>
|
||||
<key>ru</key>
|
||||
<value>Учетные записи DSS</value>
|
||||
</listPresentation>
|
||||
<levelCount>2</levelCount>
|
||||
<foldersOnTop>true</foldersOnTop>
|
||||
<owners>Catalog.ЭкземплярыСервераDSS</owners>
|
||||
|
||||
+707
@@ -298,6 +298,59 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Группа1</name>
|
||||
<id>298</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СпособАутентификацииПароль</name>
|
||||
<id>302</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СпособАутентификации</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>СпособАутентификацииПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>СпособАутентификацииПарольРасширеннаяПодсказка</name>
|
||||
<id>304</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СпособАутентификацииПарольКонтекстноеМеню</name>
|
||||
<id>303</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>RadioButtonField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
|
||||
<columnsCount>1</columnsCount>
|
||||
<choiceList>
|
||||
<presentation>
|
||||
<key>ru</key>
|
||||
<value>Ввести пароль:</value>
|
||||
</presentation>
|
||||
<value xsi:type="core:StringValue">
|
||||
<value>Пароль</value>
|
||||
</value>
|
||||
</choiceList>
|
||||
<orientation>Vertical</orientation>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Пароль</name>
|
||||
<id>47</id>
|
||||
@@ -313,6 +366,7 @@
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ПарольДляПолученияПисем</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<titleHeight>1</titleHeight>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
@@ -366,6 +420,85 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа1</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>Группа1РасширеннаяПодсказка</name>
|
||||
<id>299</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СпособАутентификацииПочтовыйСервис</name>
|
||||
<id>305</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>СпособАутентификации</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>СпособАутентификацииПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>СпособАутентификацииПочтовыйСервисРасширеннаяПодсказка</name>
|
||||
<id>307</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СпособАутентификацииПочтовыйСервисКонтекстноеМеню</name>
|
||||
<id>306</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>RadioButtonField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:RadioButtonsFieldExtInfo">
|
||||
<columnsCount>1</columnsCount>
|
||||
<choiceList>
|
||||
<presentation>
|
||||
<key>ru</key>
|
||||
<value>Авторизоваться с помощью почтового сервиса</value>
|
||||
</presentation>
|
||||
<value xsi:type="core:StringValue">
|
||||
<value>OAuth</value>
|
||||
</value>
|
||||
</choiceList>
|
||||
<orientation>Vertical</orientation>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Аутентификация</value>
|
||||
@@ -1432,6 +1565,379 @@
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>НастройкиАвторизацииПриложения</name>
|
||||
<id>310</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПояснениеПоРегистрацииПриложения</name>
|
||||
<id>347</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Для авторизации средствами почтового сервиса необходимо зарегистрировать это приложение в почтовом сервисе.
|
||||
</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПояснениеПоРегистрацииПриложенияРасширеннаяПодсказка</name>
|
||||
<id>349</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПояснениеПоРегистрацииПриложенияКонтекстноеМеню</name>
|
||||
<id>348</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<maxWidth>50</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПояснениеПоАдресуПеренаправления</name>
|
||||
<id>312</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>
|
||||
Из настроек регистрации приложения заполните следующие поля:
|
||||
</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПояснениеПоАдресуПеренаправленияРасширеннаяПодсказка</name>
|
||||
<id>314</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПояснениеПоАдресуПеренаправленияКонтекстноеМеню</name>
|
||||
<id>313</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<maxWidth>50</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>АдресПеренаправления</name>
|
||||
<id>321</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Адрес перенаправления (redirect_uri)</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>АдресПеренаправления</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>АдресПеренаправленияРасширеннаяПодсказка</name>
|
||||
<id>323</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>АдресПеренаправленияКонтекстноеМеню</name>
|
||||
<id>322</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПояснениеПоИдентификаторуПриложения</name>
|
||||
<id>330</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПояснениеПоИдентификаторуПриложенияРасширеннаяПодсказка</name>
|
||||
<id>332</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПояснениеПоИдентификаторуПриложенияКонтекстноеМеню</name>
|
||||
<id>331</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<maxWidth>50</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ИдентификаторПриложения</name>
|
||||
<id>315</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Идентификатор приложения (client_id)</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ИдентификаторПриложения</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ИдентификаторПриложенияРасширеннаяПодсказка</name>
|
||||
<id>317</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ИдентификаторПриложенияКонтекстноеМеню</name>
|
||||
<id>316</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПояснениеПоПаролюПриложения</name>
|
||||
<id>333</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПояснениеПоПаролюПриложенияРасширеннаяПодсказка</name>
|
||||
<id>335</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПояснениеПоПаролюПриложенияКонтекстноеМеню</name>
|
||||
<id>334</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<formatted>true</formatted>
|
||||
<type>Label</type>
|
||||
<maxWidth>50</maxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ПарольПриложения</name>
|
||||
<id>318</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пароль приложения (client_secret)</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ПарольПриложения</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ПарольПриложенияРасширеннаяПодсказка</name>
|
||||
<id>320</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПарольПриложенияКонтекстноеМеню</name>
|
||||
<id>319</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">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа2</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>НастройкиАвторизацииПриложенияРасширеннаяПодсказка</name>
|
||||
<id>311</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Page</type>
|
||||
<extInfo xsi:type="form:PageGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<showTitle>auto</showTitle>
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>Авторизация</name>
|
||||
<id>308</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ВебСтраница</name>
|
||||
<id>327</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>329</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ВебСтраницаКонтекстноеМеню</name>
|
||||
<id>328</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>HTMLDocumentField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:HtmlFieldExtInfo">
|
||||
<handlers>
|
||||
<event>DocumentComplete</event>
|
||||
<name>ВебСтраницаДокументСформирован</name>
|
||||
</handlers>
|
||||
<width>50</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Группа2</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>АвторизацияРасширеннаяПодсказка</name>
|
||||
<id>309</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Page</type>
|
||||
<extInfo xsi:type="form:PageGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<showTitle>auto</showTitle>
|
||||
<scrollOnCompress>false</scrollOnCompress>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ПроверкаНастроекУчетнойЗаписи</name>
|
||||
<id>34</id>
|
||||
@@ -2855,6 +3361,187 @@ vasyapupkin@example.com завершена.</value>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СпособАутентификации</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Способ аутентификации</value>
|
||||
</title>
|
||||
<id>44</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>45</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>46</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>47</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>48</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ИдентификаторЗапроса</name>
|
||||
<id>49</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПроверочныйКод</name>
|
||||
<id>50</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТокенДоступа</name>
|
||||
<id>51</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТокенОбновления</name>
|
||||
<id>52</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СрокДействияТокенаДоступа</name>
|
||||
<id>53</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>НастройкиАвторизации</name>
|
||||
<id>55</id>
|
||||
<valueType/>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ТолькоАвторизация</name>
|
||||
<id>57</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>Назад</name>
|
||||
<title>
|
||||
@@ -2931,6 +3618,20 @@ vasyapupkin@example.com завершена.</value>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ВойтиСПомощьюСервераАвторизации</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Войти с помощью сервера авторизации</value>
|
||||
</title>
|
||||
<id>5</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<representation>TextPicture</representation>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>КонтекстныйРежим</name>
|
||||
<valueType>
|
||||
@@ -2943,6 +3644,12 @@ vasyapupkin@example.com завершена.</value>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<parameters>
|
||||
<name>ТолькоАвторизация</name>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
</parameters>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+431
-6
@@ -46,13 +46,16 @@
|
||||
|
||||
КлючСохраненияПоложенияОкна = ?(КонтекстныйРежим, "КонтекстныйРежим", "НеконтекстныйРежим");
|
||||
|
||||
СпособАутентификации = "Пароль";
|
||||
|
||||
Если Параметры.Свойство("Ключ") Тогда
|
||||
УчетнаяЗаписьСсылка = Параметры.Ключ;
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты КАК АдресЭлектроннойПочты,
|
||||
| УчетныеЗаписиЭлектроннойПочты.ИмяПользователя КАК ИмяОтправителяПисем,
|
||||
| УчетныеЗаписиЭлектроннойПочты.Наименование КАК НазваниеУчетнойЗаписи
|
||||
| УчетныеЗаписиЭлектроннойПочты.Наименование КАК НазваниеУчетнойЗаписи,
|
||||
| УчетныеЗаписиЭлектроннойПочты.АвторизацияСПомощьюПочтовогоСервиса
|
||||
|ИЗ
|
||||
| Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
|
||||
|ГДЕ
|
||||
@@ -62,6 +65,24 @@
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Если Выборка.Следующий() Тогда
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Выборка);
|
||||
ТолькоАвторизация = Параметры.ТолькоАвторизация;
|
||||
Если Выборка.АвторизацияСПомощьюПочтовогоСервиса Или ТолькоАвторизация Тогда
|
||||
СпособАутентификации = "OAuth";
|
||||
Элементы.Пароль.Доступность = Ложь;
|
||||
Если ТолькоАвторизация Тогда
|
||||
НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере();
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда
|
||||
ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения;
|
||||
АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления;
|
||||
ПарольПриложения = НастройкиАвторизации.ПарольПриложения;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.Авторизация;
|
||||
Иначе
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
СсылкаНовойУчетнойЗаписи = Справочники.УчетныеЗаписиЭлектроннойПочты.ПолучитьСсылку();
|
||||
@@ -89,11 +110,20 @@
|
||||
|
||||
ТребуетсяАвторизацияПриОтправкеПисем = Истина;
|
||||
|
||||
АдресПеренаправления = "http://localhost/oauth2";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
НастроитьЭлементыТекущейСтраницы()
|
||||
|
||||
Если ТолькоАвторизация Тогда
|
||||
УстановитьТекстыПоясненийПоРегистрацииПриложения();
|
||||
АвторизоватьсяНаПочтовомСервере();
|
||||
КонецЕсли;
|
||||
|
||||
НастроитьЭлементыТекущейСтраницы();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -184,6 +214,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура СпособАутентификацииПриИзменении(Элемент)
|
||||
Элементы.Пароль.Доступность = СпособАутентификации = "Пароль";
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -210,6 +245,8 @@
|
||||
|
||||
Если ПредыдущаяСтраница <> Неопределено Тогда
|
||||
Элементы.Страницы.ТекущаяСтраница = ПредыдущаяСтраница;
|
||||
Иначе
|
||||
Элементы.Страницы.ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
|
||||
НастроитьЭлементыТекущейСтраницы()
|
||||
@@ -259,7 +296,31 @@
|
||||
Если Не Отказ И Не НастройкиЗаполнены Тогда
|
||||
ЗаполнитьНастройкиУчетнойЗаписи();
|
||||
КонецЕсли;
|
||||
Если СпособНастройки = "Автоматически" Или ПроверкаЗавершиласьСОшибками Тогда
|
||||
|
||||
Если СпособАутентификации = "OAuth" Тогда
|
||||
ПроверкаЗавершиласьСОшибками = Ложь;
|
||||
СледующаяСтраница = Элементы.НастройкиАвторизацииПриложения;
|
||||
НастройкиАвторизации = НастройкиАвторизацииНаПочтовомСервере();
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.АдресАвторизации) Тогда
|
||||
УстановитьТекстыПоясненийПоРегистрацииПриложения();
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда
|
||||
ИдентификаторПриложения = НастройкиАвторизации.ИдентификаторПриложения;
|
||||
АдресПеренаправления = НастройкиАвторизации.АдресПеренаправления;
|
||||
ПарольПриложения = НастройкиАвторизации.ПарольПриложения;
|
||||
АвторизоватьсяНаПочтовомСервере();
|
||||
СледующаяСтраница = Элементы.Авторизация;
|
||||
ИначеЕсли Не ЗначениеЗаполнено(НастройкиАвторизации.АдресАвторизации) Тогда
|
||||
СообщенияОбОшибках = НСтр("ru = 'Не найдены настройки авторизации почтового сервиса. Используйте авторизацию по паролю.'");
|
||||
ПроверкаЗавершиласьСОшибками = Истина;
|
||||
СпособАутентификации = "Пароль";
|
||||
СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ПроверкаЗавершиласьСОшибками Тогда
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
Иначе
|
||||
Если СпособНастройки = "Автоматически" Тогда
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
Иначе
|
||||
Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда
|
||||
@@ -268,6 +329,34 @@
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.НастройкиАвторизацииПриложения Тогда
|
||||
АвторизоватьсяНаПочтовомСервере();
|
||||
СледующаяСтраница = Элементы.Авторизация;
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.Авторизация Тогда
|
||||
Если ТолькоАвторизация Тогда
|
||||
ТребуетсяПодтверждениеЗакрытияФормы = Ложь;
|
||||
Если ПроверкаЗавершиласьСОшибками Тогда
|
||||
Закрыть(Ложь);
|
||||
Иначе
|
||||
ЗаписатьНастройкиАвторизации();
|
||||
Закрыть(Истина);
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Если ПроверкаЗавершиласьСОшибками Тогда
|
||||
СледующаяСтраница = Элементы.НастройкаУчетнойЗаписи;
|
||||
Иначе
|
||||
Если СпособНастройки = "Автоматически" Тогда
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
Иначе
|
||||
Если ИспользоватьДляОтправки Или ИспользоватьДляПолучения Тогда
|
||||
СледующаяСтраница = Элементы.НастройкаСервераИсходящейПочты;
|
||||
Иначе
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
|
||||
СледующаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
ИначеЕсли ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи Тогда
|
||||
@@ -311,6 +400,69 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьТекстыПоясненийПоРегистрацииПриложения()
|
||||
|
||||
ПояснениеПоРегистрацииПриложения = Элементы.ПояснениеПоРегистрацииПриложения.Заголовок;
|
||||
ПояснениеПоАдресуПеренаправления = Элементы.ПояснениеПоАдресуПеренаправления.Заголовок;
|
||||
ПояснениеПоИдентификаторуПриложения = Элементы.ПояснениеПоИдентификаторуПриложения.Заголовок;
|
||||
ПояснениеПоПаролюПриложения = Элементы.ПояснениеПоПаролюПриложения.Заголовок;
|
||||
|
||||
Если НРег(НастройкиАвторизации.ИмяИнтернетСервиса) = "yandex.ru" Тогда
|
||||
ПояснениеПоАдресуПеренаправления = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
"1. Перейдите в раздел <a href=""https://oauth.yandex.ru"">Доступ к вашим данным на Яндексе</a> и нажмите на кнопку <b>Зарегистрировать новое приложение</b>.
|
||||
|2. В поле <b>Название приложения</b> введите название приложения или организации, например, ""Бухгалтерия ООО Ромашка"".
|
||||
|3. В разделе <b>Платформы</b> установите флажок в строке <b>Веб-сервисы</b>, поле <b>Callback URI #1</b> скопируйте из поля ниже:");
|
||||
|
||||
ПояснениеПоИдентификаторуПриложения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
|
||||
"4. В списке <b>Доступы</b> найдите и разверните группу <b>Яндекс.Почта</b>, отметьте все флажки.
|
||||
|5. Нажмите на кнопку <b>Создать приложение</b> внизу страницы.
|
||||
|6. Скопируйте <b>ID</b> и <b>Пароль</b> в программу в соответствующие поля ниже:");
|
||||
|
||||
ПояснениеПоПаролюПриложения = "";
|
||||
|
||||
ПсевдонимАдресаПеренаправления = "Callback URI #1";
|
||||
ПсевдонимИдентификатораПриложения = "ID";
|
||||
ПсевдонимПароляПриложения = "Пароль";
|
||||
|
||||
ИначеЕсли НРег(НастройкиАвторизации.ИмяИнтернетСервиса) = "office365.com" Тогда
|
||||
|
||||
ПояснениеПоАдресуПеренаправления = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр(
|
||||
"ru = '1. Перейдите в раздел <a href=""%1"">Все службы - Регистрация приложений</a> и нажмите на кнопку Новая регистрация.
|
||||
|2. В поле <b>Имя</b> введите название приложения или организации, например ""Бухгалтерия ООО Ромашка"".
|
||||
|3. Переключатель <b>Поддерживаемые типы учетных записей</b> установите в положение <b>Учетные записи в любом каталоге организации (любой каталог Azure AD — мультитенантный)</b>.
|
||||
|4. Выберите <b>URI перенаправления</b>: платформа - <b>Общедоступный/собственный клиент (мобильный или классический)</b>, адрес перенаправления (URI) скопируйте из поля ниже:'"),
|
||||
"https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade");
|
||||
|
||||
ПояснениеПоИдентификаторуПриложения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр(
|
||||
"ru = '5. Нажмите на кноку <b>Зарегистрировать</b> (внизу страницы).
|
||||
|6. В резделе <b>Обзор - Основное</b> найдите <b>Идентификатор приложения</b> и скопируйте и вставьте сюда:'"));
|
||||
|
||||
ПояснениеПоПаролюПриложения = "";
|
||||
|
||||
ПсевдонимАдресаПеренаправления = НСтр("ru = 'URI (перенаправления)'");
|
||||
ПсевдонимИдентификатораПриложения = НСтр("ru = 'Идентификатор приложения'");
|
||||
ПсевдонимПароляПриложения = НСтр("ru = 'Значение (секрета)'");
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ПояснениеПоРегистрацииПриложения.Заголовок = ПояснениеПоРегистрацииПриложения;
|
||||
Элементы.ПояснениеПоАдресуПеренаправления.Заголовок = ПояснениеПоАдресуПеренаправления;
|
||||
Элементы.ПояснениеПоИдентификаторуПриложения.Заголовок = ПояснениеПоИдентификаторуПриложения;
|
||||
Элементы.ПояснениеПоПаролюПриложения.Заголовок = ПояснениеПоПаролюПриложения;
|
||||
|
||||
Элементы.АдресПеренаправления.Заголовок = ПсевдонимАдресаПеренаправления;
|
||||
Элементы.ИдентификаторПриложения.Заголовок = ПсевдонимИдентификатораПриложения;
|
||||
Элементы.ПарольПриложения.Заголовок = ПсевдонимПароляПриложения;
|
||||
|
||||
Элементы.ПояснениеПоПаролюПриложения.Видимость = НастройкиАвторизации.ИспользоватьПарольПриложения;
|
||||
Элементы.ПарольПриложения.Видимость = НастройкиАвторизации.ИспользоватьПарольПриложения;
|
||||
|
||||
Элементы.ПояснениеПоАдресуПеренаправления.Видимость = ЗначениеЗаполнено(ПояснениеПоАдресуПеренаправления);
|
||||
Элементы.ПояснениеПоИдентификаторуПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоИдентификаторуПриложения);
|
||||
Элементы.ПояснениеПоПаролюПриложения.Видимость = ЗначениеЗаполнено(ПояснениеПоПаролюПриложения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьПроверкуНастроек()
|
||||
|
||||
@@ -391,7 +543,7 @@
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Адрес электронной почты введен неверно'"), , "АдресЭлектроннойПочты", , Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ПарольДляПолученияПисем) Тогда
|
||||
Если СпособАутентификации = "Пароль" И ПустаяСтрока(ПарольДляПолученияПисем) Тогда
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Введите пароль'"), , "ПарольДляПолученияПисем", , Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -429,12 +581,14 @@
|
||||
Элементы.КнопкаДалее.Заголовок = ЗаголовокКнопкиДалее;
|
||||
Элементы.КнопкаДалее.КнопкаПоУмолчанию =ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
Элементы.КнопкаДалее.Доступность = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И ПроверкаПропущена);
|
||||
Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную");
|
||||
Элементы.КнопкаДалее.Видимость = Не (ТекущаяСтраница = Элементы.ПроверкаНастроекУчетнойЗаписи И СпособНастройки = "Вручную")
|
||||
И Не ТекущаяСтраница = Элементы.Авторизация;
|
||||
|
||||
// КнопкаНазад
|
||||
Элементы.КнопкаНазад.Видимость = ТекущаяСтраница <> Элементы.НастройкаУчетнойЗаписи
|
||||
И ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена
|
||||
И ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи;
|
||||
И ТекущаяСтраница <> Элементы.ПроверкаНастроекУчетнойЗаписи
|
||||
И Не ТолькоАвторизация;
|
||||
|
||||
// КнопкаОтмена
|
||||
Элементы.КнопкаОтмена.Видимость = ТекущаяСтраница <> Элементы.УчетнаяЗаписьУспешноНастроена;
|
||||
@@ -452,6 +606,7 @@
|
||||
|
||||
Если ТекущаяСтраница = Элементы.НастройкаУчетнойЗаписи Тогда
|
||||
Элементы.НеУдалосьПодключитьсяКартинкаИНадпись.Видимость = ПроверкаЗавершиласьСОшибками;
|
||||
Элементы.Пароль.Доступность = СпособАутентификации = "Пароль";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТекущаяСтраница = Элементы.НастройкаСервераИсходящейПочты Тогда
|
||||
@@ -617,14 +772,27 @@
|
||||
УчетнаяЗапись.ВладелецУчетнойЗаписи = Справочники.Пользователи.ПустаяСсылка();
|
||||
КонецЕсли;
|
||||
УчетнаяЗапись.ДополнительныеСвойства.Вставить("НеПроверятьИзменениеНастроек");
|
||||
Если СпособАутентификации = "OAuth" Тогда
|
||||
УчетнаяЗапись.АвторизацияСПомощьюПочтовогоСервиса = Истина;
|
||||
УчетнаяЗапись.ИмяПочтовогоСервиса = НастройкиАвторизации.ИмяИнтернетСервиса;
|
||||
КонецЕсли;
|
||||
|
||||
УчетнаяЗапись.Записать();
|
||||
УчетнаяЗаписьСсылка = УчетнаяЗапись.Ссылка;
|
||||
ТребуетсяПодтверждениеЗакрытияФормы = Ложь;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если СпособАутентификации = "OAuth" Тогда
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ТокенДоступа, "ТокенДоступа");
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, СрокДействияТокенаДоступа, "СрокДействияТокенаДоступа");
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ТокенОбновления, "ТокенОбновления");
|
||||
ЗаписатьНастройкиАвторизации();
|
||||
Иначе
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ПарольДляПолученияПисем);
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗаписьСсылка, ПарольДляОтправкиПисем, "ПарольSMTP");
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
@@ -637,6 +805,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаписатьНастройкиАвторизации()
|
||||
НастройкиАвторизации.ПарольПриложения = ПарольПриложения;
|
||||
НастройкиАвторизации.ИдентификаторПриложения = ИдентификаторПриложения;
|
||||
НастройкиАвторизации.АдресПеренаправления = АдресПеренаправления;
|
||||
Справочники.НастройкиАвторизацииИнтернетСервисов.ЗаписатьНастройкиАвторизации(НастройкиАвторизации);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ИнтернетПочтовыйПрофиль(ДляПолучения = Ложь)
|
||||
|
||||
@@ -668,6 +844,11 @@
|
||||
|
||||
Профиль.Таймаут = ДлительностьОжиданияСервера;
|
||||
|
||||
Если ЗначениеЗаполнено(ТокенДоступа) Тогда
|
||||
Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Использовать;
|
||||
Профиль.ТокенДоступа = ТокенДоступа;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Профиль;
|
||||
|
||||
КонецФункции
|
||||
@@ -765,4 +946,248 @@
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВыполнитьПереходПоАдресу(Знач АдресПерехода)
|
||||
|
||||
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПерехода);
|
||||
Если Не ЗначениеЗаполнено(СтруктураАдреса.Схема) Тогда
|
||||
АдресПерехода = "http://" + АдресПерехода;
|
||||
КонецЕсли;
|
||||
|
||||
ВебСтраница =
|
||||
"<!DOCTYPE html>
|
||||
|<html>
|
||||
| <body>
|
||||
| <script language = 'javascript'>
|
||||
| document.location.href='" + АдресПерехода + "';
|
||||
| </script>
|
||||
| <p>Загрузка...</p>
|
||||
| </body>
|
||||
|</html>";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура АвторизоватьсяНаПочтовомСервере()
|
||||
|
||||
ВыполнитьПереходПоАдресу(СтрокаЗапросаАвторизации());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция СтрокаЗапросаАвторизации()
|
||||
|
||||
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(НастройкиАвторизации.АдресАвторизации);
|
||||
АдресСервера = СтруктураURI.Хост;
|
||||
АдресРесурса = "/" + СтруктураURI.ПутьНаСервере;
|
||||
|
||||
ИдентификаторЗапроса = Строка(Новый УникальныйИдентификатор());
|
||||
ПроверочныйКод = РаботаСПочтовымиСообщениямиСлужебный.СгенерироватьПроверочныйКод();
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("client_id", ИдентификаторПриложения);
|
||||
ПараметрыЗапроса.Вставить("response_type", "code");
|
||||
ПараметрыЗапроса.Вставить("redirect_uri", АдресПеренаправления);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации["ЗапрашиваемыеРазрешения"]) Тогда
|
||||
ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("state", ИдентификаторЗапроса);
|
||||
ПараметрыЗапроса.Вставить("login_hint", АдресЭлектроннойПочты);
|
||||
|
||||
Если НастройкиАвторизации.ИспользоватьКлючПроверкиПодлинностиPKCE Тогда
|
||||
ПараметрыЗапроса.Вставить("code_challenge", РаботаСПочтовымиСообщениямиСлужебный.КодироватьСтрокуМетодомS256(ПроверочныйКод));
|
||||
ПараметрыЗапроса.Вставить("code_challenge_method", "S256");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации["ДополнительныеПараметрыАвторизации"]) Тогда
|
||||
Для Каждого Элемент Из СтрРазделить(НастройкиАвторизации["ДополнительныеПараметрыАвторизации"], " ", Ложь) Цикл
|
||||
ОписаниеПараметра = СтрРазделить(Элемент, "=", Истина);
|
||||
ИмяПараметра = ОписаниеПараметра[0];
|
||||
ЗначениеПараметра = "";
|
||||
Если ОписаниеПараметра.Количество() = 2 Тогда
|
||||
ЗначениеПараметра = ОписаниеПараметра[1];
|
||||
КонецЕсли;
|
||||
ПараметрыЗапроса.Вставить(ИмяПараметра, ЗначениеПараметра);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
HTTPЗапрос = РаботаСПочтовымиСообщениямиСлужебный.ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, Ложь);
|
||||
|
||||
СтрокаЗапроса = "https://" + АдресСервера + HTTPЗапрос.АдресРесурса;
|
||||
Возврат СтрокаЗапроса;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВебСтраницаДокументСформирован(Элемент)
|
||||
Если СтрНачинаетсяС(НРег(Элемент.Документ.URL), НРег(АдресПеренаправления)) Тогда
|
||||
ПриПолученииОтветаПочтовогоСервера(Элемент.Документ.URL, НастройкиАвторизации.АдресПолученияКлюча);
|
||||
ПерейтиНаСледующуюСтраницу();
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПриПолученииОтветаПочтовогоСервера(СтрокаURI, АдресПолученияКлюча)
|
||||
|
||||
Ответ = ПараметрыИзСтрокиURI(СтрокаURI);
|
||||
КодАвторизации = Ответ["code"];
|
||||
КодОшибки = Ответ["error"];
|
||||
ТекстОшибки = Ответ["error_description"];
|
||||
|
||||
Если ЗначениеЗаполнено(ТекстОшибки) Тогда
|
||||
ТекстОшибки = РаскодироватьСтроку(ТекстОшибки, СпособКодированияСтроки.КодировкаURL);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИдентификаторЗапроса <> Ответ["state"] Тогда
|
||||
СообщенияОбОшибках = НСтр("ru = 'Не удалось авторизоваться на сервере %1. Неверный идентификатор ответа.'");
|
||||
ПроверкаЗавершиласьСОшибками = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(КодОшибки) Тогда
|
||||
СообщенияОбОшибках = ОписаниеОшибкиАвторизацииПочтовогоСервера(КодОшибки, ТекстОшибки);
|
||||
ПроверкаЗавершиласьСОшибками = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПолучитьКлючиДоступаКПочтовомуСерверу(КодАвторизации, АдресПолученияКлюча) Тогда
|
||||
ПроверкаЗавершиласьСОшибками = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ПолучитьКлючиДоступаКПочтовомуСерверу(КодАвторизации, АдресПолученияКлюча)
|
||||
|
||||
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресПолученияКлюча);
|
||||
АдресСервера = СтруктураURI.Хост;
|
||||
АдресРесурса = "/" + СтруктураURI.ПутьНаСервере;
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("client_id", ИдентификаторПриложения);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации["ЗапрашиваемыеРазрешения"]) Тогда
|
||||
ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("code", КодАвторизации);
|
||||
ПараметрыЗапроса.Вставить("redirect_uri", АдресПеренаправления);
|
||||
ПараметрыЗапроса.Вставить("grant_type", "authorization_code");
|
||||
|
||||
Если НастройкиАвторизации.ИспользоватьКлючПроверкиПодлинностиPKCE Тогда
|
||||
ПараметрыЗапроса.Вставить("code_verifier", ПроверочныйКод);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПарольПриложения) Тогда
|
||||
ПараметрыЗапроса.Вставить("client_secret", ПарольПриложения);
|
||||
КонецЕсли;
|
||||
|
||||
ВремяЗапроса = ТекущаяДатаСеанса();
|
||||
|
||||
РезультатЗапроса = РаботаСПочтовымиСообщениямиСлужебный.ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса);
|
||||
|
||||
Попытка
|
||||
ПараметрыОтвета = РаботаСПочтовымиСообщениямиСлужебный.JSONВЗначение(РезультатЗапроса.ОтветСервера);
|
||||
Исключение
|
||||
ПараметрыОтвета = Новый Соответствие;
|
||||
КонецПопытки;
|
||||
|
||||
ТокенДоступа = ПараметрыОтвета["access_token"];
|
||||
СрокДействияТокенаДоступа = ПараметрыОтвета["expires_in"];
|
||||
ТокенОбновления = ПараметрыОтвета["refresh_token"];
|
||||
КодОшибки = ПараметрыОтвета["error"];
|
||||
ТекстОшибки = ПараметрыОтвета["error_description"];
|
||||
|
||||
Если ЗначениеЗаполнено(КодОшибки) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить ключи доступа к учетной записи почты %1 по причине:
|
||||
|%2'"), АдресЭлектроннойПочты, ТекстОшибки);
|
||||
|
||||
ТехническиеПодробности = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ответ сервера:
|
||||
|%1'"), РезультатЗапроса.ОтветСервера);
|
||||
|
||||
ЗаписьЖурналаРегистрации(РаботаСПочтовымиСообщениямиСлужебный.ИмяСобытияАвторизацияПоПротоколуOAuth(),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки + Символы.ПС + ТехническиеПодробности);
|
||||
СообщенияОбОшибках = ТекстОшибки;
|
||||
Возврат Ложь;
|
||||
ИначеЕсли Не РезультатЗапроса.ЗапросВыполнен Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить ключи доступа к учетной записи почты %1 по причине:
|
||||
|Запрос не выполнен.'"), АдресЭлектроннойПочты);
|
||||
|
||||
ТехническиеПодробности = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ответ сервера:
|
||||
|%1'"), РезультатЗапроса.ОтветСервера);
|
||||
|
||||
ЗаписьЖурналаРегистрации(РаботаСПочтовымиСообщениямиСлужебный.ИмяСобытияАвторизацияПоПротоколуOAuth(),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки + Символы.ПС + ТехническиеПодробности);
|
||||
СообщенияОбОшибках = ТекстОшибки;
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СрокДействияТокенаДоступа) Тогда
|
||||
СрокДействияТокенаДоступа = ВремяЗапроса + СрокДействияТокенаДоступа;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ПараметрыИзСтрокиURI(СтрокаURI)
|
||||
|
||||
ЗначенияПараметров = Новый Соответствие;
|
||||
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(СтрокаURI);
|
||||
Для Каждого ЧастьСтроки Из СтрРазделить(СтруктураURI.ПутьНаСервере, "?&") Цикл
|
||||
ПараметрИЗначение = СтрРазделить(ЧастьСтроки, "=", Истина);
|
||||
ИмяПараметра = ПараметрИЗначение[0];
|
||||
Если ПараметрИЗначение.Количество() > 1 Тогда
|
||||
ЗначениеПараметра = ПараметрИЗначение[1];
|
||||
ЗначенияПараметров.Вставить(ИмяПараметра, ЗначениеПараметра);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЗначенияПараметров;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ОписаниеОшибкиАвторизацииПочтовогоСервера(Знач КодОшибки, Знач ТекстОшибки)
|
||||
|
||||
Результат = Строка(ТекстОшибки) + Символы.ПС + КодОшибки;
|
||||
Результат = СокрЛП(Результат);
|
||||
|
||||
Результат = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|
||||
"ru = 'Не удалось авторизоваться на почтовом сервере:
|
||||
|%1'"), Результат);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// см. Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты
|
||||
//
|
||||
&НаСервере
|
||||
Функция НастройкиПодключенияПоАдресуЭлектроннойПочты()
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Возврат Справочники.УчетныеЗаписиЭлектроннойПочты.НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, ПарольДляПолученияПисем);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса
|
||||
//
|
||||
&НаСервере
|
||||
Функция НастройкиАвторизацииНаПочтовомСервере()
|
||||
|
||||
Возврат НастройкиПодключенияПоАдресуЭлектроннойПочты().НастройкиАвторизации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -566,6 +566,73 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>АвторизацияСПомощьюПочтовогоСервиса</name>
|
||||
<id>274</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.АвторизацияСПомощьюПочтовогоСервиса</segments>
|
||||
</dataPath>
|
||||
<titleLocation>Right</titleLocation>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>АвторизацияСПомощьюПочтовогоСервисаПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>АвторизацияСПомощьюПочтовогоСервисаРасширеннаяПодсказка</name>
|
||||
<id>276</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>АвторизацияСПомощьюПочтовогоСервисаКонтекстноеМеню</name>
|
||||
<id>275</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>CheckBoxField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Логин пароль</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ЛогинПарольРасширеннаяПодсказка</name>
|
||||
<id>264</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Пароль</name>
|
||||
<id>105</id>
|
||||
@@ -625,35 +692,6 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Логин пароль</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ЛогинПарольРасширеннаяПодсказка</name>
|
||||
<id>264</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ОставлятьПисьмаНаСервере</name>
|
||||
<id>185</id>
|
||||
|
||||
@@ -40,6 +40,10 @@
|
||||
ЦветПодсветки = ЦветаСтиля.ПоясняющийОшибкуТекст;
|
||||
ИдентификаторИсправления = Параметры.ИдентификаторИсправления;
|
||||
|
||||
Если Объект.АвторизацияСПомощьюПочтовогоСервиса Тогда
|
||||
Элементы.Пароль.Доступность = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -318,6 +322,17 @@
|
||||
Элементы.ФормаПроверитьНастройки.Доступность = Объект.ИспользоватьДляОтправки Или Объект.ИспользоватьДляПолучения;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура АвторизацияСПомощьюПочтовогоСервисаПриИзменении(Элемент)
|
||||
|
||||
Если Объект.АвторизацияСПомощьюПочтовогоСервиса Тогда
|
||||
ОткрытьФормуПомощникаНастроек(Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.Пароль.Доступность = Объект.АвторизацияСПомощьюПочтовогоСервиса;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -366,12 +381,7 @@
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьПомощникНастройки(Команда)
|
||||
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройки", ЭтотОбъект);
|
||||
ПараметрыОткрытия = Новый Структура;
|
||||
ПараметрыОткрытия.Вставить("Ключ", Объект.Ссылка);
|
||||
ПараметрыОткрытия.Вставить("Перенастройка", Истина);
|
||||
ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПомощникНастройкиУчетнойЗаписи",
|
||||
ПараметрыОткрытия, , , , , ОписаниеОповещения);
|
||||
ОткрытьФормуПомощникаНастроек();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -575,7 +585,14 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриЗавершенииНастройки(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ПриЗавершенииНастройки(Результат, ТолькоАвторизация) Экспорт
|
||||
|
||||
Если ТолькоАвторизация Тогда
|
||||
Если Результат <> Истина Тогда
|
||||
Объект.АвторизацияСПомощьюПочтовогоСервиса = Ложь;
|
||||
КонецЕсли;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Прочитать();
|
||||
|
||||
@@ -685,4 +702,20 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОткрытьФормуПомощникаНастроек(ТолькоАвторизация = Ложь)
|
||||
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройки", ЭтотОбъект, ТолькоАвторизация);
|
||||
ПараметрыОткрытия = Новый Структура;
|
||||
ПараметрыОткрытия.Вставить("Ключ", Объект.Ссылка);
|
||||
Если ТолькоАвторизация Тогда
|
||||
ПараметрыОткрытия.Вставить("ТолькоАвторизация", Истина);
|
||||
Иначе
|
||||
ПараметрыОткрытия.Вставить("Перенастройка", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ОткрытьФорму("Справочник.УчетныеЗаписиЭлектроннойПочты.Форма.ПомощникНастройкиУчетнойЗаписи",
|
||||
ПараметрыОткрытия, , , , , ОписаниеОповещения);
|
||||
|
||||
КонецПроцедуры
|
||||
#КонецОбласти
|
||||
@@ -392,24 +392,34 @@
|
||||
|
||||
Функция ОпределитьНастройкиУчетнойЗаписи(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения) Экспорт
|
||||
|
||||
НастройкиПочтовыхСерверов = Неопределено;
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НайденныеНастройки = НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, Пароль);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
|
||||
ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере("https://downloads.v8.1c.ru/content/common/settings/mailservers.json");
|
||||
Если ЗагруженныйФайл.Статус Тогда
|
||||
ЧтениеJSON = Новый ЧтениеJSON();
|
||||
ЧтениеJSON.ОткрытьФайл(ЗагруженныйФайл.Путь);
|
||||
НастройкиПочтовыхСерверов = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||
ЧтениеJSON.Закрыть();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, НайденныеНастройки.Профиль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Профиль - ИнтернетПочтовыйПрофиль
|
||||
// * ИмяПочтовогоСервера - Строка
|
||||
// * НастройкиАвторизации - см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса
|
||||
//
|
||||
Функция НастройкиПодключенияПоАдресуЭлектроннойПочты(АдресЭлектроннойПочты, Пароль = "") Экспорт
|
||||
|
||||
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты);
|
||||
ПочтовыйДомен = СтруктураАдреса.Хост;
|
||||
|
||||
НайденныеНастройки = Неопределено;
|
||||
ИмяПочтовогоСервера = "";
|
||||
|
||||
НастройкиПочтовыхСерверов = НастройкиПочтовыхСерверов();
|
||||
Если НастройкиПочтовыхСерверов <> Неопределено Тогда
|
||||
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты);
|
||||
НайденныеНастройки = НастройкиПочтовыхСерверов[СтруктураАдреса.Хост];
|
||||
ИмяПочтовогоСервера = СтруктураАдреса.Хост;
|
||||
Если ТипЗнч(НайденныеНастройки) = Тип("Строка") Тогда
|
||||
ИмяПочтовогоСервера = НайденныеНастройки;
|
||||
НайденныеНастройки = НастройкиПочтовыхСерверов[НайденныеНастройки];
|
||||
КонецЕсли;
|
||||
|
||||
@@ -421,7 +431,10 @@
|
||||
Хост = СтрСоединить(УровниДомена, ".");
|
||||
|
||||
НайденныеНастройки = НастройкиПочтовыхСерверов[Хост];
|
||||
ИмяПочтовогоСервера = Хост;
|
||||
|
||||
Если ТипЗнч(НайденныеНастройки) = Тип("Строка") Тогда
|
||||
ИмяПочтовогоСервера = НайденныеНастройки;
|
||||
НайденныеНастройки = НастройкиПочтовыхСерверов[НайденныеНастройки];
|
||||
КонецЕсли;
|
||||
|
||||
@@ -441,17 +454,92 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, НайденныеНастройки);
|
||||
Профиль = Неопределено;
|
||||
Если ЗначениеЗаполнено(НайденныеНастройки) Тогда
|
||||
Профиль = СформироватьПрофиль(НайденныеНастройки, АдресЭлектроннойПочты, Пароль);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиАвторизации = НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Профиль", Профиль);
|
||||
Результат.Вставить("ИмяПочтовогоСервера", ИмяПочтовогоСервера);
|
||||
Результат.Вставить("НастройкиАвторизации", НастройкиАвторизации);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, ИзвестныеНастройкиПочтовогоСервера)
|
||||
// Возвращаемое значение:
|
||||
// см. Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса
|
||||
//
|
||||
Функция НастройкиАвторизацииСервера(НайденныеНастройки, ИмяПочтовогоСервера, ПочтовыйДомен)
|
||||
|
||||
Профиль = Неопределено;
|
||||
Если ЗначениеЗаполнено(ИзвестныеНастройкиПочтовогоСервера) Тогда
|
||||
Профиль = СформироватьПрофиль(ИзвестныеНастройкиПочтовогоСервера, АдресЭлектроннойПочты, Пароль);
|
||||
НастройкиАвторизации = Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса(ИмяПочтовогоСервера, ПочтовыйДомен);
|
||||
НастройкиИзКлассификатора = НайденныеНастройки["OAuth"];
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.АдресАвторизации) Или Не ЗначениеЗаполнено(НастройкиИзКлассификатора) Тогда
|
||||
Возврат НастройкиАвторизации;
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиАвторизации.ИмяИнтернетСервиса = ИмяПочтовогоСервера;
|
||||
НастройкиАвторизации.ВладелецДанных = ПочтовыйДомен;
|
||||
НастройкиАвторизации.АдресАвторизации = НастройкиИзКлассификатора["AuthorizationURI"];
|
||||
НастройкиАвторизации.АдресПолученияКлюча = НастройкиИзКлассификатора["TokenExchangeURI"];
|
||||
|
||||
НастройкиАвторизации.ЗапрашиваемыеРазрешения = НастройкиИзКлассификатора["MailScope"];
|
||||
Если ТипЗнч(НастройкиАвторизации.ЗапрашиваемыеРазрешения) = Тип("Массив") Тогда
|
||||
НастройкиАвторизации.ЗапрашиваемыеРазрешения = СтрСоединить(НастройкиАвторизации.ЗапрашиваемыеРазрешения, " ");
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиАвторизации.ИспользоватьКлючПроверкиПодлинностиPKCE = НастройкиИзКлассификатора["UsePKCE"];
|
||||
НастройкиАвторизации.ИспользоватьПарольПриложения = НастройкиИзКлассификатора["UseClientSecret"];
|
||||
|
||||
ДополнительныеПараметрыАвторизации = НастройкиИзКлассификатора["AuthorizationParameters"];
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметрыАвторизации) Тогда
|
||||
ОписанияПараметров = Новый Массив;
|
||||
Для Каждого Элемент Из ДополнительныеПараметрыАвторизации Цикл
|
||||
ОписанияПараметров.Добавить(Элемент.Ключ + "=" + XMLСтрока(Элемент.Значение));
|
||||
КонецЦикла;
|
||||
НастройкиАвторизации.ДополнительныеПараметрыАвторизации = СтрСоединить(ОписанияПараметров, " ");
|
||||
КонецЕсли;
|
||||
|
||||
ДополнительныеПараметрыПолученияТокена = НастройкиИзКлассификатора["TokenExchangeParameters"];
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметрыПолученияТокена) Тогда
|
||||
ОписанияПараметров = Новый Массив;
|
||||
Для Каждого Элемент Из ДополнительныеПараметрыПолученияТокена Цикл
|
||||
ОписанияПараметров.Добавить(Элемент.Ключ + "=" + XMLСтрока(Элемент.Значение));
|
||||
КонецЦикла;
|
||||
НастройкиАвторизации.ДополнительныеПараметрыПолученияТокена = СтрСоединить(ОписанияПараметров, " ");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НастройкиАвторизации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция НастройкиПочтовыхСерверов()
|
||||
|
||||
НастройкиПочтовыхСерверов = Неопределено;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
|
||||
ЗагруженныйФайл = МодульПолучениеФайловИзИнтернета.СкачатьФайлНаСервере("https://downloads.v8.1c.ru/content/common/settings/mailservers.json");
|
||||
Если ЗагруженныйФайл.Статус Тогда
|
||||
ЧтениеJSON = Новый ЧтениеJSON();
|
||||
ЧтениеJSON.ОткрытьФайл(ЗагруженныйФайл.Путь);
|
||||
НастройкиПочтовыхСерверов = ПрочитатьJSON(ЧтениеJSON, Истина);
|
||||
ЧтениеJSON.Закрыть();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НастройкиПочтовыхСерверов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодобратьНастройкиПочты(АдресЭлектроннойПочты, Пароль, ДляОтправки, ДляПолучения, Профиль = Неопределено)
|
||||
|
||||
НастройкиПолучены = Профиль <> Неопределено;
|
||||
|
||||
НайденныйПрофильSMTP = ?(НастройкиПолучены И ЗначениеЗаполнено(Профиль.АдресСервераSMTP), Профиль, Неопределено);
|
||||
@@ -507,7 +595,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СформироватьПрофиль(ИзвестныеНастройки, АдресЭлектроннойПочты, Пароль)
|
||||
Функция СформироватьПрофиль(ИзвестныеНастройки, АдресЭлектроннойПочты, Пароль = "")
|
||||
|
||||
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(АдресЭлектроннойПочты);
|
||||
|
||||
|
||||
@@ -558,6 +558,39 @@
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="e9939b36-bceb-40e2-a182-1d5cc248f353">
|
||||
<name>АвторизацияСПомощьюПочтовогоСервиса</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Авторизация с помощью почтового сервиса</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>Boolean</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="619d3ac6-40fe-485d-a407-fe065f16b186">
|
||||
<name>ИмяПочтовогоСервиса</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Имя почтового сервиса</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>String</types>
|
||||
<stringQualifiers>
|
||||
<length>200</length>
|
||||
</stringQualifiers>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<forms uuid="ecaa0af8-549c-4c07-82ff-1c4e02ff15b8">
|
||||
<name>ФормаВыбора</name>
|
||||
<synonym>
|
||||
|
||||
@@ -69,16 +69,12 @@
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, НастройкиПравПапки(Элементы.Папки.ТекущаяСтрока));
|
||||
|
||||
ИспользоватьПредпросмотр = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
"Файлы",
|
||||
"Предпросмотр");
|
||||
|
||||
ИспользоватьПредпросмотр = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("Файлы", "Предпросмотр");
|
||||
Если ИспользоватьПредпросмотр <> Неопределено Тогда
|
||||
Предпросмотр = ИспользоватьПредпросмотр;
|
||||
Элементы.АдресДанныхФайла.Видимость = ИспользоватьПредпросмотр;
|
||||
Элементы.Предпросмотр.Пометка = ИспользоватьПредпросмотр;
|
||||
КонецЕсли;
|
||||
|
||||
РасширенияПоддерживающиеПредпросмотр = РаботаСФайламиСлужебный.СписокРасширенийДляПредпросмотра();
|
||||
|
||||
Элементы.ГруппаПояснениеОблачногоСервиса.Видимость = Ложь;
|
||||
@@ -98,6 +94,13 @@
|
||||
Элементы.ФормаСоздатьСоСканера.Заголовок = НСтр("ru = 'С камеры устройства...'");
|
||||
КонецЕсли;
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -272,6 +275,13 @@
|
||||
КонецЕсли;
|
||||
ОбработкаОжиданияУстановитьДоступностьФайловыхКоманд();
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -676,8 +686,13 @@
|
||||
&НаКлиенте
|
||||
Процедура Отправить(Команда)
|
||||
|
||||
ПриОтправкеФайловПочтой(ПараметрыОтправки, Элементы.Список.ВыделенныеСтроки, Элементы.Папки.ТекущиеДанные.Ссылка , УникальныйИдентификатор);
|
||||
ТекущиеДанные = Элементы.Папки.ТекущиеДанные;
|
||||
Если ТекущиеДанные = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПриОтправкеФайловПочтой(ПараметрыОтправки, Элементы.Список.ВыделенныеСтроки, ТекущиеДанные.Ссылка,
|
||||
УникальныйИдентификатор);
|
||||
РаботаСФайламиСлужебныйКлиент.ОтправитьФайлыПоПочте(
|
||||
Элементы.Список.ВыделенныеСтроки, УникальныйИдентификатор, ПараметрыОтправки, Истина);
|
||||
|
||||
@@ -736,22 +751,16 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Сравнить(Команда)
|
||||
ЧислоВыделенныхСтрок = Элементы.Список.ВыделенныеСтроки.Количество();
|
||||
|
||||
Если ЧислоВыделенныхСтрок = 2 ИЛИ ЧислоВыделенныхСтрок = 1 Тогда
|
||||
Если ЧислоВыделенныхСтрок = 2 Тогда
|
||||
Ссылка1 = Элементы.Список.ВыделенныеСтроки[0];
|
||||
Ссылка2 = Элементы.Список.ВыделенныеСтроки[1];
|
||||
ИначеЕсли ЧислоВыделенныхСтрок = 1 Тогда
|
||||
Ссылка1 = Элементы.Список.ТекущиеДанные.Ссылка;
|
||||
Ссылка2 = Элементы.Список.ТекущиеДанные.РодительскаяВерсия;
|
||||
Если Элементы.Список.ВыделенныеСтроки.Количество() <> 2 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПервыйФайл = Элементы.Список.ВыделенныеСтроки[0];
|
||||
ВторойФайл = Элементы.Список.ВыделенныеСтроки[1];
|
||||
Расширение = НРег(Элементы.Список.ТекущиеДанные.Расширение);
|
||||
РаботаСФайламиСлужебныйКлиент.СравнитьФайлы(УникальныйИдентификатор, ПервыйФайл, ВторойФайл, Расширение);
|
||||
|
||||
РаботаСФайламиСлужебныйКлиент.СравнитьФайлы(УникальныйИдентификатор, Ссылка1, Ссылка2, Расширение);
|
||||
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -1604,4 +1613,30 @@
|
||||
Возврат РаботаСФайламиСлужебный.ДанныеОтбораЖурналаРегистрации(УчетнаяЗаписьСервис);
|
||||
КонецФункции
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4912,6 +4912,10 @@
|
||||
<commandBar/>
|
||||
</commandInterface>
|
||||
<extInfo xsi:type="form:CatalogFormExtInfo">
|
||||
<handlers>
|
||||
<event>AfterWrite</event>
|
||||
<name>ПослеЗаписи</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>AfterWriteAtServer</event>
|
||||
<name>ПослеЗаписиНаСервере</name>
|
||||
|
||||
@@ -48,6 +48,13 @@
|
||||
ОбновитьПолныйПуть();
|
||||
ОбновитьПояснениеОблачногоСервиса(Объект.Ссылка);
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||
|
||||
Элементы.Описание.Высота = 0;
|
||||
@@ -67,7 +74,6 @@
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
|
||||
НаименованиеДоЗаписи = Объект.Наименование;
|
||||
|
||||
ДатаМодификации = МестноеВремя(ЭтотОбъект.Объект.ДатаМодификацииУниверсальная);
|
||||
|
||||
УстановитьДоступностьКомандСпискаЭП();
|
||||
@@ -76,6 +82,13 @@
|
||||
РаботаСФайламиСлужебныйКлиент.ПрочитатьСертификатыПодписей(ЭтотОбъект);
|
||||
ОтображатьВкладкиДополнительныхДанных();
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -146,13 +159,18 @@
|
||||
|
||||
// СтандартныеПодсистемы.УправлениеДоступом
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
|
||||
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
|
||||
МодульУправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
|
||||
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.УправлениеДоступом
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -199,6 +217,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПослеЗаписи(ПараметрыЗаписи)
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
|
||||
КонецЕсли;
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
|
||||
|
||||
@@ -717,17 +747,13 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РазблокироватьДанныеФормыДляРедактирования();
|
||||
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
Если ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) Тогда
|
||||
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено,
|
||||
ДанныеФайла, УникальныйИдентификатор);
|
||||
Иначе
|
||||
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено,
|
||||
ДанныеФайла, УникальныйИдентификатор);
|
||||
|
||||
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует);
|
||||
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено, ДанныеФайла, УникальныйИдентификатор);
|
||||
Если Не ФайлРедактируется Тогда
|
||||
ОбновитьОбъект();
|
||||
|
||||
ОповеститьОбИзменении(ЭтотОбъект.Объект.Ссылка);
|
||||
Оповестить("Запись_Файл", Новый Структура, ЭтотОбъект.Объект.Ссылка);
|
||||
КонецЕсли;
|
||||
@@ -1541,4 +1567,31 @@
|
||||
Возврат РаботаСФайламиСлужебный.ДанныеОтбораЖурналаРегистрации(УчетнаяЗапись);
|
||||
КонецФункции
|
||||
|
||||
// СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКоманду(Команда)
|
||||
МодульПодключаемыеКомандыКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиент");
|
||||
МодульПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
|
||||
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ОбновитьКоманды()
|
||||
МодульПодключаемыеКомандыКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ПодключаемыеКомандыКлиентСервер");
|
||||
МодульПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
|
||||
КонецПроцедуры
|
||||
|
||||
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
|
||||
|
||||
#КонецОбласти
|
||||
@@ -479,6 +479,50 @@
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаНаименование</name>
|
||||
<id>73</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>СтандартнаяКартинка</name>
|
||||
<id>70</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.DefaultPicture</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>СтандартнаяКартинкаРасширеннаяПодсказка</name>
|
||||
<id>72</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СтандартнаяКартинкаКонтекстноеМеню</name>
|
||||
<id>71</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<border xsi:type="core:BorderDef">
|
||||
<style>Single</style>
|
||||
<width>1</width>
|
||||
</border>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Наименование</name>
|
||||
<id>16</id>
|
||||
@@ -521,6 +565,32 @@
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаНаименованиеРасширеннаяПодсказка</name>
|
||||
<id>74</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>ColumnGroup</type>
|
||||
<extInfo xsi:type="form:ColumnGroupExtInfo">
|
||||
<group>InCell</group>
|
||||
<showTitle>auto</showTitle>
|
||||
<showInCard>true</showInCard>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование и файлы</value>
|
||||
|
||||
+10
-2
@@ -435,7 +435,7 @@
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.УдалениеПомеченных</metadata>
|
||||
<metadata>ScheduledJob.УдалениеПомеченныхОбъектов</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
@@ -474,6 +474,10 @@
|
||||
<metadata>Constant.ИспользуютсяПрофилиБезопасности</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.СтандартныеПодсистемыВАвтономномРежиме</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.МониторингЗадач</metadata>
|
||||
<use>DontUse</use>
|
||||
@@ -490,6 +494,10 @@
|
||||
<metadata>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриНачалеРаботыПрограммы</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>Constant.НастройкиВходаПользователей</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ОчисткаЗамеровВремени</metadata>
|
||||
<use>DontUse</use>
|
||||
@@ -523,7 +531,7 @@
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
<metadata>ScheduledJob.ОтключениеПроверкиИспользованияУдаляемыхОбъектов</metadata>
|
||||
<metadata>ScheduledJob.КонтрольУдаленияПомеченныхОбъектов</metadata>
|
||||
<use>DontUse</use>
|
||||
</content>
|
||||
<content>
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
ОжиданиеСчетчик = Параметры.Таймаут;
|
||||
|
||||
// Сброс размеров и положения окна этой формы.
|
||||
СброситьРазмерыИПоложениеОкна();
|
||||
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
|
||||
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||
Элементы.Переместить(Элементы.БольшеНеЗадаватьЭтотВопрос, ЭтотОбъект);
|
||||
@@ -241,15 +241,6 @@
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Процедура СброситьРазмерыИПоложениеОкна()
|
||||
ИмяПользователя = ПользователиИнформационнойБазы.ТекущийПользователь().Имя;
|
||||
Если ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
|
||||
ХранилищеСистемныхНастроек.Удалить("ОбщаяФорма.Вопрос", "", ИмяПользователя);
|
||||
КонецЕсли;
|
||||
КлючСохраненияПоложенияОкна = Строка(Новый УникальныйИдентификатор);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция СтандартныйНабор(Кнопки)
|
||||
Результат = Новый СписокЗначений;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>Предназначен для просмотра и управления доступными командами текущим пользователем.
|
||||
<div><br></div>
|
||||
<div>В списке можно включать или выключать предусмотренные команды с помощью флажков.
|
||||
<div><br><div>Для того чтобы в списке были доступны команды, администратор программы при настройке <a href="Catalog.ДополнительныеОтчетыИОбработки.Form.ФормаЭлемента/Help">дополнительного отчета или обработки</a> должен сначала включить имя данного пользователя в список для быстрого доступа, иначе список доступных команд может быть пустым. При этом состав и текст команд в дополнительных отчетах и обработках определяется разработчиком.</div></div></div></body></html>
|
||||
<div><br><div>Для того чтобы в списке были доступны команды, администратор программы при настройке <a href="Catalog.ДополнительныеОтчетыИОбработки.Form.ФормаЭлемента/Help">дополнительного отчета или обработки</a> должен сначала включить имя данного пользователя в список для быстрого доступа, иначе список доступных команд может быть пустым. При этом состав и текст команд в дополнительных отчетах и обработках определяется разработчиком.</div></div></div></body></html>
|
||||
@@ -102,6 +102,113 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ПредупреждениеНастройкаВСервисе</name>
|
||||
<id>120</id>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПредупреждениеНастройкаВСервисеКартинка</name>
|
||||
<id>122</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Предупреждение настройка в сервисе картинка</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПредупреждениеНастройкаВСервисеКартинкаРасширеннаяПодсказка</name>
|
||||
<id>124</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПредупреждениеНастройкаВСервисеКартинкаКонтекстноеМеню</name>
|
||||
<id>123</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<skipOnInput>false</skipOnInput>
|
||||
<extInfo xsi:type="form:PictureDecorationExtInfo">
|
||||
<picture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Предупреждение32</picture>
|
||||
</picture>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Decoration">
|
||||
<name>ПредупреждениеНастройкаВСервисеПояснение</name>
|
||||
<id>125</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>В модели сервиса настройки
|
||||
устанавливаются администратором сервиса</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ПредупреждениеНастройкаВСервисеПояснениеРасширеннаяПодсказка</name>
|
||||
<id>127</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПредупреждениеНастройкаВСервисеПояснениеКонтекстноеМеню</name>
|
||||
<id>126</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<skipOnInput>false</skipOnInput>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<verticalAlign>Center</verticalAlign>
|
||||
</extInfo>
|
||||
</items>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Предупреждение настройка в сервисе</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ПредупреждениеНастройкаВСервисеРасширеннаяПодсказка</name>
|
||||
<id>121</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаНастройки</name>
|
||||
<id>128</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаСложностьПароля</name>
|
||||
<id>33</id>
|
||||
@@ -945,6 +1052,35 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Настройки</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаНастройкиРасширеннаяПодсказка</name>
|
||||
<id>129</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>Vertical</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<autoCommandBar>
|
||||
<name>ФормаКоманднаяПанель</name>
|
||||
<id>-1</id>
|
||||
|
||||
@@ -39,6 +39,15 @@
|
||||
КонецЦикла;
|
||||
|
||||
ВидимостьГруппыВосстановлениеПароля = Ложь;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
|
||||
Элементы.ПредупреждениеНастройкаВСервисе.Видимость = Истина;
|
||||
Элементы.ФормаЗаписатьИЗакрыть.Доступность = Ложь;
|
||||
Элементы.ГруппаНастройки.Доступность = Ложь;
|
||||
|
||||
Иначе
|
||||
|
||||
НастройкиВосстановленияПароля = ПользователиСлужебный.НастройкиВосстановленияПароля();
|
||||
Если НастройкиВосстановленияПароля <> Неопределено Тогда
|
||||
ВидимостьГруппыВосстановлениеПароля =
|
||||
@@ -49,6 +58,9 @@
|
||||
= ПользователиСлужебный.СпособВосстановленияПароляПользователяИнформационнойБазы(
|
||||
"ОтправкаКодаПодтвержденияЧерезСтандартныйСервис");
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ПредупреждениеВосстановлениеПароля.Видимость = ВидимостьГруппыВосстановлениеПароля;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -110,29 +122,9 @@
|
||||
&НаСервере
|
||||
Процедура ЗаписатьНаСервере()
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Константа.НастройкиВходаПользователей");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
НастройкиВхода = ПользователиСлужебный.НастройкиВхода();
|
||||
|
||||
Если ПоказатьНастройкиВнешнихПользователей Тогда
|
||||
Настройки = НастройкиВхода.ВнешниеПользователи;
|
||||
Иначе
|
||||
Настройки = НастройкиВхода.Пользователи;
|
||||
КонецЕсли;
|
||||
|
||||
Настройки = Пользователи.НовоеОписаниеНастроекВхода();
|
||||
Настройки.ПарольДолженОтвечатьТребованиямСложности = ПарольДолженОтвечатьТребованиямСложности;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПросрочкаРаботыВПрограммеДоЗапрещенияВхода) Тогда
|
||||
Настройки.ПросрочкаРаботыВПрограммеДатаВключения = '00010101';
|
||||
|
||||
ИначеЕсли Не ЗначениеЗаполнено(Настройки.ПросрочкаРаботыВПрограммеДатаВключения) Тогда
|
||||
Настройки.ПросрочкаРаботыВПрограммеДатаВключения = НачалоДня(ТекущаяДатаСеанса());
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого КлючИЗначение Из ПредлагаемыеЗначенияНастроек Цикл
|
||||
Если ЭтотОбъект[КлючИЗначение.Ключ + "Включить"] Тогда
|
||||
Настройки[КлючИЗначение.Ключ] = ЭтотОбъект[КлючИЗначение.Ключ];
|
||||
@@ -141,21 +133,7 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Константы.НастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(НастройкиВхода));
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиВхода.Пользователи.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода)
|
||||
Или ЗначениеЗаполнено(НастройкиВхода.ВнешниеПользователи.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода) Тогда
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
ПользователиСлужебный.ИзменитьЗаданиеКонтрольАктивностиПользователей(Истина);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
Пользователи.УстановитьНастройкиВхода(Настройки, ПоказатьНастройкиВнешнихПользователей);
|
||||
|
||||
ОбновитьПовторноИспользуемыеЗначения();
|
||||
|
||||
|
||||
@@ -3054,6 +3054,33 @@
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаТехническаяИнформация</name>
|
||||
<id>432</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаТехническаяИнформацияРасширеннаяПодсказка</name>
|
||||
<id>433</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.ТехническаяИнформация</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
@@ -3910,6 +3937,24 @@
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ТехническаяИнформация</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Техническая информация</value>
|
||||
</title>
|
||||
<id>8</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ТехническаяИнформация</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>СертификатыПоказать</name>
|
||||
<valueType>
|
||||
|
||||
@@ -586,6 +586,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТехническаяИнформация(Команда)
|
||||
|
||||
ЭлектроннаяПодписьСлужебныйКлиент.СформироватьТехническуюИнформацию(
|
||||
НСтр("ru = 'Настройки электронной подписи и шифрования'"));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПрограммыУстановитьПометкуУдаления(Команда)
|
||||
|
||||
|
||||
@@ -2320,19 +2320,6 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ПоказатьОповещениеОПодсказках</name>
|
||||
<id>19</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ЦветПодсказки</name>
|
||||
<id>22</id>
|
||||
|
||||
@@ -87,13 +87,6 @@
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПриОткрытии(Отказ)
|
||||
Если ПоказатьОповещениеОПодсказках И ПоказыватьПодсказки Тогда
|
||||
ПоказатьОповещениеПользователя(
|
||||
НСтр("ru = 'Новая возможность'"),
|
||||
"e1cib/data/ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ОписаниеНовойВозможностиПоВыводуОписаний",
|
||||
НСтр("ru = 'Вывод описаний в панелях отчетов'"),
|
||||
БиблиотекаКартинок.Информация32);
|
||||
КонецЕсли;
|
||||
Если ДлительнаяОперация.Статус = "Выполняется" Тогда
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
@@ -148,7 +141,7 @@
|
||||
Или Изменения.ИскатьВоВсехРазделах <> ИскатьВоВсехРазделах Тогда
|
||||
ПараметрыКлиента.Обновлять = Истина;
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Изменения, "ПоказыватьПодсказки, ИскатьВоВсехРазделах, ПоказатьОповещениеОПодсказках");
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Изменения, "ПоказыватьПодсказки,ИскатьВоВсехРазделах");
|
||||
КонецЕсли;
|
||||
Если ПараметрыКлиента.Обновлять Тогда
|
||||
ПодключитьОбработчикОжидания("ОбновитьПанельОтчетовПоТаймеру", 1, Истина);
|
||||
@@ -281,12 +274,7 @@
|
||||
ОбщиеНастройки = Новый Структура;
|
||||
ОбщиеНастройки.Вставить("ПоказыватьПодсказки", ПоказыватьПодсказки);
|
||||
ОбщиеНастройки.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах);
|
||||
ОбщиеНастройки.Вставить("ПоказатьОповещениеОПодсказках", ПоказатьОповещениеОПодсказках);
|
||||
|
||||
Оповестить(
|
||||
ВариантыОтчетовКлиент.ИмяСобытияИзменениеОбщихНастроек(),
|
||||
ОбщиеНастройки,
|
||||
ЭтотОбъект);
|
||||
Оповестить(ВариантыОтчетовКлиент.ИмяСобытияИзменениеОбщихНастроек(), ОбщиеНастройки, ЭтотОбъект);
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -671,10 +659,7 @@
|
||||
ОбщиеНастройки = Новый Структура;
|
||||
ОбщиеНастройки.Вставить("ПоказыватьПодсказки", ПоказыватьПодсказки);
|
||||
ОбщиеНастройки.Вставить("ИскатьВоВсехРазделах", ИскатьВоВсехРазделах);
|
||||
ОбщиеНастройки.Вставить("ПоказатьОповещениеОПодсказках", ПоказатьОповещениеОПодсказках);
|
||||
|
||||
ВариантыОтчетов.СохранитьОбщиеНастройкиПанели(ОбщиеНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.ПоказыватьПодсказки.Видимость = РежимНастройки;
|
||||
@@ -875,7 +860,7 @@
|
||||
&НаСервере
|
||||
Процедура ЗагрузитьВсеНастройки()
|
||||
ОбщиеНастройки = ВариантыОтчетов.ОбщиеНастройкиПанели();
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ОбщиеНастройки, "ПоказатьОповещениеОПодсказках, ПоказыватьПодсказки, ИскатьВоВсехРазделах");
|
||||
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ОбщиеНастройки, "ПоказыватьПодсказки,ИскатьВоВсехРазделах");
|
||||
|
||||
ЛокальныеНастройки = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(
|
||||
ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(),
|
||||
|
||||
@@ -46,10 +46,9 @@
|
||||
<div>Выделите расширение, нажмите <strong>Обновить из файла</strong>, укажите путь к файлу на компьютере.</div>
|
||||
</li>
|
||||
<li>
|
||||
<div>Следует использовать эту кнопку для установки новой версии расширения.</div>
|
||||
</li>
|
||||
</ul><div>Также нужно использовать эту возможность для возврата к предыдущей версии, если новая версия содержит ошибку (однако не рекомендуется устанавливать расширение меньшей версии, т.к. это может привести к потере сделанных настроек).</div>
|
||||
<div>Следует использовать эту кнопку для установки новой версии расширения.</div></li>
|
||||
<li>Если обновить расширение на новую версию, в которой изменено его имя, то все прежние настройки этого расширения будут сохранены, например, созданные варианты отчетов.</li>
|
||||
<ul><li>При попытке обновления на расширение с другим именем программа выводит сообщение, подтвердить свое действие необходимо с помощью кнопки <b>Заменить</b>.</li></ul><li>При случайном удалении и повторном добавлении этого же расширения в программу через короткий промежуток времени можно продолжить работу без потери настроек расширения.</li></ul><div>Также нужно использовать эту возможность для возврата к предыдущей версии, если новая версия содержит ошибку (однако не рекомендуется устанавливать расширение меньшей версии, т.к. это может привести к потере сделанных настроек).</div>
|
||||
<p></p>
|
||||
<h3><b style="font-size: 13.4399995803833px;">Установленные исправления (патчи)</b></h3>
|
||||
<ul style="font-size: 13.4399995803833px;"><li><span style="font-size: 11.199999809265137px;">С помощью команды меню <b>Еще - Установленные исправления (патчи)</b> можно открыть <a href="CommonForm.УстановленныеИсправления/Help">список</a>, в котором можно просмотреть уже установленные исправления и с помощью кнопки панели навигации <b>Установить исправление</b>.</span></li></ul><h3><br></h3>
|
||||
<p></p></body></html>
|
||||
<ul style="font-size: 13.4399995803833px;"><li><span style="font-size: 11.199999809265137px;">С помощью команды меню <b>Еще - Установленные исправления (патчи)</b> можно открыть <a href="CommonForm.УстановленныеИсправления/Help">список</a>, в котором можно просмотреть уже установленные исправления и с помощью кнопки панели навигации <b>Установить исправление</b>.</span></li></ul><p></p></body></html>
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
ДополнительныеДанные = Параметры.ДополнительныеДанные;
|
||||
|
||||
ЭлектроннаяПодписьСлужебный.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
СтандартныеПодсистемыСервер.СброситьРазмерыИПоложениеОкна(ЭтотОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body>Предназначена для выбора региональных настроек при выборе других языков. Программа позволяет печатные формы на разных языках. Это может быть полезно, например, если необходимо предоставить какие-либо документы иностранному контрагенту: прайс-лист, счет на оплату и т.д.
|
||||
<div>Для некоторых языков доступен выбор региональных настроек (указаны в скобках рядом с названием языка). Выбор региональных настроек влияет на вывод дат и чисел. Например, дата <b>24.12.2020</b> на языке "французский" будет выводиться <b>24/12/2020</b>, а на языке "французский (Канада) - <b>2020-12-24</b>.</div>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="content-type" content="text/html;charset=utf-8"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link></head><body class="">Предназначена для выбора региональных настроек при выборе других языков.
|
||||
<div>Открывается с помощью ссылки в разделе <b>Администрирование - Общие настройки</b>.</div>
|
||||
<div>В окне <b>Региональные Настройки</b> можно:</div>
|
||||
<div>
|
||||
<ul><li>Выбрать <b>Часовой пояс программы</b> - все операции в программе будут выполняться во времени этого часового пояса;</li>
|
||||
<li>Посмотреть с помощью ссылки <b>Время текущего сеанса</b>;</li>
|
||||
<li>Настроить основной и дополнительный языки.</li></ul>При необходимости для формирования печатных форм можно добавить еще несколько языков.</div>
|
||||
<div>Программа позволяет печатные формы на разных языках. Это может быть полезно, например, если необходимо предоставить какие-либо документы иностранному контрагенту: прайс-лист, счет на оплату и т.д.
|
||||
<div>Для некоторых языков доступен выбор региональных настроек (указаны в скобках рядом с названием языка). Выбор региональных настроек влияет на вывод дат и чисел. Например, дата <b>24.12.2020</b> на языке "<b>французский</b>" будет выводиться <b>24/12/2020</b>, а на языке "<b>французский (Канада)</b>" - <b>2020-12-24</b>.</div>
|
||||
<div>После выбора основного и дополнительных языков следует нажать кнопку <b>Изменить</b>. В программе существуют предопределенные и поставляемые элементы. При смене языков с помощью кнопки <b>Изменить</b> вызывается механизм начального заполнения этих элементов. Через некоторое время программа готова к работе.</div>
|
||||
<div>Если строка на дополнительном языке отсутствует, то заполняется значением основного языка (реквизита).Мультиязычные строки хранятся в шапке объекта. Если строка на дополнительных языках отсутствует, то заполняется на основном языке.</div>
|
||||
<div>Если меняются местами основной и дополнительный языки, то значения также меняются местами:</div>
|
||||
<div>
|
||||
<ul><li><b>Наименование (ru) <-> НаименованиеЯзык (en)</b>.</li></ul></div>
|
||||
<div>Если основной язык <b>(ru)</b> меняется на другой язык (не дополнительный, например, польский - <b>pl</b>):</div>
|
||||
<div>
|
||||
<ul><li>Предопределенные и поставляемые элементы перезаполняются;</li>
|
||||
<li>Старые значения (<b>ru</b>), введенные пользователем, сохраняются для нового языка (<b>pl</b>).</li></ul>При добавлении новых данных: если в интерактивном режиме данные на дополнительных языках не были введены, то реквизиты на дополнительных языках заполняются значениями основного языка.</div>
|
||||
<div>Отключить основной язык нельзя. При отключении доп. языков данные не очищаются.</div>
|
||||
<div>На нескольких языках заполняются поля в следующих объектах программы:</div>
|
||||
<div>
|
||||
<ul><li><b>Виды контактной информации</b> (поле <b>Наименование</b>);</li>
|
||||
<li><b>Свойства</b> (поле <b>Наименование</b>);</li>
|
||||
<li><b>Варианты отчетов</b>.</li></ul>Просмотреть или заполнить поле <b>Наименование</b> на разных языках можно с помощью кнопки <img src="StdPicture.InputFieldOpen"></img>.</div>
|
||||
|
||||
|
||||
</body></html>
|
||||
</div></body></html>
|
||||
@@ -9,7 +9,29 @@
|
||||
</li>
|
||||
<li>Можно <strong>Вставить примечание</strong> с помощью соответствующей команды меню <strong>Еще</strong>.
|
||||
</li>
|
||||
<li>По окончании редактирования нажмите <strong>Записать и закрыть</strong>.</li></ul><h3 style="font-size: 13.4399995803833px;">Перевод макета на другой язык</h3>
|
||||
<li>По окончании редактирования нажмите <strong>Записать и закрыть</strong>.</li></ul><h3>Создание или редактирование пользовательской печатной формы</h3>
|
||||
<div>В списке макетов нажмите кнопку <b>Создать</b> или <b>Копировать</b>.</div>
|
||||
<div><br></div>
|
||||
<div>С помощью кнопок панели навигации верхнего ряда можно:<br><ul><li><img src="CommonPicture.ОтменитьДействие"></img>отменить или <img src="CommonPicture.ПовторитьДействие"></img>повторить действие;</li>
|
||||
<li><img src="StdPicture.ShowData"></img><img src=""></img>проверить вид макета на бумаге;</li>
|
||||
<li>задать колонтитулы макета печатной формы;</li>
|
||||
<li>сформировать образец печатной формы по макету;</li>
|
||||
<li>повторять выбранные строки в <img src="CommonPicture.ПовторятьВНачалеСтраницы"></img><img src=""></img>начале/<img src="CommonPicture.ПовторятьВКонцеСтраницы"></img>конце страницы;</li>
|
||||
<li>переключиться на макет на другом языке.</li></ul></div>
|
||||
<div>В нижнем ряду панели навигации также предусмотрены стандартные кнопки редактирования и форматирования, а также можно:</div>
|
||||
<div>
|
||||
<ul><li><img src="StdPicture.QueryWizardCreateTempTableDropQuery"></img> очистить формат выделенной ячейки;</li>
|
||||
<li><img src="StdPicture.SpreadsheetInsertComment"></img> открыть меню работы над ячейками (перейти к ячейке, объединить ячейки и т.д.)</li>
|
||||
<li><img src="StdPicture.Picture"></img> открыть меню работы над картинками.</li></ul>Окно редактирования печатной формы состоит из четырех частей:<br><ul><li>В левой верхней части строится макет печатной формы;</li>
|
||||
<li>В левой нижней части можно просмотреть или написать текст выбранной ячейки;</li>
|
||||
<li>В правой верхней части находится список доступных полей документа для использования в макете;</li>
|
||||
<ul><li>Список доступных полей содержит следующие колонки:</li>
|
||||
<ul><li><b>Поле</b> - доступное поле элемента-владельца макета. Поле можно перетаскивать в макет. Можно вставить поля табличной части документа.</li>
|
||||
<li><b>Образец</b> - показывает, как будет выглядеть поле при выводе на печать. В качестве образца для заполнения полей берется случайный элемент списка. </li>
|
||||
<li><b><img src="StdPicture.DataCompositionOutputParameters"></img> Формат поля</b> - предусмотрена настройка формата поля. Например, можно выбрать формат даты, отличный от стандартного.</li></ul></ul><li>В правой нижней части находится список операторов и функций для создания выражений;</li>
|
||||
</ul>С помощью кнопки <b>Доступные поля</b> панели навигации можно убрать правую часть для просмотра всего макета.</div>
|
||||
<div>Для сохранения новой печатной формы нажмите <b>Записать и закрыть</b>.</div>
|
||||
<h3 style="font-size: 13.4399995803833px;">Перевод макета на другой язык</h3>
|
||||
<p>Программа позволяет формировать печатные формы на других языках. Это может быть полезно, например, если необходимо предоставить какие-либо документы иностранному контрагенту: прайс-лист, счет на оплату и т.д.</p>
|
||||
<p>Для этого необходимо:</p>
|
||||
<p></p>
|
||||
@@ -19,7 +41,7 @@
|
||||
<li>добавить перевод макета печатной формы на дополнительный язык.</li>
|
||||
<ul><li>После добавления других языков при редактировании макета появляется кнопка выбора языка.</li>
|
||||
<li>Откройте на редактирование нужный макет, переключите на дополнительный язык и выполните перевод.</li>
|
||||
<li>В макете следует переводить только статический текст, например, заголовки, подписи и т.д.</li>
|
||||
<li>В макете следует переводить только статический текст, например заголовки, подписи и т.д.</li>
|
||||
<li>Не нужно переводить имена областей и параметры. Параметры в печатной форме отображаются в угловых скобках, например, <b><Наименование></b>. Параметры могут находиться внутри шаблонов текста, в этом случае они отображаются в квадратных скобках, например, <b><Счет на оплату №[Номер]от[Дата]></b>, в этом случае переводить следует только текст шаблона за скобками.</li>
|
||||
<li>Кнопка <img src="StdPicture.Document"></img>позволяет рядом расположить оригинал и переводимую печатную форму для удобства перевода и его проверки.</li></ul></ul>После сохранения макета в колонке <b>Доступные языки</b> добавляется язык, на который был выполнен перевод.<br><h3>Переключение режимов редактирования и просмотра</h3>
|
||||
<ul><li>Для переключения режимов нажмите кнопку <strong>Редактирование</strong>. В режиме просмотра кнопки редактирования макета становится неактивными.</li></ul><h3>Печать макета</h3>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<p>Исправление (патч) позволяет оперативно исправлять ошибки в программе, не дожидаясь следующего исправительного релиза. Установка патчей также не требует обязательного завершения сеансов пользователей, работающих с программой. Для применения исправлений достаточно перезапустить программу в удобный момент времени.</p>
|
||||
<p><span style="font-size: 13.4399995803833px; font-weight: bold;">Автоматическая установка патчей</span></p>
|
||||
<p></p>
|
||||
<ul><li>Загрузка и установка патчей выполняется <a href="DataProcessor.ПанельАдминистрированияБСП.Form.ИнтернетПоддержкаИСервисы/Help">автоматически</a> при наличии подписки 1С:ИТС и доступа к сети Интернет. Это рекомендуемый режим работы. </li>
|
||||
<ul><li>Загрузка и установка патчей выполняется <a href="DataProcessor.ПанельАдминистрированияБСП.Form.ИнтернетПоддержкаИСервисы/Help">автоматически</a> при наличии подписки 1С:ИТС и доступа к сети Интернет. Это рекомендуемый режим работы. </li>
|
||||
<li>Для настройки автоматической загрузки необходимо перейти в раздел <b>Администрирование - Интернет-поддержка и сервисы - Обновление программы</b> и включить флажок <b>Загружать и устанавливать исправления (патчи) автоматически</b>. Потребуется подключение Интернет-поддержки.</li></ul><p></p>
|
||||
<p><span style="font-size: 13.4399995803833px; font-weight: bold;">Установка исправлений вручную</span></p>
|
||||
<p>Если на компьютере не доступен Интернет, но есть возможность скачать патч с 1С:ИТС:</p>
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<p>Предназначена для настройки отчета.</p>
|
||||
<p>Открывается из <a href="CommonForm.ФормаОтчета/Help">формы отчета</a> по кнопке <strong>Настройки</strong>.</p>
|
||||
<p>С помощью кнопки <strong>Вид</strong> можно перевести настройки в один из режимов:</p>
|
||||
<ul><li><strong>Простой</strong> - можно только менять уже имеющиеся параметры, с помощью флажков добавлять или убирать их;
|
||||
</li>
|
||||
<li><strong>Расширенный</strong> - можно управлять настройками: добавлять параметры, менять поля, структуру отчета. После того, как настройки в расширенном режиме закончены и сохранены, в простом режиме появляется возможность включать и отключать их с помощью флажка.</li></ul><p>Окно настроек в зависимости от сложности отчета состоит из нескольких вкладок:</p>
|
||||
<ul><li><strong>Простой</strong> - можно только менять уже имеющиеся параметры, с помощью флажков добавлять или убирать их. В простом режиме на вкладке Основное, открыв раздел Дополнительно с помощью кнопки, можно добавить следующие возможности:</li>
|
||||
<ul><li><b>Выводить заголовок</b>;</li>
|
||||
<li><b>Выводить параметры и отборы</b> - если флажок выключить, то будет выведена только шапка таблицы отчета, перечень параметров отчета выводиться не будет;
|
||||
</li></ul><li><strong>Расширенный</strong> - можно управлять настройками: добавлять параметры, менять поля, структуру отчета. После того, как настройки в расширенном режиме закончены и сохранены, в простом режиме появляется возможность включать и отключать их с помощью флажка.</li></ul><p>Окно настроек в зависимости от сложности отчета состоит из нескольких вкладок:</p>
|
||||
<ul><li><a href="#1">Фильтры</a> - вводятся условия для отборов значений в отчете;
|
||||
</li>
|
||||
<li><a href="#2">Поля и сортировки</a>- с помощью флажков можно добавлять в отчет поля или убирать их. Можно добавлять поля для сортировки отчета, убирать их или отключать;
|
||||
@@ -70,11 +71,14 @@
|
||||
<ul><li>в правой части с помощью кнопки <strong>Добавить</strong> вывести в отчет другие поля документов и списков программы;
|
||||
</li>
|
||||
<li>в левой части с помощью соответствующей кнопки <strong>Добавить</strong> сортировку по полю. Выберите поле для сортировки из предлагаемого программой списка.</li></ul></li></ul><h3><a name="4">Оформление</a></h3>
|
||||
<ul><li>На вкладке в простом режиме можно поменять некоторые параметры оформления отчета, например, с помощью флажка включить или выключить <strong>Цвет фона</strong>, в который можно окрасить все поля.
|
||||
<ul><li>На вкладке в простом режиме можно:</li>
|
||||
<ul><li>поменять некоторые параметры оформления отчета, например, с помощью флажка включить или выключить <strong>Цвет фона</strong>, в который можно окрасить все поля. Можно также включить <b>Заголовок</b>.</li></ul><li>В расширенном режиме:
|
||||
</li>
|
||||
<li>В расширенном режиме:
|
||||
</li>
|
||||
<li>С помощью кнопки <strong>Добавить</strong> можно ввести новый <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ЭлементУсловногоОформленияОтчета/Help">Элемент условного оформления отчета</a>. </li></ul><h3><a name="5">Структура</a></h3>
|
||||
<ul><li>Можно настроить индивидуальные <a href="CommonForm.НастройкаКолонтитулов/Help">Колонтитулы</a>. Если они не устраивают, можно их отменить с помощью команды <b>Установить стандартные настройки</b> меню <b>Еще</b>. </li>
|
||||
<li>Включите флажок, для того чтобы <b>Выводить заголовок для печати</b>. Также эта возможность предусмотрена в простом режиме в разделе <b>Дополнительно</b>. Заголовок можно изменить. Для этого дважды щелкните мышкой по строке с наименованием заголовка.</li>
|
||||
<li><b>Выводить фильтры</b> - если флажок включен, то в отчете выводится строка с перечнем настроенных фильтров.</li>
|
||||
<li>Предусмотрена возможность условного оформления, т.е. можно изменить цвет полей в зависимости от некоторого условия.</li>
|
||||
<li>С помощью кнопки <strong>Добавить</strong> можно ввести новый <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ЭлементУсловногоОформленияОтчета/Help">Элемент условного оформления отчета</a>. </li></ul></ul><h3><a name="5">Структура</a></h3>
|
||||
<ul><li>Изменить параметры на вкладке можно только в <strong>Расширенном</strong> режиме.
|
||||
</li>
|
||||
<li>На вкладке можно добавить группируемые поля в отчет. С помощью кнопок панели навигации можно добавить, изменить поля, поменять их местами.
|
||||
@@ -90,9 +94,15 @@
|
||||
</li>
|
||||
<li><strong>Оформление</strong>.</li></ul></li></ul><h3>Добавление формул в окне Выбор поля отчета</h3>
|
||||
<div>
|
||||
<ul><li>В настройках в окне <b>Выбор поля отчета</b> (из всех вкладок открывается по кнопке <b>Добавить</b>) имеется возможность работать с формулами. </li>
|
||||
<li>Нажмите кнопку <b>Добавить формулу</b> для перехода к построению <a href="DataProcessor.КонструкторФормул.Form.РедактированиеФормулы/Help">формулы</a>.</li>
|
||||
<li>После добавления формулы ее можно редактировать с помощью кнопки <img src="StdPicture.Change"></img>.</li></ul></div>
|
||||
<ul><li>В настройках в окне <b>Выбор поля отчета</b> (из всех вкладок открывается по кнопке <b>Добавить</b>) имеется возможность работать с формулами. Открывается окно <b>Редактирование формулы</b>. </li>
|
||||
<a name="СтандартныеПодсистемы.КонструкторФормул">
|
||||
|
||||
</a>
|
||||
<li><a name="СтандартныеПодсистемы.КонструкторФормул"></a><a name="СтандартныеПодсистемы.КонструкторФормул">
|
||||
Нажмите кнопку <b>Добавить формулу</b> для перехода к построению </a><a href="DataProcessor.КонструкторФормул.Form.РедактированиеФормулы/Help">формулы</a>.</li>
|
||||
<li>Появляется новый элемент в группе Формулы. Заменить формулой имеющиеся поля невозможно. В формулу можно добавить различные поля из списка и операции (арифметические операторы, операции сравнения, логические операции, агрегатные функции). Можно добавить <b>Наименование</b> формулы в нижней части окна. После окончания составления формулы необходимо нажать кнопку <b>Завершить редактирование</b>, выделить новую формулу и нажать <b>Выбрать</b>.</li>
|
||||
<li>После добавления формулы ее можно редактировать с помощью кнопки <img src="StdPicture.Change"></img>. Также можно сделать с помощью команды контекстного меню по правой кнопке мыши.</li></ul></div>
|
||||
|
||||
<div>
|
||||
<h3>Изменение условий отборов</h3>
|
||||
<ul><li>
|
||||
|
||||
@@ -1,20 +1,39 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html;charset=utf-8" http-equiv="content-type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 11.00.10570.1001"></meta></head><body class="">
|
||||
<p>Для просмотра отчета необходимо нажать кнопку <strong>Сформировать</strong>, предварительно задав параметры (если они предусмотрены). В клиент-серверном варианте работы программы предусмотрено формирование отчетов в фоновом режиме.</p>
|
||||
<p>В программе можно установить общие колонтитулы для оформления отчета.</p>
|
||||
<h3>Режим формирования</h3>
|
||||
<ul><li>Установите флажок<strong> Формировать сразу</strong> меню <strong>Еще</strong>, для того чтобы отчет формировался автоматически сразу после открытия, без нажатия кнопки <strong>Сформировать</strong>. </li></ul><h3>Панель быстрых (избранных) настроек</h3>
|
||||
<ul><li>Установите флажок<strong> Формировать сразу</strong> меню <strong>Еще</strong>, для того чтобы отчет формировался автоматически сразу после открытия, без нажатия кнопки <strong>Сформировать</strong>.</li></ul><h3>Период</h3>
|
||||
<div>
|
||||
<ul><li>Период может выводиться в виде полей <b>Дата начала</b> и <b>Дата окончания</b>. </li>
|
||||
<li>Ввести начало и окончание произвольного периода можно вручную или выбрать из календаря с помощью кнопок <img src="StdPicture.Calendar"></img>. </li>
|
||||
<li>С помощью ссылки <b>Сегодня</b> можно установить в календаре текущую дату.</li></ul></div>
|
||||
<div>
|
||||
<ul><li>С помощью кнопки справа можно выбрать месяц, квартал или год, а также стандартный период.</li>
|
||||
<li>По умолчанию выбран произвольный период, из календаря можно выбрать любой месяц какого-либо года или весь год.</li>
|
||||
<li>Можно воспользоваться ссылкой <b>Показать стандартные периоды</b>, после этого можно выбрать относительный период с помощью кнопок, например, <b>День</b>. Выберите одно из перечисленных значений. Для того чтобы вернуться к выбору фиксированных значений периода, нажмите ссылку <b>Показать произвольный период</b>. Тогда можно будет снова ввести конкретные даты.</li>
|
||||
<li>В зависимости от настроек разработчика <b>Период</b> может выводиться в виде ссылку, в этом случае листать периоды можно с помощью значков <b>><</b>, для выбора периода следует нажать на ссылку с наименованием периода.</li></ul></div>
|
||||
<div>
|
||||
<h3>Панель быстрых (избранных) настроек</h3>
|
||||
<div>
|
||||
<ul><li>Размещается в шапке отчета, в панель выводятся наиболее важные настройки, некоторые из которых могут быть обязательными для заполнения.</li>
|
||||
<li>С помощью кнопки <img src="CommonPicture.Закрепить"></img> можно открыть быстрые настройки и изменить их состав с помощью флажков.</li>
|
||||
<li>С помощью ссылки <b>Больше возможностей</b> можно открыть <a href="CommonForm.ФормаНастроекОтчета/Help">Настройки отчета</a> (расширенный режим).</li></ul></div>
|
||||
<li>С помощью кнопки <img src="CommonPicture.Закрепить"></img> <b>Изменить состав быстрых настроек</b> можно открыть быстрые настройки и изменить их состав с помощью флажков.</li>
|
||||
<li>С помощью флажка можно <b>Выводить заголовки</b> настроек или спрятать их при необходимости. </li>
|
||||
<li>В большинстве случаев поля в шапке отчетов вполне понятны без заголовков: по их содержимому, подсказке ввода или всплывающей подсказке при наведении курсором. Тем самым, шапка отчета занимает меньше места по ширине экрана.</li>
|
||||
<li>С помощью ссылки <b>Больше возможностей</b> можно открыть <a href="CommonForm.ФормаНастроекОтчета/Help">Настройки отчета</a> (расширенный режим).</li></ul><h3>Сохранение отчета</h3></div>
|
||||
<div>
|
||||
<h3>Фильтр по значению</h3>
|
||||
<ul><li>С помощью кнопки <img src="CommonPicture.Скачать"></img> <b>(Ctrl+S)</b> можно <b>Сохранить результат отчета в файл</b>. Укажите папку для сохранения, выберите тип и напишите имя файла. Для сохранения отчета можно выбрать несколько типов файла, например в Excel.</li>
|
||||
<li>При сохранении результата отчета в формат Excel из шапки отчета скрываются картинки-индикаторы сортировки.</li></ul></div>
|
||||
<div>
|
||||
<ul><li>Для быстрой установки фильтра можно использовать универсальную строку поиска. С помощью знаков операций можно построить выражение для поиска. Подробнее см. подсказку <b>"?"</b>. </li>
|
||||
<li>Если выделить несколько ячеек, можно воспользоваться расчетом показателей, в этом случае в данной строке появляется результат.</li></ul><h3>Расчетные показатели</h3></div>
|
||||
<div>
|
||||
<ul><li>С помощью кнопки <img src="CommonPicture.Сумма"></img> можно открыть выпадающее меню расчетных показателей для выделенных ячеек (выбранный показатель отображается на кнопке): количество, среднее арифметическое выделенных ячеек, минимум и максимум, значение выводится в универсальной строке поиска.</li>
|
||||
<h3>Расчетные показатели и строка фильтра</h3></div>
|
||||
<div>
|
||||
<ul><li>Справа в шапке отчета выводится строка фильтра и автосуммы (расчетных показателей).</li>
|
||||
<li>С помощью строки фильтра можно добавлять новые фильтры по точному значению или фрагменту значения любого из полей, выведенных в отчет. Например, для того чтобы быстро установить фильтр по значению <b>Розничный склад</b>, достаточно ввести в эту строку фрагмент <b>"роз"</b> и программа сама предложит варианты фильтров. Кроме того, можно добавлять фильтры с условиями, например, <b>Остатки > 500</b>. С помощью знаков операций можно построить выражение для поиска.</li>
|
||||
<li>Если выделить несколько ячеек, можно воспользоваться расчетом показателей, в этом случае в данной строке появляется результат.</li>
|
||||
<li>Перед строкой фильтра предусмотрена кнопка <img src="CommonPicture.Сумма"></img> с выпадающим подменю для выбора основного вида расчетного показателя для выделенных ячеек:</li>
|
||||
<ul><li>С помощью кнопки <img src="CommonPicture.Сумма"></img> можно открыть выпадающее меню расчетных показателей для выделенных ячеек (выбранный показатель отображается на кнопке): <b>Сумма, Количество, Среднее арифметическое выделенных ячеек, Минимум и Максимум</b>, значение выводится в универсальной строке поиска.</li>
|
||||
<li>Если включить <b>Все показатели</b>, то в нижней части варианта отчета показывается строка, в которой выводятся показатели.</li>
|
||||
<li>При вычислении показателей выполняется преобразование текстовых строк в выбранных ячейках в числа. Преобразование происходит в соответствии с региональными настройками. При этом если форматирование числовых полей было перенастроено так, что представление числа перестает им соответствовать, то показатели не вычисляются.</li></ul></div>
|
||||
<li>При вычислении показателей выполняется преобразование текстовых строк в выбранных ячейках в числа. Преобразование происходит в соответствии с региональными настройками. При этом если форматирование числовых полей было перенастроено так, что представление числа перестает им соответствовать, то показатели не вычисляются.</li></ul></ul></div>
|
||||
<h3>Варианты отчета</h3>
|
||||
<ul><li>В программе может быть предусмотрено несколько <a href="Catalog.ВариантыОтчетов/Help">вариантов отчетов</a>, выполняющих схожий анализ. Для их просмотра предусмотрена кнопка <img src="CommonPicture.ВыбратьВариантОтчета"></img> <strong>Варианты отчета</strong>.
|
||||
<ul><li>Выберите из выпадающего списка нужный вариант отчета. Текущий <a href="Catalog.ВариантыОтчетов.Form.ФормаЭлемента/Help">вариант отчета</a> отмечен флажком.
|
||||
@@ -31,7 +50,7 @@
|
||||
<h3>Загрузка варианта отчета из файла</h3>
|
||||
<div>
|
||||
<ul><li>Нажмите <b>Еще - Варианты отчета - Обновить из файла</b> для загрузки варианта отчета, сохраненного вместе с пользовательскими настройками в архивный файл на компьютере. Укажите путь к архиву с вариантом отчета.</li>
|
||||
<li>Данная возможность предназначена для обмена настройками вариантов отчетов между информационными базами идентичной структуры.</li></ul><h3>Настройки отчета из контекстного меню</h3>
|
||||
<li>Данная возможность предназначена для обмена настройками вариантов отчетов между информационными базами идентичной структуры.</li></ul><h3>Контекстное меню</h3>
|
||||
<div>
|
||||
<ul><li>С помощью команд контекстного меню ячейки по правой кнопке мыши можно быстро изменить вид отчета, настроить фильтры, сортировки:
|
||||
<ul><li>изменить уровни группировок отчета;</li>
|
||||
@@ -39,20 +58,33 @@
|
||||
<li>С помощью команды <strong>Фильтровать</strong> можно быстро установить отбор по текущему значению, используя предлагаемые команды сравнения. </li>
|
||||
<ul><li>С помощью команды <b>Еще</b> можно получить дополнительные возможности по настройке фильтра. </li>
|
||||
<li>С помощью команды <b>Больше возможностей</b> можно перейти к расширенным <a href="CommonForm.ФормаНастроекОтчета/Help">настройкам</a> отборов отчета.</li></ul><li><b>Сортировать</b> - по возрастанию или убыванию; </li>
|
||||
<li>Отсортированная колонка обозначается значком.</li>
|
||||
<li><b>Оформить</b> - быстро изменить цвет выделенных ячеек, высоту и ширину колонки;</li>
|
||||
<ul><li>По команде <b>Еще</b> можно перейти к более сложному <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ЭлементУсловногоОформленияОтчета/Help">форматированию</a> для выбранных ячеек.</li></ul><li><b>Расшифровать </b>- переход к выбору полей для расшифровки и формированию отчета.</li></ul></li>
|
||||
<ul><li>По команде <b>Еще</b> можно перейти к более сложному <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ЭлементУсловногоОформленияОтчета/Help">форматированию</a> для выбранных ячеек, при этом некоторые параметры (поле для условного оформления, отбор) заполняются автоматически из контекста.</li>
|
||||
<li>Можно оформить выбранные ячейки цветом, определить высоту строк или ширину колонок. </li>
|
||||
<li>Можно выделить отрицательные или положительные значения цветом.</li></ul><li>По команде <b>Детальные записи</b> можно перейти к расшифровке отчета по детальным записям. В структуре такого отчета имеется только один элемент <b>Детальные записи</b>.</li>
|
||||
<li>С помощью команды контекстного меню по правой кнопке мыши можно выбранную позицию отчета <b>Расшифровать по детальным записям</b>.</li>
|
||||
<li><b>Расшифровать </b>- переход к выбору полей для расшифровки и формированию отчета.</li></ul></li>
|
||||
<li>Контекстное меню шапки отчета содержит полезные команды:</li>
|
||||
<ul><li>с помощью меню по левой кнопке мыши можно настроить сортировку в выбранном поле, задать фильтры по значению, выбрав из списка.</li>
|
||||
<ul><li>По команде <b>Еще</b> можно перейти к настройке поля, вставить в шапку дополнительные поля, выбрав их из списка, оформить поле, скрыть или переименовать.</li></ul><li>С помощью меню по правой кнопке мыши можно оформить поля, настроить отборы и сортировки. </li>
|
||||
<ul><li>По команде <b>Еще</b> можно открыть дополнительные возможности оформления поля.</li></ul></ul></ul></div></div>
|
||||
<ul><li>По команде <b>Еще</b> можно открыть дополнительные возможности оформления поля, можно настроить условное оформление поля.</li></ul></ul></ul></div></div>
|
||||
<h3><a name="#1">Настройки</a></h3>
|
||||
<ul style="MARGIN-RIGHT: 0px" dir="ltr"><li>По кнопке <strong>Настройки</strong> можно перейти к <a href="CommonForm.ФормаНастроекОтчета/Help">настройке</a> параметров отчета. Часть настроек (отборы) иногда выведены в шапку отчета.
|
||||
<ul style="MARGIN-RIGHT: 0px" dir="ltr"><li>Значения настроек отчета автоматически сохраняются при закрытии отчета и восстанавливаются при следующем открытии отчета.</li>
|
||||
<li>По кнопке <strong>Настройки</strong> можно перейти к <a href="CommonForm.ФормаНастроекОтчета/Help">настройке</a> параметров отчета. Часть настроек (отборы) иногда выведены в шапку отчета.
|
||||
</li>
|
||||
<li>В форме настройки отчета, в расширенном режиме, теперь можно добавлять отборы не только с помощью выбора полей из списка, но и вводом по первым буквам.</li>
|
||||
<li>Нажмите <strong>Еще - Стандартные настройки</strong>, для того чтобы вернуться к настройкам по умолчанию.
|
||||
</li>
|
||||
<li>Нажмите <strong>Еще - Персональные настройки - Сохранить настройки</strong>, для того чтобы записать текущие настройки отчета. Напишите имя настроек для сохранения.</li>
|
||||
<li>Нажмите <strong>Еще - Персональные настройки - Выбрать настройки</strong>, для того чтобы воспользоваться ранее сохраненными настройками отчета. В списке можно посмотреть также настройки отчета, переданные другими пользователями.</li>
|
||||
<li>Нажмите <b>Еще - Персональные настройки - Поделиться настройками</b>, для того чтобы передать текущие настройки отчета другим пользователям. Настройки передаются и без предварительного сохранения. В открывшемся списке выберите пользователей или группы пользователей, нажмите <b>Поделиться</b>. Если все в порядке, через некоторое время программа выводит сообщение об успешной передаче настроек.</li></ul><p></p>
|
||||
<li>Нажмите <b>Еще - Персональные настройки - Поделиться настройками</b>, для того чтобы передать текущие настройки отчета другим пользователям. Настройки передаются и без предварительного сохранения. В открывшемся списке выберите пользователей или группы пользователей, нажмите <b>Поделиться</b>. Если все в порядке, через некоторое время программа выводит сообщение об успешной передаче настроек.</li></ul><h3>Отмена и повтор действий</h3></div>
|
||||
<div>
|
||||
<ul><li>В командной панели отчета размещены кнопки <img src="CommonPicture.ОтменитьДействие"></img>отмены и <img src="CommonPicture.ПовторитьДействие"></img>повтора действий.</li>
|
||||
<li>При активной настройке отчета с их помощью удобно отменять одно или несколько последних настроечных действий, выполненных из контекстного меню или в форме настроек: добавление фильтров, группировок, перемещение колонок, изменение сортировки и т.п. </li>
|
||||
<li>Также можно сбросить до стандартных настроек. </li></ul></div>
|
||||
<div>
|
||||
<p></p>
|
||||
<h3 dir="ltr">Печать отчета </h3>
|
||||
<ul dir="ltr"><li>Сформированный отчет можно распечатать, нажав кнопку <img src="StdPicture.Print" width="16" height="16"></img> <strong>Печать</strong>.
|
||||
</li>
|
||||
@@ -79,10 +111,19 @@
|
||||
<div><strong>Включить в существующую рассылку отчетов</strong>. Для этого из <a href="Catalog.РассылкиОтчетов/Help">списка рассылок</a> выберите нужную.</div></li></ul><h3>Выбор варианта отчета</h3>
|
||||
<ul><li>Для загрузки ранее сохраненного варианта отчета воспользуйтесь командой <strong>Еще - Варианты отчета - Выбрать</strong>.
|
||||
<ul><li>в <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ВыборВариантаОтчета/Help">списке вариантов отчета</a> нажмите кнопку <strong>Выбрать</strong> для перехода к нужному варианту отчета.</li></ul></li></ul><h3>Сброс настроек</h3>
|
||||
<ul><li>Нажмите <strong>Еще - Стандартные настройки</strong>, для того чтобы сбросить пользовательские настройки.</li></ul><h3>Другие доступные действия</h3>
|
||||
<ul><li>Нажмите <strong>Еще - Стандартные настройки</strong>, для того чтобы сбросить пользовательские настройки.</li></ul><h3>Редактирование таблицы отчета</h3>
|
||||
<div>
|
||||
<ul><li>С помощью команд меню <b>Еще - Таблица</b> можно изменить таблицу отчета и вид отчета:</li>
|
||||
<li><b>Зафиксировать таблицу</b>;</li>
|
||||
<li><b>Отображать группы</b> - включить или выключить группы;</li>
|
||||
<li><b>Редактирование</b> - начать или закончить редактирование.</li>
|
||||
<li>В некоторых отчетах может быть предусмотрена кнопка <img src="CommonPicture.РедактироватьМакет"></img> <b>Изменить табличный документ</b>, которая позволяет отредактировать таблицу отчета как табличный документ - изменить форматы ячеек и внешний вид. Можно изменить цвет, шрифт, оформление всего отчета, но информацию отчета изменить уже нельзя.</li>
|
||||
<li>С помощью кнопки <b>Записать и закрыть</b> можно сохранить табличный документ на компьютер. Напишите адрес для сохранения файла.</li></ul><h3>Изменение варианта отчета</h3></div>
|
||||
<div>
|
||||
<ul><li>При работе с отчетом можно перейти к изменению данного варианта отчета. Для этого в <a href="CommonForm.ФормаНастроекОтчета/Help">настройках отчета</a> выполните команду <b>Настройки для технического специалиста</b> меню <b>Еще</b>.</li></ul></div>
|
||||
<h3>Другие доступные действия</h3>
|
||||
<ul><li>Для <a href="v8help://moxelui/form_finddialog">поиска в отчете</a> воспользуйтесь командой <strong>Найти</strong>.
|
||||
</li>
|
||||
<li>С помощью кнопок <img src="StdPicture.CollapseAll"></img> <strong>Свернуть все группы</strong> или <img src="StdPicture.ExpandAll"></img> <strong>Развернуть все группы</strong> можно скрыть или показать группировку отчета.
|
||||
</li>
|
||||
<li>С помощью кнопки <b>Разворачивать до</b> можно выбрать уровень группировки отчета.</li>
|
||||
<li>Для сохранения результата отчета в файл нажмите <b>Ctrl+S</b>, укажите наименование файла и путь для сохранения.</li></ul></div></body></html>
|
||||
<li>С помощью кнопки <b>Разворачивать до</b> можно выбрать уровень группировки отчета. Если отчет сложный, состоит из нескольких разделов, например из таблицы, диаграммы и двух списков, то уровни группировок нумеруются.</li></ul></div></div></body></html>
|
||||
@@ -184,20 +184,16 @@
|
||||
Если ИмяПодчиненнойФормы = "ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.НастройкиОтчета"
|
||||
Или ПодчиненнаяФорма.ОписаниеОповещенияОЗакрытии <> Неопределено Тогда
|
||||
|
||||
РезультатОбработан = Истина; // См. ВсеНастройкиЗавершение.
|
||||
РезультатОбработан = Истина; // См. ПрименитьНастройкиИПереформироватьОтчет.
|
||||
|
||||
ИначеЕсли ТипЗнч(Результат) = Тип("Структура") Тогда
|
||||
|
||||
ПозицияТочки = СтрДлина(ИмяПодчиненнойФормы);
|
||||
Пока КодСимвола(ИмяПодчиненнойФормы, ПозицияТочки) <> 46 Цикл // Не точка.
|
||||
ПозицияТочки = ПозицияТочки - 1;
|
||||
КонецЦикла;
|
||||
|
||||
СуффиксФормыИсточника = ВРег(Сред(ИмяПодчиненнойФормы, ПозицияТочки + 1));
|
||||
Если СуффиксФормыИсточника = ВРег("ФормаНастроекОтчета")
|
||||
Или СуффиксФормыИсточника = ВРег("ФормаНастроек")
|
||||
Или СуффиксФормыИсточника = ВРег("ФормаВариантаОтчета")
|
||||
Или СуффиксФормыИсточника = ВРег("ФормаВарианта") Тогда
|
||||
ЧастиИмениФормы = СтрРазделить(ИмяПодчиненнойФормы, ".");
|
||||
ИмяФормыИсточника = ВРег(ЧастиИмениФормы[ЧастиИмениФормы.Количество() - 1]);
|
||||
Если ИмяФормыИсточника = ВРег("ФормаНастроекОтчета")
|
||||
Или ИмяФормыИсточника = ВРег("ФормаНастроек")
|
||||
Или ИмяФормыИсточника = ВРег("ФормаВариантаОтчета")
|
||||
Или ИмяФормыИсточника = ВРег("ФормаВарианта") Тогда
|
||||
|
||||
ОбновитьЭлементыФормыНастроек(Результат);
|
||||
РезультатОбработан = Истина;
|
||||
@@ -718,7 +714,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВсеНастройкиЗавершение(Результат, ПараметрыВыполнения) Экспорт
|
||||
Процедура ПрименитьНастройкиИПереформироватьОтчет(Результат, ПараметрыВыполнения) Экспорт
|
||||
Если ТипЗнч(Результат) <> Тип("Структура") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -1210,7 +1206,7 @@
|
||||
НайденныеЗаписи = СтекНастроек.НайтиСтроки(Новый Структура("Порядок", Порядок));
|
||||
ТекущиеНастройкиСтека = НайденныеЗаписи[0];
|
||||
|
||||
Результат = ВариантыОтчетовСлужебныйКлиент.СтандартныйРезультатНастройкиИзКонтекстногоМеню(
|
||||
Результат = ВариантыОтчетовСлужебныйКлиент.РезультатКонтекстнойНастройки(
|
||||
Отчет.КомпоновщикНастроек, ТекущиеНастройкиСтека.Действие, УникальныйИдентификатор);
|
||||
|
||||
Результат.Вставить("НастройкиКД", ТекущиеНастройкиСтека.Настройки);
|
||||
@@ -1221,7 +1217,7 @@
|
||||
ВариантыОтчетовСлужебныйКлиент.СброситьПометкиСтекаНастроек(СтекНастроек);
|
||||
ТекущиеНастройкиСтека.Пометка = Истина;
|
||||
|
||||
ВсеНастройкиЗавершение(Результат, Неопределено);
|
||||
ПрименитьНастройкиИПереформироватьОтчет(Результат, Неопределено);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -2014,8 +2010,7 @@
|
||||
ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета);
|
||||
ПараметрыФормы.Вставить("ВариантНаименование", Строка(ОтчетНаименованиеТекущегоВарианта));
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ВсеНастройкиЗавершение", ЭтотОбъект);
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ПрименитьНастройкиИПереформироватьОтчет", ЭтотОбъект);
|
||||
ОткрытьФорму(НастройкиОтчета.ПолноеИмя + ".ФормаНастроек", ПараметрыФормы, ЭтотОбъект,,,, Обработчик);
|
||||
|
||||
Если ВыполнятьЗамеры Тогда
|
||||
@@ -3757,6 +3752,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Элементы.КомандыПанелиБыстрыхНастроек.Видимость = (КоличествоДоступныхНастроек.БыстрогоДоступа > 0);
|
||||
Элементы.ИзменитьСоставБыстрыхНастроекЕще.Видимость = Элементы.КомандыПанелиБыстрыхНастроек.Видимость;
|
||||
КонецЕсли;
|
||||
|
||||
// Команды выбора вариантов.
|
||||
@@ -4634,8 +4630,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
УточнитьПризнакАвтоформированияОтчета(Результат);
|
||||
|
||||
ВсеНастройкиЗавершение(Результат, Неопределено);
|
||||
ПрименитьНастройкиИПереформироватьОтчет(Результат, Неопределено);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -4928,11 +4923,11 @@
|
||||
&НаКлиенте
|
||||
Процедура УточнитьПризнакАвтоформированияОтчета(ПараметрыОбновления)
|
||||
|
||||
ДопустимоеВремяДляАвтоформированияОтчетаВСек = 5;
|
||||
ВремяФормированияОтчетаВСек = НастройкиОтчета.СвойстваРезультата.ВремяФормирования;
|
||||
Переформировать = (ВремяФормированияОтчетаВСек <= ДопустимоеВремяДляАвтоформированияОтчетаВСек);
|
||||
|
||||
ПараметрыОбновления.Вставить("Переформировать", Переформировать);
|
||||
Если Не ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыОбновления, "Переформировать", Ложь) Тогда
|
||||
ДопустимоеВремяДляАвтоформированияОтчета = 5; // секунд
|
||||
ВремяФормированияОтчета = НастройкиОтчета.СвойстваРезультата.ВремяФормирования;
|
||||
ПараметрыОбновления.Вставить("Переформировать", ВремяФормированияОтчета <= ДопустимоеВремяДляАвтоформированияОтчета);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -113,6 +113,12 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ИмяКонстантыАРМБазовойФункциональности() Экспорт
|
||||
|
||||
Возврат "СтандартныеПодсистемыВАвтономномРежиме";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыключитьСвойствоИБ() Экспорт
|
||||
|
||||
ЭтоАвтономноеРабочееМесто = Константы.ЭтоАвтономноеРабочееМесто.СоздатьМенеджерЗначения();
|
||||
@@ -125,6 +131,17 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИмяКонстанты = ИмяКонстантыАРМБазовойФункциональности();
|
||||
Если Метаданные.Константы.Найти(ИмяКонстанты) <> Неопределено Тогда
|
||||
|
||||
Если Константы[ИмяКонстанты].Получить() = Истина Тогда
|
||||
|
||||
Константы[ИмяКонстанты].Установить(Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для вызова из формы восстановления связи с главным узлом
|
||||
@@ -132,7 +149,13 @@
|
||||
//
|
||||
Процедура ПриПодтвержденииОтключенияСвязиСГлавнымУзлом() Экспорт
|
||||
|
||||
Если НЕ Константы.ЭтоАвтономноеРабочееМесто.Получить() Тогда
|
||||
ИмяКонстанты = ИмяКонстантыАРМБазовойФункциональности();
|
||||
ЕстьКонстантаБазовойФункциональности = (Метаданные.Константы.Найти(ИмяКонстанты) <> Неопределено);
|
||||
|
||||
Если Константы.ЭтоАвтономноеРабочееМесто.Получить() = Ложь
|
||||
И
|
||||
(ЕстьКонстантаБазовойФункциональности
|
||||
И Константы[ИмяКонстанты].Получить() = ЛОЖЬ) Тогда
|
||||
|
||||
Возврат;
|
||||
|
||||
|
||||
@@ -1017,6 +1017,13 @@
|
||||
Константы.ЭтоАвтономноеРабочееМесто.Установить(Истина);
|
||||
Константы.ИспользоватьРазделениеПоОбластямДанных.Установить(Ложь);
|
||||
|
||||
ИмяКонстанты = АвтономнаяРабота.ИмяКонстантыАРМБазовойФункциональности();
|
||||
Если Метаданные.Константы.Найти(ИмяКонстанты) <> Неопределено Тогда
|
||||
|
||||
Константы[ИмяКонстанты].Установить(Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Константа влияет на открытие помощника по настройке автономного рабочего места.
|
||||
Константы.НастройкаПодчиненногоУзлаРИБЗавершена.Установить(Истина);
|
||||
|
||||
|
||||
@@ -337,7 +337,7 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - форма выполнения задачи, где:
|
||||
// * Объект - ЗадачаОбъект - задача объект.
|
||||
// * Объект - ЗадачаОбъект - задача объекта.
|
||||
// ИмяСобытия - Строка - имя события.
|
||||
// Параметр - Произвольный - параметр события.
|
||||
// Источник - Произвольный - источник события.
|
||||
|
||||
@@ -3174,16 +3174,9 @@
|
||||
ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(),
|
||||
"ПанельОтчетов");
|
||||
Если ОбщиеНастройки = Неопределено Тогда
|
||||
ОбщиеНастройки = Новый Структура("ПоказыватьПодсказки, ИскатьВоВсехРазделах, ПоказатьОповещениеОПодсказках");
|
||||
ОбщиеНастройки.ПоказатьОповещениеОПодсказках = Ложь;
|
||||
ОбщиеНастройки = Новый Структура("ПоказыватьПодсказки, ИскатьВоВсехРазделах");
|
||||
ОбщиеНастройки.ПоказыватьПодсказки = ГлобальныеНастройки().ВыводитьОписания;
|
||||
ОбщиеНастройки.ИскатьВоВсехРазделах = Ложь;
|
||||
Иначе
|
||||
// Возможность можно считать новой для пользователя только в том случае,
|
||||
// если у пользователя есть понимание что такое "старые" возможности (т.е. если он уже работал с этой формой).
|
||||
Если Не ОбщиеНастройки.Свойство("ПоказатьОповещениеОПодсказках") Тогда
|
||||
ОбщиеНастройки.Вставить("ПоказатьОповещениеОПодсказках", Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Возврат ОбщиеНастройки;
|
||||
КонецФункции
|
||||
@@ -3193,9 +3186,6 @@
|
||||
Если ТипЗнч(ОбщиеНастройки) <> Тип("Структура") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
Если ОбщиеНастройки.Количество() < 3 Тогда
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ОбщиеНастройки, ОбщиеНастройкиПанели(), Ложь);
|
||||
КонецЕсли;
|
||||
ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(
|
||||
ВариантыОтчетовКлиентСервер.ПолноеИмяПодсистемы(),
|
||||
"ПанельОтчетов",
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
ПараметрыФормы.Вставить("КэшЗначенийОтборов", КэшЗначенийОтборов);
|
||||
|
||||
ОткрытьФорму(
|
||||
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.КонтекстнаяНастройкаОтчета",
|
||||
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.НастройкаПоля",
|
||||
ПараметрыФормы,
|
||||
Форма,
|
||||
Форма.УникальныйИдентификатор);
|
||||
@@ -609,7 +609,7 @@
|
||||
ПараметрыФормы.Вставить("Ячейка", Ячейка);
|
||||
|
||||
ОткрытьФорму(
|
||||
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.РасширеннаяНастройкаФильтраОтчета",
|
||||
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.ФильтроватьПоПолю",
|
||||
ПараметрыФормы,
|
||||
Форма,
|
||||
Форма.УникальныйИдентификатор);
|
||||
@@ -3397,7 +3397,7 @@
|
||||
|
||||
ИдентификаторВладельца = ?(ЭтоФормОтчета, Форма.УникальныйИдентификатор, Форма.ВладелецФормы.УникальныйИдентификатор);
|
||||
|
||||
Результат = СтандартныйРезультатНастройкиИзКонтекстногоМеню(КомпоновщикНастроек, Действие, ИдентификаторВладельца);
|
||||
Результат = РезультатКонтекстнойНастройки(КомпоновщикНастроек, Действие, ИдентификаторВладельца);
|
||||
|
||||
Если ЭтоФормОтчета Тогда
|
||||
Оповестить(Действие, Результат, ЭтотОбъект);
|
||||
@@ -3422,14 +3422,13 @@
|
||||
// * ПользовательскиеНастройкиМодифицированы - Булево
|
||||
// * СброситьПользовательскиеНастройки - Булево
|
||||
//
|
||||
Функция СтандартныйРезультатНастройкиИзКонтекстногоМеню(КомпоновщикНастроек, Действие, ИдентификаторВладельца) Экспорт
|
||||
Функция РезультатКонтекстнойНастройки(КомпоновщикНастроек, Действие, ИдентификаторВладельца) Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("КомпоновщикНастроекКД", КомпоновщикНастроек);
|
||||
Результат.Вставить("Действие", Действие);
|
||||
Результат.Вставить("ИдентификаторВладельца", ИдентификаторВладельца);
|
||||
Результат.Вставить("Переформировать", СтрЗаканчиваетсяНа(Действие, "Сформировать"));
|
||||
Результат.Вставить("УчитыватьВремяФормирования", Истина);
|
||||
Результат.Вставить("Переформировать", Ложь);
|
||||
Результат.Вставить("ВариантМодифицирован", Истина);
|
||||
Результат.Вставить("ПользовательскиеНастройкиМодифицированы", Истина);
|
||||
Результат.Вставить("СброситьПользовательскиеНастройки", Истина);
|
||||
|
||||
@@ -366,10 +366,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыШтрихкода.ТипКода = 16 Тогда // QR
|
||||
Если ПараметрыШтрихкода.Свойство("ЛоготипКартинка") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипКартинка) Тогда
|
||||
Если ПараметрыШтрихкода.Свойство("ЛоготипКартинка") И ЗначениеЗаполнено(ПараметрыШтрихкода.ЛоготипКартинка) Тогда
|
||||
ВнешняяКомпонента.ЛоготипКартинка = ПараметрыШтрихкода.ЛоготипКартинка;
|
||||
Иначе
|
||||
ВнешняяКомпонента.ЛоготипКартинка = "";
|
||||
КонецЕсли;
|
||||
Если ПараметрыШтрихкода.Свойство("ЛоготипРазмерПроцентОтШК") И Не ПустаяСтрока(ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК) Тогда
|
||||
Если ПараметрыШтрихкода.Свойство("ЛоготипРазмерПроцентОтШК") И Не ПустаяСтрока(
|
||||
ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК) Тогда
|
||||
ВнешняяКомпонента.ЛоготипРазмерПроцентОтШК = ПараметрыШтрихкода.ЛоготипРазмерПроцентОтШК;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1646,7 +1646,11 @@
|
||||
Поток.ПараметрыМетода = ПараметрыПотока;
|
||||
Поток.КлючПотока = КлючПотока;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
НаборЗаписей = РегистрыСведений.ДлительныеОперации.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(Поток.ИдентификаторПотока);
|
||||
НаборЗаписей.Прочитать();
|
||||
Запись = НаборЗаписей.Добавить();
|
||||
|
||||
ЗаполнитьЗначенияСвойств(Запись, Поток, , "ИдентификаторПотока,ПараметрыМетода,КлючПотока");
|
||||
@@ -1656,6 +1660,8 @@
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
@@ -1717,13 +1723,13 @@
|
||||
|
||||
Пока Потоки.Количество() >= МаксимумПотоков Цикл
|
||||
|
||||
ЕстьЗавершеныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
|
||||
Если ЗавершитьДосрочноЕслиОшибка И ЕстьЗавершеныеПотоки = Неопределено Тогда
|
||||
Если ЗавершитьДосрочноЕслиОшибка И ЕстьЗавершенныеПотоки = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьЗавершеныеПотоки Тогда
|
||||
Если ЕстьЗавершенныеПотоки Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1760,14 +1766,14 @@
|
||||
Потоки = ПотокиДлительныхОпераций(ИдентификаторФормы);
|
||||
|
||||
Пока Потоки.Количество() > 0 Цикл
|
||||
ЕстьЗавершеныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
ЕстьЗавершенныеПотоки = ЕстьЗавершенныеПотоки(Потоки, Результаты, ЗавершитьДосрочноЕслиОшибка);
|
||||
|
||||
Если ЕстьЗавершеныеПотоки = Неопределено Тогда
|
||||
Если ЕстьЗавершенныеПотоки = Неопределено Тогда
|
||||
ОтменитьВыполнениеВсехПотоков(Результаты, ИдентификаторФормы);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЕстьЗавершеныеПотоки Тогда
|
||||
Если Не ЕстьЗавершенныеПотоки Тогда
|
||||
ОжидатьЗавершениеПотока(Потоки[0]);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1936,6 +1942,8 @@
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
НаборЗаписей = РегистрыСведений.ДлительныеОперации.СоздатьНаборЗаписей();
|
||||
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(Идентификатор);
|
||||
@@ -1954,6 +1962,8 @@
|
||||
|
||||
НаборЗаписей.Записать();
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
@@ -1965,6 +1975,8 @@
|
||||
|
||||
Процедура УдалитьПоток(ИдентификаторПотока)
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
НаборЗаписей = РегистрыСведений.ДлительныеОперации.СоздатьНаборЗаписей();
|
||||
НаборЗаписей.Отбор.ИдентификаторПотока.Установить(ИдентификаторПотока);
|
||||
НаборЗаписей.Записать();
|
||||
@@ -1983,14 +1995,29 @@
|
||||
Возврат 1;
|
||||
КонецЕсли;
|
||||
|
||||
ДопустимоеКоличествоПотоков = Константы.КоличествоПотоковДлительныхОпераций.Получить() - 1;
|
||||
ДопустимоеКоличествоПотоков = Константы.КоличествоПотоковДлительныхОпераций.Получить();
|
||||
|
||||
Возврат ?(ДопустимоеКоличествоПотоков < 1, 1, ДопустимоеКоличествоПотоков)
|
||||
Возврат КоличествоПотоковСУчетомУправляющегоПотока(ДопустимоеКоличествоПотоков);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КоличествоПотоковСУчетомУправляющегоПотока(ДопустимоеКоличествоПотоков)
|
||||
|
||||
Если ДопустимоеКоличествоПотоков > 1 Тогда
|
||||
Возврат ДопустимоеКоличествоПотоков - 1;
|
||||
ИначеЕсли ДопустимоеКоличествоПотоков = 1 Тогда
|
||||
Возврат ДопустимоеКоличествоПотоков;
|
||||
КонецЕсли;
|
||||
|
||||
// Значение по умолчанию. Управляющий поток + 3 дочерних
|
||||
Возврат 3;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КоличествоРаботающихПотоков()
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
@@ -2033,6 +2060,8 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
Для Каждого Поток Из Результат Цикл
|
||||
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
// Возвращает таблицу, извлеченную из временного хранилища для сопоставления загружаемых данных с данными в программе.
|
||||
// Список колонок извлекаемой таблицы динамический и формируется на основе макета загружаемых данных.
|
||||
// В возвращаемом значении описана только служебная колонка, которая присутствуют всегда.
|
||||
// В возвращаемом значении описана только служебная колонка, которая присутствует всегда.
|
||||
//
|
||||
// Параметры:
|
||||
// АдресРезультата - Строка - адрес во временном хранилища
|
||||
|
||||
@@ -1588,6 +1588,8 @@
|
||||
МодульИнтеграцияПодсистемБИП.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии);
|
||||
КонецЕсли;
|
||||
|
||||
ПользователиСлужебный.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(ПоддерживаемыеВерсии);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске.
|
||||
|
||||
@@ -242,6 +242,21 @@
|
||||
//
|
||||
Процедура ПриПолученииДоступныхРасширенийФормата(РасширенияФормата) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается в событии ПриЗаписи константы ЭтоАвтономноеРабочееМесто.
|
||||
// Позволяет переопределить стандартную обработку при измении значения.
|
||||
//
|
||||
// Параметры:
|
||||
// ПредыдущееЗначение - Булево - значение константы ЭтоАвтономноеРабочееМесто до изменения.
|
||||
// НовоеТекущее - Булево - записываемое значение константы ЭтоАвтономноеРабочееМесто до изменения.
|
||||
// СтандартнаяОбработка - Булево - отключение стандартного поведения системы при записи константы
|
||||
// (значение по-умолчанию Истина).
|
||||
//
|
||||
Процедура ПриИзмененииОпцииАвтономногоРежимаРаботы(ПредыдущееЗначение, НовоеТекущее, СтандартнаяОбработка) Экспорт
|
||||
|
||||
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4789,7 +4789,7 @@
|
||||
// - РегистрНакопленияМенеджер
|
||||
// - РегистрРасчетаМенеджер
|
||||
// - РегистрБухгалтерииМенеджер - менеджер для создания наборов.
|
||||
// Размер - Число - начальное количество хранилища переиспользуемых наборов.
|
||||
// Размер - Число
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.6.100";
|
||||
Описание.Версия = "3.1.6.118";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -1896,11 +1896,17 @@
|
||||
|
||||
Если ПредопределенныеДанные.Колонки.Найти("Ссылка") <> Неопределено Тогда
|
||||
Для Каждого СтрокаПредопределенныхДанных Из ПредопределенныеДанные Цикл
|
||||
|
||||
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
|
||||
Если ТипЗнч(СтрокаПредопределенныхДанных.Ссылка) = Тип("УникальныйИдентификатор") Тогда
|
||||
СтрокаПредопределенныхДанных.Ссылка = МенеджерОбъекта.ПолучитьСсылку(СтрокаПредопределенныхДанных.Ссылка);
|
||||
ИначеЕсли ТипЗнч(СтрокаПредопределенныхДанных.Ссылка) = Тип("Строка") Тогда
|
||||
СтрокаПредопределенныхДанных.Ссылка = МенеджерОбъекта.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаПредопределенныхДанных.Ссылка));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1922,8 +1928,17 @@
|
||||
МодульМультиязычностьСервер.ПриПолученииПараметровЗаполненияПредопределенныхДанных(ПараметрыЗаполнения);
|
||||
КонецЕсли;
|
||||
|
||||
ПроверятьНеобходимостьВыполнения = ДополнительныеПараметры <> Неопределено
|
||||
И ТипЗнч(ДополнительныеПараметры) = Тип("Структура")
|
||||
И ДополнительныеПараметры.Свойство("НовыеОбъекты");
|
||||
|
||||
Для Каждого МетаданныеОбъекта Из ОбъектыСНачальнымЗаполнением Цикл
|
||||
|
||||
Если ПроверятьНеобходимостьВыполнения
|
||||
И ДополнительныеПараметры.НовыеОбъекты.Найти(МетаданныеОбъекта.ПолноеИмя()) = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗаполнения = НаборПараметровДляЗаполненияОбъекта(МетаданныеОбъекта);
|
||||
|
||||
МенеджерОбъекта = ПараметрыЗаполнения.МенеджерОбъекта;
|
||||
@@ -2905,6 +2920,12 @@
|
||||
|
||||
ВсеНовыеПодсистемы = СведенияОбОбновленииИнформационнойБазы().ВсеНовыеПодсистемы;
|
||||
|
||||
// Добавление обработчика заполнения предопределенных данных.
|
||||
ОбработчикПерехода = ОбработчикиПерехода.Добавить();
|
||||
ОбработчикПерехода.ПредыдущееИмяКонфигурации = "*";
|
||||
ОбработчикПерехода.ОбщиеДанные = Ложь;
|
||||
ОбработчикПерехода.Процедура = ОбработчикНачальногоЗаполненияПредопределенных();
|
||||
|
||||
НовыеОбъектыМетаданных = Новый Массив;
|
||||
Для Каждого Подсистема Из ВсеНовыеПодсистемы Цикл
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Подсистема);
|
||||
@@ -2966,10 +2987,14 @@
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Отбор.Вставить("ОбщиеДанные", Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных());
|
||||
КонецЕсли;
|
||||
Результат = ОбработчикиПерехода.НайтиСтроки(Отбор);
|
||||
ВыбранныеОбработчики = ОбработчикиПерехода.НайтиСтроки(Отбор);
|
||||
|
||||
Отбор.ПредыдущееИмяКонфигурации = ПредыдущееИмяКонфигурации;
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Результат, ОбработчикиПерехода.НайтиСтроки(Отбор), Истина);
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ВыбранныеОбработчики, ОбработчикиПерехода.НайтиСтроки(Отбор), Истина);
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("Обработчики", ВыбранныеОбработчики);
|
||||
Результат.Вставить("НовыеОбъекты", НовыеОбъектыМетаданных);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -3045,7 +3070,9 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Обработчики = ОбработчикиПереходаСДругойПрограммы(ПредыдущееИмяКонфигурации, ИтерацииОбновления);
|
||||
ОбработчикиИНовыеОбъекты = ОбработчикиПереходаСДругойПрограммы(ПредыдущееИмяКонфигурации, ИтерацииОбновления);
|
||||
Обработчики = ОбработчикиИНовыеОбъекты.Обработчики;
|
||||
НовыеОбъекты = ОбработчикиИНовыеОбъекты.НовыеОбъекты;
|
||||
|
||||
ПодсистемаСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом");
|
||||
// Выполняем все обработчики перехода.
|
||||
@@ -3054,7 +3081,16 @@
|
||||
ТранзакцияАктивнаНаНачалоВыполнения = ТранзакцияАктивна();
|
||||
ОтключитьОбновлениеКлючейДоступа(Истина, ПодсистемаСуществует);
|
||||
Попытка
|
||||
// Начальное заполнение предопределенных для новых объектов.
|
||||
Если Обработчик.Процедура = ОбработчикНачальногоЗаполненияПредопределенных() Тогда
|
||||
ПараметрыОбработчика = Новый Массив;
|
||||
ПараметрыОбработчика.Добавить(Ложь);
|
||||
ПараметрыОбработчика.Добавить(Новый Структура("НовыеОбъекты", НовыеОбъекты));
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика);
|
||||
Иначе
|
||||
// Выполнение обработчиков перехода.
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура);
|
||||
КонецЕсли;
|
||||
ОтключитьОбновлениеКлючейДоступа(Ложь, ПодсистемаСуществует);
|
||||
Исключение
|
||||
|
||||
@@ -3123,6 +3159,12 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОбработчикНачальногоЗаполненияПредопределенных()
|
||||
|
||||
Возврат "ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПриЗавершенииПереходаСДругойПрограммы(ПредыдущееИмяКонфигурации, ПредыдущаяВерсияКонфигурации, Параметры)
|
||||
|
||||
ИмяКонфигурации = Метаданные.Имя;
|
||||
@@ -4601,6 +4643,10 @@
|
||||
//
|
||||
Процедура ЗавершитьВыполнениеОтложенногоОбработчика(КонтекстОбработчика, АдресРезультата) Экспорт
|
||||
|
||||
КонтекстОбработчика.Вставить("ПропуститьОтменуТранзакций");
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
ОбработчикОбновления = ОбработчикОбновления(КонтекстОбработчика.ИмяОбработчика);
|
||||
УстановитьСвойствоОбработчика(ОбработчикОбновления.ИмяОбработчика, "ОбработкаПорцииЗавершена", Истина);
|
||||
|
||||
@@ -4620,6 +4666,17 @@
|
||||
|
||||
ЗавершитьВыполнениеОтложенногоОбработчикаОбновления(КонтекстОбработчика);
|
||||
РассчитатьВремяВыполненияПроцедурыОбработчика(КонтекстОбработчика, КонтекстОбработчика.ИмяОбработчика);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонтекстОбработчика.Удалить("ПропуститьОтменуТранзакций");
|
||||
|
||||
Если КонтекстОбработчика.Свойство("ОшибкаПриЗавершенииОбработчика") Тогда
|
||||
ВызватьИсключение КонтекстОбработчика.ОшибкаПриЗавершенииОбработчика;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5047,7 +5104,8 @@
|
||||
Если Не ЗначениеЗаполнено(ИдентификаторЗадания) Или ЗаданиеВыполнено <> Ложь Тогда
|
||||
Выполнять = Не ПустаяСтрока(ОписаниеПотока.ПроцедураЗавершения)
|
||||
И Поток.ПараметрыПроцедурыЗавершения <> Неопределено
|
||||
И (Не ЗначениеЗаполнено(ИдентификаторЗадания) Или ЗаданиеВыполнено = Истина);
|
||||
И (Не ЗначениеЗаполнено(ИдентификаторЗадания) Или ЗаданиеВыполнено = Истина)
|
||||
И Поток.АдресРезультата <> Неопределено;
|
||||
|
||||
Если Выполнять Тогда
|
||||
ПараметрыВызова = Новый Массив;
|
||||
@@ -5057,7 +5115,9 @@
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОписаниеПотока.ПроцедураЗавершения, ПараметрыВызова);
|
||||
КонецЕсли;
|
||||
|
||||
Если Поток.АдресРезультата <> Неопределено Тогда
|
||||
УдалитьИзВременногоХранилища(Поток.АдресРезультата);
|
||||
КонецЕсли;
|
||||
УдалитьПотокОбновления(Поток.ИдентификаторПотока);
|
||||
Потоки.Удалить(Поток);
|
||||
ЕстьЗавершенныеПотоки = Истина;
|
||||
@@ -6371,6 +6431,8 @@
|
||||
// Параметры:
|
||||
// ЗаполняемыйОбъект - СправочникОбъект
|
||||
// - ПланВидовХарактеристикОбъект
|
||||
// - ДанныеФормыСтруктура:
|
||||
// * Ссылка - СправочникСсылка
|
||||
// НастройкиЗаполнения - см. ОбновлениеИнформационнойБазы.НастройкиЗаполнения
|
||||
//
|
||||
Процедура ЗаполнитьОбъектНачальнымиДанными(ЗаполняемыйОбъект, НастройкиЗаполнения) Экспорт
|
||||
@@ -8141,8 +8203,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
ШаблонОшибки = НСтр("ru = 'Не удалось выполнить обработчик обновления ""%1"". Подробнее в журнале регистрации.'");
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
||||
КонтекстОбработчика.ИмяОбработчика);
|
||||
КонтекстОбработчика.Вставить("ОшибкаПриЗавершенииОбработчика", ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -8152,7 +8215,8 @@
|
||||
Для Каждого Параметр Из Параметры Цикл
|
||||
Если Параметр.Ключ <> "ОбработкаЗавершена"
|
||||
И Параметр.Ключ <> "ПрогрессВыполнения"
|
||||
И Параметр.Ключ <> "Очередь" Тогда
|
||||
И Параметр.Ключ <> "Очередь"
|
||||
И Параметр.Ключ <> "ОбновляемыеДанные" Тогда
|
||||
ПереданныеПараметры.Вставить(Параметр.Ключ, Параметр.Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -8908,9 +8972,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
// АПК:325-выкл откат незакрытых транзакций после выполнения обработчика.
|
||||
Если Не КонтекстОбработчика.Свойство("ПропуститьОтменуТранзакций") Тогда
|
||||
Пока ТранзакцияАктивна() Цикл
|
||||
ОтменитьТранзакцию();
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
// АПК:325-вкл
|
||||
|
||||
ДобавляемоеЧислоПопыток = ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Истина);
|
||||
@@ -9118,7 +9184,11 @@
|
||||
Функция ДобавляемоеЧислоПопыток(ОбработчикОбновления, КонтекстОбработчика, Ошибка = Ложь)
|
||||
|
||||
Если ОбработчикОбновления.Многопоточный Тогда
|
||||
Если КонтекстОбработчика.Параметры.Свойство("ОбновляемыеДанные") Тогда
|
||||
ОбновляемыеДанные = КонтекстОбработчика.Параметры.ОбновляемыеДанные;
|
||||
Иначе
|
||||
ОбновляемыеДанные = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
// Проверяется по полям ОбновляемыеДанные.ПерваяЗапись и ОбновляемыеДанные.ПоследняяЗапись, а не по полю
|
||||
// ОбновляемыеДанные.НаборДанных, т.к. оно очищается в ОбработатьФрагментДанныхВПотоке() для экономии памяти.
|
||||
|
||||
@@ -365,6 +365,7 @@
|
||||
|
||||
Для Каждого Патч Из Устанавливаемые Цикл
|
||||
ИмяИсправления = "";
|
||||
Данные = Неопределено;
|
||||
Попытка
|
||||
// Чтение исправления из архива.
|
||||
Если ТипЗнч(Патч) = Тип("Структура") Тогда
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
// Начать подключение системы взаимодействия.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписаниеЗавершения - ОписаниеОповещения - оповещения, которые будет выполнено после закрытия формы подключения
|
||||
// с параметрами:
|
||||
// ОписаниеЗавершения - ОписаниеОповещения - оповещение, которое будет выполнено
|
||||
// после закрытия формы подключения с параметрами:
|
||||
// * Результат - Неопределено
|
||||
// * ДополнительныеПараметры - Неопределено
|
||||
// - Структура.
|
||||
|
||||
@@ -101,9 +101,9 @@
|
||||
// Возвращаемое значение:
|
||||
// Структура - параметры размещения подключаемых команд:
|
||||
// * Источники - ОписаниеТипов
|
||||
// - Массив - источники команд.
|
||||
// - Массив из ОбъектМетаданных - источники команд.
|
||||
// Используется для второстепенных списков, а также в формах объектов, не являющихся поставщиками
|
||||
// команд (обработки, общие формы). В массиве ожидаются элементы типа "ОбъектМетаданных".
|
||||
// команд (обработки, общие формы).
|
||||
// * КоманднаяПанель - ГруппаФормы - командная панель или группа команд, в которой выводятся подменю.
|
||||
// Используется как родитель для создания подменю в случае их отсутствия.
|
||||
// Если не указан то в первую очередь ищется группа "ПодключаемыеКоманды".
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
// Позволяет внести изменения в дерево с разделами полнотекстового поиска, отображаемое при выборе области поиска.
|
||||
// По умолчанию дерево разделов формируется на основании состава подсистем конфигурации.
|
||||
//
|
||||
// Перед добавлением объекта метаданных убедитесь, что его свойство ПолнотекстовыйПоиск
|
||||
// установлено в значение Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать.
|
||||
//
|
||||
// Параметры:
|
||||
// РазделыПоиска - ДеревоЗначений - области поиска. Содержит колонки:
|
||||
// * Раздел - Строка - представление раздела, например, название подсистемы или объекта метаданных.
|
||||
|
||||
@@ -206,6 +206,7 @@
|
||||
|
||||
Если СвойстваПользователяИБ.УказанТекущийПользовательИБ Тогда
|
||||
Для Каждого ИмяРоли Из МассивИменРолей Цикл
|
||||
//@skip-check using-isinrole
|
||||
Если РольДоступна(СокрЛП(ИмяРоли)) Тогда // Не заменять на РолиДоступны.
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
@@ -1899,6 +1900,138 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Сохраняет настройки входа пользователей
|
||||
//
|
||||
// Параметры:
|
||||
// СохраняемыеНастройки - см. Пользователи.НовоеОписаниеНастроекВхода
|
||||
// ДляВнешнихПользователей - Булево - Истина, если записываются настройки внешних пользователей
|
||||
//
|
||||
Процедура УстановитьНастройкиВхода(СохраняемыеНастройки, ДляВнешнихПользователей = Ложь) Экспорт
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
|
||||
Блокировка = Новый БлокировкаДанных();
|
||||
Блокировка.Добавить("Константа.НастройкиВходаПользователей");
|
||||
|
||||
Если Не РазделениеВключено Тогда
|
||||
Блокировка.Добавить("Константа.УдалитьНастройкиВходаПользователей");
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
Попытка
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
Настройки = ПользователиСлужебный.НастройкиВхода();
|
||||
|
||||
Если ДляВнешнихПользователей Тогда
|
||||
НастройкиВхода = Настройки.ВнешниеПользователи;
|
||||
Иначе
|
||||
НастройкиВхода = Настройки.Пользователи;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СохраняемаяНастройка Из СохраняемыеНастройки Цикл
|
||||
|
||||
Если Не НастройкиВхода.Свойство(СохраняемаяНастройка.Ключ)
|
||||
Или ТипЗнч(НастройкиВхода[СохраняемаяНастройка.Ключ]) <> ТипЗнч(СохраняемаяНастройка.Значение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиВхода[СохраняемаяНастройка.Ключ] = СохраняемаяНастройка.Значение;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЗначениеЗаполнено(НастройкиВхода.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода) Тогда
|
||||
НастройкиВхода.ПросрочкаРаботыВПрограммеДатаВключения = Дата(1, 1, 1);
|
||||
ИначеЕсли Не ЗначениеЗаполнено(НастройкиВхода.ПросрочкаРаботыВПрограммеДатаВключения) Тогда
|
||||
НастройкиВхода.ПросрочкаРаботыВПрограммеДатаВключения = НачалоДня(ТекущаяДатаСеанса());
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Константы.НастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(Настройки));
|
||||
|
||||
Если Не РазделениеВключено Тогда
|
||||
|
||||
СохраненныеНастройки = Константы.УдалитьНастройкиВходаПользователей.Получить().Получить();
|
||||
Если СохраненныеНастройки <> Неопределено Тогда
|
||||
Константы.УдалитьНастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(Неопределено));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Настройки.Пользователи.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода)
|
||||
Или ЗначениеЗаполнено(Настройки.ВнешниеПользователи.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода) Тогда
|
||||
|
||||
ПользователиСлужебный.ИзменитьЗаданиеКонтрольАктивностиПользователей(Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
|
||||
ВызватьИсключение;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает структуру настроек входа по умолчанию.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ПарольДолженОтвечатьТребованиямСложности - Булево - должен ли пароль отвечать требованиям сложности:
|
||||
// длина не менее 7 символов;
|
||||
// содержит любые 3 из 4-х типов символов: заглавные буквы,
|
||||
// строчные буквы, цифры, специальные символы;
|
||||
// не совпадает с именем (для входа).
|
||||
// * МинимальнаяДлинаПароля - Число - минимальная длина пароля.
|
||||
// * МаксимальныйСрокДействияПароля - Число - максимальный срок действия пароля.
|
||||
// * МинимальныйСрокДействияПароля - Число - минимальный срок действия пароля.
|
||||
// * ЗапретитьПовторениеПароляСредиПоследних - Число - количество последних паролей,
|
||||
// которые запрещено использовать повторно
|
||||
// * ПросрочкаРаботыВПрограммеДоЗапрещенияВхода - Число - количество дней не активности пользователя,
|
||||
// после чего будет запрещен вход
|
||||
// * ПросрочкаРаботыВПрограммеДатаВключения - Дата - дата включения просрочки работы в программе
|
||||
//
|
||||
Функция НовоеОписаниеНастроекВхода() Экспорт
|
||||
|
||||
Настройки = Новый Структура();
|
||||
// Требования сложности.
|
||||
Настройки.Вставить("ПарольДолженОтвечатьТребованиямСложности", Ложь);
|
||||
Настройки.Вставить("МинимальнаяДлинаПароля", 0);
|
||||
// Требования срока действия.
|
||||
Настройки.Вставить("МаксимальныйСрокДействияПароля", 0);
|
||||
Настройки.Вставить("МинимальныйСрокДействияПароля", 0);
|
||||
Настройки.Вставить("ЗапретитьПовторениеПароляСредиПоследних", 0);
|
||||
// Требование периодической работы в программе.
|
||||
Настройки.Вставить("ПросрочкаРаботыВПрограммеДоЗапрещенияВхода", 0);
|
||||
Настройки.Вставить("ПросрочкаРаботыВПрограммеДатаВключения", '00010101');
|
||||
|
||||
Возврат Настройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет пароль в список используемых,
|
||||
// если в настройках для входа заполнено свойство ЗапретитьПовторениеПароляСредиПоследних
|
||||
//
|
||||
// Параметры:
|
||||
// Пользователь - СправочникСсылка.Пользователи
|
||||
// - СправочникСсылка.ВнешниеПользователи - пользователь для которого добавляется пароль
|
||||
// СохраняемоеЗначениеПароля - Строка - хеш пароля
|
||||
//
|
||||
Процедура ДобавитьИспользованныйПароль(Пользователь, СохраняемоеЗначениеПароля) Экспорт
|
||||
|
||||
ПользователиСлужебный.ДобавитьИспользованныйПароль(Пользователь, СохраняемоеЗначениеПароля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
// "Настройки прав и пользователей" доступны настройки входа, и доступность
|
||||
// настроек ограничения срока действия в формах пользователя и внешнего пользователя.
|
||||
// По умолчанию - Истина, а для базовых версий конфигурации - всегда Ложь.
|
||||
// В модели сервиса получается из настроек Менеджера сервиса и не может быть переопределено.
|
||||
//
|
||||
// * РедактированиеРолей - Булево - определяет доступность интерфейса изменения ролей
|
||||
// в карточках пользователя, внешнего пользователя и группы внешних пользователей
|
||||
|
||||
@@ -267,6 +267,7 @@
|
||||
//
|
||||
Функция ОшибкаНедостаточноПравДляВходаВПрограмму(РегистрироватьВЖурнале = Истина) Экспорт
|
||||
|
||||
//@skip-check using-isinrole
|
||||
Если РольДоступна(Метаданные.Роли.ПолныеПрава) Тогда // Не заменять на РолиДоступны.
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
@@ -277,6 +278,7 @@
|
||||
ИмяРолиБазовыеПрава = Метаданные.Роли.БазовыеПраваБСП.Имя;
|
||||
КонецЕсли;
|
||||
|
||||
//@skip-check using-isinrole
|
||||
Если РольДоступна(ИмяРолиБазовыеПрава) Тогда // Не заменять на РолиДоступны.
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
@@ -1279,12 +1281,16 @@
|
||||
Обработчик.Приоритет = 1;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.0.2.192";
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
Обработчик.Процедура = "ПользователиСлужебный.ПеренестиНастройкиДлиныИСложностиПаролейКонфигуратора";
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
@@ -1358,6 +1364,16 @@
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
Обработчик.Процедура = "Константы.ИспользоватьГруппыВнешнихПользователей.Обновить";
|
||||
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.1.6.108";
|
||||
Обработчик.РежимВыполнения = "Оперативно";
|
||||
Обработчик.Процедура = "Константы.УдалитьНастройкиВходаПользователей.ПеренестиНастройки";
|
||||
Обработчик.Комментарий = НСтр("ru = 'Перенос настроек входа пользователей'");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Смотри также ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек
|
||||
@@ -1483,6 +1499,22 @@
|
||||
Набор.Идентификатор = Новый УникальныйИдентификатор("2bf06771-775a-406a-a5dc-45a10e98914f");
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов.
|
||||
//
|
||||
// Параметры:
|
||||
// СтруктураПоддерживаемыхВерсий - см. ОбщегоНазначенияПереопределяемый.ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов.ПоддерживаемыеВерсии
|
||||
//
|
||||
Процедура ПриОпределенииПоддерживаемыхВерсийПрограммныхИнтерфейсов(СтруктураПоддерживаемыхВерсий) Экспорт
|
||||
|
||||
МассивВерсий = Новый Массив;
|
||||
МассивВерсий.Добавить("1.0.0.1");
|
||||
|
||||
СтруктураПоддерживаемыхВерсий.Вставить(
|
||||
"НастройкиВходаВМоделиСервиса",
|
||||
МассивВерсий);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обработчики событий подсистемы Обмен данными.
|
||||
|
||||
// См. ОбменДаннымиПереопределяемый.ПриНастройкеПодчиненногоУзлаРИБ.
|
||||
@@ -1621,6 +1653,10 @@
|
||||
//
|
||||
Процедура ИзменитьЗаданиеКонтрольАктивностиПользователей(Использование) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РегламентныеЗаданияСервер.УстановитьИспользованиеПредопределенногоРегламентногоЗадания(
|
||||
Метаданные.РегламентныеЗадания.КонтрольАктивностиПользователей, Использование);
|
||||
|
||||
@@ -1629,6 +1665,10 @@
|
||||
// Вызывается при записи пользователя или внешнего пользователя, проверят срок действия.
|
||||
Процедура ВключитьЗаданиеКонтрольАктивностиПользователейПриНеобходимости(Пользователь) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если Не ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда
|
||||
@@ -1660,18 +1700,7 @@
|
||||
// См. ПользователиСлужебныйПовтИсп.Настройки
|
||||
Функция НастройкиВхода() Экспорт
|
||||
|
||||
Настройки = Новый Структура;
|
||||
// Требования сложности.
|
||||
Настройки.Вставить("ПарольДолженОтвечатьТребованиямСложности", Ложь);
|
||||
Настройки.Вставить("МинимальнаяДлинаПароля", 0);
|
||||
// Требования срока действия.
|
||||
Настройки.Вставить("МаксимальныйСрокДействияПароля", 0);
|
||||
Настройки.Вставить("МинимальныйСрокДействияПароля", 0);
|
||||
Настройки.Вставить("ЗапретитьПовторениеПароляСредиПоследних", 0);
|
||||
// Требование периодической работы в программе.
|
||||
Настройки.Вставить("ПросрочкаРаботыВПрограммеДоЗапрещенияВхода", 0);
|
||||
Настройки.Вставить("ПросрочкаРаботыВПрограммеДатаВключения", '00010101');
|
||||
|
||||
Настройки = Пользователи.НовоеОписаниеНастроекВхода();
|
||||
КопияНастроек = Новый ФиксированнаяСтруктура(Настройки);
|
||||
|
||||
ПодготовленныеНастройки = Новый Структура;
|
||||
@@ -1679,32 +1708,47 @@
|
||||
ПодготовленныеНастройки.Вставить("ВнешниеПользователи", Настройки);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
|
||||
СохраненныеНастройки = Константы.НастройкиВходаПользователей.Получить().Получить();
|
||||
|
||||
Иначе
|
||||
|
||||
СохраненныеНастройки = Константы.УдалитьНастройкиВходаПользователей.Получить().Получить();
|
||||
Если СохраненныеНастройки = Неопределено Тогда
|
||||
СохраненныеНастройки = Константы.НастройкиВходаПользователей.Получить().Получить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Если ТипЗнч(СохраненныеНастройки) <> Тип("Структура") Тогда
|
||||
Возврат ПодготовленныеНастройки;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ПодготовленнаяНастройка Из ПодготовленныеНастройки Цикл
|
||||
|
||||
Если Не СохраненныеНастройки.Свойство(ПодготовленнаяНастройка.Ключ)
|
||||
Или ТипЗнч(СохраненныеНастройки[ПодготовленнаяНастройка.Ключ]) <> Тип("Структура") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НачальныеНастройки = ПодготовленнаяНастройка.Значение;
|
||||
ТекущиеНастройки = СохраненныеНастройки[ПодготовленнаяНастройка.Ключ];
|
||||
|
||||
Если ТипЗнч(ТекущиеНастройки) = Тип("Структура") Тогда
|
||||
Для Каждого НачальнаяНастройка Из НачальныеНастройки Цикл
|
||||
|
||||
Если Не ТекущиеНастройки.Свойство(НачальнаяНастройка.Ключ)
|
||||
Или ТипЗнч(ТекущиеНастройки[НачальнаяНастройка.Ключ]) <> ТипЗнч(НачальнаяНастройка.Значение) Тогда
|
||||
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НачальныеНастройки[НачальнаяНастройка.Ключ] = ТекущиеНастройки[НачальнаяНастройка.Ключ];
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПодготовленныеНастройки;
|
||||
@@ -1917,7 +1961,8 @@
|
||||
|
||||
Если Не ДополнительныеПараметры.Свойство("ЭтоСлужебныйПользователь")
|
||||
И ОбщегоНазначения.РазделениеВключено()
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса")
|
||||
И Пользователь <> Пользователи.АвторизованныйПользователь() Тогда
|
||||
|
||||
МодульПользователиСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСлужебныйВМоделиСервиса");
|
||||
ДействияСПользователемСервиса = МодульПользователиСлужебныйВМоделиСервиса.ПолучитьДействияСПользователемСервиса(
|
||||
@@ -2004,7 +2049,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Проверка минимального срока действия пароля.
|
||||
Если УровеньДоступа.НастройкиДляВхода Тогда
|
||||
Если Не ОбщегоНазначения.РазделениеВключено() И УровеньДоступа.НастройкиДляВхода Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2307,21 +2352,10 @@
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
Иначе
|
||||
СведенияОПользователе.ДатаНачалаИспользованияПароля = Неопределено;
|
||||
Если Параметры.Пользователь.ДополнительныеСвойства.Свойство("СменаПароляПриВходеВПрограмму") Тогда
|
||||
СведенияОПользователе.ПотребоватьСменуПароляПриВходе = Ложь;
|
||||
КонецЕсли;
|
||||
Если ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода
|
||||
И ЗначениеЗаполнено(НастройкиВхода.ЗапретитьПовторениеПароляСредиПоследних) Тогда
|
||||
|
||||
ИспользованныеПароли.Добавить(СохраняемоеЗначениеПароля);
|
||||
Пока ИспользованныеПароли.Количество() > НастройкиВхода.ЗапретитьПовторениеПароляСредиПоследних Цикл
|
||||
ИспользованныеПароли.Удалить(0);
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ИспользованныеПароли.Очистить();
|
||||
КонецЕсли;
|
||||
СведенияОПользователе.ИспользованныеПароли = Новый ХранилищеЗначения(ИспользованныеПароли);
|
||||
ОбновитьСведенияОбИспользованииПароля(СведенияОПользователе, СохраняемоеЗначениеПароля);
|
||||
НаборЗаписей.Записать();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -2421,6 +2455,91 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Добавляет пароль в список используемых,
|
||||
// если в настройках для входа заполнено свойство ЗапретитьПовторениеПароляСредиПоследних
|
||||
//
|
||||
// Параметры:
|
||||
// Пользователь - СправочникСсылка.Пользователи
|
||||
// - СправочникСсылка.ВнешниеПользователи - пользователь для которого добавляется пароль
|
||||
// СохраняемоеЗначениеПароля - Строка - хеш пароля
|
||||
//
|
||||
Процедура ДобавитьИспользованныйПароль(Пользователь, СохраняемоеЗначениеПароля) Экспорт
|
||||
|
||||
Блокировка = Новый БлокировкаДанных();
|
||||
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.СведенияОПользователях");
|
||||
ЭлементБлокировки.УстановитьЗначение("Пользователь", Пользователь);
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
Попытка
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
СведенияОПользователе = РегистрыСведений.СведенияОПользователях.СоздатьМенеджерЗаписи();
|
||||
СведенияОПользователе.Пользователь = Пользователь;
|
||||
СведенияОПользователе.Прочитать();
|
||||
|
||||
Если Не СведенияОПользователе.Выбран() Тогда
|
||||
СведенияОПользователе.Пользователь = Пользователь;
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьСведенияОбИспользованииПароля(СведенияОПользователе, СохраняемоеЗначениеПароля);
|
||||
|
||||
СведенияОПользователе.Записать();
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обновляет данные использования пароля в записи сведений о пользователе
|
||||
//
|
||||
// Параметры:
|
||||
// СведенияОПользователе - РегистрСведенийМенеджерЗаписи.СведенияОПользователях
|
||||
// - РегистрСведенийЗапись.СведенияОПользователях - запись регистра сведений
|
||||
// СохраняемоеЗначениеПароля - Строка - хеш пароля
|
||||
// НастройкиВхода - см. ПользователиСлужебный.НастройкиВхода
|
||||
//
|
||||
Процедура ОбновитьСведенияОбИспользованииПароля(СведенияОПользователе, СохраняемоеЗначениеПароля)
|
||||
|
||||
Если ТипЗнч(СведенияОПользователе.Пользователь) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
|
||||
НастройкиВхода = ПользователиСлужебныйПовтИсп.Настройки().ВнешниеПользователи;
|
||||
Иначе
|
||||
НастройкиВхода = ПользователиСлужебныйПовтИсп.Настройки().Пользователи;
|
||||
КонецЕсли;
|
||||
|
||||
ИспользованныеПароли = СведенияОПользователе.ИспользованныеПароли.Получить();
|
||||
Если ИспользованныеПароли = Неопределено Тогда
|
||||
ИспользованныеПароли = Новый Массив();
|
||||
КонецЕсли;
|
||||
|
||||
Если Пользователи.ОбщиеНастройкиВходаИспользуются()
|
||||
И ЗначениеЗаполнено(НастройкиВхода.ЗапретитьПовторениеПароляСредиПоследних) Тогда
|
||||
|
||||
ИспользованныеПароли.Добавить(СохраняемоеЗначениеПароля);
|
||||
Пока ИспользованныеПароли.Количество() > НастройкиВхода.ЗапретитьПовторениеПароляСредиПоследних Цикл
|
||||
ИспользованныеПароли.Удалить(0);
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
ИспользованныеПароли.Очистить();
|
||||
КонецЕсли;
|
||||
|
||||
ДатаНачалаИспользованияПароля = ?(ОбщегоНазначения.РазделениеВключено(),
|
||||
НачалоДня(ТекущаяДатаСеанса()),
|
||||
Неопределено);
|
||||
|
||||
СведенияОПользователе.ДатаНачалаИспользованияПароля = ДатаНачалаИспользованияПароля;
|
||||
СведенияОПользователе.ИспользованныеПароли = Новый ХранилищеЗначения(ИспользованныеПароли);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции работы с пользователями.
|
||||
|
||||
@@ -3180,6 +3299,7 @@
|
||||
Если ПользовательИБ = Неопределено
|
||||
Или ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь() Тогда
|
||||
|
||||
//@skip-check using-isinrole
|
||||
Возврат РольДоступна(Метаданные.Роли.ПолныеПрава) // Не заменять на РолиДоступны.
|
||||
И (РольДоступна(Метаданные.Роли.АдминистраторСистемы) // Не заменять на РолиДоступны.
|
||||
Или ОбщегоНазначения.РазделениеВключено() );
|
||||
@@ -5061,8 +5181,12 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяКонстанты = ?(Метаданные.Константы.Найти("УдалитьНастройкиВходаПользователей") = Неопределено,
|
||||
"НастройкиВходаПользователей",
|
||||
"УдалитьНастройкиВходаПользователей");
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("Константа.НастройкиВходаПользователей");
|
||||
Блокировка.Добавить("Константа." + ИмяКонстанты);
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
@@ -5079,7 +5203,7 @@
|
||||
НастройкиВхода.ВнешниеПользователи.ПарольДолженОтвечатьТребованиямСложности = СложныйПароль;
|
||||
КонецЕсли;
|
||||
|
||||
Константы.НастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(НастройкиВхода));
|
||||
Константы[ИмяКонстанты].Установить(Новый ХранилищеЗначения(НастройкиВхода));
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
@@ -6851,10 +6975,6 @@
|
||||
// Обновляет дату последней активности и проверяет необходимость смены пароля.
|
||||
Функция ТребуетсяСменитьПароль(ОписаниеОшибки = "", ПриЗапуске = Ложь, РегистрироватьВЖурнале = Истина)
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ПользовательИБ = ПользователиИнформационнойБазы.ТекущийПользователь();
|
||||
Если Не ЗначениеЗаполнено(ПользовательИБ.Имя) Тогда
|
||||
Возврат Ложь;
|
||||
@@ -6880,11 +7000,26 @@
|
||||
Иначе
|
||||
СведенияОПользователе = НаборЗаписей[0];
|
||||
КонецЕсли;
|
||||
|
||||
Записать = Ложь;
|
||||
|
||||
Если СведенияОПользователе.ДатаПоследнейАктивности <> НачалоДняТекущейДатыСеанса Тогда
|
||||
|
||||
СведенияОПользователе.ДатаПоследнейАктивности = НачалоДняТекущейДатыСеанса;
|
||||
Записать = Истина;
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПользователиСервиса") Тогда
|
||||
|
||||
МодульПользователиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСервиса");
|
||||
МодульПользователиСервиса.ОбновитьАктивностьПользователяСервиса(
|
||||
ТекущийПользователь,
|
||||
НачалоДняТекущейДатыСеанса);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИспользуемыйКлиент = СтандартныеПодсистемыСервер.ПараметрыКлиентаНаСервере().Получить("ИспользуемыйКлиент");
|
||||
Если ИспользуемыйКлиент <> Неопределено
|
||||
И СведенияОПользователе.ПоследнийИспользуемыйКлиент <> ИспользуемыйКлиент Тогда
|
||||
@@ -7548,6 +7683,10 @@
|
||||
Процедура ОтключитьНеактивныхИПросроченныхПользователей(ТолькоДляАвторизованногоПользователя = Ложь,
|
||||
ОписаниеОшибки = "", РегистрироватьВЖурнале = Истина)
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Настройки = ПользователиСлужебныйПовтИсп.Настройки();
|
||||
@@ -8050,7 +8189,8 @@
|
||||
ДеревоРолей.Колонки.Добавить("Пометка", Новый ОписаниеТипов("Булево"));
|
||||
ДеревоРолей.Колонки.Добавить("НомерКартинки", Новый ОписаниеТипов("Число"));
|
||||
ПодготовитьДеревоРолей(ДеревоРолей.Строки, СкрытьРольПолныеПрава, ПоказатьТолькоВыбранныеРоли,
|
||||
Параметры.КоллекцияРолей);
|
||||
Параметры.КоллекцияРолей, ?(Параметры.Свойство("СтандартныеРолиРасширений"),
|
||||
Параметры.СтандартныеРолиРасширений, Неопределено));
|
||||
|
||||
Параметры.Форма.ЗначениеВРеквизитФормы(ДеревоРолей, "Роли");
|
||||
|
||||
@@ -8154,7 +8294,8 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПодготовитьДеревоРолей(Знач Коллекция, Знач СкрытьРольПолныеПрава, Знач ПоказатьТолькоВыбранныеРоли, КоллекцияРолей)
|
||||
Процедура ПодготовитьДеревоРолей(Знач Коллекция, Знач СкрытьРольПолныеПрава, Знач ПоказатьТолькоВыбранныеРоли,
|
||||
КоллекцияРолей, СтандартныеРолиРасширений)
|
||||
|
||||
Индекс = Коллекция.Количество()-1;
|
||||
|
||||
@@ -8162,12 +8303,15 @@
|
||||
Строка = Коллекция[Индекс];
|
||||
|
||||
ПодготовитьДеревоРолей(Строка.Строки, СкрытьРольПолныеПрава, ПоказатьТолькоВыбранныеРоли,
|
||||
КоллекцияРолей);
|
||||
КоллекцияРолей, СтандартныеРолиРасширений);
|
||||
|
||||
Если Строка.ЭтоРоль Тогда
|
||||
Если СкрытьРольПолныеПрава
|
||||
И ( ВРег(Строка.Имя) = ВРег("ПолныеПрава")
|
||||
ИЛИ ВРег(Строка.Имя) = ВРег("АдминистраторСистемы")) Тогда
|
||||
ИЛИ ВРег(Строка.Имя) = ВРег("АдминистраторСистемы")
|
||||
ИЛИ СтандартныеРолиРасширений <> Неопределено
|
||||
И ( СтандартныеРолиРасширений.ПолныеПрава.Найти(Строка.Имя) <> Неопределено
|
||||
Или СтандартныеРолиРасширений.АдминистраторСистемы.Найти(Строка.Имя) <> Неопределено)) Тогда
|
||||
Коллекция.Удалить(Индекс);
|
||||
Иначе
|
||||
Строка.НомерКартинки = 7;
|
||||
@@ -8280,6 +8424,7 @@
|
||||
КоллекцияРолей.Добавить().Роль = "ПолныеПрава";
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
ЗаполнитьСтандартныеРолиРасширений(Параметры);
|
||||
|
||||
Если ПоказатьТолькоВыбранныеРоли Тогда
|
||||
Если КоллекцияРолей.Количество() > 0 Тогда
|
||||
@@ -8297,12 +8442,27 @@
|
||||
Иначе
|
||||
ДобавитьУдалитьРолиПодсистемы(Параметры, ТекущиеДанные.ПолучитьЭлементы(), ТекущиеДанные.Пометка);
|
||||
КонецЕсли;
|
||||
ЗаполнитьСтандартныеРолиРасширений(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
ОбновитьПометкуВыбранныхРолей(Параметры, Роли.ПолучитьЭлементы());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаполнитьСтандартныеРолиРасширений(Параметры)
|
||||
|
||||
Если Не Параметры.Свойство("СтандартныеРолиРасширений") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
МодульПрофилиГруппДоступа = ОбщегоНазначения.ОбщийМодуль("Справочники.ПрофилиГруппДоступа");
|
||||
МодульПрофилиГруппДоступа.ЗаполнитьСтандартныеРолиРасширений(Параметры.КоллекцияРолей,
|
||||
Параметры.СтандартныеРолиРасширений);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Параметры - см. ОбработатьИнтерфейсРолей.Параметры
|
||||
// Роль - Строка
|
||||
|
||||
@@ -261,11 +261,25 @@
|
||||
ИнтеграцияПодсистемБСП.ПриОпределенииНастроек(Настройки);
|
||||
ПользователиПереопределяемый.ПриОпределенииНастроек(Настройки);
|
||||
|
||||
Если ОбщегоНазначения.РазделениеВключено()
|
||||
Или СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации()
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПользователиСервиса") Тогда
|
||||
|
||||
МодульПользователиСервиса = ОбщегоНазначения.ОбщийМодуль("ПользователиСервиса");
|
||||
|
||||
Настройки.Вставить(
|
||||
"ОбщиеНастройкиВхода",
|
||||
МодульПользователиСервиса.ИспользоватьОбщиеНастройкиВходаПользователейСервиса());
|
||||
|
||||
Иначе
|
||||
Настройки.Вставить("ОбщиеНастройкиВхода", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли СтандартныеПодсистемыСервер.ЭтоБазоваяВерсияКонфигурации()
|
||||
Или ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
|
||||
|
||||
Настройки.Вставить("ОбщиеНастройкиВхода", Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВсеНастройки = ПользователиСлужебный.НастройкиВхода();
|
||||
@@ -345,9 +359,11 @@
|
||||
ПравоДоступа("Администрирование", Метаданные, ПользовательИБ),
|
||||
ПравоДоступа("Администрирование", Метаданные)));
|
||||
|
||||
//@skip-check using-isinrole
|
||||
Свойства.Вставить("РольДоступнаАдминистраторСистемы",
|
||||
РольДоступна(Метаданные.Роли.АдминистраторСистемы)); // Не заменять на РолиДоступны.
|
||||
|
||||
//@skip-check using-isinrole
|
||||
Свойства.Вставить("РольДоступнаПолныеПрава",
|
||||
РольДоступна(Метаданные.Роли.ПолныеПрава)); // Не заменять на РолиДоступны.
|
||||
|
||||
|
||||
@@ -300,7 +300,6 @@
|
||||
АдресПоПолям = Адрес;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ПереченьЭлементов = Новый ФиксированноеСоответствие(Новый Соответствие);
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
|
||||
@@ -2644,7 +2643,8 @@
|
||||
// АПК: 1297-выкл Данные адресного классификатора, не локализуются
|
||||
Если СтрСравнить(ТипМуниципальногоРайона, "м.р-н") = 0 Тогда
|
||||
КодМуниципальногоРайона = "1";
|
||||
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, "г.о.") = 0 Тогда
|
||||
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, "г.о.") = 0
|
||||
Или СтрСравнить(ТипМуниципальногоРайона, "ф.т.") = 0 Тогда
|
||||
КодМуниципальногоРайона = "2";
|
||||
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, "вн.тер.") = 0
|
||||
Или СтрСравнить(ТипМуниципальногоРайона, "вн.тер. г.") = 0 Тогда
|
||||
@@ -4142,7 +4142,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВывитьИИсправитьУстаревшиеАдреса() Экспорт
|
||||
Процедура ВыявитьИИсправитьУстаревшиеАдреса() Экспорт
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
Возврат;
|
||||
@@ -4377,4 +4377,16 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверить корректность кода города и номера телефона кодов страны.
|
||||
//
|
||||
// Параметры:
|
||||
// ПоляТелефона - см. УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона
|
||||
// СписокОшибок - СписокЗначений
|
||||
//
|
||||
Процедура ПроверитьКорректностьКодовСтраныИГорода(ПоляТелефона, СписокОшибок) Экспорт
|
||||
|
||||
РаботаСАдресамиКлиентСервер.ПроверитьКорректностьКодовСтраныИГорода(ПоляТелефона, СписокОшибок);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -80,22 +80,12 @@
|
||||
// Проверить корректность кода города и номера телефона кодов страны.
|
||||
//
|
||||
// Параметры:
|
||||
// КодСтраны - Строка
|
||||
// КодГорода - Строка
|
||||
// НомерТелефона - Строка
|
||||
// ПоляТелефона - см. УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона
|
||||
// СписокОшибок - СписокЗначений
|
||||
//
|
||||
Процедура ПроверитьКорректностьКодовСтраныИГорода(КодСтраны, КодГорода, НомерТелефона, СписокОшибок) Экспорт
|
||||
Процедура ПроверитьКорректностьКодовСтраныИГорода(ПоляТелефона, СписокОшибок) Экспорт
|
||||
|
||||
Если КодСтраны = "7" ИЛИ КодСтраны = "+7" Тогда
|
||||
Если СтрДлина(УправлениеКонтактнойИнформациейКлиент.ОставитьТолькоЦифрыВСтроке(НомерТелефона)) > 7 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номер телефона не может быть больше 7 цифр'"));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНачинаетсяС(КодГорода, "9") И СтрДлина(КодГорода) <> 3 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номера мобильных телефонов должны содержать 3 цифры'"));
|
||||
КонецЕсли;
|
||||
РаботаСАдресамиКлиентСервер.ПроверитьКорректностьКодовСтраныИГорода(ПоляТелефона, СписокОшибок);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -764,6 +764,30 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверить корректность кода города и номера телефона кодов страны.
|
||||
//
|
||||
// Параметры:
|
||||
// ПоляТелефона - см. УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона
|
||||
// СписокОшибок - СписокЗначений
|
||||
//
|
||||
Процедура ПроверитьКорректностьКодовСтраныИГорода(ПоляТелефона, СписокОшибок) Экспорт
|
||||
|
||||
КодСтраны = ПоляТелефона.КодСтраны;
|
||||
КодГорода = ПоляТелефона.КодГорода;
|
||||
НомерТелефона = ПоляТелефона.НомерТелефона;
|
||||
|
||||
Если КодСтраны = "7" ИЛИ КодСтраны = "+7" Тогда
|
||||
Если СтрДлина(УправлениеКонтактнойИнформациейКлиентСервер.ОставитьТолькоЦифрыВСтроке(НомерТелефона)) > 7 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номер телефона не может быть больше 7 цифр'"));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНачинаетсяС(КодГорода, "9") И СтрДлина(КодГорода) <> 3 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номера мобильных телефонов должны содержать 3 цифры'"));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -36,7 +36,8 @@
|
||||
| УчетныеЗаписиЭлектроннойПочты.Пользователь КАК ПользовательSMTP,
|
||||
| УчетныеЗаписиЭлектроннойПочты.ВремяОжидания КАК Таймаут,
|
||||
| УчетныеЗаписиЭлектроннойПочты.ПротоколВходящейПочты КАК Протокол,
|
||||
| УчетныеЗаписиЭлектроннойПочты.ПриОтправкеПисемТребуетсяАвторизация КАК ПриОтправкеПисемТребуетсяАвторизация
|
||||
| УчетныеЗаписиЭлектроннойПочты.ПриОтправкеПисемТребуетсяАвторизация КАК ПриОтправкеПисемТребуетсяАвторизация,
|
||||
| УчетныеЗаписиЭлектроннойПочты.АвторизацияСПомощьюПочтовогоСервиса
|
||||
|ИЗ
|
||||
| Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписиЭлектроннойПочты
|
||||
|ГДЕ
|
||||
@@ -53,10 +54,19 @@
|
||||
СписокСвойствSMTP = "АдресСервераSMTP,ПортSMTP,ИспользоватьSSLSMTP";
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(УчетнаяЗапись, "Пароль,ПарольSMTP");
|
||||
Пароли = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(УчетнаяЗапись,
|
||||
"Пароль,ПарольSMTP,ТокенДоступа,СрокДействияТокенаДоступа,ТокенОбновления");
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Результат = Новый ИнтернетПочтовыйПрофиль;
|
||||
|
||||
Если Выборка.АвторизацияСПомощьюПочтовогоСервиса Тогда
|
||||
Если ЗначениеЗаполнено(Пароли.СрокДействияТокенаДоступа) И Пароли.СрокДействияТокенаДоступа - 60 <= ТекущаяДатаСеанса() Тогда
|
||||
Пароли.ТокенДоступа = ОбновитьТокенДоступа(УчетнаяЗапись, Пароли.ТокенОбновления);
|
||||
КонецЕсли;
|
||||
Результат.ТокенДоступа = Пароли.ТокенДоступа;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДляПолучения Тогда
|
||||
Если Выборка.Протокол = "IMAP" Тогда
|
||||
ТребуемыеСвойства = СписокСвойствIMAP;
|
||||
@@ -1892,4 +1902,239 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, ПоместитьПараметрыВТелоЗапроса = Истина) Экспорт
|
||||
|
||||
Заголовки = Новый Соответствие;
|
||||
|
||||
Если ПоместитьПараметрыВТелоЗапроса Тогда
|
||||
Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(ПараметрыЗапроса) = Тип("Строка") Тогда
|
||||
СтрокаПараметров = ПараметрыЗапроса;
|
||||
Иначе
|
||||
СписокПараметров = Новый Массив;
|
||||
Для Каждого Параметр Из ПараметрыЗапроса Цикл
|
||||
Значения = Параметр.Значение;
|
||||
Если ТипЗнч(Параметр.Значение) <> Тип("Массив") Тогда
|
||||
Значения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметр.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Значение Из Значения Цикл
|
||||
СписокПараметров.Добавить(Параметр.Ключ + "=" + КодироватьСтроку(Значение, СпособКодированияСтроки.КодировкаURL));
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
СтрокаПараметров = СтрСоединить(СписокПараметров, "&");
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПоместитьПараметрыВТелоЗапроса Тогда
|
||||
АдресРесурса = АдресРесурса + "?" + СтрокаПараметров;
|
||||
КонецЕсли;
|
||||
|
||||
HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);
|
||||
|
||||
Если ПоместитьПараметрыВТелоЗапроса Тогда
|
||||
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат HTTPЗапрос;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса) Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ЗапросВыполнен", Ложь);
|
||||
Результат.Вставить("ОтветСервера", "");
|
||||
|
||||
HTTPЗапрос = ПодготовитьHTTPЗапрос(АдресРесурса, ПараметрыЗапроса, Истина);
|
||||
HTTPОтвет = Неопределено;
|
||||
|
||||
Прокси = Неопределено;
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета") Тогда
|
||||
МодульПолучениеФайловИзИнтернета = ОбщегоНазначения.ОбщийМодуль("ПолучениеФайловИзИнтернета");
|
||||
Прокси = МодульПолучениеФайловИзИнтернета.ПолучитьПрокси("https");
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Соединение = Новый HTTPСоединение(АдресСервера, , , , Прокси,
|
||||
60, ОбщегоНазначенияКлиентСервер.НовоеЗащищенноеСоединение());
|
||||
|
||||
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
Если HTTPОтвет <> Неопределено Тогда
|
||||
Если HTTPОтвет.КодСостояния <> 200 Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС
|
||||
+ HTTPОтвет.ПолучитьТелоКакСтроку();
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытияАвторизацияПоПротоколуOAuth(),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
||||
КонецЕсли;
|
||||
|
||||
Результат.ЗапросВыполнен = HTTPОтвет.КодСостояния = 200;
|
||||
Результат.ОтветСервера = HTTPОтвет.ПолучитьТелоКакСтроку();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяСобытияАвторизацияПоПротоколуOAuth() Экспорт
|
||||
|
||||
Возврат НСтр("ru = 'Работа с почтовыми сообщениями.Авторизация на почтовом сервере'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СгенерироватьПроверочныйКод() Экспорт
|
||||
|
||||
ПроверочныйКод = "";
|
||||
|
||||
Буквы = "abcdefghijklmnopqrstuvwxyz";
|
||||
Цифры = "1234567890";
|
||||
ДополнительныеСимволы = "-._~";
|
||||
|
||||
ДопустимыеСимволы = Буквы + ВРег(Буквы) + Цифры + ДополнительныеСимволы;
|
||||
ДлинаСтроки = СтрДлина(ДопустимыеСимволы);
|
||||
|
||||
ГенераторСлучайныхЧисел = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах());
|
||||
|
||||
Для Счетчик = 1 По 128 Цикл
|
||||
Позиция = ГенераторСлучайныхЧисел.СлучайноеЧисло(1, ДлинаСтроки);
|
||||
Символ = Сред(ДопустимыеСимволы, Позиция, 1);
|
||||
ПроверочныйКод = ПроверочныйКод + Символ;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПроверочныйКод;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КодироватьСтрокуМетодомS256(Строка) Экспорт
|
||||
|
||||
ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA256);
|
||||
ХешированиеДанных.Добавить(Строка);
|
||||
Результат = Base64URLСтрока(ХешированиеДанных.ХешСумма);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Base64URLСтрока(Значение)
|
||||
|
||||
Результат = Base64Строка(Значение);
|
||||
Результат = СтрЗаменить(Результат, "+", "-");
|
||||
Результат = СтрЗаменить(Результат, "/", "_");
|
||||
Результат = СтрЗаменить(Результат, "=", "");
|
||||
Результат = СтрЗаменить(Результат, Символы.ПС, "");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция JSONВЗначение(Строка, ИменаСвойствСоЗначениямиДата = Неопределено) Экспорт
|
||||
ЧтениеJSON = Новый ЧтениеJSON;
|
||||
ЧтениеJSON.УстановитьСтроку(Строка);
|
||||
Возврат ПрочитатьJSON(ЧтениеJSON, Истина, ИменаСвойствСоЗначениямиДата);
|
||||
КонецФункции
|
||||
|
||||
Функция ОбновитьТокенДоступа(Знач УчетнаяЗапись, Знач ТокенОбновления = Неопределено)
|
||||
|
||||
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетнаяЗапись,
|
||||
"АдресЭлектроннойПочты, ИмяПочтовогоСервиса");
|
||||
|
||||
Если Не ЗначениеЗаполнено(ЗначенияРеквизитов.ИмяПочтовогоСервиса) Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Не указано имя почтового сервиса для авторизации. Необходимо перенастроить почту.'");
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытияАвторизацияПоПротоколуOAuth(), УровеньЖурналаРегистрации.Ошибка, , УчетнаяЗапись,
|
||||
ТекстОшибки);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(ЗначенияРеквизитов.АдресЭлектроннойПочты);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
НастройкиАвторизации = Справочники.НастройкиАвторизацииИнтернетСервисов.НастройкиАвторизацииИнтернетСервиса(
|
||||
ЗначенияРеквизитов.ИмяПочтовогоСервиса, СтруктураURI.Хост);
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Если Не ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторПриложения) Тогда
|
||||
ТекстОшибки = НСтр("ru = 'Настройки авторизации Интернет-сервиса ""%1"" не найдены для домена ""%2"". Необходимо перенастроить почту.'");
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытияАвторизацияПоПротоколуOAuth(), УровеньЖурналаРегистрации.Ошибка, , УчетнаяЗапись,
|
||||
ТекстОшибки);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
СтруктураURI = ОбщегоНазначенияКлиентСервер.СтруктураURI(НастройкиАвторизации.АдресПолученияКлюча);
|
||||
АдресСервера = СтруктураURI.Хост;
|
||||
АдресРесурса = "/" + СтруктураURI.ПутьНаСервере;
|
||||
|
||||
ПараметрыЗапроса = Новый Структура;
|
||||
ПараметрыЗапроса.Вставить("client_id", НастройкиАвторизации.ИдентификаторПриложения);
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации.ИспользоватьПарольПриложения) Тогда
|
||||
ПараметрыЗапроса.Вставить("client_secret", НастройкиАвторизации.ПарольПриложения);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(НастройкиАвторизации["ЗапрашиваемыеРазрешения"]) Тогда
|
||||
ПараметрыЗапроса.Вставить("scope", НастройкиАвторизации["ЗапрашиваемыеРазрешения"]);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыЗапроса.Вставить("refresh_token", ТокенОбновления);
|
||||
ПараметрыЗапроса.Вставить("grant_type", "refresh_token");
|
||||
|
||||
ВремяЗапроса = ТекущаяДатаСеанса();
|
||||
|
||||
РезультатЗапроса = ВыполнитьЗапрос(АдресСервера, АдресРесурса, ПараметрыЗапроса);
|
||||
|
||||
Попытка
|
||||
ПараметрыОтвета = JSONВЗначение(РезультатЗапроса.ОтветСервера);
|
||||
Исключение
|
||||
ПараметрыОтвета = Новый Соответствие;
|
||||
КонецПопытки;
|
||||
|
||||
ТокенДоступа = ПараметрыОтвета["access_token"];
|
||||
СрокДействияТокенаДоступа = ПараметрыОтвета["expires_in"];
|
||||
ТокенОбновления = ПараметрыОтвета["refresh_token"];
|
||||
КодОшибки = ПараметрыОтвета["error"];
|
||||
ТекстОшибки = ПараметрыОтвета["error_description"];
|
||||
|
||||
Если ЗначениеЗаполнено(КодОшибки) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить ключи доступа к учетной записи почты %1 по причине:
|
||||
|%2
|
||||
|Ответ сервера:
|
||||
|%3'"), ЗначенияРеквизитов.АдресЭлектроннойПочты, ТекстОшибки, РезультатЗапроса.ОтветСервера);
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытияАвторизацияПоПротоколуOAuth(),
|
||||
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
|
||||
|
||||
Возврат "";
|
||||
ИначеЕсли Не РезультатЗапроса.ЗапросВыполнен Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось получить ключи доступа к учетной записи почты %1 по причине:
|
||||
|Запрос не выполнен.
|
||||
|Ответ сервера:
|
||||
|%2'"), ЗначенияРеквизитов.АдресЭлектроннойПочты, РезультатЗапроса.ОтветСервера);
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытияАвторизацияПоПротоколуOAuth(), УровеньЖурналаРегистрации.Ошибка, , УчетнаяЗапись,
|
||||
ТекстОшибки);
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СрокДействияТокенаДоступа) Тогда
|
||||
СрокДействияТокенаДоступа = ВремяЗапроса + СрокДействияТокенаДоступа;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗапись, ТокенДоступа, "ТокенДоступа");
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗапись, СрокДействияТокенаДоступа, "СрокДействияТокенаДоступа");
|
||||
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(УчетнаяЗапись, ТокенОбновления, "ТокенОбновления");
|
||||
|
||||
УстановитьПривилегированныйРежим(Ложь);
|
||||
|
||||
Возврат ТокенДоступа;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -108,29 +108,38 @@
|
||||
// не найден или отсутствует часть обязательной информации о файле и ВызыватьИсключение отсутствует
|
||||
// или принимает значение Истина, вызывает исключение. Свойства структуры:
|
||||
// * Ссылка - ОпределяемыйТип.ПрисоединенныйФайл - ссылка на элемент справочника с файлом.
|
||||
// * СсылкаНаДвоичныеДанныеФайла - Строка - адрес во временном хранилище, по которому помещены данные.
|
||||
// * СсылкаНаДвоичныеДанныеФайла - Строка - адрес во временном хранилище, по которому помещены данные файла.
|
||||
// * Владелец - ОпределяемыйТип.ВладелецФайлов - ссылка объект-владелец файла.
|
||||
// * ОтносительныйПуть - Строка - относительный путь файла.
|
||||
// * ДатаМодификацииУниверсальная - Дата - дата изменения фала.
|
||||
// * ИмяФайла - Строка - имя файла.
|
||||
// * Наименование - Строка - наименование файла в справочнике хранения файлов.
|
||||
// * ДатаМодификацииУниверсальная - Дата - дата изменения файла в UTC.
|
||||
// * ИмяФайла - Строка - имя файла, например, "документ.txt".
|
||||
// * Наименование - Строка - наименование файла (в справочнике хранения файлов).
|
||||
// * Расширение - Строка - расширение файла без точки.
|
||||
// * Размер - Число - размер файла.
|
||||
// * Размер - Число - размер файла в байтах.
|
||||
// * Редактирует - СправочникСсылка.Пользователи
|
||||
// - СправочникСсылка.ВнешниеПользователи
|
||||
// - Неопределено - ссылка на пользователя, занявшего файл.
|
||||
// - Неопределено - пользователь, занявший файл для редактирования.
|
||||
// * ДатаЗаема - Дата - дата и время, когда файл был открыт для редактирования.
|
||||
// * ПодписанЭП - Булево - признак того, что файл подписан.
|
||||
// * Зашифрован - Булево - признак того, что файл зашифрован.
|
||||
// * Версия - ОпределяемыйТип.ПрисоединенныйФайл - если справочник файлов поддерживает создание
|
||||
// * МассивСертификатовШифрования - см. ЭлектроннаяПодпись.СертификатыШифрования
|
||||
// * ПометкаУдаления - Булево - признак того, что файл помечен на удаление.
|
||||
// * НавигационнаяСсылка - Строка - навигационная ссылка на файл.
|
||||
// * ХранитьВерсии - Булево - признак того, что у файла хранятся версии.
|
||||
// * ТекущаяВерсия - ОпределяемыйТип.ПрисоединенныйФайл - если справочник файлов поддерживает создание
|
||||
// версий, содержит ссылку на текущую версию файла. В ином случае содержит
|
||||
// ссылку на файл.
|
||||
// * Версия - ОпределяемыйТип.ПрисоединенныйФайл - аналогично выше.
|
||||
// * НомерВерсии - Число - если справочник файлов поддерживает создание версий, содержит номер
|
||||
// текущей версии файла, иначе - 0.
|
||||
// * АвторТекущейВерсии - СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов
|
||||
// - СправочникСсылка.Пользователи
|
||||
// - СправочникСсылка.ВнешниеПользователи - пользователь, отредактировавший файл.
|
||||
// * Том - СправочникСсылка.ТомаХраненияФайлов - том хранения файла.
|
||||
// * Автор - СправочникСсылка.УчетныеЗаписиСинхронизацииФайлов
|
||||
// - СправочникСсылка.Пользователи
|
||||
// - СправочникСсылка.ВнешниеПользователи - автор файла.
|
||||
// * СтатусИзвлеченияТекста - ПеречислениеСсылка.СтатусыИзвлеченияТекстаФайлов - статус извлечения текста
|
||||
// из файла.
|
||||
// * СтатусИзвлеченияТекста - Строка - статус извлечения текста из файла.
|
||||
// * ПолноеНаименованиеВерсии - Строка - если справочник файлов поддерживает создание версий, содержит полное
|
||||
// наименование текущей версии файла. В ином случае содержит полное
|
||||
// наименование файла.
|
||||
@@ -142,6 +151,7 @@
|
||||
// * ПапкаДляСохранитьКак - Строка - путь к каталогу сохранения.
|
||||
// * ФайлРедактируется - Булево - признак того, что файл занят для редактирования.
|
||||
// * ФайлРедактируетТекущийПользователь - Булево - признак того, что файл занят для редактирования текущим пользователем.
|
||||
// * Кодировка - Строка - кодировка текстового файла.
|
||||
// * Служебный - Булево - признак того, что файл является служебным.
|
||||
//
|
||||
// Пример:
|
||||
@@ -157,11 +167,8 @@
|
||||
// МассивДанныхФайлов.Добавить(РаботаСФайлами.ДанныеФайла(Выборка.Файл, ПараметрыДанныхФайла));
|
||||
// КонецЦикла;
|
||||
//
|
||||
//
|
||||
Функция ДанныеФайла(Знач ПрисоединенныйФайл,
|
||||
Знач ДополнительныеПараметры = Неопределено,
|
||||
Знач УдалитьПолучатьСсылкуНаДвоичныеДанные = Истина,
|
||||
Знач УдалитьДляРедактирования = Ложь) Экспорт
|
||||
Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ДополнительныеПараметры = Неопределено,
|
||||
Знач УдалитьПолучатьСсылкуНаДвоичныеДанные = Истина, Знач УдалитьДляРедактирования = Ложь) Экспорт
|
||||
|
||||
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
|
||||
|
||||
@@ -203,8 +210,7 @@
|
||||
|
||||
ПоддерживаетсяХранениеВерсий = (ТипЗнч(ПрисоединенныйФайл) = Тип("СправочникСсылка.Файлы"));
|
||||
ИспользуетсяВерсионированиеФайлов = ПоддерживаетсяХранениеВерсий
|
||||
И ПрисоединенныйФайл.ХранитьВерсии
|
||||
И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия);
|
||||
И ПрисоединенныйФайл.ХранитьВерсии И ЗначениеЗаполнено(ПрисоединенныйФайл.ТекущаяВерсия);
|
||||
|
||||
Если ПолучатьСсылкуНаДвоичныеДанные Тогда
|
||||
Если ИспользуетсяВерсионированиеФайлов Тогда
|
||||
|
||||
@@ -681,6 +681,9 @@
|
||||
Процедура ПолеПредпросмотраНажатие(Форма, Элемент, СтандартнаяОбработка, Просмотр = Ложь) Экспорт
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Форма.ТолькоПросмотр Или Элемент.ТолькоПросмотр Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НомерЭлемента = Число(СтрЗаменить(Элемент.Имя, "ПолеКартинкиПрисоединенногоФайла", ""));
|
||||
ТолькоОдинФайл = Форма.ПараметрыРаботыСФайлами[НомерЭлемента].ТолькоОдинФайл;
|
||||
@@ -716,11 +719,15 @@
|
||||
//
|
||||
Процедура ПолеПредпросмотраПеретаскивание(Форма, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка) Экспорт
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Если Форма.ТолькоПросмотр Или Элемент.ТолькоПросмотр Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НомерЭлемента = Число(СтрЗаменить(Элемент.Имя, "ПолеКартинкиПрисоединенногоФайла", ""));
|
||||
ТолькоОдинФайл = Форма.ПараметрыРаботыСФайлами[НомерЭлемента].ТолькоОдинФайл;
|
||||
ВладелецПрисоединенныхФайлов = ЗначениеПараметраПрисоединенногоФайла(Форма, Число(НомерЭлемента), "ПутьКДаннымВладельца");
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
ПараметрыОбработчика = Новый Структура;
|
||||
ПараметрыОбработчика.Вставить("Действие", "Перетаскивание");
|
||||
ПараметрыОбработчика.Вставить("Форма", Форма);
|
||||
|
||||
@@ -1305,12 +1305,11 @@
|
||||
КонецЕсли;
|
||||
|
||||
ФайлОбъект.Записать();
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -4921,20 +4920,22 @@
|
||||
КонецЕсли;
|
||||
|
||||
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(Версия.Ссылка, КодировкаПредВерсии);
|
||||
Если БлокироватьВерсию Тогда
|
||||
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
|
||||
КонецЕсли;
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
Если БлокироватьВерсию Тогда
|
||||
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
|
||||
КонецЕсли;
|
||||
МенеджерФайлов.ПослеОбновленияДанныхФайла(Контекст, Ложь);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
МенеджерФайлов.ПослеОбновленияДанныхФайла(Контекст, Истина);
|
||||
|
||||
Если БлокироватьВерсию Тогда
|
||||
РазблокироватьДанныеДляРедактирования(Версия.Ссылка, УникальныйИдентификаторФормы);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЕстьПравоСохранения Тогда
|
||||
НавигационнаяСсылкаФайла = ПолучитьНавигационнуюСсылку(ФайлСсылка);
|
||||
ИсторияРаботыПользователя.Добавить(НавигационнаяСсылкаФайла);
|
||||
@@ -4967,7 +4968,7 @@
|
||||
БлокировкаДанных.Заблокировать();
|
||||
|
||||
ФайлОбъект = ФайлСсылка.ПолучитьОбъект();
|
||||
ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, , УникальныйИдентификатор);
|
||||
ЗаблокироватьДанныеДляРедактирования(ФайлСсылка, , УникальныйИдентификатор);
|
||||
|
||||
Если МетаданныеСправочника.ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска Тогда
|
||||
РезультатИзвлеченияТекста = ИзвлечьТекст(АдресВременногоХранилищаТекста);
|
||||
@@ -4979,6 +4980,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ФайлОбъект.Записать();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5035,11 +5037,12 @@
|
||||
ЗаполнитьЗначенияСвойств(ФайлОбъект, ХранениеВерсии);
|
||||
ФайлОбъект.Записать();
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, УникальныйИдентификатор);
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
@@ -197,12 +197,13 @@
|
||||
ФайлОбъект.Редактирует = Справочники.Пользователи.ПустаяСсылка();
|
||||
ФайлОбъект.ДатаЗаема = Дата("00010101000000");
|
||||
ФайлОбъект.Записать();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
РаботаСФайламиПереопределяемый.ПриОсвобожденииФайла(ДанныеФайла, УникальныйИдентификатор);
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -261,7 +262,6 @@
|
||||
КонецЕсли;
|
||||
ФайлОбъект.ДатаЗаема = ТекущаяДатаСеанса();
|
||||
ФайлОбъект.Записать();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
НавигационнаяСсылкаТекущейВерсии = ДанныеФайла.НавигационнаяСсылкаТекущейВерсии;
|
||||
РабочийКаталогВладельца = ДанныеФайла.РабочийКаталогВладельца;
|
||||
@@ -272,10 +272,12 @@
|
||||
|
||||
РаботаСФайламиПереопределяемый.ПриЗахватеФайла(ДанныеФайла, УникальныйИдентификатор);
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -727,8 +729,6 @@
|
||||
|
||||
СсылкаНаВерсию = ?(ВерсияСсылка = Неопределено, ФайлСсылка, ВерсияСсылка);
|
||||
|
||||
ВерсияЗаблокирована = Ложь;
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить(СсылкаНаВерсию.Метаданные().ПолноеИмя());
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", СсылкаНаВерсию);
|
||||
@@ -752,10 +752,7 @@
|
||||
Версия = СсылкаНаВерсию.ПолучитьОбъект();
|
||||
ЗаблокироватьДанныеДляРедактирования(СсылкаНаВерсию, , УникальныйИдентификаторФормы);
|
||||
|
||||
ВерсияЗаблокирована = Истина;
|
||||
|
||||
Версия.ТипХраненияФайла = ТипХраненияФайлов;
|
||||
|
||||
Если Версия.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
|
||||
СвойстваВерсии = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме();
|
||||
ЗаполнитьЗначенияСвойств(СвойстваВерсии, Версия);
|
||||
@@ -837,20 +834,19 @@
|
||||
Версия.Записать();
|
||||
МенеджерФайла.ПриОбновленииДанныхФайла(Контекст, Версия.Ссылка);
|
||||
|
||||
Если ВерсияЗаблокирована Тогда
|
||||
РазблокироватьДанныеДляРедактирования(Версия.Ссылка, УникальныйИдентификаторФормы);
|
||||
КонецЕсли;
|
||||
|
||||
РегистрыСведений.КодировкиФайлов.ЗаписатьКодировкуВерсииФайла(Версия.Ссылка, КодировкаПредВерсии);
|
||||
Если СведенияОФайле.ХранитьВерсии Тогда
|
||||
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(ФайлСсылка, Версия.Ссылка, СведенияОФайле.АдресВременногоХранилищаТекста, УникальныйИдентификаторФормы);
|
||||
Иначе
|
||||
РаботаСФайламиСлужебный.ОбновитьТекстВФайле(ФайлСсылка, СведенияОФайле.АдресВременногоХранилищаТекста, УникальныйИдентификаторФормы);
|
||||
КонецЕсли;
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(СсылкаНаВерсию, УникальныйИдентификаторФормы);
|
||||
МенеджерФайла.ПослеОбновленияДанныхФайла(Контекст, Ложь);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
@@ -2593,6 +2589,7 @@
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлСсылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
@@ -2617,28 +2614,28 @@
|
||||
Попытка
|
||||
|
||||
Блокировка.Заблокировать();
|
||||
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , УникальныйИдентификатор);
|
||||
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , УникальныйИдентификатор);
|
||||
|
||||
ВерсияОбъект = ДанныеФайла.Версия.ПолучитьОбъект();
|
||||
ЗаблокироватьДанныеДляРедактирования(ВерсияОбъект.Ссылка, , УникальныйИдентификатор);
|
||||
|
||||
ВерсияОбъект.Размер = РазмерФайла;
|
||||
|
||||
// Чтобы прошла запись ранее подписанного объекта.
|
||||
ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
|
||||
ВерсияОбъект.Записать();
|
||||
РазблокироватьДанныеДляРедактирования(ВерсияОбъект.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
|
||||
ЗаблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, , УникальныйИдентификатор);
|
||||
// Чтобы прошла запись ранее подписанного объекта.
|
||||
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
|
||||
ФайлОбъект.Записать();
|
||||
РазблокироватьДанныеДляРедактирования(ФайлОбъект.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор);
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор);
|
||||
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
|
||||
@@ -5165,7 +5165,7 @@
|
||||
Процедура ОчиститьРабочийКаталог(ОбработчикРезультата, РазмерФайловВРабочемКаталоге, РазмерДобавляемогоФайла, ОчищатьВсе) Экспорт
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикРезультата, НСтр("ru = 'Очистка рабочего каталога не поддерживается в веб-клиенте.'"), Неопределено);
|
||||
ВернутьРезультатПослеПоказаПредупреждения(ОбработчикРезультата, НСтр("ru = 'Очистка рабочего каталога возможна только в приложении (тонкий клиент).'"), Неопределено);
|
||||
Возврат;
|
||||
#КонецЕсли
|
||||
|
||||
@@ -5200,7 +5200,6 @@
|
||||
СреднийРазмерФайла = ПараметрыВыполнения.РазмерФайловВРабочемКаталоге / ТаблицаФайлов.Количество();
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если ПараметрыВыполнения.ОчищатьВсе Тогда
|
||||
СколькоНадоОсвободитьМеста = 0;
|
||||
Иначе
|
||||
@@ -5228,8 +5227,14 @@
|
||||
//
|
||||
Процедура ОчиститьРабочийКаталогДляОткрываемогоФайла(ПараметрыВыполнения)
|
||||
|
||||
Индекс = 0;
|
||||
Заголовок = НСтр("ru = 'Очистка рабочего каталога'");
|
||||
Текст = НСтр("ru = 'Пожалуйста, подождите...'");
|
||||
Состояние(Заголовок, 1, Текст);
|
||||
Для каждого Элемент Из ПараметрыВыполнения.ТаблицаФайлов Цикл
|
||||
|
||||
Индекс = Индекс + 1;
|
||||
|
||||
ПолныйПуть = ПараметрыВыполнения.ИмяКаталога + Элемент.Путь;
|
||||
ФайлНаДиске = Новый Файл(ПолныйПуть);
|
||||
ФайлНаДиске.УстановитьТолькоЧтение(Ложь);
|
||||
@@ -5254,7 +5259,6 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Удаление из регистра сведений.
|
||||
РаботаСФайламиСлужебныйВызовСервера.УдалитьИзРегистра(Элемент.Версия);
|
||||
|
||||
Если ПараметрыВыполнения.СколькоНадоОсвободитьМеста > 0 Тогда
|
||||
@@ -5264,6 +5268,13 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если Индекс % 10 = 0 Тогда
|
||||
Прогресс = ?(ПараметрыВыполнения.СколькоНадоОсвободитьМеста > 0,
|
||||
(ПараметрыВыполнения.СколькоНадоОсвободитьМеста - ПараметрыВыполнения.СколькоОсталось) * 100 / ПараметрыВыполнения.СколькоНадоОсвободитьМеста,
|
||||
Индекс * 100 / ПараметрыВыполнения.ТаблицаФайлов.Количество());
|
||||
Состояние(Заголовок, Прогресс, Текст);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -9629,7 +9640,7 @@
|
||||
|
||||
Если Не РасширениеПоддерживается Тогда
|
||||
ТекстПредупреждения =
|
||||
НСтр("ru = 'Сравнение файлов поддерживается только для файлов следующих типов:
|
||||
НСтр("ru = 'Сравнение файлов возможно только для файлов следующих типов:
|
||||
| Текстовый документ (.txt)
|
||||
| Документ формата RTF (.rtf)
|
||||
| Документ Microsoft Word (.doc, .docx)
|
||||
@@ -9662,11 +9673,11 @@
|
||||
ПараметрыВыполнения.Вставить("Ссылка2", ВторойФайл);
|
||||
ПараметрыВыполнения.Вставить("ВладелецВерсии", ВладелецВерсии);
|
||||
|
||||
СравнениеВерсийАвтомат(-1, ПараметрыВыполнения);
|
||||
СравнитьФайлыСлужебный(-1, ПараметрыВыполнения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СравнениеВерсийАвтомат(Результат, ПараметрыВыполнения) Экспорт
|
||||
Процедура СравнитьФайлыСлужебный(Результат, ПараметрыВыполнения) Экспорт
|
||||
|
||||
Если Результат <> -1 Тогда
|
||||
Если ПараметрыВыполнения.ТекущийШаг = 1 Тогда
|
||||
@@ -9702,7 +9713,7 @@
|
||||
|
||||
Если ПараметрыВыполнения.СпособСравненияВерсийФайлов = Неопределено Тогда
|
||||
// Первый вызов - еще не инициализирована настройка.
|
||||
Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
|
||||
Обработчик = Новый ОписаниеОповещения("СравнитьФайлыСлужебный", ЭтотОбъект, ПараметрыВыполнения);
|
||||
ОткрытьФорму("Обработка.РаботаСФайлами.Форма.ВыборСпособаСравненияВерсий", ,
|
||||
ЭтотОбъект, , , , Обработчик);
|
||||
Возврат;
|
||||
@@ -9729,14 +9740,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.ТекущийШаг = 3 Тогда
|
||||
Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
|
||||
Обработчик = Новый ОписаниеОповещения("СравнитьФайлыСлужебный", ЭтотОбъект, ПараметрыВыполнения);
|
||||
ПолучитьФайлВерсииВРабочийКаталог(
|
||||
Обработчик, ПараметрыВыполнения.ДанныеФайла1, ПараметрыВыполнения.ПолноеИмяФайла1);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.ТекущийШаг = 4 Тогда
|
||||
Обработчик = Новый ОписаниеОповещения("СравнениеВерсийАвтомат", ЭтотОбъект, ПараметрыВыполнения);
|
||||
Обработчик = Новый ОписаниеОповещения("СравнитьФайлыСлужебный", ЭтотОбъект, ПараметрыВыполнения);
|
||||
ПолучитьФайлВерсииВРабочийКаталог(
|
||||
Обработчик, ПараметрыВыполнения.ДанныеФайла2, ПараметрыВыполнения.ПолноеИмяФайла2);
|
||||
Возврат;
|
||||
|
||||
@@ -5746,13 +5746,13 @@
|
||||
// 2. открыть форму ошибки
|
||||
// 3. возврат результат успеха.
|
||||
//
|
||||
Процедура ВывестиИнформацию(ОповещениеОЗавершении, ТекстСообщения, ТаймаАут = Неопределено, Заголовок = "", ПараметрыОперации = Неопределено) Экспорт
|
||||
Процедура ВывестиИнформацию(ОповещениеОЗавершении, ТекстСообщения, ТаймАут = Неопределено, Заголовок = "", ПараметрыОперации = Неопределено) Экспорт
|
||||
|
||||
ПараметрыЦикла = Новый Структура();
|
||||
ПараметрыЦикла.Вставить("ВидОперации", НСтр("ru = 'Вывести информацию пользователю'", КодЯзыка()));
|
||||
ПараметрыЦикла.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
|
||||
ПараметрыЦикла.Вставить("ТекстСообщения", ТекстСообщения);
|
||||
ПараметрыЦикла.Вставить("ТаймАут", ТаймаАут);
|
||||
ПараметрыЦикла.Вставить("ТаймАут", ТаймАут);
|
||||
ПараметрыЦикла.Вставить("Заголовок", Заголовок);
|
||||
ПараметрыЦикла.Вставить("ПараметрыОперации", ПроверитьПараметрыОперации(ПараметрыОперации));
|
||||
|
||||
@@ -5797,14 +5797,14 @@
|
||||
// 2. открыть форму ошибки
|
||||
// 3. возврат результат успеха.
|
||||
//
|
||||
Процедура ВывестиВопрос(ОповещениеОЗавершении, ТекстСообщения, СписокКоманд, ТаймаАут = Неопределено, Заголовок = "", ПараметрыОперации = Неопределено) Экспорт
|
||||
Процедура ВывестиВопрос(ОповещениеОЗавершении, ТекстСообщения, СписокКоманд, ТаймАут = Неопределено, Заголовок = "", ПараметрыОперации = Неопределено) Экспорт
|
||||
|
||||
ПараметрыЦикла = Новый Структура();
|
||||
ПараметрыЦикла.Вставить("ВидОперации", НСтр("ru = 'Вопрос пользователю'", КодЯзыка()));
|
||||
ПараметрыЦикла.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
|
||||
ПараметрыЦикла.Вставить("ТекстСообщения", ТекстСообщения);
|
||||
ПараметрыЦикла.Вставить("СписокКоманд", СписокКоманд);
|
||||
ПараметрыЦикла.Вставить("ТаймАут", ТаймаАут);
|
||||
ПараметрыЦикла.Вставить("ТаймАут", ТаймАут);
|
||||
ПараметрыЦикла.Вставить("Заголовок", Заголовок);
|
||||
ПараметрыЦикла.Вставить("ПараметрыОперации", ПроверитьПараметрыОперации(ПараметрыОперации));
|
||||
|
||||
|
||||
@@ -1367,6 +1367,106 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СброситьРазмерыИПоложениеОкна(Форма) Экспорт
|
||||
|
||||
Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяФормы = Форма.ИмяФормы;
|
||||
НовыйКлючСохраненияПоложенияОкна = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "_");
|
||||
КлючОбъектаХранения = ИмяФормы + "/ВременныеКлючиСохраненияПоложенияОкна";
|
||||
ИмяПользователя = ИмяПользователя();
|
||||
НачалоДня = НачалоДня(ТекущаяУниверсальнаяДата());
|
||||
ГраницаУстаревания = НачалоДня - 2*24*60*60;
|
||||
|
||||
Ключи = ХранилищеСистемныхНастроек.Загрузить(КлючОбъектаХранения);
|
||||
|
||||
Если ТипЗнч(Ключи) = Тип("Соответствие") Тогда
|
||||
ИменаНастроек = Новый Массив;
|
||||
ИменаНастроек.Добавить("/НастройкиОкна");
|
||||
ИменаНастроек.Добавить("/НастройкиОкнаВебКлиента");
|
||||
ИменаНастроек.Добавить("/НастройкиОкнаМобильногоКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкна");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаМобильногоКлиента");
|
||||
Для Каждого КлючИЗначение Из Ключи Цикл
|
||||
ТекущийДень = КлючИЗначение.Ключ;
|
||||
Если ТипЗнч(ТекущийДень) <> Тип("Дата") Тогда
|
||||
Ключи = Неопределено;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если ТекущийДень > ГраницаУстаревания Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КлючиТекущегоДня = КлючИЗначение.Значение;
|
||||
Если ТипЗнч(КлючиТекущегоДня) <> Тип("Массив") Тогда
|
||||
Ключи = Неопределено;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Для Каждого ТекущийКлюч Из КлючиТекущегоДня Цикл
|
||||
НачалоКлючаОбъекта = ИмяФормы + "/" + ТекущийКлюч;
|
||||
Для Каждого ИмяНастройки Из ИменаНастроек Цикл
|
||||
ХранилищеСистемныхНастроек.Удалить(НачалоКлючаОбъекта + ИмяНастройки, "", ИмяПользователя);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
Ключи.Удалить(ТекущийДень);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ОчиститьСтарыеКлючи = ТипЗнч(Ключи) <> Тип("Соответствие");
|
||||
Если ОчиститьСтарыеКлючи Тогда
|
||||
Ключи = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
КлючиДня = Ключи.Получить(НачалоДня);
|
||||
Если ТипЗнч(КлючиДня) <> Тип("Массив") Тогда
|
||||
КлючиДня = Новый Массив;
|
||||
Ключи.Вставить(НачалоДня, КлючиДня);
|
||||
КонецЕсли;
|
||||
КлючиДня.Добавить(НовыйКлючСохраненияПоложенияОкна);
|
||||
ХранилищеСистемныхНастроек.Сохранить(КлючОбъектаХранения,, Ключи);
|
||||
|
||||
Форма.КлючСохраненияПоложенияОкна = НовыйКлючСохраненияПоложенияОкна;
|
||||
|
||||
Если Не ОчиститьСтарыеКлючи Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Отбор = Новый Структура("Пользователь", ИмяПользователя);
|
||||
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
|
||||
Пока Истина Цикл
|
||||
Попытка
|
||||
ЕстьСледующей = Выборка.Следующий();
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
Прервать;
|
||||
КонецПопытки;
|
||||
Если Не ЕстьСледующей Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если Не СтрНачинаетсяС(Выборка.КлючОбъекта, ИмяФормы)
|
||||
Или Выборка.КлючНастроек <> ""
|
||||
Или Выборка.КлючОбъекта = КлючОбъектаХранения Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ЧастиКлючаОбъекта = СтрРазделить(Выборка.КлючОбъекта, "/");
|
||||
Если ЧастиКлючаОбъекта.Количество() < 2 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПоследняяЧастьКлюча = ЧастиКлючаОбъекта[ЧастиКлючаОбъекта.ВГраница()];
|
||||
Если СтрНайти(ПоследняяЧастьКлюча, "НастройкиОкна") > 0
|
||||
Или СтрНайти(ПоследняяЧастьКлюча, "WindowSettings") > 0 Тогда
|
||||
ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, "", ИмяПользователя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Прочие процедуры и функции.
|
||||
|
||||
@@ -1656,7 +1756,7 @@
|
||||
|
||||
Типы.Добавить(Метаданные.Константы.АдресПубликацииИнформационнойБазыВИнтернете);
|
||||
Типы.Добавить(Метаданные.Константы.АдресПубликацииИнформационнойБазыВЛокальнойСети);
|
||||
|
||||
Типы.Добавить(Метаданные.Константы.ИдентификаторИнформационнойБазы);
|
||||
Типы.Добавить(Метаданные.Справочники.ВерсииРасширений);
|
||||
Типы.Добавить(Метаданные.Справочники.ИдентификаторыОбъектовРасширений);
|
||||
Типы.Добавить(Метаданные.РегистрыСведений.ИдентификаторыОбъектовВерсийРасширений);
|
||||
@@ -2405,30 +2505,40 @@
|
||||
Если Константы.ИспользоватьРазделениеПоОбластямДанных.Получить() Тогда
|
||||
|
||||
НовыеЗначения.Вставить("НеИспользоватьРазделениеПоОбластямДанных", Ложь);
|
||||
НовыеЗначения.Вставить("СтандартныеПодсистемыВАвтономномРежиме", Ложь);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
|
||||
|
||||
НовыеЗначения.Вставить("ЭтоАвтономноеРабочееМесто", Ложь)
|
||||
НовыеЗначения.Вставить("ЭтоАвтономноеРабочееМесто", Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
|
||||
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса")
|
||||
И ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
|
||||
|
||||
НовыеЗначения.Вставить("НеИспользоватьРазделениеПоОбластямДанных", Ложь);
|
||||
|
||||
// При обновлении АРМ синхронизируем значения константы с ЭтоАвтономноеРабочееМесто
|
||||
НовыеЗначения.Вставить("СтандартныеПодсистемыВАвтономномРежиме", Истина);
|
||||
|
||||
Иначе
|
||||
|
||||
НовыеЗначения.Вставить("НеИспользоватьРазделениеПоОбластямДанных", Истина);
|
||||
НовыеЗначения.Вставить("СтандартныеПодсистемыВАвтономномРежиме", Ложь);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого КлючИЗначения Из НовыеЗначения Цикл
|
||||
|
||||
Если КлючИЗначения.Ключ = "НеИспользоватьРазделениеПоОбластямДанных"
|
||||
И Константы[КлючИЗначения.Ключ].Получить() <> КлючИЗначения.Значение Тогда
|
||||
ИЛИ КлючИЗначения.Ключ = "СтандартныеПодсистемыВАвтономномРежиме" Тогда
|
||||
|
||||
Если Константы[КлючИЗначения.Ключ].Получить() <> КлючИЗначения.Значение Тогда
|
||||
|
||||
Константы[КлючИЗначения.Ключ].Установить(КлючИЗначения.Значение);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли КлючИЗначения.Ключ = "ЭтоАвтономноеРабочееМесто"
|
||||
И ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() = Истина Тогда
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
Функция ЗначениеФлажкаУдалятьПоРасписанию() Экспорт
|
||||
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченных);
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
||||
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
|
||||
|
||||
Для Каждого Задание Из Задания Цикл
|
||||
|
||||
File renamed without changes.
+2
-2
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9162a85e-a385-42b0-b809-da916fce44b7">
|
||||
<name>УдалениеПомеченныхПовтИсп</name>
|
||||
<name>УдалениеПомеченныхОбъектовПовтИсп</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Удаление помеченных повт исп</value>
|
||||
<value>Удаление помеченных объектов повт исп</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
@@ -30,7 +30,7 @@
|
||||
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Настройки) Экспорт
|
||||
|
||||
Зависимость = Настройки.Добавить();
|
||||
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.УдалениеПомеченных;
|
||||
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов;
|
||||
Зависимость.ФункциональнаяОпция = Метаданные.ФункциональныеОпции.ИспользоватьУдалениеПомеченныхОбъектов;
|
||||
Зависимость.ВключатьПриВключенииФункциональнойОпции = Ложь;
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
// См. ОчередьЗаданийПереопределяемый.ПриПолученииСпискаШаблонов.
|
||||
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
|
||||
ШаблоныЗаданий.Добавить("УдалениеПомеченных");
|
||||
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов.Имя);
|
||||
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов.Имя);
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
|
||||
@@ -251,7 +251,7 @@
|
||||
ПараметрыЗадания.Вставить("ИнтервалПовтораПриАварийномЗавершении", 10);
|
||||
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3);
|
||||
|
||||
РегламентныеЗаданияСервер.УстановитьПараметрыРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченных,
|
||||
РегламентныеЗаданияСервер.УстановитьПараметрыРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов,
|
||||
ПараметрыЗадания);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -260,7 +260,7 @@
|
||||
//
|
||||
Процедура УдалениеПомеченныхПоРасписанию() Экспорт
|
||||
|
||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченных);
|
||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
||||
УдаляемыеОбъекты = УдалениеПомеченныхОбъектов.ПомеченныеНаУдаление(,Истина);
|
||||
УдалитьПомеченныеОбъектыСлужебный(
|
||||
УдаляемыеОбъекты,
|
||||
@@ -286,22 +286,21 @@
|
||||
// Формирует список объектов метаданных, в которых разрешено наличие битых ссылок.
|
||||
// Результат кешируется.
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из ОбъектМетаданных
|
||||
//
|
||||
Функция ИсключенияПоискаСсылокРазрешающихУдаление() Экспорт
|
||||
Возврат УдалениеПомеченныхПовтИсп.ИсключенияПоискаСсылокРазрешающихУдаление();
|
||||
Возврат УдалениеПомеченныхОбъектовПовтИсп.ИсключенияПоискаСсылокРазрешающихУдаление();
|
||||
КонецФункции
|
||||
|
||||
// Снимает блокировку с объектов по истечении времени жизни сеанса удаления объектов.
|
||||
// Для прекращения контроля использования удаляемых объектов при аварийном завершении сеанса удаления объектов.
|
||||
// Для снятия запрета использования удаляемых объектов в новых объектах
|
||||
// в случае аварийного завершения сеанса удаления помеченных объектов.
|
||||
//
|
||||
Процедура ПроверкаАктивностиСеансаУдаленияОбъектов() Экспорт
|
||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов);
|
||||
Процедура КонтрольУдаленияПомеченныхОбъектов() Экспорт
|
||||
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Если НЕ ПроверятьИспользованиеУдаляемыхОбъектов() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -338,17 +337,15 @@
|
||||
КонецЦикла;
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает число секунд, в течение которых должна держаться блокировка использования удаляемого объекта
|
||||
// Возвращает максимальное количество секунд, в течение которого должен быть установлен
|
||||
// запрет использования удаляемого объекта в других объектах. Значение равно трем часам.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Число
|
||||
//
|
||||
Функция ВремяЖизниБлокировки() Экспорт
|
||||
|
||||
Перем ВремяЖизниБлокировки;
|
||||
|
||||
ВремяЖизниБлокировки = 3 * 60 * 60;
|
||||
Возврат ВремяЖизниБлокировки;
|
||||
Возврат 3 * 60 * 60;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -672,8 +669,9 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Отключает контроль использования удаляемых объектов. Отключает регламентное задание, если обработаны все удаляемых объекты.
|
||||
// Не используется для неразделенного сеанса в модули сервиса.
|
||||
// Отключает контроль использования удаляемых объектов.
|
||||
// Отключает регламентное задание, если обработаны все удаляемые объекты.
|
||||
// Не используется для неразделенного сеанса в модели сервиса.
|
||||
//
|
||||
// Параметры:
|
||||
// Идентификатор - УникальныйИдентификатор
|
||||
@@ -698,7 +696,7 @@
|
||||
|
||||
Фильтр = Новый Структура(
|
||||
"Метаданные",
|
||||
Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов);
|
||||
Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -747,7 +745,7 @@
|
||||
|
||||
Фильтр = Новый Структура(
|
||||
"Метаданные",
|
||||
Метаданные.РегламентныеЗадания.ОтключениеПроверкиИспользованияУдаляемыхОбъектов);
|
||||
Метаданные.РегламентныеЗадания.КонтрольУдаленияПомеченныхОбъектов);
|
||||
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
@@ -861,8 +859,7 @@
|
||||
КешТиповУдаляемыхОбъектов = Новый Соответствие;
|
||||
Для Каждого УдаляемыйСсылка Из УдаляемыеОбъекты Цикл
|
||||
ТипУдаляемого = ТипЗнч(УдаляемыйСсылка);
|
||||
УдаляемыйИнформация = ИнформацияОТипе(ТипУдаляемого,
|
||||
КешТиповУдаляемыхОбъектов);
|
||||
УдаляемыйИнформация = ИнформацияОТипе(ТипУдаляемого, КешТиповУдаляемыхОбъектов);
|
||||
|
||||
УзелТипа = УзлыПервогоУровня.Получить(ТипУдаляемого);
|
||||
Если УзелТипа = Неопределено Тогда
|
||||
@@ -1564,7 +1561,7 @@
|
||||
|
||||
ПериодОбновленияЗначения = 60000;
|
||||
|
||||
ДанныеКонстанты = УдалениеПомеченныхПовтИсп.ПроверятьИспользованиеУдаляемыхОбъектов();
|
||||
ДанныеКонстанты = УдалениеПомеченныхОбъектовПовтИсп.ПроверятьИспользованиеУдаляемыхОбъектов();
|
||||
Если ТекущаяУниверсальнаяДатаВМиллисекундах() - ДанныеКонстанты.МеткаВремени > ПериодОбновленияЗначения Тогда
|
||||
ДанныеКонстанты.Значение = Константы.ПроверятьИспользованиеУдаляемыхОбъектов.Получить();
|
||||
ДанныеКонстанты.МеткаВремени = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
УдалятьПомеченныеОбъекты = Изменения.Использование;
|
||||
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченных);
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
||||
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
|
||||
|
||||
Для Каждого Задание Из Задания Цикл
|
||||
@@ -59,7 +59,7 @@
|
||||
Результат.Вставить("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
|
||||
|
||||
Отбор = Новый Структура;
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченных);
|
||||
Отбор.Вставить("Метаданные", Метаданные.РегламентныеЗадания.УдалениеПомеченныхОбъектов);
|
||||
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
|
||||
Если Задания.Количество() > 0 Тогда
|
||||
Задания = Задания[0];
|
||||
|
||||
@@ -3228,6 +3228,15 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект.ЭтоНовый()
|
||||
И ОбщегоНазначения.ИнформационнаяБазаФайловая()
|
||||
И Не ПропуститьПроверкуДоступа(Отказ, Объект) Тогда
|
||||
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
|
||||
Блокировка.Заблокировать();
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваВидовДоступа = СвойстваВидовДоступа();
|
||||
ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами;
|
||||
|
||||
@@ -23011,8 +23020,7 @@
|
||||
Параметры = КэшПараметровОграничения().ОграниченияСписков.Получить(ПолноеИмя);
|
||||
|
||||
Если Параметры = Неопределено Тогда
|
||||
ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, Ложь);
|
||||
Параметры = КэшПараметровОграничения().ОграниченияСписков.Получить(ПолноеИмя);
|
||||
ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
Если ДляВнешнихПользователей = Null Тогда
|
||||
@@ -23032,53 +23040,35 @@
|
||||
КонецФункции
|
||||
|
||||
// Для функций СвойстваСпискаКакВедущего, ПараметрыОграничения.
|
||||
Процедура ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, ДействующиеПараметрыОбновлены,
|
||||
ДобавляемыеОграниченияСписков = Неопределено, ОбщийКонтекст = Неопределено, ПовторныйВызов = Ложь)
|
||||
Процедура ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, Параметры,
|
||||
ОбщийКонтекст = Неопределено, ПовторныйВызов = Ложь)
|
||||
|
||||
Если ОбщийКонтекст = Неопределено Тогда
|
||||
ОбщийКонтекст = ОбщийКонтекстРасчетаПараметровОграничения(ПолноеИмя);
|
||||
ОбщийКонтекст.Вставить("ОписанияОграничений", Новый Соответствие);
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОграниченияСписков = Новый Соответствие;
|
||||
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст, Ложь);
|
||||
ПолноеИмяПриЗацикливании = "";
|
||||
|
||||
ДобавитьПараметрыОграниченияСписка(ПолноеИмя, ПараметрыОграниченияСписков,
|
||||
ДействующиеПараметры, ДействующиеПараметрыОбновлены, ИдентификаторТранзакции, ОбщийКонтекст);
|
||||
ВерсияОграничений = ДействующиеПараметры.ВерсииОграниченийСписков.Получить(ПолноеИмя);
|
||||
РассчитанныеПараметры = РассчитанныеПараметрыОграничения(ПолноеИмя, ОбщийКонтекст, ДействующиеПараметры);
|
||||
|
||||
Если ДействующиеПараметрыОбновлены Тогда
|
||||
Если ВерсияОграничений <> РассчитанныеПараметры.Версия Тогда
|
||||
Если ПовторныйВызов Тогда
|
||||
ПолноеИмяПриЗацикливании = ПолноеИмя;
|
||||
Иначе
|
||||
ЗаполнитьПараметрыОграничения(ПолноеИмя,
|
||||
ИдентификаторТранзакции, Ложь, ДобавляемыеОграниченияСписков, ОбщийКонтекст, Истина);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ПолноеИмяПриЗацикливании) Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось обновить параметры ограничения доступа списка ""%1""
|
||||
|из-за нестабильной строки свойств версии параметров для вычисления хеш-суммы.'"),
|
||||
ПолноеИмяПриЗацикливании);
|
||||
ПолноеИмя);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыОграниченияСписков.Количество() = 0 Тогда
|
||||
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст, Истина);
|
||||
ЗаполнитьПараметрыОграничения(ПолноеИмя, ИдентификаторТранзакции, Параметры, ОбщийКонтекст, Истина);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДобавляемыеОграниченияСписков <> Неопределено Тогда
|
||||
ДобавляемыеОграниченияСписков = ПараметрыОграниченияСписков;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Параметры = ОбщегоНазначения.ФиксированныеДанные(РассчитанныеПараметры);
|
||||
|
||||
Кэш = КэшПараметровОграничения();
|
||||
|
||||
Для Каждого КлючИЗначение Из ПараметрыОграниченияСписков Цикл
|
||||
Кэш.ОграниченияСписков.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение);
|
||||
КонецЦикла;
|
||||
КэшПараметровОграничения().ОграниченияСписков.Вставить(ПолноеИмя, Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -23265,28 +23255,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Для процедуры ЗаполнитьПараметрыОграничения.
|
||||
Процедура ДобавитьПараметрыОграниченияСписка(ПолноеИмя, ПараметрыОграниченияСписков, ДействующиеПараметры,
|
||||
ДействующиеПараметрыОбновлены, ИдентификаторТранзакции, ОбщийКонтекст)
|
||||
|
||||
Если КэшПараметровОграничения().ОграниченияСписков.Получить(ПолноеИмя) <> Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВерсияОграничений = ДействующиеПараметры.ВерсииОграниченийСписков.Получить(ПолноеИмя);
|
||||
РассчитанныеПараметры = РассчитанныеПараметрыОграничения(ПолноеИмя, ОбщийКонтекст, ДействующиеПараметры);
|
||||
|
||||
Если ВерсияОграничений <> РассчитанныеПараметры.Версия Тогда
|
||||
ДействующиеПараметры = ДействующиеПараметрыОграниченияДоступа(ИдентификаторТранзакции, ОбщийКонтекст, Истина);
|
||||
ДействующиеПараметрыОбновлены = Истина;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОграниченияСписков.Вставить(ПолноеИмя,
|
||||
ОбщегоНазначения.ФиксированныеДанные(РассчитанныеПараметры));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Для процедуры ДобавитьПараметрыОграниченияСписка.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
|
||||
@@ -2719,7 +2719,7 @@
|
||||
// Адрес, Телефон, Факс, ВебСтраница. Значение по умолчанию - Ложь.
|
||||
// * НастройкиПроверки - Неопределено - для типов Другое, ВебСтраница, Skype.
|
||||
// - Структура - состав полей зависит от типа контактной информации:
|
||||
// ** ТолькоНациональныйАдрес - Булево - для типа Адрес. Если Истина, если возможен ввод только российских адресов.
|
||||
// ** ТолькоНациональныйАдрес - Булево - для типа Адрес. Если Истина, если возможен ввод только национальных адресов.
|
||||
// ** ПроверятьКорректность - Булево - для типа Адрес. Если Истина, если требуется запрещать пользователю записывать
|
||||
// некорректные адреса.
|
||||
// ** СкрыватьНеактуальныеАдреса - Булево - для типа Адрес. Если Истина, если не требуется показывать
|
||||
@@ -4494,7 +4494,7 @@
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
Процедура ВывестиСообщениеПользователю(ТекстСообщения, ИмяРеквизита, ПолеРеквизита)
|
||||
Процедура ВывестиСообщениеПользователю(ТекстСообщения, ИмяРеквизита, ПолеРеквизита = "")
|
||||
|
||||
ИмяРеквизита = ?(ПустаяСтрока(ПолеРеквизита), ИмяРеквизита, "");
|
||||
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения,, ПолеРеквизита, ИмяРеквизита);
|
||||
@@ -4862,13 +4862,45 @@
|
||||
// Параметры:
|
||||
// Источник - ОбъектXDTO - контактная информацией.
|
||||
// ВидИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации с настройками проверки.
|
||||
// ИмяРеквизита - Строка - необязательно имя реквизита для привязки сообщения об ошибке.
|
||||
// ИмяРеквизита - Строка - необязательно имя реквизита для привязки сообщения об ошибке к реквизиту на форме.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Число - уровень ошибок: 0 - нет, 1 - неблокирующие, 2 - блокирующие.
|
||||
//
|
||||
Функция ОшибкиЗаполненияТелефона(Источник, ВидИнформации, ИмяРеквизита = "")
|
||||
|
||||
Если Не ВидИнформации.ПроверятьКорректность Тогда
|
||||
Возврат 0;
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьОшибки = Ложь;
|
||||
|
||||
СведенияОТелефоне = СведенияОТелефоне(Источник);
|
||||
|
||||
МодульРаботаСАдресами = Неопределено;
|
||||
Если Метаданные.Обработки.Найти("РасширенныйВводКонтактнойИнформации") <> Неопределено Тогда
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
КонецЕсли;
|
||||
|
||||
СписокОшибок = УправлениеКонтактнойИнформациейКлиентСервер.ОшибкиЗаполненияТелефона(СведенияОТелефоне, МодульРаботаСАдресами);
|
||||
|
||||
Для Каждого Элемент Из СписокОшибок Цикл
|
||||
|
||||
Если ЗначениеЗаполнено(ИмяРеквизита) Тогда
|
||||
ВывестиСообщениеПользователю(Элемент.Представление, ИмяРеквизита);
|
||||
КонецЕсли;
|
||||
|
||||
ЕстьОшибки = Истина;
|
||||
КонецЦикла;
|
||||
|
||||
Если ЕстьОшибки И ВидИнформации.ПроверятьКорректность Тогда
|
||||
Возврат 2;
|
||||
ИначеЕсли ЕстьОшибки Тогда
|
||||
Возврат 1;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет контактную информацию веб страницы и сообщает об ошибках. Возвращает флаг наличия ошибок.
|
||||
|
||||
@@ -1766,14 +1766,4 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
Функция ОставитьТолькоЦифрыВСтроке(Знач Строка) Экспорт
|
||||
|
||||
ЛишниеСимволы = СтрСоединить(СтрРазделить(Строка, "0123456789"), "");
|
||||
Результат = СтрСоединить(СтрРазделить(Строка, ЛишниеСимволы), "");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -601,6 +601,83 @@
|
||||
// АПК: 1297-вкл
|
||||
КонецФункции
|
||||
|
||||
//
|
||||
|
||||
// Возвращает список ошибок заполнения в виде списка значений
|
||||
//
|
||||
// Параметры:
|
||||
// СведенияОТелефоне - см. СтруктураПолейТелефона
|
||||
// МодульДополнительныхПроверок - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СписокЗначений - ошибки заполнения телефона:
|
||||
// * Представление - описание ошибки.
|
||||
// * Значение - XPath для поля.
|
||||
//
|
||||
Функция ОшибкиЗаполненияТелефона(СведенияОТелефоне, МодульДополнительныхПроверок = Неопределено) Экспорт
|
||||
|
||||
СписокОшибок = Новый СписокЗначений;
|
||||
ПолныйНомерТелефона = СведенияОТелефоне.КодСтраны + СведенияОТелефоне.КодГорода + СведенияОТелефоне.НомерТелефона;
|
||||
|
||||
КодСтраныТолькоЦифры = ОставитьТолькоЦифрыВСтроке(СведенияОТелефоне.КодСтраны);
|
||||
Если ЗначениеЗаполнено(СведенияОТелефоне.КодСтраны) И ПустаяСтрока(КодСтраныТолькоЦифры) Тогда
|
||||
СписокОшибок.Добавить("КодСтраны", НСтр("ru = 'Код страны содержит недопустимые символы'"));
|
||||
КонецЕсли;
|
||||
|
||||
НомерТелефонаТолькоЦифры = ОставитьТолькоЦифрыВСтроке(СведенияОТелефоне.Представление);
|
||||
Если ПустаяСтрока(НомерТелефонаТолькоЦифры) Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'Номер телефона не содержит цифр'"));
|
||||
КонецЕсли;
|
||||
|
||||
ПолныйНомерТелефонаТолькоЦифры = ОставитьТолькоЦифрыВСтроке(ПолныйНомерТелефона);
|
||||
Если СтрДлина(ПолныйНомерТелефонаТолькоЦифры) > 15 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'Номер телефона слишком длинный'"));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СведенияОТелефоне.КодСтраны) И НомерТелефонаСодержитНедопустимыеСимволы(СведенияОТелефоне.КодСтраны) Тогда
|
||||
СписокОшибок.Добавить("КодСтраны", НСтр("ru = 'Код страны содержит недопустимые символы'"));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СведенияОТелефоне.КодГорода) И НомерТелефонаСодержитНедопустимыеСимволы(СведенияОТелефоне.КодГорода) Тогда
|
||||
СписокОшибок.Добавить("КодГорода", НСтр("ru = 'Код города содержит недопустимые символы'"));
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СведенияОТелефоне.НомерТелефона) И НомерТелефонаСодержитНедопустимыеСимволы(СведенияОТелефоне.НомерТелефона) Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'Номер телефона содержит недопустимые символы'"));
|
||||
КонецЕсли;
|
||||
|
||||
Если МодульДополнительныхПроверок <> Неопределено Тогда
|
||||
МодульДополнительныхПроверок.ПроверитьКорректностьКодовСтраныИГорода(СведенияОТелефоне, СписокОшибок);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СписокОшибок;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОставитьТолькоЦифрыВСтроке(Знач Строка) Экспорт
|
||||
|
||||
ЛишниеСимволы = СтрСоединить(СтрРазделить(Строка, "0123456789"), "");
|
||||
Результат = СтрСоединить(СтрРазделить(Строка, ЛишниеСимволы), "");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет, содержит ли строка только ~
|
||||
//
|
||||
// Параметры:
|
||||
// СтрокаПроверки - Строка - строка для проверки.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина - строка содержит только цифры или пустая, Ложь - строка содержит иные символы.
|
||||
//
|
||||
Функция НомерТелефонаСодержитНедопустимыеСимволы(Знач СтрокаПроверки)
|
||||
|
||||
СписокДопустимыхСимволов = "+-.,() wp1234567890";
|
||||
Возврат СтрРазделить(СтрокаПроверки, СписокДопустимыхСимволов, Ложь).Количество() > 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -862,7 +862,7 @@
|
||||
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") <> Неопределено Тогда
|
||||
|
||||
МодульРаботаСАдресами = ОбщегоНазначения.ОбщийМодуль("РаботаСАдресами");
|
||||
МодульРаботаСАдресами.ВывитьИИсправитьУстаревшиеАдреса();
|
||||
МодульРаботаСАдресами.ВыявитьИИсправитьУстаревшиеАдреса();
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -1551,17 +1551,11 @@
|
||||
//
|
||||
// Возвращаемое значение
|
||||
// ТаблицаЗначений:
|
||||
// ТипФайлаТабличногоДокумента - ТипФайлаТабличногоДокумента - значение в платформе,
|
||||
// соответствующее
|
||||
// формату;
|
||||
// Ссылка - ПеречислениеСсылка.ФорматыСохраненияОтчетов - ссылка на метаданные,
|
||||
// где хранится
|
||||
// представление;
|
||||
// Представление - Строка - представление типа
|
||||
// файла (заполняется из перечисления);
|
||||
// Расширение - Строка - тип файла для
|
||||
// операционной системы;
|
||||
// Картинка - Картинка - значок формата.
|
||||
// * ТипФайлаТабличногоДокумента - ТипФайлаТабличногоДокумента - значение, соответствующее формату.
|
||||
// * Ссылка - ПеречислениеСсылка.ФорматыСохраненияОтчетов
|
||||
// * Представление - Строка - представление типа файла (заполняется из перечисления).
|
||||
// * Расширение - Строка - тип файла для операционной системы.
|
||||
// * Картинка - Картинка - значок формата.
|
||||
//
|
||||
Функция НастройкиФорматовСохраненияТабличногоДокумента() Экспорт
|
||||
|
||||
|
||||
@@ -1662,11 +1662,12 @@
|
||||
|
||||
Записать = Ложь;
|
||||
Если Объект = Неопределено Тогда
|
||||
Если СвойстваНабора.ДочерниеНаборы = Неопределено
|
||||
Или СвойстваНабора.ДочерниеНаборы.Количество() = 0 Тогда
|
||||
Объект = Справочники.НаборыДополнительныхРеквизитовИСведений.СоздатьЭлемент();
|
||||
Иначе
|
||||
Если СвойстваНабора.ЭтоГруппа
|
||||
Или (СвойстваНабора.ДочерниеНаборы <> Неопределено
|
||||
И СвойстваНабора.ДочерниеНаборы.Количество() <> 0) Тогда
|
||||
Объект = Справочники.НаборыДополнительныхРеквизитовИСведений.СоздатьГруппу();
|
||||
Иначе
|
||||
Объект = Справочники.НаборыДополнительныхРеквизитовИСведений.СоздатьЭлемент();
|
||||
КонецЕсли;
|
||||
Если Родитель <> Неопределено Тогда
|
||||
Объект.Родитель = Родитель;
|
||||
|
||||
@@ -95,7 +95,6 @@
|
||||
Результат.Вставить("ТипШаблона", "Письмо");
|
||||
Результат.Вставить("Назначение", "");
|
||||
Результат.Вставить("ПолноеИмяТипаНазначения", "");
|
||||
Результат.Вставить("ФорматПисьма", ПредопределенноеЗначение("Перечисление.СпособыРедактированияЭлектронныхПисем.HTML"));
|
||||
Результат.Вставить("УпаковатьВАрхив", Ложь);
|
||||
Результат.Вставить("ТранслитерироватьИменаФайлов", Ложь);
|
||||
Результат.Вставить("ПеревестиВТранслит", Ложь);
|
||||
@@ -113,6 +112,8 @@
|
||||
Результат.Вставить("Наименование", "");
|
||||
Результат.Вставить("ПараметрыСообщения", Новый Структура);
|
||||
Результат.Вставить("ПодписьИПечать", Ложь);
|
||||
Результат.Вставить("РасширенныйСписокПолучателей", Ложь);
|
||||
Результат.Вставить("ФорматПисьма", ПредопределенноеЗначение("Перечисление.СпособыРедактированияЭлектронныхПисем.HTML"));
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
@@ -796,6 +796,10 @@
|
||||
ПараметрыШаблона.ТипШаблона = "SMS";
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыОтправки.ДополнительныеПараметры.Свойство("РасширенныйСписокПолучателей") Тогда
|
||||
ПараметрыШаблона.РасширенныйСписокПолучателей = ПараметрыОтправки.ДополнительныеПараметры.РасширенныйСписокПолучателей;
|
||||
КонецЕсли;
|
||||
|
||||
МенеджерОбъекта = Неопределено;
|
||||
Если ПараметрыОтправки.Свойство("Предмет") И ЗначениеЗаполнено(ПараметрыОтправки.Предмет) Тогда
|
||||
МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(ПараметрыОтправки.Предмет));
|
||||
|
||||
@@ -1777,106 +1777,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СброситьРазмерыИПоложениеОкна(Форма) Экспорт
|
||||
|
||||
Если Не ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяФормы = Форма.ИмяФормы;
|
||||
НовыйКлючСохраненияПоложенияОкна = СтрЗаменить(Строка(Новый УникальныйИдентификатор), "-", "_");
|
||||
КлючОбъектаХранения = ИмяФормы + "/ВременныеКлючиСохраненияПоложенияОкна";
|
||||
ИмяПользователя = ИмяПользователя();
|
||||
НачалоДня = НачалоДня(ТекущаяУниверсальнаяДата());
|
||||
ГраницаУстаревания = НачалоДня - 2*24*60*60;
|
||||
|
||||
Ключи = ХранилищеСистемныхНастроек.Загрузить(КлючОбъектаХранения);
|
||||
|
||||
Если ТипЗнч(Ключи) = Тип("Соответствие") Тогда
|
||||
ИменаНастроек = Новый Массив;
|
||||
ИменаНастроек.Добавить("/НастройкиОкна");
|
||||
ИменаНастроек.Добавить("/НастройкиОкнаВебКлиента");
|
||||
ИменаНастроек.Добавить("/НастройкиОкнаМобильногоКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкна");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаВебКлиента");
|
||||
ИменаНастроек.Добавить("/Такси/НастройкиОкнаМобильногоКлиента");
|
||||
Для Каждого КлючИЗначение Из Ключи Цикл
|
||||
ТекущийДень = КлючИЗначение.Ключ;
|
||||
Если ТипЗнч(ТекущийДень) <> Тип("Дата") Тогда
|
||||
Ключи = Неопределено;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если ТекущийДень > ГраницаУстаревания Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КлючиТекущегоДня = КлючИЗначение.Значение;
|
||||
Если ТипЗнч(КлючиТекущегоДня) <> Тип("Массив") Тогда
|
||||
Ключи = Неопределено;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Для Каждого ТекущийКлюч Из КлючиТекущегоДня Цикл
|
||||
НачалоКлючаОбъекта = ИмяФормы + "/" + ТекущийКлюч;
|
||||
Для Каждого ИмяНастройки Из ИменаНастроек Цикл
|
||||
ХранилищеСистемныхНастроек.Удалить(НачалоКлючаОбъекта + ИмяНастройки, "", ИмяПользователя);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
Ключи.Удалить(ТекущийДень);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
ОчиститьСтарыеКлючи = ТипЗнч(Ключи) <> Тип("Соответствие");
|
||||
Если ОчиститьСтарыеКлючи Тогда
|
||||
Ключи = Новый Соответствие;
|
||||
КонецЕсли;
|
||||
|
||||
КлючиДня = Ключи.Получить(НачалоДня);
|
||||
Если ТипЗнч(КлючиДня) <> Тип("Массив") Тогда
|
||||
КлючиДня = Новый Массив;
|
||||
Ключи.Вставить(НачалоДня, КлючиДня);
|
||||
КонецЕсли;
|
||||
КлючиДня.Добавить(НовыйКлючСохраненияПоложенияОкна);
|
||||
ХранилищеСистемныхНастроек.Сохранить(КлючОбъектаХранения,, Ключи);
|
||||
|
||||
Форма.КлючСохраненияПоложенияОкна = НовыйКлючСохраненияПоложенияОкна;
|
||||
|
||||
Если Не ОчиститьСтарыеКлючи Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Отбор = Новый Структура("Пользователь", ИмяПользователя);
|
||||
Выборка = ХранилищеСистемныхНастроек.Выбрать(Отбор);
|
||||
Пока Истина Цикл
|
||||
Попытка
|
||||
ЕстьСледующей = Выборка.Следующий();
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Ошибка выполнения'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,,,
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
Прервать;
|
||||
КонецПопытки;
|
||||
Если Не ЕстьСледующей Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если Не СтрНачинаетсяС(Выборка.КлючОбъекта, ИмяФормы)
|
||||
Или Выборка.КлючНастроек <> ""
|
||||
Или Выборка.КлючОбъекта = КлючОбъектаХранения Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ЧастиКлючаОбъекта = СтрРазделить(Выборка.КлючОбъекта, "/");
|
||||
Если ЧастиКлючаОбъекта.Количество() < 2 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ПоследняяЧастьКлюча = ЧастиКлючаОбъекта[ЧастиКлючаОбъекта.ВГраница()];
|
||||
Если СтрНайти(ПоследняяЧастьКлюча, "НастройкиОкна") > 0
|
||||
Или СтрНайти(ПоследняяЧастьКлюча, "WindowSettings") > 0 Тогда
|
||||
ХранилищеСистемныхНастроек.Удалить(Выборка.КлючОбъекта, "", ИмяПользователя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обновление информационной базы.
|
||||
|
||||
@@ -4343,7 +4243,7 @@
|
||||
ПредставлениеКлассификатора.Колонки.Добавить("Причина",
|
||||
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
|
||||
ПредставлениеКлассификатора.Колонки.Добавить("Решение",
|
||||
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
|
||||
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(750)));
|
||||
ПредставлениеКлассификатора.Колонки.Добавить("СпособУстранения",
|
||||
Новый ОписаниеТипов("Строка", Новый КвалификаторыСтроки(500)));
|
||||
ПредставлениеКлассификатора.Колонки.Добавить("Ссылка",
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a22da5f4-17b3-4d36-af20-4b41712cca0b">
|
||||
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="92b3f980-1c93-42e2-ba1d-372940c24422">
|
||||
<name>БиблиотекаСтандартныхПодсистем</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Библиотека стандартных подсистем, редакция 3.1</value>
|
||||
</synonym>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="37b03872-fd22-4a91-aa14-20ac21a39b7f"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4524d8b6-091b-4c03-b028-669729d6fb3c"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="694341a3-d446-492b-9d91-aff62a0403c3"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="0abf53f1-3e7a-48bb-ba64-28b6aa792b04"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="6ac83ae2-7764-4bef-801b-84c488c9988c"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="49aa51d5-db18-4ce3-91c1-964f9f72e6b5"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="4219f7b4-553d-4092-b946-569014897938"/>
|
||||
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="2b12dda9-0fbd-448e-81bd-e18451d93f5f"/>
|
||||
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="1699dfbf-13ad-46d3-8e11-8bda66256ef7"/>
|
||||
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="70223a5f-c904-486f-b158-225dfb9c8990"/>
|
||||
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="13e5e33f-78b5-4e64-a413-3881962a3cb1"/>
|
||||
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="d72c87ef-36ba-493c-afbf-f6beced5f7fb"/>
|
||||
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="eab014bd-61f9-4aa2-a92b-5177ca6b9821"/>
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="6b833a13-0ec0-4656-a507-2a3191355c5d"/>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
@@ -19,7 +19,7 @@
|
||||
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
|
||||
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
|
||||
<vendor>Фирма "1С"</vendor>
|
||||
<version>3.1.6.100</version>
|
||||
<version>3.1.6.118</version>
|
||||
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<usedMobileApplicationFunctionalities>
|
||||
@@ -1189,10 +1189,10 @@
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектов</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовКлиент</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовПовтИсп</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовСлужебный</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовСлужебныйВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхОбъектовСлужебныйКлиентСервер</commonModules>
|
||||
<commonModules>CommonModule.УдалениеПомеченныхПовтИсп</commonModules>
|
||||
<commonModules>CommonModule.УправлениеДоступом</commonModules>
|
||||
<commonModules>CommonModule.УправлениеДоступомПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.УправлениеДоступомСлужебный</commonModules>
|
||||
@@ -1419,6 +1419,7 @@
|
||||
<scheduledJobs>ScheduledJob.ИзвлечениеТекста</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ИсправлениеУстаревшихАдресов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.КонтрольАктивностиПользователей</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.КонтрольУдаленияПомеченныхОбъектов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.МониторингЗадач</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеАгрегатов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеДоступаНаУровнеЗаписей</scheduledJobs>
|
||||
@@ -1427,7 +1428,6 @@
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеСостоянияЗаявленияНаВыпускСертификата</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбновлениеСтатусовДоставкиSMS</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОбработкаСервисовИнтеграции</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОтключениеПроверкиИспользованияУдаляемыхОбъектов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОтложенноеОбновлениеИБ</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОтправкаSMS</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ОчисткаЗамеровВремени</scheduledJobs>
|
||||
@@ -1449,7 +1449,7 @@
|
||||
<scheduledJobs>ScheduledJob.СтартОтложенныхПроцессов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УведомлениеИсполнителейОНовыхЗадачах</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УдалениеНеактуальнойИнформацииСинхронизации</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УдалениеПомеченных</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УдалениеПомеченныхОбъектов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УдалениеУстаревшихПараметровРаботыВерсийРасширений</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.УстановкаПериодаРассчитанныхИтогов</scheduledJobs>
|
||||
<scheduledJobs>ScheduledJob.ЭкспортОценкиПроизводительности</scheduledJobs>
|
||||
@@ -1789,11 +1789,13 @@
|
||||
<constants>Constant.СписокРасширенийФайловOpenDocument</constants>
|
||||
<constants>Constant.СписокРасширенийФайловOpenDocumentОбластиДанных</constants>
|
||||
<constants>Constant.СпособХраненияФайлов</constants>
|
||||
<constants>Constant.СтандартныеПодсистемыВАвтономномРежиме</constants>
|
||||
<constants>Constant.СтатусОбновленияКонфигурации</constants>
|
||||
<constants>Constant.УчетнаяЗаписьДляВосстановленияПароля</constants>
|
||||
<constants>Constant.ХранитьФайлыВТомахНаДиске</constants>
|
||||
<constants>Constant.ЭтоАвтономноеРабочееМесто</constants>
|
||||
<constants>Constant.УдалитьЛогинДоступаКСервисуMorpher</constants>
|
||||
<constants>Constant.УдалитьНастройкиВходаПользователей</constants>
|
||||
<commonForms>CommonForm.АвтономнаяРабота</commonForms>
|
||||
<commonForms>CommonForm.АвтономнаяРаботаВМоделиСервиса</commonForms>
|
||||
<commonForms>CommonForm.АдреснаяКнига</commonForms>
|
||||
@@ -1918,6 +1920,7 @@
|
||||
<catalogs>Catalog.МакетыПечатныхФорм</catalogs>
|
||||
<catalogs>Catalog.НаборыГруппДоступа</catalogs>
|
||||
<catalogs>Catalog.НаборыДополнительныхРеквизитовИСведений</catalogs>
|
||||
<catalogs>Catalog.НастройкиАвторизацииИнтернетСервисов</catalogs>
|
||||
<catalogs>Catalog.ОбщиеВнешниеКомпоненты</catalogs>
|
||||
<catalogs>Catalog.ПапкиФайлов</catalogs>
|
||||
<catalogs>Catalog.ПапкиЭлектронныхПисем</catalogs>
|
||||
|
||||
@@ -1 +1 @@
|
||||
{6,1,1,9f44c960-df00-4076-8041-eaa1d3afa88f,1,e3032068-eca1-4932-ba4a-df0c13f23b85,"3.1.6.100","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6688,1,0,a22da5f4-17b3-4d36-af20-4b41712cca0b,a22da5f4-17b3-4d36-af20-4b41712cca0b,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
|
||||
{6,1,1,e67e4a81-24b9-4b21-94b8-aec88bc7ce16,1,da2b293d-795a-4b3f-9280-a0ba68dc66b8,"3.1.6.118","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6704,1,0,92b3f980-1c93-42e2-ba1d-372940c24422,92b3f980-1c93-42e2-ba1d-372940c24422,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
|
||||
Whitespace-only changes.
Whitespace-only changes.
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:Constant xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="766c9bee-b0fc-4a7f-b88e-cd8c4aad73b8">
|
||||
<mdclass:Constant xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ae039438-89af-4217-910d-476115f51ab2">
|
||||
<producedTypes>
|
||||
<managerType typeId="950c9fb9-004c-4aea-9952-da77fd857482" valueTypeId="1de2030d-fef3-4c93-99d2-afe629a74798"/>
|
||||
<valueManagerType typeId="25e29d89-5baf-4310-a1cc-99c252daf10a" valueTypeId="fa9d15fc-cf10-47dc-b3b3-8de30db13827"/>
|
||||
<valueKeyType typeId="7aedb719-b816-50c6-83eb-1e8b8329e723" valueTypeId="d5b4a76d-79a2-5a64-b09c-a5be745b4e27"/>
|
||||
<managerType typeId="b4b73017-0460-47f4-9f8e-75fb41de4b6b" valueTypeId="23f537c1-5429-4e2e-8d30-e8e7337c1766"/>
|
||||
<valueManagerType typeId="3150f1e9-15ca-4111-bd54-7bbe6a1c3c8f" valueTypeId="d46916b8-5446-4df1-b43c-3f4229a948ac"/>
|
||||
<valueKeyType typeId="93c2c5af-7bb3-4b0b-96de-fae40a4b7855" valueTypeId="731618b2-b245-4d62-8a0f-63739f5b7146"/>
|
||||
</producedTypes>
|
||||
<name>НастройкиВходаПользователей</name>
|
||||
<synonym>
|
||||
|
||||
Whitespace-only changes.
Whitespace-only changes.
Loaded 100 of 194 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user