3_1_4_104

This commit is contained in:
Компания 1С committed 2020-12-23 23:27:00 +03:00
1 parent 1524d07d09
commit 266994f8ba
77 files changed
+1578 -1105

No files matched your search

@@ -1225,6 +1225,11 @@
ВыполненныеПроверки = СтрСоединить(ВыполненныеПроверки, Символы.ПС);
Если ЗначениеЗаполнено(ОшибкиПодключения) Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка настроек почты'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение, , , ОшибкиПодключения);
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("ВыполненныеПроверки", ВыполненныеПроверки);
Результат.Вставить("ОшибкиПодключения", ОшибкиПодключения);
@@ -1670,7 +1670,7 @@
Для каждого Вложение Из ТаблицаСоответствийИменВложенийИдентификаторам Цикл
ДвоичныеДанныеКартинки = Вложение.Картинка.ПолучитьДвоичныеДанные();
ДвоичныеДанныеКартинки = Вложение.Картинка.ПолучитьДвоичныеДанные(); // ДвоичныеДанные
АдресКартинкиВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанныеКартинки, УникальныйИдентификатор);
ПрисоединенныйФайл = ЗаписатьВложениеЭлектронногоПисьмаИзВременногоХранилища(Ссылка, АдресКартинкиВоВременномХранилище,
"_" + СтрЗаменить(Вложение.Представление, "-", "_"), ДвоичныеДанныеКартинки.Размер());
@@ -203,6 +203,7 @@
<items xsi:type="form:FormField">
<name>СписокНаименование</name>
<id>17</id>
<displayImportance>VeryHigh</displayImportance>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -232,6 +233,7 @@
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<width>40</width>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
@@ -244,6 +246,7 @@
<items xsi:type="form:FormField">
<name>СписокКод</name>
<id>33</id>
<displayImportance>VeryLow</displayImportance>
<title>
<key>ru</key>
<value>Код локализации</value>
@@ -430,6 +433,11 @@
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>КоманднаяПанель</value>
</value>
</mobileDeviceCommandBarContent>
<attributes>
<name>Список</name>
<title>
@@ -136,7 +136,8 @@
Результат = Новый Массив;
Для Каждого ВыделеннаяСтрока Из Элементы.Список.ВыделенныеСтроки Цикл
Результат.Добавить(Новый Структура("Код,Наименование", Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Код, Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Наименование));
ВыбранныйЯзык = Список.НайтиПоИдентификатору(ВыделеннаяСтрока);
Результат.Добавить(Новый Структура("Код,Наименование", ВыбранныйЯзык.Код, ВыбранныйЯзык.Наименование));
КонецЦикла;
Возврат Результат;
@@ -1,5 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>ГруппаДополнительнаяИнформация</name>
<id>40</id>
<items xsi:type="form:Decoration">
<name>КартинкаИнформации</name>
<id>42</id>
<title>
<key>ru</key>
<value>Картинка информации</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КартинкаИнформацииРасширеннаяПодсказка</name>
<id>44</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КартинкаИнформацииКонтекстноеМеню</name>
<id>43</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Информация</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДополнительнаяИнформация</name>
<id>45</id>
<title>
<key>ru</key>
<value>Для того чтобы выводить печатные формы на других языках, необходимо выполнить &lt;link ПерейтиКМакетамПечатныхФорм>перевод макетов&lt;/>.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДополнительнаяИнформацияРасширеннаяПодсказка</name>
<id>47</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДополнительнаяИнформацияКонтекстноеМеню</name>
<id>46</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ДополнительнаяИнформацияОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Дополнительная информация</value>
</title>
<extendedTooltip>
<name>ГруппаДополнительнаяИнформацияРасширеннаяПодсказка</name>
<id>41</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>1</id>
@@ -298,119 +405,6 @@
<userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
</extInfo>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаАвтоматическийПеревод</name>
<id>35</id>
<items xsi:type="form:FormField">
<name>ВключитьАвтоматическийПеревод</name>
<id>29</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>
<titleLocation>Right</titleLocation>
<handlers>
<event>OnChange</event>
<name>ВключитьАвтоматическийПереводПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ВключитьАвтоматическийПереводРасширеннаяПодсказка</name>
<id>31</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВключитьАвтоматическийПереводКонтекстноеМеню</name>
<id>30</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:Decoration">
<name>Параметры</name>
<id>37</id>
<title>
<key>ru</key>
<value>&lt;настроить></value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>Click</event>
<name>ПараметрыНажатие</name>
</handlers>
<hyperlink>true</hyperlink>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Автоматический перевод</value>
</title>
<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>
<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>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
@@ -437,11 +431,13 @@
</extInfo>
</extendedTooltip>
<commandName>Form.Command.Создать</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.CreateListItem</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
@@ -520,36 +516,6 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<attributes>
<name>ВключитьАвтоматическийПеревод</name>
<title>
<key>ru</key>
<value>Включить автоматический перевод</value>
</title>
<id>2</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>Переводчик</name>
<id>3</id>
<valueType>
<types>EnumRef.СервисыПереводаТекста</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>Создать</name>
<title>
@@ -18,16 +18,8 @@
КонецЕсли;
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
Элементы.ГруппаАвтоматическийПеревод.Видимость = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки");
ВключитьАвтоматическийПеревод = МодульПереводТекстаНаДругиеЯзыки.ДоступенПереводТекста();
Элементы.ГруппаАвтоматическийПеревод.Видимость = Истина;
Переводчик = МодульПереводТекстаНаДругиеЯзыки.СервисПереводаТекста();
Если ЗначениеЗаполнено(Переводчик) Тогда
Элементы.Параметры.Заголовок = Переводчик;
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ФормаСоздать.Отображение = ОтображениеКнопки.Картинка;
КонецЕсли;
КонецПроцедуры
@@ -37,23 +29,15 @@
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ВключитьАвтоматическийПереводПриИзменении(Элемент)
Процедура ДополнительнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ЗначениеЗаполнено(Переводчик) Или Не ВключитьАвтоматическийПеревод Тогда
УстановитьИспользованиеСервисаПереводаТекста(ВключитьАвтоматическийПеревод);
ИначеЕсли ВключитьАвтоматическийПеревод Тогда
ПерейтиКНастройкамПереводчика();
Если НавигационнаяСсылкаФорматированнойСтроки = "ПерейтиКМакетамПечатныхФорм" Тогда
СтандартнаяОбработка = Ложь;
ОткрытьФорму("РегистрСведений.ПользовательскиеМакетыПечати.Форма.МакетыПечатныхФорм");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПараметрыНажатие(Элемент)
ПерейтиКНастройкамПереводчика();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыСписок
@@ -178,56 +162,4 @@
КонецФункции
&НаСервереБезКонтекста
Процедура УстановитьИспользованиеСервисаПереводаТекста(Использовать);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки");
МодульПереводТекстаНаДругиеЯзыки.УстановитьИспользованиеСервисаПереводаТекста(Использовать);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПерейтиКНастройкамПереводчика()
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройки", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.НастройкаПереводаТекста", , ЭтотОбъект, , , , ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииНастройки(Знач ВыбранныйПереводчик, ДополнительныеПараметры) Экспорт
Если ВыбранныйПереводчик = Неопределено Тогда
ВыбранныйПереводчик = ТекущийПереводчик();
КонецЕсли;
Если ВключитьАвтоматическийПеревод Тогда
Если Не ЗначениеЗаполнено(ВыбранныйПереводчик) Тогда
ВключитьАвтоматическийПеревод = Ложь;
КонецЕсли;
УстановитьИспользованиеСервисаПереводаТекста(ВключитьАвтоматическийПеревод);
КонецЕсли;
Переводчик = ВыбранныйПереводчик;
Если ЗначениеЗаполнено(Переводчик) Тогда
Элементы.Параметры.Заголовок = Переводчик;
Иначе
Элементы.Параметры.Заголовок = НСтр("ru = '<настроить>'");
КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Функция ТекущийПереводчик()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки");
Возврат МодульПереводТекстаНаДругиеЯзыки.СервисПереводаТекста();
КонецЕсли;
КонецФункции
#КонецОбласти
@@ -25,7 +25,10 @@
Процедура ЯзыкНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОписаниеОповещения = Новый ОписаниеОповещения("ПриВыбореЯзыка", ЭтотОбъект);
ОткрытьФорму("Справочник.ЯзыкиПечатныхФорм.Форма.ПодборЯзыкаИзСпискаДоступных", Новый Структура("Отбор", Объект.Код), ЭтотОбъект, , , , ОписаниеОповещения);
ПараметрыОткрытия = Новый Структура("Отбор", Объект.Код);
ОткрытьФорму("Справочник.ЯзыкиПечатныхФорм.Форма.ПодборЯзыкаИзСпискаДоступных",
ПараметрыОткрытия, ЭтотОбъект, , , , ОписаниеОповещения);
КонецПроцедуры
@@ -41,7 +41,7 @@
#Область СлужебныеПроцедурыИФункции
Функция ДоступныеЯзыки(СРегиональнымиНастройками = Ложь) Экспорт
Функция ДоступныеЯзыки(СРегиональнымиНастройками = Ложь, ТолькоДополнительные = Ложь) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
@@ -50,12 +50,16 @@
| Справочник.ЯзыкиПечатныхФорм КАК ЯзыкиПечатныхФорм
|ГДЕ
| НЕ ЯзыкиПечатныхФорм.ПометкаУдаления
| И НЕ ЯзыкиПечатныхФорм.Код В (&СписокИсключений)
|
|УПОРЯДОЧИТЬ ПО
| ЯзыкиПечатныхФорм.РеквизитДопУпорядочивания,
| ЯзыкиПечатныхФорм.Ссылка";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("СписокИсключений", ?(ТолькоДополнительные,
СтандартныеПодсистемыСервер.ЯзыкиКонфигурации(), Новый Массив));
Языки = Запрос.Выполнить().Выгрузить();
Если Не СРегиональнымиНастройками Тогда
@@ -71,22 +75,7 @@
Функция ДополнительныеЯзыкиПечатныхФорм() Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЯзыкиПечатныхФорм.Код КАК КодЯзыка
|ИЗ
| Справочник.ЯзыкиПечатныхФорм КАК ЯзыкиПечатныхФорм
|ГДЕ
| НЕ ЯзыкиПечатныхФорм.ПометкаУдаления
| И НЕ ЯзыкиПечатныхФорм.Код В (&ЯзыкиКонфигурации)
|
|УПОРЯДОЧИТЬ ПО
| ЯзыкиПечатныхФорм.РеквизитДопУпорядочивания";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ЯзыкиКонфигурации", СтандартныеПодсистемыСервер.ЯзыкиКонфигурации());
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("КодЯзыка");
Возврат ДоступныеЯзыки(Ложь, Истина);
КонецФункции
@@ -1,54 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:FormGroup">
<name>КоманднаяПанель</name>
<id>9</id>
<items xsi:type="form:Button">
<name>Перевести</name>
<id>11</id>
<title>
<key>ru</key>
<value>Перевести автоматически</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПеревестиРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.Перевести</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>PictureAndText</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ЗаполнитьФорму</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>Перевести</name>
<id>11</id>
<title>
<key>ru</key>
<value>Перевести автоматически</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name>
<id>10</id>
<name>ПеревестиРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
@@ -56,15 +22,17 @@
<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>
<type>UsualButton</type>
<commandName>Form.Command.Перевести</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>PictureAndText</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ЗаполнитьФорму</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаЯзыки</name>
@@ -123,11 +91,13 @@
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ОК</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.WriteAndClose</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
@@ -182,6 +182,12 @@
И Не Параметры.ТолькоПросмотр И Не ТолькоПросмотр;
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Авто;
Элементы.Переместить(Элементы.Перевести, Элементы.ФормаКоманднаяПанель);
Элементы.ОК.Отображение = ОтображениеКнопки.Картинка;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -0,0 +1,49 @@
<!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>.<br><div>В настоящее время возросло количество удаленных работников. Это накладывает определенные требования к программам, используемым в компаниях. В частности, может возникнуть случай, когда пользователь не помнит свой пароль. В программе предусмотрена возможность оперативного и безопасного восстановления паролей пользователей.</div>
<h3>Включение ссылок под приглашением в программу</h3>
<div><br></div>
<div>Включите флажок<b> Отображать гиперссылку "Нужна помощь"</b>, введите адрес страницы для получения помощи в Интернете.</div>
<div>Включите флажок <b>Отображать гиперссылку "Забыли пароль"</b>, для того чтобы у пользователей была возможность восстановить забытый пароль при входе в программу.</div>
<h3>Выбор способа восстановления пароля</h3>
<div><br></div>
<div>Выберите с помощью кнопок, как <b>Восстанавливать пароль</b>:</div>
<div>
<ul><li><b>по электронной почте</b>;</li>
<li><b>переходом по ссылке</b>.</li></ul></div>
<div>
<h3>Настройка восстановления пароля переходом по ссылке</h3>
<div>
<ul><li>Выберите с помощью кнопки данный способ;</li>
<li>Введите гиперссылку в строку <b>Адрес страницы восстановления пароля в Интернете</b>.</li></ul></div>
<h3>Настройка восстановления пароля по электронной почте: Стандартный сервис отправки</h3></div></div>
<div>
<ul><li>Выберите восстановления пароля по электронной почте с помощью кнопки;</li>
<li>С помощью переключателя <b>Отправлять письмо от</b> выберите <b>Стандартный сервис отправки</b>. </li></ul><h3 style="font-size: 13.4399995803833px;">Настройка восстановления пароля по электронной почте: ОТ настройки почты</h3></div>
<div>
<ul><li>Выберите восстановления пароля по электронной почте с помощью кнопки;</li>
<li>С помощью переключателя <b>Отправлять письмо от</b> выберите <b>От настройки почты</b>. </li>
<ul><li>Выберите из списка нужную настройку почты. </li></ul></ul><h3 style="font-size: 13.4399995803833px;">Настройка восстановления пароля по электронной почте: Указанный почтовый сервер</h3></div>
<div>
<ul><li>Выберите восстановления пароля по электронной почте с помощью кнопки;</li>
<li>С помощью переключателя <b>Отправлять письмо от</b> выберите <b>Указанный почтовый сервер</b>. </li>
<ul><li>Введите параметры почтового сервера для отправки сообщения:</li>
<li><b>Сервер SMTP</b>;</li>
<li><b>Шифрование </b>- выберите с помощью переключателя;</li>
<li><b>Порт</b>;</li>
<li><b>Пользователь</b>;</li>
<li><b>Пароль</b>.</li>
<li><b>Отправитель</b>.</li></ul></ul><h3>Шаблон сообщения с кодом восстановления пароля</h3></div>
<div>Можно написать текст письма, который придет пользователю с кодом для восстановления пароля. Текст сообщения является произвольным, но в него необходимо <b>Вставить параметры</b> с помощью кнопки:</div>
<div>
<ul><li>Код подтверждения (<b>&amp;VerificationCode</b>) - код для восстановления пароля, является обязательным, генерируется программой автоматически во время отправки сообщения;</li>
<li>Имя пользователя <b>(&amp;UserPresentation</b>);</li>
<li>Наименование конфигурации (<b>&amp;ApplicationPresentation</b>).</li></ul>Доступны стандартные средства редактирования текста.</div>
<h3>Код подтверждения</h3>
<div>Можно изменить настройки длины кода подтверждения и попыток восстановления пароля, установленные по умолчанию:</div>
<div>
<ul><li><b>Длина генерируемого кода</b> - длина кода подтверждения для восстановления пароля, целое число в диапазоне от 8 до 50;</li>
<li><b>Минимальное время между повторными запросами</b> - длительность блокировки запроса отправки нового кода для подтверждения пароля (в секундах);</li>
<li><b>Допустимое количество неудачных попыток ввода</b> - максимальное количество попыток проверки кода подтверждения восстановления пароля. Если данное значение превышено, пользователю необходимо запросить отправку нового кода для восстановления пароля.</li></ul></div>
<h3>См. также:</h3>
<div>
<ul><li><a href="v8help://frame/form_common">Работа с формами</a>.</li></ul></div></body></html>
@@ -5,6 +5,11 @@
<key>ru</key>
<value>Восстановление паролей</value>
</synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
<useStandardCommands>true</useStandardCommands>
@@ -133,13 +133,42 @@
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ЗаписатьИЗакрыть</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.WriteAndClose</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаЗаписать</name>
<id>15</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаписатьРасширеннаяПодсказка</name>
<id>16</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Write</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:FormGroup">
<name>СтандартныеКоманды</name>
<id>11</id>
@@ -194,6 +223,10 @@
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>WriteAndClose</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
@@ -8,6 +8,15 @@
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Элементы.ЗаписатьИЗакрыть.Отображение = ОтображениеКнопки.Картинка;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
@@ -26,6 +35,10 @@
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Если Не ЗначениеЗаполнено(НаборКонстант.СервисПереводаТекста) Тогда
НаборКонстант.СервисПереводаТекста = Перечисления.СервисыПереводаТекста.ЯндексПереводчик;
КонецЕсли;
ЗаполнитьНастройки();
КонецПроцедуры
@@ -127,6 +140,5 @@
КонецПроцедуры
#КонецОбласти
@@ -964,6 +964,10 @@
КонецПроцедуры
// Параметры:
// Результат - см. ШаблоныСообщенийСлужебный.СформироватьСообщение
// ДополнительныеПараметры - Произвольный
//
&НаКлиенте
Процедура ЗаполнитьПоШаблонуПослеВыбораШаблона(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
@@ -2569,6 +2569,11 @@
<value>КоманднаяПанельЕще</value>
</value>
</mobileDeviceCommandBarContent>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>Язык</value>
</value>
</mobileDeviceCommandBarContent>
<attributes>
<name>ОбъектыПечати</name>
<id>14</id>
@@ -94,6 +94,7 @@
Элементы.ФлажокПодписьИПечать.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
Элементы.НастройкаКоличестваКопий.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
Элементы.Переместить(Элементы.КомандыПоказателей, Элементы.КомандыПоказателей.Родитель, Элементы.Показатель);
Элементы.ГруппаКоманднаяПанель.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
КонецЕсли;
Если УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования Тогда
@@ -611,18 +611,16 @@
Процедура Подключаемый_ПриПереключенииЯзыка(КодЯзыка, ДополнительныеПараметры) Экспорт
ЗагрузитьТабличныйДокументИзМетаданных(КодЯзыка);
Если ТребуетсяПеревод Тогда
Если ДоступенАвтоматическийПеревод Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Макет еще не переведен на %1 язык.
|Выполнить автоматический перевод?'"), Элементы.Язык.Заголовок);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки);
КонецЕсли;
Если ТребуетсяПеревод И ДоступенАвтоматическийПеревод Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Макет еще не переведен на %1 язык.
|Выполнить автоматический перевод?'"), Элементы.Язык.Заголовок);
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки);
КонецЕсли;
КонецПроцедуры
@@ -664,7 +662,8 @@
ТекстыДляПеревода.Добавить(Элемент.Ключ);
КонецЦикла;
Переводы = МодульПереводТекстаНаДругиеЯзыки.ПеревестиТексты(ТекстыДляПеревода, ТекущийЯзык, ОбщегоНазначения.КодОсновногоЯзыка());
Переводы = МодульПереводТекстаНаДругиеЯзыки.ПеревестиТексты(
ТекстыДляПеревода, ТекущийЯзык, ОбщегоНазначения.КодОсновногоЯзыка());
Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл
Для НомерКолонки = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл
@@ -516,7 +516,7 @@
| ПользователиВидыКИ КАК КонтактыВидыКИ
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи.КонтактнаяИнформация КАК КонтактнаяИнформация
| ПО КонтактыВидыКИ.Контакт = КонтактнаяИнформация.Ссылка
| И КонтактыВидыКИ.ВИД = КонтактнаяИнформация.Вид";
| И КонтактыВидыКИ.Вид = КонтактнаяИнформация.Вид";
Для каждого ЭлементМассиваОписания Из МассивОписанияТиповКонтактов Цикл
@@ -538,7 +538,7 @@
| &ИмяТаблицыВидыКИ КАК КонтактыВидыКИ
| ЛЕВОЕ СОЕДИНЕНИЕ &ИмяТаблицыКонтактнаяИнформация КАК КонтактнаяИнформация
| ПО КонтактыВидыКИ.ВИД = КонтактнаяИнформация.Вид
| И КонтактыВидыКИ.Контакт = КонтактнаяИнформация.Ссылка";
| И КонтактыВидыКИ.Контакт = КонтактнаяИнформация.Ссылка"; // @query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыВидыКИ", ЭлементМассиваОписания.Имя + "ВидыКИ");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицыКонтактнаяИнформация", "Справочник." + ЭлементМассиваОписания.Имя + ".КонтактнаяИнформация");
@@ -548,7 +548,7 @@
ТекстЗапроса = ТекстЗапроса + "
|
|ИТОГИ ПО
| Контакт";
| Контакт"; // @query-part-1
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Контакты",ТаблицаКонтактов.Выгрузить());
@@ -16,7 +16,19 @@
<h3>Загрузка варианта отчета из файла</h3>
<div>
<ul><li>Нажмите <b>Еще - Варианты отчета - Обновить из файла</b> для загрузки варианта отчета, сохраненного вместе с пользовательскими настройками в архивный файл на компьютере. Укажите путь к архиву с вариантом отчета.</li>
<li>Данная возможность предназначена для обмена настройками вариантов отчетов между информационными базами идентичной структуры.</li></ul></div>
<li>Данная возможность предназначена для обмена настройками вариантов отчетов между информационными базами идентичной структуры.</li></ul><h3>Настройки отчета из контекстного меню</h3>
<div>
<ul><li>С помощью команд контекстного меню ячейки по правой кнопке мыши можно быстро изменить вид отчета, настроить фильтры, сортировки: 
<ul><li><strong>Открыть</strong> значение выделенной ячейки; </li>
<li>С помощью команды <strong>Фильтровать</strong> можно быстро установить отбор по текущему значению, используя предлагаемые команды сравнения. </li>
<ul><li>С помощью команды <b>Еще</b> можно получить дополнительные возможности по настройке фильтра. </li>
<li>С помощью команды <b>Больше возможностей</b> можно перейти к расширенным <a href="CommonForm.ФормаНастроекОтчета/Help">настройкам</a> отборов отчета.</li></ul><li><b>Сортировать</b> - по возрастанию или убыванию; </li>
<li><b>Оформить</b> - быстро изменить цвет выделенных ячеек, высоту и ширину колонки;</li>
<ul><li>По команде <b>Еще</b> можно перейти к более сложному форматированию для выбранных ячеек.</li></ul><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>
<h3><a name="#1">Настройки</a></h3>
<ul style="MARGIN-RIGHT: 0px" dir="ltr"><li>По кнопке <strong>Настройки</strong> можно перейти к <a href="CommonForm.ФормаНастроекОтчета/Help">настройке</a> параметров отчета. Часть настроек (отборы) иногда выведены в шапку отчета.
</li>
@@ -63,22 +75,4 @@
</li>
<li>С помощью кнопок <img src="StdPicture.CollapseAll"></img> <strong>Свернуть все группы</strong> или <img src="StdPicture.ExpandAll"></img> <strong>Развернуть все группы</strong> можно скрыть или показать группировку отчета.
</li>
<li>Для сохранения результата отчета в файл нажмите <img src="StdPicture.Write"></img>, укажите наименование файла и путь для сохранения.
</li>
<li>С помощью команд контекстного меню по правой кнопке мыши можно:
<ul><li><strong>Открыть</strong> значение выделенной ячейки;
</li>
<li><strong>Отфильтровать</strong> записи по значению выбранного поля;
</li>
<li><strong>Упорядочить</strong>:
<ul><li>по значению выбранного поля (по умолчанию);
</li>
<li><strong>Дополнительно</strong> - можно выбрать <strong>Поле</strong> для упорядочивания отчета, <strong>Тип</strong> упорядочивания - <strong>По возрастанию</strong> или <strong>По убыванию</strong>;</li></ul></li>
<li><strong>Сгруппировать</strong>:
<ul><li>по значению выбранного поля (по умолчанию);
</li>
<li><strong>Дополнительно</strong> - можно выбрать <strong>Поле</strong> для группировки; <strong>Тип</strong> группировки - <strong>Без иерархии</strong>, <strong>Иерархия</strong>, <strong>Только иерархия</strong>;</li></ul></li>
<li><strong>Оформить</strong>:
<ul><li>настройте <a href="SettingsStorage.ХранилищеВариантовОтчетов.Form.ЭлементУсловногоОформленияОтчета/Help">Элемент условного оформления отчета</a> для выбранного поля;
</li>
<li><b>Дополнительно</b> - можно настроить оформление для любых полей отчета.</li></ul></li></ul></li></ul></body></html>
<li>Для сохранения результата отчета в файл нажмите <img src="StdPicture.Write"></img>, укажите наименование файла и путь для сохранения.</li></ul></body></html>
@@ -166,7 +166,7 @@
Если Элементы.ФормироватьСразу.Пометка Тогда
ФормированиеПриОткрытии = Истина;
ПодключитьОбработчикОжидания("СФормировать", 0.1, Истина);
ПодключитьОбработчикОжидания("Сформировать", 0.1, Истина);
КонецЕсли;
ОбщегоНазначенияСлужебныйКлиент.УстановитьВидимостьПанелиПоказателей(Элементы, РазвернутьОбластьПоказателей);
@@ -869,7 +869,7 @@
Процедура СнятьФильтр(Команда)
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть.Имя];
СвойстваЗаголовка = СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()];
ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка);
КонецПроцедуры
@@ -878,7 +878,7 @@
Процедура Фильтровать(Команда)
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть.Имя];
СвойстваЗаголовка = СвойстваРезультата.Заголовки[ИмяТекущейОбластиЯчеек()];
ВариантыОтчетовСлужебныйКлиент.ПоказатьРасширеннуюНастройкуФильтра(ЭтотОбъект, СвойстваЗаголовка);
КонецПроцедуры
@@ -2326,9 +2326,10 @@
КонецЕсли;
Действие = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "Действие");
ИдентификаторВладельца = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Результат, "ИдентификаторВладельца");
Если Не ВариантыОтчетовСлужебныйКлиент.ЭтоСобытиеКонтекстнойНастройки(Действие)
Или Результат.ИдентификаторВладельца <> УникальныйИдентификатор Тогда
Или ИдентификаторВладельца <> УникальныйИдентификатор Тогда
Возврат;
КонецЕсли;
@@ -2348,4 +2349,20 @@
КонецПроцедуры
// Возвращаемое значение:
// Строка
//
&НаКлиенте
Функция ИмяТекущейОбластиЯчеек()
Область = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть;
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Возврат Область.Имя;
КонецЕсли;
Возврат "";
КонецФункции
#КонецОбласти
@@ -115,8 +115,9 @@
Если HTTPОтвет.КодСостояния <> 200 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС
+ HTTPОтвет.ПолучитьТелоКакСтроку();
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"),
HTTPЗапрос.АдресРесурса,
HTTPОтвет.КодСостояния) + Символы.ПС + HTTPОтвет.ПолучитьТелоКакСтроку();
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли;
@@ -109,7 +109,12 @@
// Обновляет превью табличного вопроса.
//
// Параметры:
// Вопросы - ТаблицаЗначений
// Вопросы - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.Вопросы
// Ответы - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.Ответы
// ТипТабличногоВопроса - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.ТипТабличногоВопроса
// Форма - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов
// ИмяТаблицыПревью - Строка
// Ключ - Строка
//
Процедура ОбновитьПревьюТабличныйВопрос(Вопросы,Ответы,ТипТабличногоВопроса,Форма,ИмяТаблицыПревью,Ключ) Экспорт
@@ -481,7 +486,8 @@
// Выполняет построение формы, согласно раздела шаблона анкеты.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма для которой получается информация.
// Форма - см. Документ.Анкета.Форма.ФормаДокумента
// - см. ОбщаяФорма.МастерАнкетыПоРазделам
// ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения, где:
// * Ссылка - СправочникСсылка.ВопросыШаблонаАнкеты
//
@@ -18,6 +18,8 @@
// * ИндексПолей - см. ИндексПолейСтруктурыОтчета
// * ОсновныеПоля - Массив из см. ОсновныеПоляОтчета
// * ИтоговыеНастройки - НастройкиКомпоновкиДанных - см. синтакс-помощник КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных
// * ВремяФормирования - Число
//
Функция СвойстваРезультатаОтчета() Экспорт
@@ -28,6 +30,7 @@
СвойстваРезультата.Вставить("ИндексПолей", Новый Соответствие);
СвойстваРезультата.Вставить("ОсновныеПоля", Новый Массив);
СвойстваРезультата.Вставить("ИтоговыеНастройки", Неопределено);
СвойстваРезультата.Вставить("КомпоновщикНастроек", Неопределено);
СвойстваРезультата.Вставить("ВремяФормирования", 0);
Возврат СвойстваРезультата;
@@ -114,8 +117,15 @@
НастройкиОтчета = Форма.НастройкиОтчета;
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата;
ИтоговыеНастройки = Форма.Отчет.КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, НастройкиОтчета.АдресСхемы);
КомпоновщикНастроек.ЗагрузитьНастройки(ИтоговыеНастройки);
ИндексСтруктурыОтчета = НовыйИндексСтруктурыОтчета();
СвойстваРезультата.ИтоговыеНастройки = Форма.Отчет.КомпоновщикНастроек.ПолучитьНастройки();
СвойстваРезультата.ИтоговыеНастройки = ИтоговыеНастройки;
СвойстваРезультата.КомпоновщикНастроек = КомпоновщикНастроек;
СвойстваРезультата.РолиПолей = РолиПолейОтчета(НастройкиОтчета.АдресСхемы);
ИндексироватьРазделыОтчета(СвойстваРезультата, СвойстваРезультата.ИтоговыеНастройки, ИндексСтруктурыОтчета);
@@ -737,28 +747,51 @@
ПоискПолейГруппировки.ПорядокГруппировки = ПорядокГруппировки;
ПоляГруппировки = ПоляГруппировок.Скопировать(ПоискПолейГруппировки);
ПоляГруппировки.Сортировать("ПорядокПоля");
ПоляГруппировки.Сортировать("ПорядокГруппировки");
ПоискПолейГруппировки.ПорядокГруппировки = ПорядокГруппировки - 1;
ПоляГруппировкиВыше = ПоляГруппировок.Скопировать(ПоискПолейГруппировки);
ПоискПолейГруппировки.ПорядокГруппировки = ПорядокГруппировки + 1;
ПоляГруппировкиНиже = ПоляГруппировок.Скопировать(ПоискПолейГруппировки);
Для Каждого ПолеГруппировки Из ПоляГруппировки Цикл
ЭтоПолеГруппировкиКолонки = СтрНайти(ПолеГруппировки.ИдентификаторГруппировки, "/column/") > 0
И ПолеГруппировки.ИспользуетсяВПоляхГруппировки;
Индекс = ИндексСтруктурыОтчета.Найти(ПолеГруппировки.ИдентификаторИндекса, "ИдентификаторИндекса");
Индекс.ВставитьПолеСлева = Истина;
Индекс.ВставитьПолеСправа = Истина;
Индекс.ВставитьГруппировкуВыше = Не ЭтоРесурс;
Индекс.ВставитьГруппировкуНиже = Не ЭтоРесурс;
Индекс.ВставитьПолеСлева = Не ЭтоПолеГруппировкиКолонки;
Индекс.ВставитьПолеСправа = Не ЭтоПолеГруппировкиКолонки;
Индекс.ВставитьГруппировкуВыше = Не ЭтоПолеГруппировкиКолонки И Не ЭтоРесурс;
Индекс.ВставитьГруппировкуНиже = Не ЭтоПолеГруппировкиКолонки И Не ЭтоРесурс;
Индекс.ПереместитьПолеВыше = Не ЭтоРесурс И ПолеГруппировки.ПорядокГруппировки > 1;
Индекс.ПереместитьПолеНиже = Не ЭтоРесурс И ПолеГруппировки.ПорядокГруппировки < ПорядокГруппировок.Количество();
Индекс.ПереместитьПолеВыше = Не ЭтоПолеГруппировкиКолонки
И Не ЭтоРесурс
И ПолеГруппировки.ПорядокГруппировки > 1
И ПоляГруппировкиВыше.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено;
Если ПоляГруппировки.Индекс(ПолеГруппировки) > 0 Тогда
Индекс.ПереместитьПолеНиже = Не ЭтоПолеГруппировкиКолонки
И Не ЭтоРесурс
И ПолеГруппировки.ПорядокГруппировки < ПорядокГруппировок.Количество()
И ПоляГруппировкиНиже.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено;
Если Не ЭтоПолеГруппировкиКолонки
И ПоляГруппировки.Индекс(ПолеГруппировки) > 0 Тогда
Индекс.ПереместитьПолеВлево = Истина;
КонецЕсли;
Если ПоляГруппировки.Индекс(ПолеГруппировки) < ПоляГруппировки.Количество() - 1 Тогда
Если Не ЭтоПолеГруппировкиКолонки
И ПоляГруппировки.Индекс(ПолеГруппировки) < ПоляГруппировки.Количество() - 1 Тогда
Индекс.ПереместитьПолеВправо = Истина;
КонецЕсли;
Индекс.СкрытьПоле = Не ЭтоПолеГруппировкиКолонки;
Индекс.ПереименоватьПоле = Не ЭтоПолеГруппировкиКолонки;
Индекс.ОформитьЕще = Не ЭтоПолеГруппировкиКолонки;
КонецЦикла;
КонецЦикла;
@@ -888,6 +921,13 @@
Индекс.Колонки.Добавить("ПереместитьПолеВыше", ОписаниеПризнака);
Индекс.Колонки.Добавить("ПереместитьПолеНиже", ОписаниеПризнака);
Индекс.Колонки.Добавить("СкрытьПоле", ОписаниеПризнака);
Индекс.Колонки.Добавить("ПереименоватьПоле", ОписаниеПризнака);
Индекс.Колонки.Добавить("ОформитьОтрицательные", ОписаниеПризнака);
Индекс.Колонки.Добавить("ОформитьПоложительные", ОписаниеПризнака);
Индекс.Колонки.Добавить("ОформитьЕще", ОписаниеПризнака);
Индекс.Колонки.Добавить("ИдентификаторИндекса", ОписаниеИдентификатора);
Возврат Индекс;
@@ -1240,6 +1280,9 @@
// * ВставитьГруппировкуВыше - Булево
// * ВставитьПолеСправа - Булево
// * ВставитьПолеСлева - Булево
// * СкрытьПоле - Булево
// * ПереименоватьПоле - Булево
// * ОформитьЕще - Булево
// * ИспользуетсяВПоляхГруппировки - Булево
// * ТипПоля - Тип
// * ТипЗначения - ОписаниеТипов
@@ -1315,8 +1358,12 @@
Свойства.Вставить("СортироватьПоВозрастанию", Истина);
Свойства.Вставить("СортироватьПоУбыванию", Истина);
Свойства.Вставить("СкрытьПоле", Ложь);
Свойства.Вставить("ПереименоватьПоле", Ложь);
Свойства.Вставить("ОформитьОтрицательные", Ложь);
Свойства.Вставить("ОформитьПоложительные", Ложь);
Свойства.Вставить("ОформитьЕще", Ложь);
Свойства.Вставить("ИдентификаторИндекса", Неопределено);
@@ -1391,7 +1438,7 @@
Если ДанныеЭлементаРасшифровки.Значение = Неопределено Тогда
Область = Форма.ОтчетТабличныйДокумент.ТекущаяОбласть;
Область = Форма.Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть;
ДанныеЭлементаРасшифровки.Значение = ДоступноеПоле.ТипЗначения.ПривестиЗначение(Область.Текст);
КонецЕсли;
@@ -1477,4 +1524,108 @@
#КонецОбласти
#Область ЗначениеЯчейки
// Параметры:
// Ячейка - ОбластьЯчеекТабличногоДокумента
// - Структура:
// * Текст - Строка
// * Расшифровка - ИдентификаторРасшифровкиКомпоновкиДанных
// - Неопределено
// ДоступныеТипы - ОписаниеТипов
// ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных
//
// Возвращаемое значение:
// см. СтандартноеЗначениеЯчейки
//
Функция ЗначениеЯчейки(Ячейка, ДоступныеТипы, ДанныеРасшифровки) Экспорт
ЗначениеЯчейки = СтандартноеЗначениеЯчейки(Ячейка.Текст);
КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество();
Если ТипЗнч(Ячейка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Ячейка.Расшифровка];
Поля = ЭлементРасшифровки.ПолучитьПоля();
Если Поля.Количество() > 0 Тогда
Значение = Поля[0].Значение;
Если КоличествоДоступныхТипов = 0 Тогда
ЗначениеЯчейки.Значение = Значение;
ИначеЕсли ЗначениеЗаполнено(Значение)
И Не ДоступныеТипы.СодержитТип(ТипЗнч(Значение)) Тогда
ЗначениеЯчейки.Значение = Null;
ИначеЕсли Значение = Null Тогда
ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Ячейка.Текст);
Иначе
ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Значение);
КонецЕсли;
Если ЗначениеЯчейки.Значение = Неопределено Тогда
ЗначениеЯчейки.Значение = Null;
КонецЕсли;
Возврат ЗначениеЯчейки;
КонецЕсли;
КонецЕсли;
Если ЭтоЧисло(Ячейка.Текст) Тогда
ОписаниеЧисла = Новый ОписаниеТипов("Число");
ЗначениеЯчейки.Значение = ОписаниеЧисла.ПривестиЗначение(Ячейка.Текст);
Возврат ЗначениеЯчейки;
КонецЕсли;
Возврат ЗначениеЯчейки;
КонецФункции
// Параметры:
// Значение - Строка
//
// Возвращаемое значение:
// Структура:
// * Значение - Строка
// * Представление - Строка
// * Пометка - Булево
//
Функция СтандартноеЗначениеЯчейки(Значение)
ЗначениеЯчейки = Новый Структура;
ЗначениеЯчейки.Вставить("Значение", Значение);
ЗначениеЯчейки.Вставить("Представление", Значение);
ЗначениеЯчейки.Вставить("Пометка", Истина);
Возврат ЗначениеЯчейки;
КонецФункции
Функция ЭтоЧисло(Знач ПроверяемоеЗначение)
Если ПроверяемоеЗначение = "0" Тогда
Возврат Истина;
КонецЕсли;
ОписаниеЧисла = Новый ОписаниеТипов("Число");
Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -32,11 +32,14 @@
Область = Элемент.ТекущаяОбласть; // ОбластьЯчеекТабличногоДокумента
СвойстваЗаголовка = Заголовки[Область.Имя]; //
Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура") Тогда
Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура")
Или ТипЗнч(СвойстваЗаголовка.Поле) <> Тип("ПолеКомпоновкиДанных")
Или СвойстваЗаголовка.ТипЗначения.Типы().Количество() = 0 Тогда
Возврат;
КонецЕсли;
КомпоновщикНастроек = Форма.Отчет.КомпоновщикНастроек;
КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма);
КэшЗначенийОтборов = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства, "КэшЗначенийОтборов", Новый Соответствие);
@@ -93,20 +96,29 @@
СтандартнаяОбработка = Ложь;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
Форма.ОтчетДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Форма.НастройкиОтчета.АдресСхемы));
ОсновноеМеню = Новый Массив;
СвойстваОбласти = СвойстваОбластиРасшифровки(Форма, Элемент.ТекущаяОбласть, Данные.Поле);
Если СвойстваОбласти.ЭтоЗаголовок Тогда
СвойстваЗаголовка = СвойстваОбласти.СвойстваЗаголовка;
Если ТипЗнч(СвойстваЗаголовка.Поле) <> Тип("ПолеКомпоновкиДанных")
Или СвойстваЗаголовка.ТипЗначения.Типы().Количество() = 0 Тогда
Возврат;
КонецЕсли;
ДополнительноеМеню = КонтекстноеМенюОбластиЗаголовка();
Иначе
ОсновноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
ДополнительноеМеню = КонтекстноеМенюОбластиДанных(Данные.ДоступныеВидыСравнения);
КонецЕсли;
ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(
Форма.ОтчетДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Форма.НастройкиОтчета.АдресСхемы));
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", Форма);
ДополнительныеПараметры.Вставить("Данные", Данные);
@@ -138,7 +150,10 @@
Элементы = Форма.Элементы;
Заголовки = СвойстваРезультата.Заголовки[Область.Имя];
Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость = (ТипЗнч(Заголовки) = Тип("Структура"));
Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость = (ТипЗнч(Заголовки) = Тип("Структура"))
И ТипЗнч(Заголовки.Поле) = Тип("ПолеКомпоновкиДанных");
Элементы.КонтекстноеМенюОбластиДанных.Видимость = Не Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость
И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
И ТипЗнч(Область.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных");
@@ -439,15 +454,20 @@
#Область Фильтрация
Процедура ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка, ПравоеЗначение = Неопределено) Экспорт
Процедура ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка) Экспорт
НастройкиОтчета = Форма.НастройкиОтчета;
Поле = Форма.Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента
Ячейка = Новый Структура("Текст, Расшифровка");
ЗаполнитьЗначенияСвойств(Ячейка, Поле.ТекущаяОбласть);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("КлючТекущегоВарианта", Форма.КлючТекущегоВарианта);
ПараметрыФормы.Вставить("НастройкиОтчета", НастройкиОтчета);
ПараметрыФормы.Вставить("СвойстваЗаголовка", СвойстваЗаголовка);
ПараметрыФормы.Вставить("ПравоеЗначение", ПравоеЗначение);
ПараметрыФормы.Вставить("ДанныеРасшифровки", Форма.ОтчетДанныеРасшифровки);
ПараметрыФормы.Вставить("Ячейка", Ячейка);
ОткрытьФорму(
"ХранилищеНастроек.ХранилищеВариантовОтчетов.Форма.РасширеннаяНастройкаФильтраОтчета",
@@ -918,21 +938,28 @@
Процедура СкрытьВыбранноеПолеРаздела(Раздел, Поле)
ГруппировкиРаздела = Новый Массив;
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
Группировки = Раздел.Строки;
ГруппировкиРаздела.Добавить(Раздел.Строки);
ГруппировкиРаздела.Добавить(Раздел.Колонки);
Иначе
Группировки = Раздел.Структура;
ГруппировкиРаздела.Добавить(Раздел.Структура);
СкрытьВыбранноеПолеГруппировки(Раздел, Поле);
КонецЕсли;
Для Каждого Группировка Из Группировки Цикл
Для Каждого Группировки Из ГруппировкиРаздела Цикл
СкрытьВыбранноеПолеГруппировки(Группировка, Поле);
СкрытьВыбранноеПолеРаздела(Группировка, Поле);
Для Каждого Группировка Из Группировки Цикл
СкрытьВыбранноеПолеГруппировки(Группировка, Поле);
СкрытьВыбранноеПолеРаздела(Группировка, Поле);
КонецЦикла;
КонецЦикла;
@@ -985,7 +1012,22 @@
КонецЕсли;
Группировка.Использование = Ложь;
Группировки = Группировка.Родитель.Структура;
РодительскаяГруппировка = Группировка.Родитель;
Если ТипЗнч(РодительскаяГруппировка) = Тип("ТаблицаКомпоновкиДанных") Тогда
ИдентификаторГруппировки = Настройки.ПолучитьИдентификаторПоОбъекту(Группировка);
Если СтрНайти(ИдентификаторГруппировки, "/row/") > 0 Тогда
Группировки = РодительскаяГруппировка.Строки;
Иначе
Группировки = РодительскаяГруппировка.Колонки;
КонецЕсли;
Иначе
Группировки = РодительскаяГруппировка.Структура;
КонецЕсли;
ИндексГруппировки = Группировки.Индекс(Группировка);
Для Каждого ДочерняяГруппировка Из Группировка.Структура Цикл
@@ -1061,7 +1103,7 @@
Если ТипЗнч(ВидСравнения) = Тип("Строка") Тогда
ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка, ДанныеРасшифровки.Значение);
ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка);
Возврат;
КонецЕсли;
@@ -1802,21 +1844,28 @@
Процедура ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел)
ГруппировкиРаздела = Новый Массив;
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
Группировки = Раздел.Строки;
ГруппировкиРаздела.Добавить(Раздел.Строки);
ГруппировкиРаздела.Добавить(Раздел.Колонки);
Иначе
ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Раздел);
Группировки = Раздел.Структура;
ГруппировкиРаздела.Добавить(Раздел.Структура);
КонецЕсли;
Для Каждого Группировка Из Группировки Цикл
Для Каждого Группировки Из ГруппировкиРаздела Цикл
ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка);
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка);
Для Каждого Группировка Из Группировки Цикл
ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка);
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка);
КонецЦикла;
КонецЦикла;
@@ -2025,8 +2074,10 @@
Для Каждого Элемент Из Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных")
И Элемент.Поле = Поле
И Элемент.Использование Тогда
И Элемент.Использование
И (Элемент.Поле = Поле
Или СтрНайти(Строка(Элемент.Поле), Строка(Поле)) > 0
Или СтрНайти(Строка(Поле), Строка(Элемент.Поле)) > 0) Тогда
Возврат Истина;
КонецЕсли;
@@ -2775,7 +2826,9 @@
Для Каждого Элемент Из КонечнаяКоллекцияПолей.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных")
Или ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
Продолжить;
КонецЕсли;
@@ -2866,19 +2919,7 @@
КонтекстноеМеню = Новый СписокЗначений;
// Вставить
КонтекстноеМеню.Добавить("ВставитьПолеСправа", НСтр("ru = 'Вставить поле справа...'"),, БиблиотекаКартинок.ВставитьКолонкуСправа);
КонтекстноеМеню.Добавить("ВставитьГруппировкуНиже", НСтр("ru = 'Вставить группировку ниже...'"),, БиблиотекаКартинок.ВставитьГруппировкуНиже);
// Переместить
КонтекстноеМеню.Добавить("ПереместитьПолеВлево", НСтр("ru = 'Переместить влево'"),, БиблиотекаКартинок.ПереместитьКолонкуВлево);
КонтекстноеМеню.Добавить("ПереместитьПолеВправо", НСтр("ru = 'Переместить вправо'"),, БиблиотекаКартинок.ПереместитьКолонкуВправо);
КонтекстноеМеню.Добавить("ПереместитьПолеВыше", НСтр("ru = 'Переместить выше'"),, БиблиотекаКартинок.ПереместитьГруппировкуВыше);
КонтекстноеМеню.Добавить("ПереместитьПолеНиже", НСтр("ru = 'Переместить ниже'"),, БиблиотекаКартинок.ПереместитьГруппировкуНиже);
//
КонтекстноеМеню.Добавить("СкрытьПоле", НСтр("ru = 'Скрыть'"));
КонтекстноеМеню.Добавить("ПереименоватьПоле", НСтр("ru = 'Переименовать...'"));
// Фильтровать
КонтекстноеМеню.Добавить("СнятьФильтр", НСтр("ru = 'Снять фильтр'"));
КонтекстноеМеню.Добавить("Фильтровать", НСтр("ru = 'Фильтровать...'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных);
@@ -2888,11 +2929,8 @@
// Оформить
ПодменюОформления = Новый СписокЗначений;
ПодменюОформления.Добавить("ОформитьОтрицательные", НСтр("ru = 'Отрицательные красным'"));
ПодменюОформления.Добавить("ОформитьПоложительные", НСтр("ru = 'Положительные зеленым'"));
ПодменюОформления.Добавить("УстановитьВысотуСтроки", НСтр("ru = 'Высота строки...'"),, БиблиотекаКартинок.ВысотаСтроки);
ПодменюОформления.Добавить("УстановитьШиринуКолонки", НСтр("ru = 'Ширина колонки...'"),, БиблиотекаКартинок.ШиринаКолонки);
ПодменюОформления.Добавить("ОформитьЕще", НСтр("ru = 'Еще...'"));
КонтекстноеМеню.Добавить(ПодменюОформления, НСтр("ru = 'Оформить'"),, БиблиотекаКартинок.УсловноеОформлениеКомпоновкиДанных);
@@ -2926,6 +2964,7 @@
КонтекстноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение, НСтр("ru = 'Открыть'"));
// Фильтровать
УточнитьДоступныеВидыСравнения(ДоступныеВидыСравнения);
КонтекстноеМеню.Добавить(ДоступныеВидыСравнения, НСтр("ru = 'Фильтровать'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных);
// Сортировать
@@ -2949,6 +2988,26 @@
КонецФункции
Процедура УточнитьДоступныеВидыСравнения(ДоступныеВидыСравнения)
НедоступныеВидыСравнения = Новый Массив;
НедоступныеВидыСравнения.Добавить(ВидСравненияКомпоновкиДанных.ВСписке);
НедоступныеВидыСравнения.Добавить(ВидСравненияКомпоновкиДанных.НеВСписке);
НедоступныеВидыСравнения.Добавить(ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии);
НедоступныеВидыСравнения.Добавить(ВидСравненияКомпоновкиДанных.НеВСпискеПоИерархии);
Для Каждого Вид Из НедоступныеВидыСравнения Цикл
НайденныйВид = ДоступныеВидыСравнения.НайтиПоЗначению(Вид);
Если НайденныйВид <> Неопределено Тогда
ДоступныеВидыСравнения.Удалить(НайденныйВид);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область Расшифровка
@@ -2996,7 +3055,7 @@
КонецЕсли;
Если ТипЗнч(ВыполненноеДействие) = Тип("ВидСравненияКомпоновкиДанных")
Или ТипЗнч(ВыполненноеДействие) = Тип("Строка") И ВыполненноеДействие = "ФильтроватьЕще" Тогда
Или ТипЗнч(ВыполненноеДействие) = Тип("Строка") И СтрНачинаетсяС(ВыполненноеДействие, "Фильтровать") Тогда
Фильтровать(Форма, ВыполненноеДействие, СвойстваОбласти.СвойстваЗаголовка, Данные);
Возврат;
@@ -3117,13 +3176,10 @@
//
Функция КомпоновщикНастроекОтчета(Форма)
Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма")
Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета") Тогда
Возврат Форма.Отчет.КомпоновщикНастроек;
КонецЕсли;
НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
Возврат Форма.КомпоновщикНастроек;
Возврат СвойстваРезультата.КомпоновщикНастроек;
КонецФункции
@@ -3137,21 +3193,8 @@
//
Функция ИспользуемыеНастройки(Форма, ИдентификаторНастроек = Неопределено)
Если СтрЗаканчиваетсяНа(Форма.ИмяФормы, "Форма")
Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "ФормаОтчета")
Или СтрЗаканчиваетсяНа(Форма.ИмяФормы, "КонтекстнаяНастройкаОтчета") Тогда
НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
ИспользуемыеНастройки = СвойстваРезультата.ИтоговыеНастройки;
Иначе
КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма);
ИспользуемыеНастройки = КомпоновщикНастроек.Настройки;
КонецЕсли;
КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма);
ИспользуемыеНастройки = КомпоновщикНастроек.Настройки;
Если ТипЗнч(ИдентификаторНастроек) <> Тип("ИдентификаторКомпоновкиДанных") Тогда
Возврат ИспользуемыеНастройки;
@@ -79,8 +79,12 @@
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаСортироватьПоВозрастанию", "СортироватьПоВозрастанию");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаСортироватьПоУбыванию", "СортироватьПоУбыванию");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаСкрытьПоле", "СкрытьПоле");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаПереименоватьПоле", "ПереименоватьПоле");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаОформитьОтрицательные", "ОформитьОтрицательные");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаОформитьПоложительные", "ОформитьПоложительные");
Действия.Вставить("КонтекстноеМенюОбластиЗаголовкаМенюОформитьЕще", "ОформитьЕще");
Возврат Действия;
@@ -157,10 +161,21 @@
Для Каждого Элемент Из Фильтры.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ЭлементОтбораКомпоновкиДанных")
И Элемент.ЛевоеЗначение = Поле Тогда
Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
ЭлементыГруппы = Элемент.Элементы;
Если ЭлементыГруппы.Количество() = 2
Или ЭлементыГруппы[0].ЛевоеЗначение = Поле
Или ЭлементыГруппы[1].ЛевоеЗначение = Поле Тогда
Возврат Элемент;
КонецЕсли;
ИначеЕсли Элемент.ЛевоеЗначение = Поле Тогда
Возврат Элемент;
КонецЕсли;
КонецЦикла;
@@ -1885,7 +1885,7 @@
ТекстЗапроса = ТекстЗапроса + "
|
|ИТОГИ ПО
| Представление";
| Представление"; // @query-part-1
КонецЕсли;
Если ПоискПоСписку Тогда
@@ -3924,7 +3924,7 @@
| ПО Таблица.ИмяПредопределенныхДанных = ВременнаяТаблица.ИмяПредопределенныхДанных";
ИтогиВыборки = "
|ИТОГИ ПО ПроблемныйОбъект, ИмяПредопределенныхДанных";
|ИТОГИ ПО ПроблемныйОбъект, ИмяПредопределенныхДанных"; // @query-part-1
ТекстВременнойТаблицы = "";
ТекстВыборки = "";
@@ -365,6 +365,13 @@
КонецФункции
// Параметры:
// Расписание - РасписаниеРегламентногоЗадания
// НачалоПериода - Дата
// КонецПериода - Дата
// Возвращаемое значение:
// Массив из Дата
//
Функция ГрафикСобытия(Расписание, НачалоПериода, КонецПериода)
Результат = Неопределено;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.4.96";
Описание.Версия = "3.1.4.104";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -483,8 +483,9 @@
Если РезультатВыполнения.Установленные.Количество() > 0 Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ИмяОперации = "СтандартныеПодсистемы.ОбновлениеКонфигурации.Патчи.АвтоматическаяУстановкаПатча";
МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга");
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики("АвтоматическаяУстановкаПатча", РезультатВыполнения.Установленные.Количество());
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, РезультатВыполнения.Установленные.Количество());
КонецЕсли;
КонецЕсли;
@@ -133,6 +133,12 @@
ОбновлениеКонфигурации.ОбновитьИсправленияИзСкрипта(НовыеИсправления, УдаляемыеИсправления);
КонецПроцедуры
Функция КаталогСкрипта() Экспорт
Возврат ОбновлениеКонфигурации.КаталогСкрипта();
КонецФункции
// АПК:299-выкл для использования из скрипта обновления.
// АПК:557-выкл для использования из скрипта обновления.
//
@@ -237,6 +237,13 @@
КонецПроцедуры
Процедура ЗаписатьОшибкуНеобходимостиОбновленияПлатформы(ТекстОшибки) Экспорт
КаталогСкрипта = ОбновлениеКонфигурацииВызовСервера.КаталогСкрипта();
ЗаписатьФайлПротоколаОшибкиИЗавершитьРаботу(КаталогСкрипта, ТекстОшибки);
КонецПроцедуры
// Обновляет конфигурацию базы данных.
//
// Параметры:
@@ -1,303 +0,0 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
// Отправляет SMS через GSM-INFORM.
//
// Параметры:
// НомераПолучателей - Массив - номера получателей в формате +7ХХХХХХХХХХ;
// Текст - Строка - текст сообщения, длиной не более 480 символов;
// ИмяОтправителя - Строка - имя отправителя, которое будет отображаться вместо номера входящего SMS;
// Логин - Строка - логин пользователя услуги отправки sms;
// Пароль - Строка - пароль пользователя услуги отправки sms.
//
// Возвращаемое значение:
// Структура: ОтправленныеСообщения - Массив структур: НомерОтправителя.
// ИдентификаторСообщения.
// ОписаниеОшибки - Строка - пользовательское представление ошибки, если пустая строка,
// то ошибки нет.
//
Функция ОтправитьSMS(НомераПолучателей, Текст, ИмяОтправителя, Логин, Пароль) Экспорт
Результат = Новый Структура("ОтправленныеСообщения,ОписаниеОшибки", Новый Массив, "");
// Подготовка строки получателей.
СтрокаПолучателей = МассивПолучателейСтрокой(НомераПолучателей);
// Проверка на заполнение обязательных параметров.
Если ПустаяСтрока(СтрокаПолучателей) Или ПустаяСтрока(Текст) Тогда
Результат.ОписаниеОшибки = НСтр("ru = 'Неверные параметры сообщения'");
Возврат Результат;
КонецЕсли;
// Подготовка параметров запроса.
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("id", Логин);
ПараметрыЗапроса.Вставить("api_key", Пароль);
ПараметрыЗапроса.Вставить("cmd", "send");
ПараметрыЗапроса.Вставить("message", Текст);
ПараметрыЗапроса.Вставить("to", СтрокаПолучателей);
ПараметрыЗапроса.Вставить("sender", ИмяОтправителя);
// отправка запроса
Ответ = ВыполнитьЗапрос(ПараметрыЗапроса);
Если Ответ = Неопределено Тогда
Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + НСтр("ru = 'Соединение не установлено'");
Возврат Результат;
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ);
ОтветСервера = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Если ОтветСервера["error_no"] = 0 Тогда
Для Каждого Элемент Из ОтветСервера["items"] Цикл
Если Элемент["error_no"] = 0 Тогда
ОтправленноеСообщение = Новый Структура("НомерПолучателя,ИдентификаторСообщения", Элемент["phone"], Формат(Элемент["sms_id"], "ЧГ=0"));
Результат.ОтправленныеСообщения.Добавить(ОтправленноеСообщение);
Иначе
КодОшибки = Элемент["error_no"];
Результат.ОписаниеОшибки = Результат.ОписаниеОшибки + Элемент["phone"] + ": " + ОписаниеОшибкиПолученияСтатуса(КодОшибки) + Символы.ПС;
КонецЕсли;
КонецЦикла;
Если Не ПустаяСтрока(Результат.ОписаниеОшибки) Тогда
Результат.ОписаниеОшибки = НСтр("ru = 'Не удалось отправить SMS'") + ":" + СокрП(Результат.ОписаниеОшибки);
КонецЕсли;
Иначе
Результат.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Не удалось отправить SMS:
|%1 (код ошибки: %2)'"), ОписаниеОшибкиОтправки(ОтветСервера["error_no"]), ОтветСервера["error_no"]);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , Результат.ОписаниеОшибки);
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает текстовое представление статуса доставки сообщения.
//
// Параметры:
// ИдентификаторСообщения - Строка - идентификатор, присвоенный sms при отправке;
// НастройкиОтправкиSMS - см. ОтправкаSMSПовтИсп.НастройкиОтправкиSMS;
//
// Возвращаемое значение:
// см. ОтправкаSMS.СтатусДоставки.
//
Функция СтатусДоставки(ИдентификаторСообщения, НастройкиОтправкиSMS) Экспорт
Логин = НастройкиОтправкиSMS.Логин;
Пароль = НастройкиОтправкиSMS.Пароль;
// Подготовка параметров запроса.
ПараметрыЗапроса = Новый Структура;
ПараметрыЗапроса.Вставить("id", Логин);
ПараметрыЗапроса.Вставить("api_key", Пароль);
ПараметрыЗапроса.Вставить("sms_id", ИдентификаторСообщения);
ПараметрыЗапроса.Вставить("cmd", "status");
// отправка запроса
Ответ = ВыполнитьЗапрос(ПараметрыЗапроса);
Если Ответ = Неопределено Тогда
Возврат "Ошибка";
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Ответ);
ОтветСервера = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
ОписаниеОшибки = "";
КодОшибки = Неопределено;
Результат = "Ошибка";
Если ОтветСервера["error_no"] = 0 Тогда
Для Каждого Элемент Из ОтветСервера["items"] Цикл
Если Элемент.Свойство("error_no") Тогда
КодОшибки = Элемент["error_no"];
Прервать;
Иначе
Результат = СтатусДоставкиSMS(Элемент["status_no"]);
КонецЕсли;
КонецЦикла;
Иначе
КодОшибки = ОтветСервера["error_no"];
КонецЕсли;
Если КодОшибки <> Неопределено Тогда
ОписаниеОшибки = ОписаниеОшибкиПолученияСтатуса(КодОшибки);
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Не удалось получить статус доставки SMS (id: ""%3""):
|%1 (код ошибки: %2)'"), ОписаниеОшибки, КодОшибки, ИдентификаторСообщения);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , Комментарий);
КонецЕсли;
Возврат Результат;
КонецФункции
Функция СтатусДоставкиSMS(КодСостояния)
СоответствиеСтатусов = Новый Соответствие;
СоответствиеСтатусов.Вставить("1", "Отправлено");
СоответствиеСтатусов.Вставить("2", "Доставлено");
СоответствиеСтатусов.Вставить("3", "НеДоставлено");
СоответствиеСтатусов.Вставить("4", "Отправляется");
СоответствиеСтатусов.Вставить("6", "НеДоставлено");
СоответствиеСтатусов.Вставить("7", "НеОтправлялось");
СоответствиеСтатусов.Вставить("8", "Отправляется");
СоответствиеСтатусов.Вставить("9", "НеОтправлено");
СоответствиеСтатусов.Вставить("10", "Отправляется");
СоответствиеСтатусов.Вставить("11", "Отправлено");
Результат = СоответствиеСтатусов[КодСостояния];
Возврат ?(Результат = Неопределено, "НеОтправлялось", Результат);
КонецФункции
Функция ОписанияОшибок()
Результат = Новый Соответствие;
Результат.Вставить(1, НСтр("ru = 'Неверный API-ключ.'"));
Результат.Вставить(2, НСтр("ru = 'Неизвестная команда.'"));
Результат.Вставить(3, НСтр("ru = 'Пользователь с указанным ID кабинета не существует.'"));
Результат.Вставить(4, НСтр("ru = 'Пустой список телефонов для отправки сообщений.'"));
Результат.Вставить(5, НСтр("ru = 'Не указан текст сообщения.'"));
Результат.Вставить(6, НСтр("ru = 'Не удалось отправить сообщение на указанный номер.'"));
Результат.Вставить(7, НСтр("ru = 'Не указан отправитель по приоритетному трафику.'"));
Результат.Вставить(8, НСтр("ru = 'Некорректный отправитель, допускается только латиница и цифры.'"));
Результат.Вставить(9, НСтр("ru = 'Пустой список идентификаторов сообщений для получения статусов.'"));
Результат.Вставить(10, НСтр("ru = 'Не существует сообщение с таким идентификатором.'"));
Результат.Вставить(11, НСтр("ru = 'Не удалось оплатить рассылку, проверьте баланс.'"));
Возврат Результат;
КонецФункции
Функция ОписаниеОшибкиОтправки(КодОшибки)
ОписанияОшибок = ОписанияОшибок();
ТекстСообщения = ОписанияОшибок[КодОшибки];
Если ТекстСообщения = Неопределено Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сообщение не отправлено (код ошибки: %1).'"), КодОшибки);
КонецЕсли;
Возврат ТекстСообщения;
КонецФункции
Функция ОписаниеОшибкиПолученияСтатуса(КодОшибки)
ОписанияОшибок = ОписанияОшибок();
ТекстСообщения = ОписанияОшибок[КодОшибки];
Если ТекстСообщения = Неопределено Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Статус сообщения не получен (код ошибки: %1).'"), КодОшибки);
КонецЕсли;
Возврат ТекстСообщения;
КонецФункции
Функция ВыполнитьЗапрос(ПараметрыЗапроса)
HTTPЗапрос = ОтправкаSMS.ПодготовитьHTTPЗапрос("/api/", ПараметрыЗапроса);
HTTPОтвет = Неопределено;
Попытка
Соединение = Новый HTTPСоединение("gsm-inform.ru",,,,
ПолучениеФайловИзИнтернета.ПолучитьПрокси("http"),
60);
HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
Если HTTPОтвет <> Неопределено Тогда
Если HTTPОтвет.КодСостояния <> 200 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), ПараметрыЗапроса["cmd"], HTTPОтвет.КодСостояния) + Символы.ПС
+ HTTPОтвет.ПолучитьТелоКакСтроку();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Отправка SMS'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
КонецЕсли;
Возврат HTTPОтвет.ПолучитьТелоКакСтроку();
КонецЕсли;
Возврат Неопределено;
КонецФункции
Функция МассивПолучателейСтрокой(Массив)
Получатели = Новый Массив;
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(Получатели, Массив, Истина);
Результат = "";
Для Каждого Получатель Из Получатели Цикл
Номер = ФорматироватьНомер(Получатель);
Если НЕ ПустаяСтрока(Номер) Тогда
Если Не ПустаяСтрока(Результат) Тогда
Результат = Результат + ",";
КонецЕсли;
Результат = Результат + Номер;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ФорматироватьНомер(Номер)
Результат = "";
ДопустимыеСимволы = "+1234567890";
Для Позиция = 1 По СтрДлина(Номер) Цикл
Символ = Сред(Номер,Позиция,1);
Если СтрНайти(ДопустимыеСимволы, Символ) > 0 Тогда
Результат = Результат + Символ;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
// Возвращает список разрешений для отправки SMS с использованием всех доступных провайдеров.
//
// Возвращаемое значение:
// Массив
//
Функция Разрешения() Экспорт
Протокол = "HTTP";
Адрес = "gsm-inform.ru";
Порт = Неопределено;
Описание = НСтр("ru = 'Отправка SMS через ""GSM-INFORM"".'");
МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме");
Разрешения = Новый Массив;
Разрешения.Добавить(
МодульРаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(Протокол, Адрес, Порт, Описание));
Возврат Разрешения;
КонецФункции
Процедура ПриОпределенииНастроек(Настройки) Экспорт
Настройки.АдресОписанияУслугиВИнтернете = "http://gsm-inform.ru";
Настройки.ПриОпределенииСпособовАвторизации = Истина;
КонецПроцедуры
Процедура ПриОпределенииСпособовАвторизации(СпособыАвторизации) Экспорт
СпособыАвторизации.Очистить();
ПоляАвторизации = Новый СписокЗначений;
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'ID кабинета'"));
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'API-ключ'"));
СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации);
КонецПроцедуры
#КонецОбласти
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="06323ebd-5f74-494a-99a5-eb77e23d8637">
<name>ОтправкаSMSЧерезGSMINFORM</name>
<synonym>
<key>ru</key>
<value>Отправка SMS через GSM-INFORM</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -443,10 +443,11 @@
#Область СлужебныйПрограммныйИнтерфейс
// Выводит и группирует элементы формы, связанные с пользовательскими настройками.
//
// Форма содержит тип РасширениеУправляемойФормыДляОтчета.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения
// - РасширениеУправляемойФормыДляОтчета
// - РасширениеУправляемойФормыДляКомпоновщикаНастроек
// УзелИерархииЭлементов - ГруппаФормы
// ПараметрыОбновления - Структура
// - Неопределено
@@ -773,7 +773,7 @@
БыстрыйПоискСведенийОПодменю.Вставить(НРег(ИмяПодменюПоУмолчанию), СведенияОПодменюПоУмолчанию);
КонецЕсли;
Для Каждого Команда Из КомандыВида Цикл // СтрокаТаблицыЗначений: см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды
Для Каждого Команда Из КомандыВида Цикл // Массив из СтрокаТаблицыЗначений: см. ТаблицаКоманд
Если ПустаяСтрока(Команда.Подменю) Тогда
СведенияОПодменюКоманды = СведенияОПодменюПоУмолчанию;
Иначе
@@ -1347,7 +1347,37 @@
// Шаблон таблицы подключаемых команд.
//
// Возвращаемое значение:
// см. ПодключаемыеКомандыПереопределяемый.ПриОпределенииКомандПодключенныхКОбъекту.Команды
// ТаблицаЗначений:
// * Вид - Строка
// * Идентификатор - Строка
// * Представление - Строка
// * Подменю - Строка
// * Важность - Строка
// * Порядок - Число
// * Картинка - Картинка
// * СочетаниеКлавиш - СочетаниеКлавиш
// * ОтображениеКнопки
// * ТолькоВоВсехДействиях - Булево
// * ЗначениеПометки - Строка
// * ТипПараметра - ОписаниеТипов
// * ВидимостьВФормах - Строка
// * Назначение - Строка
// * ФункциональныеОпции - Строка
// * УсловияВидимости - Массив
// * ИзменяетВыбранныеОбъекты
// * МножественныйВыбор - Булево, Неопределено
// * РежимЗаписи - Строка
// * ТребуетсяРаботаСФайлами - Булево
// * Менеджер - Строка
// * Обработчик - Строка
// * ДополнительныеПараметры - Структура
// * ИмяФормы - Строка
// * ПараметрыФормы - Структура, Неопределено
// * ИмяПараметраФормы - Строка
// * ПорядокВажности - Число
// * ИмяВФорме - Строка
// * ЕстьУсловияВидимости - Булево
// * КлючПараметровРазмещения - Строка
//
Функция ТаблицаКоманд()
Таблица = Новый ТаблицаЗначений;
@@ -1223,7 +1223,7 @@
ТипЧисло = Новый ОписаниеТипов("Число");
НомерЭлемента = ТипЧисло.ПривестиЗначение(ПараметрыВыполнения.НомерЭлемента);
Если ТипЗнч(ПараметрыПеретаскивания.Значение) = Тип("СсылкаНаФайл")
И РаботаСФайламиСлужебныйВызовСервера.ЕстьПравоДоступа("Добавление", ВладелецПрисоединенныхФайлов) Тогда
И РаботаСФайламиСлужебныйВызовСервера.ЕстьПравоДоступа("Добавление", ВладелецПрисоединенныхФайлов) Тогда //@Access-right-2
Файл = ПараметрыПеретаскивания.Значение.Файл;
Если Файл = Неопределено Тогда
@@ -3682,8 +3682,8 @@
// Обходим все элементы оформления - если есть хоть один отличающийся - делаем Продолжить;
ЧислоЭлементов = Элемент.Оформление.Элементы.Количество();
Для Индекс = 0 По ЧислоЭлементов - 1 Цикл
Элемент1 = Элемент.Оформление.Элементы[Индекс];
Элемент2 = ЭлементПоиска.Оформление.Элементы[Индекс];
Элемент1 = Элемент.Оформление.Элементы[Индекс]; // ЗначениеПараметраНастроекКомпоновкиДанных
Элемент2 = ЭлементПоиска.Оформление.Элементы[Индекс]; // ЗначениеПараметраНастроекКомпоновкиДанных
Если Элемент1.Использование И Элемент2.Использование Тогда
Если Элемент1.Параметр <> Элемент2.Параметр ИЛИ Элемент1.Значение <> Элемент2.Значение Тогда
@@ -4404,7 +4404,7 @@
Если ЭтоАдресВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла) Тогда
ДвоичныеДанныеИлиПуть = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла);
ДвоичныеДанныеИлиПуть = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
Если Версия.Размер = 0 Тогда
Версия.Размер = ДвоичныеДанныеИлиПуть.Размер();
@@ -4643,7 +4643,7 @@
Версия.ТипХраненияФайла = ТипХраненияФайлов;
Если ДвоичныеДанные = Неопределено Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
КонецЕсли;
Если Версия.Размер = 0 Тогда
@@ -5974,7 +5974,7 @@
Возврат Результат;
КонецЕсли;
ФайлСДвоичнымиДанными = ПараметрыСинхронизации.Ответ.ПолучитьТелоКакДвоичныеДанные();
ФайлСДвоичнымиДанными = ПараметрыСинхронизации.Ответ.ПолучитьТелоКакДвоичныеДанные(); // ДвоичныеДанные
ИдентификаторEtag = ?(ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"] = Неопределено, "", ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"]);
ДатаМодификацииФайла = ?(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"] = Неопределено,ТекущаяУниверсальнаяДата(),ДатаRFC1123(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"]));
@@ -746,7 +746,7 @@
Версия.ТипХраненияФайла = ТипХраненияФайлов;
Если ДвоичныеДанные = Неопределено Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
КонецЕсли;
Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
@@ -754,7 +754,7 @@
ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные);
Если Версия.Размер = 0 Тогда
ДвоичныеДанныеФайла = ХранилищеФайла.Получить();
ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные
Версия.Размер = ДвоичныеДанныеФайла.Размер();
РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия);
@@ -797,7 +797,7 @@
Если Версия.Размер = 0 Тогда
Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ДвоичныеДанныеФайла = ХранилищеФайла.Получить();
ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные
Версия.Размер = ДвоичныеДанныеФайла.Размер();
КонецЕсли;
КонецЕсли;
@@ -2571,7 +2571,7 @@
Функция ПараметрыДобавленияИзображения(ВладелецФайлов) Экспорт
ПараметрыДобавления = Новый Структура;
ПараметрыДобавления.Вставить("ПравоДобавления", ЕстьПравоДоступа("Добавление", ВладелецФайлов));
ПараметрыДобавления.Вставить("ПравоДобавления", ЕстьПравоДоступа("Добавление", ВладелецФайлов)); // @Access-right-2
ПараметрыДобавления.Вставить("ФайлыВладельца" , КоличествоПрисоединенныхФайлов(ВладелецФайлов, Истина));
Возврат ПараметрыДобавления;
@@ -316,9 +316,10 @@
Настройки.ПроведеноКопирование = Ложь;
УстановитьНастройкиРезервногоКопирования(Настройки);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ИмяОперации = "СтандартныеПодсистемы.РезервноеКопированиеИБ.ВыполненоРезервноеКопирование";
МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга");
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики("ВыполненоРезервноеКопирование", 1);
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, 1);
КонецЕсли;
КонецПроцедуры
@@ -1556,6 +1556,24 @@
// Только для внутреннего использования. Продолжение процедуры ПроверитьВерсиюПлатформыПриЗапуске.
Процедура ИнтерактивнаяОбработкаПроверкиВерсииПлатформыПриЗапуске(Параметры, Контекст) Экспорт
ПараметрыКлиента = ПараметрыРаботыКлиентаПриЗапуске();
СистемнаяИнформация = Новый СистемнаяИнформация;
Текущая = СистемнаяИнформация.ВерсияПриложения;
Минимальная = ПараметрыКлиента.МинимальнаяВерсияПлатформы;
Если СтрНайти(ПараметрЗапуска, "ВыполнитьОбновлениеИЗавершитьРаботу") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Текущая, Минимальная) < 0
И ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОбновлениеКонфигурации") Тогда
ТекстСообщения =
НСтр("ru = 'Выполнение обновления программы невозможно
|Необходимо предварительно обновить версию платформы 1С:Предприятие.
|Используемая версия платформы - %1.
|Минимально необходимая версия платформы - %2'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Текущая, Минимальная);
МодульОбновлениеКонфигурацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбновлениеКонфигурацииКлиент");
МодульОбновлениеКонфигурацииКлиент.ЗаписатьОшибкуНеобходимостиОбновленияПлатформы(ТекстСообщения);
КонецЕсли;
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗакрытияФормыНерекомендуемойВерсииПлатформы", ЭтотОбъект, Параметры);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
СтандартнаяОбработка = Истина;
@@ -1566,12 +1584,6 @@
КонецЕсли;
КонецЕсли;
ПараметрыКлиента = ПараметрыРаботыКлиентаПриЗапуске();
СистемнаяИнформация = Новый СистемнаяИнформация;
Текущая = СистемнаяИнформация.ВерсияПриложения;
Минимальная = ПараметрыКлиента.МинимальнаяВерсияПлатформы;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Текущая, Минимальная) < 0 Тогда
Если ПараметрыКлиента.ЕстьДоступДляОбновленияВерсииПлатформы Тогда
ТекстСообщения =
@@ -32283,7 +32283,7 @@
| " + Контекст.ОпорныеПоля.ДляВыбора + "
| ПОМЕСТИТЬ ТекущийСписок
|ИЗ
| &ЗначенияОпорныхПолей КАК ТекущийСписок"; // @query-part
| &ЗначенияОпорныхПолей КАК ТекущийСписок"; // @query-part-1
Контекст.ЧастиЗапросаЗначенийИзОбъектов.Добавить(ТекстЗапроса);
ИначеЕсли НомерШапки = 0 Тогда
@@ -32292,7 +32292,7 @@
"ВЫБРАТЬ
| ТекущаяТаблица." + СтрСоединить(ОписаниеТаблицы.Поля, ",
| ТекущаяТаблица.") + "
| ПОМЕСТИТЬ " // @query-part
| ПОМЕСТИТЬ " // @query-part-1
+ ОписаниеТаблицы.ПолноеИмяТаблицы + "
|ИЗ
| &" + ОписаниеТаблицы.ПолноеИмяТаблицы + " КАК ТекущаяТаблица";
@@ -32323,7 +32323,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
Иначе
ТекстЗапроса =
"ВЫБРАТЬ
@@ -32336,7 +32336,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка, " + Контекст.ОпорныеПоля.ДляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
КонецЕсли;
Контекст.ЧастиЗапросаЗначенийИзОбъектов.Добавить(ТекстЗапроса);
@@ -32379,7 +32379,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Шапка?", "Шапка" + НомерШапки);
@@ -32624,9 +32624,10 @@
| " + ПсевдонимТабличнойЧастиОбъекта + ".Ссылка В (&СсылкиНаОбъекты)
|
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка" + ПоляУпорядочения + "
| ТекущаяСсылка" // @query-part-1
+ ПоляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
Иначе
ПоляВыбора = "";
Соединения = "";
@@ -32692,7 +32693,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка" + ПоляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
Если СоединенияВПамяти <> СоединенияВБазеДанных Тогда
// АПК:96-выкл - №434 Использование ОБЪЕДИНИТЬ допустимо, так как
// строки не должны повторятся и объем данных небольшой.
@@ -32718,7 +32719,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка" + ПоляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
// АПК:96-вкл.
КонецЕсли;
Иначе
@@ -32733,7 +32734,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка, " + Контекст.ОпорныеПоля.ДляУпорядочения + ПоляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
КонецЕсли;
КонецЕсли;
@@ -32761,7 +32762,7 @@
|УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка" + ПоляУпорядочения + "
|ИТОГИ ПО
| ТекущаяСсылка";
| ТекущаяСсылка"; // @query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТабличнаяЧасть?", "ТабличнаяЧасть" + НомерТабличнойЧастиКлюча);
Контекст.ЧастиЗапросаЗначенийИзКлючейДляСравнения.Добавить(ТекстЗапроса);
@@ -32779,7 +32780,7 @@
|УПОРЯДОЧИТЬ ПО
| Ссылка
|ИТОГИ ПО
| Ссылка";
| Ссылка"; // @query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ТабличнаяЧасть?", "ТабличнаяЧасть" + НомерТабличнойЧастиКлюча);
Контекст.ЧастиЗапросаЗначенийИзКлючейДляРасчетаПрав.Добавить(ТекстЗапроса);
@@ -32979,7 +32980,7 @@
Поле = СтрЗаменить(Поле, "Шапка?.Значение? = ", "");
Поле = СтрЗаменить(Поле, " ", " ");
Позиция = СтрДлина(Символы.ПС + "И ()");
Поле = "," + Символы.ПС + Сред(Поле, Позиция, СтрДлина(Поле) - Позиция) + " КАК Значение?";
Поле = "," + Символы.ПС + Сред(Поле, Позиция, СтрДлина(Поле) - Позиция) + " КАК Значение?"; // @Keys-2
СоединенияИПоля.ПоляУпорядочения = СоединенияИПоля.ПоляУпорядочения
+ ", " + "Значение" + НомерРеквизита;
@@ -1105,7 +1105,7 @@
|
|СГРУППИРОВАТЬ ПО
| КонтактнаяИнформация.Вид, КонтактнаяИнформация.Ссылка
|;"
|;" // @Query-part-1
КонецЕсли;
КонецЦикла;
@@ -3451,7 +3451,7 @@
ПредыдущийВид = Неопределено;
ПорядковыйНомер = 1;
Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта
Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл
Если ОбъектКонтактнойИнформации.ПометкаУдаления И ПустаяСтрока(ОбъектКонтактнойИнформации.Значение) Тогда
Продолжить;
@@ -3468,7 +3468,7 @@
ОбъектКонтактнойИнформации.Строки.Сортировать("РеквизитДопУпорядочивания");
Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта
Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл
ТекущийВид = СтрокаКИ.Вид;
Если ТекущийВид <> ПредыдущийВид Тогда
@@ -2506,6 +2506,9 @@
#Область СлужебныеПроцедурыИФункцииДляСовместимости
// Возвращаемое значение:
// см. XDTOПакет.КонтактнаяИнформация
//
Функция КонтактнаяИнформацияИзXML(Знач Текст, Знач ОжидаемыйВид = Неопределено, РезультатПреобразования = Неопределено, Знач Представление = "") Экспорт
ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид);
@@ -2541,7 +2544,7 @@
Попытка
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); // см. XDTOПакет.КонтактнаяИнформация
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес И КонтактнаяИнформацияXDTOПустая(Результат) Тогда
НеобходимоВосстановитьКонтактнуюИнформацию = Истина;
@@ -2624,7 +2627,7 @@
ЭтоНовый = Ложь;
КонецЕсли;
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация"));
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); // см. XDTOПакет.КонтактнаяИнформация
// Разбор
Если ОжидаемыйТип = ПеречислениеАдрес Тогда
@@ -2932,6 +2932,16 @@
// Подготовить структуру параметров вывода для менеджера объекта формирующего печатные формы.
//
// Возвращаемое значение:
// Структура:
// * ПараметрыОтправки - Структура:
// ** Получатель - Неопределено, Произвольный
// ** Тема - Строка
// ** Текст - Строка
// * КодЯзыка - Строка
// * ДоступнаПечатьПоКомплектно - Булево
// * ЗаголовокФормы - Строка
//
Функция ПодготовитьСтруктуруПараметровВывода() Экспорт
ПараметрыВывода = Новый Структура;
@@ -214,7 +214,10 @@
Форма.ТекущийЯзык = ТекущийЯзык;
ДоступныеЯзыки = ДоступныеЯзыки(ИспользоватьРегиональныеПредставленияЯзыков);
Элементы.Язык.Заголовок = "";
ЭтоМобильныйКлиент = ОбщегоНазначения.ЭтоМобильныйКлиент();
Если Не ЭтоМобильныйКлиент Тогда
Элементы.Язык.Заголовок = "";
КонецЕсли;
Для Каждого КодЛокализации Из ДоступныеЯзыки Цикл
КодЯзыка = СтрРазделить(КодЛокализации, "_", Истина)[0];
@@ -235,6 +238,7 @@
КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
КнопкаФормы.ИмяКоманды = Команда.Имя;
КнопкаФормы.Заголовок = ПредставлениеЯзыка;
КнопкаФормы.ТолькоВоВсехДействиях= ЭтоМобильныйКлиент;
КонецЦикла;
КонецПроцедуры
@@ -1795,6 +1795,7 @@
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
ИмяЭлемента = ВидОбъектаМетаданных + "_" + ИмяОбъектаМетаданных;
ОсновнойНабор = УправлениеСвойствами.НаборСвойствПоИмени(ИмяЭлемента);
Если ОсновнойНабор = Неопределено Тогда
@@ -824,7 +824,7 @@
// Получим нужные сообщения
Сообщения = Почта.Выбрать(Ложь,
МассивИдентификаторовПорцииДляЗагрузки,
?(ДанныеУчетнойЗаписи.ПротоколВходящейПочты = "IMAP",Ложь, Истина));
?(ДанныеУчетнойЗаписи.ПротоколВходящейПочты = "IMAP",Ложь, Истина)); // Массив из ПочтовоеСообщение
КоличествоНеАктуальныхСообщений = КоличествоНеАктуальныхСообщений + (КоличествоВПорции - Сообщения.Количество());
@@ -82,7 +82,8 @@
УстановитьПривилегированныйРежим(Ложь);
Если Не ЗначениеЗаполнено(ПараметрыТокена.IAMТокен)
Или Не ЗначениеЗаполнено(ПараметрыТокена.СрокДействия) Или ПараметрыТокена.СрокДействия <= УниверсальноеВремя(ТекущаяДата()) Тогда // АПК:143
Или Не ЗначениеЗаполнено(ПараметрыТокена.СрокДействия)
Или ПараметрыТокена.СрокДействия <= УниверсальноеВремя(ТекущаяДата()) Тогда // АПК:143
ПараметрыТокена = НовыйIAMТокен();
УстановитьПривилегированныйРежим(Истина);
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста");
@@ -185,8 +186,9 @@
Если HTTPОтвет.КодСостояния <> 200 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС
+ HTTPОтвет.ПолучитьТелоКакСтроку();
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"),
HTTPЗапрос.АдресРесурса,
HTTPОтвет.КодСостояния) + Символы.ПС + HTTPОтвет.ПолучитьТелоКакСтроку();
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли;
@@ -245,7 +247,9 @@
УстановитьПривилегированныйРежим(Истина);
НастройкиАвторизации = НастройкиАвторизации();
Возврат ЗначениеЗаполнено(НастройкиАвторизации.OAuthТокен) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторКаталога);
Возврат ЗначениеЗаполнено(НастройкиАвторизации.OAuthТокен)
И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторКаталога);
КонецФункции
+9 -10
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6cd94226-3ec1-11eb-529c-0242ac110002">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4f645f4a-455c-11eb-8589-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6cd94230-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6cd94258-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="6cd94262-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="6cd94263-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="6cd9426c-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6cd9426d-3ec1-11eb-529c-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="1881089f-6b80-4ca3-b991-666e78673ec5"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4f645f54-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4f645f7c-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4f645f86-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="4f645f87-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="4f645f88-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4f645f90-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f48a1b3a-6f73-417d-b9f3-b34d06b14f1d"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.4.96</version>
<version>3.1.4.104</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -870,7 +870,6 @@
<commonModules>CommonModule.ОтправкаSMSКлиентПереопределяемый</commonModules>
<commonModules>CommonModule.ОтправкаSMSПереопределяемый</commonModules>
<commonModules>CommonModule.ОтправкаSMSПовтИсп</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезGSMINFORM</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезSMS4B</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезSMSRU</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезSMSЦЕНТР</commonModules>
@@ -1 +1 @@
{6,1,1,af805f10-3ec1-11eb-d398-0242ac110002,1,a2bc0a72-3ec1-11eb-0294-0242ac110002,"3.1.4.96","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6267,1,0,6cd94226-3ec1-11eb-529c-0242ac110002,6cd94226-3ec1-11eb-529c-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-Line truncated
{6,1,1,95cf6218-455c-11eb-e78b-0242ac110002,1,86efa172-455c-11eb-1488-0242ac110002,"3.1.4.104","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6265,1,0,4f645f4a-455c-11eb-8589-0242ac110002,4f645f4a-455c-11eb-8589-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -2007,6 +2007,10 @@
КонецПроцедуры
// Параметры:
// Параметры - Структура:
// * НастройкиВнешнегоВида - ДеревоЗначений
//
Процедура ЗаполнитьСписокНастроекВнешнегоВида(Параметры)
Параметры.НастройкиВнешнегоВида.Строки.Очистить();
@@ -165,7 +165,7 @@
<id>1708</id>
<title>
<key>ru</key>
<value>Доступные языки печатных форм</value>
<value>Настройка списка языков, на которых доступен вывод печатных форм.</value>
</title>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
@@ -249,6 +249,120 @@
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаАвтоматическийПеревод</name>
<id>1709</id>
<items xsi:type="form:FormField">
<name>ИспользоватьСервисПереводаТекста</name>
<id>1719</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>
<titleLocation>None</titleLocation>
<handlers>
<event>OnChange</event>
<name>ИспользоватьСервисПереводаТекстаПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ИспользоватьСервисПереводаТекстаРасширеннаяПодсказка</name>
<id>1721</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИспользоватьСервисПереводаТекстаКонтекстноеМеню</name>
<id>1720</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:Decoration">
<name>НастройкаСервисаПереводаТекста</name>
<id>1722</id>
<title>
<key>ru</key>
<value>Перевод текста с помощью онлайн-переводчика</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>НастройкаСервисаПереводаТекстаРасширеннаяПодсказка</name>
<id>1724</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НастройкаСервисаПереводаТекстаКонтекстноеМеню</name>
<id>1723</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>НастройкаСервисаПереводаТекстаОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<extendedTooltip>
<name>ГруппаАвтоматическийПереводРасширеннаяПодсказка</name>
<id>1710</id>
<title>
<key>ru</key>
<value>Предлагать автоматический перевод текста при редактировании макетов печатных форм и вводе реквизитов на выбранных языках.</value>
</title>
<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>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -268,7 +382,7 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<group>Vertical</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
@@ -1177,6 +1291,9 @@
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборКонстант.ЗаголовокСистемы</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборКонстант.СервисПереводаТекста</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
</attributes>
<attributes>
@@ -39,6 +39,11 @@
Элементы.ГруппаРассылкиОтчетов.Видимость = Ложь;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
СервисПереводаТекста = НаборКонстант["СервисПереводаТекста"];
Элементы.НастройкаСервисаПереводаТекста.Заголовок = ЗаголовокНастройкиСервисаПереводаТекста(СервисПереводаТекста);
КонецЕсли;
// Обновление состояния элементов.
УстановитьДоступность();
@@ -70,6 +75,26 @@
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьСервисПереводаТекстаПриИзменении(Элемент)
Подключаемый_ПриИзмененииРеквизита(Элемент);
Если НаборКонстант["ИспользоватьСервисПереводаТекста"] И Не ЗначениеЗаполнено(НаборКонстант["СервисПереводаТекста"]) Тогда
ПерейтиКНастройкамПереводчика();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НастройкаСервисаПереводаТекстаОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки = "ПерейтиКНастройкеСервисаПереводаТекста" Тогда
СтандартнаяОбработка = Ложь;
ПерейтиКНастройкамПереводчика();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
@@ -89,6 +114,58 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПерейтиКНастройкамПереводчика()
ОписаниеОповещения = Новый ОписаниеОповещения("ПриЗавершенииНастройкиСервисаПеревода", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.НастройкаПереводаТекста", , ЭтотОбъект, , , , ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииНастройкиСервисаПеревода(Знач ВыбранныйПереводчик, ДополнительныеПараметры) Экспорт
Если ВыбранныйПереводчик = Неопределено Тогда
ВыбранныйПереводчик = ТекущийПереводчик();
КонецЕсли;
Элементы.НастройкаСервисаПереводаТекста.Заголовок = ЗаголовокНастройкиСервисаПереводаТекста(ВыбранныйПереводчик);
Если Не ЗначениеЗаполнено(ВыбранныйПереводчик) Тогда
НаборКонстант["ИспользоватьСервисПереводаТекста"] = Ложь;
Подключаемый_ПриИзмененииРеквизита(Элементы.ИспользоватьСервисПереводаТекста);
КонецЕсли;
НаборКонстант["СервисПереводаТекста"] = ВыбранныйПереводчик;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ЗаголовокНастройкиСервисаПереводаТекста(СервисПереводаТекста)
Если ЗначениеЗаполнено(СервисПереводаТекста) Тогда
Шаблон = НСтр("ru = 'Перевод текста с помощью <a href=""ПерейтиКНастройкеСервисаПереводаТекста"">%1</a>'");
Иначе
Шаблон = НСтр("ru = 'Перевод текста с помощью внешнего сервиса'");
КонецЕсли;
#Если Клиент Тогда
Возврат СтроковыеФункцииКлиент.ФорматированнаяСтрока(Шаблон, СервисПереводаТекста);
#Иначе
Возврат СтроковыеФункции.ФорматированнаяСтрока(Шаблон, СервисПереводаТекста);
#КонецЕсли
КонецФункции
&НаСервереБезКонтекста
Функция ТекущийПереводчик()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.ПереводТекста") Тогда
МодульПереводТекстаНаДругиеЯзыки = ОбщегоНазначения.ОбщийМодуль("ПереводТекстаНаДругиеЯзыки");
Возврат МодульПереводТекстаНаДругиеЯзыки.СервисПереводаТекста();
КонецЕсли;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Клиент
@@ -666,7 +666,7 @@
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Активировать</name>
<name>АктивироватьБота</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
@@ -51,7 +51,7 @@
КонецПроцедуры
&НаКлиенте
Процедура Активировать(Команда)
Процедура АктивироватьБота(Команда)
Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
@@ -615,7 +615,7 @@
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>Активировать</name>
<name>АктивироватьБота</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
@@ -44,7 +44,7 @@
КонецПроцедуры
&НаКлиенте
Процедура Активировать(Команда)
Процедура АктивироватьБота(Команда)
Если НЕ ПроверитьЗаполнение() Тогда
Возврат;
КонецЕсли;
@@ -355,8 +355,11 @@
&НаКлиенте
Процедура НастроитьПравилаОтправкиИПолученияДанныхПродолжение(РезультатЗакрытия, ДополнительныеПараметры) Экспорт
Если Не РезультатЗакрытия.ПродолжитьНастройку Тогда
Если ТипЗнч(РезультатЗакрытия) <> Тип("Структура")
ИЛИ Не РезультатЗакрытия.ПродолжитьНастройку Тогда
Возврат;
КонецЕсли;
Если РезультатЗакрытия.ПолученыДанныеДляСопоставления
@@ -1446,6 +1446,7 @@
КонецПроцедуры
&НаСервере
Процедура НастроитьДинамическийСписок(ИмяСправочникаХранилищаФайлов, Знач ЕстьРеквизитСлужебный = Ложь)
@@ -1541,6 +1542,7 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьИменаКомандФормы()
@@ -1537,6 +1537,10 @@
Возврат ИсходнаяСтруктура;
КонецФункции
// Параметры:
// Адрес - Строка
// СтрокаТабличнойЧасти - СтрокаТаблицыЗначений: см. Справочник.Пользователи.КонтактнаяИнформация
//
Процедура ЗаполнитьРасширенныеРеквизитыТабличнойЧастиДляАдреса(Знач Адрес, Знач СтрокаТабличнойЧасти) Экспорт
Если УправлениеКонтактнойИнформациейСлужебный.ЭтоНациональныйАдрес(Адрес) Тогда
@@ -374,6 +374,9 @@
ВыделеннаяСтрока = МестаИспользованияНеудаленных.НайтиПоИдентификатору(ИдентификаторСтроки);
ПриВыбореДействияМестаИспользования("Удалить", ВыделеннаяСтрока);
КонецЦикла;
ЗаполнитьМестаИспользованияНеудаленныхОбъектов(ЭтотОбъект);
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "МестаИспользованияНеудаленных", "*", Истина);
КонецПроцедуры
&НаКлиенте
@@ -416,10 +419,14 @@
КонецЦикла;
Для Каждого ВыделеннаяСтрока Из МестаИспользованияНеудаленных.ПолучитьЭлементы() Цикл
Если ВыделеннаяСтрока.ОсновнаяПричина И ВыделеннаяСтрока.УдаляемыйСсылка = ТекущиеДанные.УдаляемыйСсылка Тогда
Если ВыделеннаяСтрока.ОсновнаяПричина
И ВыделеннаяСтрока.Действие <> "Удалить" Тогда
ЗарегистрироватьДействиеМестаИспользования(ВыделеннаяСтрока, "ЗаменитьСсылку", Результат);
КонецЕсли;
КонецЦикла;
ЗаполнитьМестаИспользованияНеудаленныхОбъектов(ЭтотОбъект);
СтандартныеПодсистемыКлиент.РазвернутьУзлыДерева(ЭтотОбъект, "МестаИспользованияНеудаленных", "*", Истина);
КонецПроцедуры
&НаКлиенте
@@ -870,53 +877,66 @@
&НаКлиенте
Процедура ЗарегистрироватьДействиеМестаИспользования(МестоИспользования, Действие, Параметр = Неопределено)
ДействиеПредставление = ?(Параметр = Неопределено,
ДействияМестИспользованияНеудаленных.НайтиПоЗначению(Действие),
ПредставлениеКомандыЗаменитьНа(МестоИспользования, Параметр));
ДействияМестИспользованияНеудаленных.НайтиПоЗначению(Действие),
ПредставлениеКомандыЗаменитьНа(МестоИспользования, Параметр));
Если Действие <> Неопределено Тогда
Успешно = Истина;
ЗарегистрированноеДействие = ТаблицаДействий.НайтиСтроки(Новый Структура("ОбнаруженныйСсылка",МестоИспользования.ОбнаруженныйСсылка));
Если ЗарегистрированноеДействие.Количество() = 0 Тогда
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
// Добавление еще одной замены
ИначеЕсли ЗарегистрированноеДействие[0].Действие <> "Удалить" И ЗарегистрированноеДействие[0].Источник <> МестоИспользования.ОбнаруженныйСсылка Тогда
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
// Удаление
ИначеЕсли ЗарегистрированноеДействие[0].Действие = Действие Тогда
Если Действие = Неопределено Тогда
Возврат;
КонецЕсли;
Успешно = Истина;
Если Действие = "Удалить" Тогда
Фильтр = Новый Структура("ОбнаруженныйСсылка",МестоИспользования.ОбнаруженныйСсылка);
ЗарегистрированноеДействие = ТаблицаДействий.НайтиСтроки(Фильтр);
Если ЗарегистрированноеДействие.Количество() <> 0 Тогда
Для каждого УдаляемоеДействие Из ЗарегистрированноеДействие Цикл
ТаблицаДействий.Удалить(УдаляемоеДействие);
КонецЦикла;
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
Иначе
СообщениеПользователю = НСтр("ru='Для места использования %1 нельзя выбрать действие %2.'");
СообщениеПользователю = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеПользователю,
МестоИспользования.ОбнаруженныйСсылка,
МестоИспользования.ДействиеПредставление);
Состояние(СообщениеПользователю);
Успешно = Ложь;
КонецЕсли;
Если Успешно Тогда
ЗарегистрированноеДействие = ТаблицаДействий.Добавить();
ЗарегистрированноеДействие.Действие = Действие;
ЗарегистрированноеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ЗарегистрированноеДействие.ПараметрДействия = Параметр;
ЗарегистрированноеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
ИначеЕсли Действие = "ЗаменитьСсылку" Тогда
Фильтр = Новый Структура("ОбнаруженныйСсылка",МестоИспользования.ОбнаруженныйСсылка);
ЗарегистрированноеДействие = ТаблицаДействий.НайтиСтроки(Фильтр);
Для каждого УдаляемоеДействие Из ЗарегистрированноеДействие Цикл
ТаблицаДействий.Удалить(УдаляемоеДействие);
КонецЦикла;
МестоИспользования.Действие = Действие;
МестоИспользования.ДействиеПредставление = ДействиеПредставление;
Фильтр = Новый Структура("Источник, Действие", МестоИспользования.УдаляемыйСсылка, "ЗаменитьСсылку");
ЗарегистрированноеДействие = ТаблицаДействий.НайтиСтроки(Фильтр);
Для каждого ИзменяемоеДействие Из ЗарегистрированноеДействие Цикл
ИзменяемоеДействие.ПараметрДействия = Параметр;
КонецЦикла;
Если ЗарегистрированноеДействие.Количество() = 0 Тогда
ИзменяемоеДействие = ТаблицаДействий.Добавить();
ИзменяемоеДействие.Действие = Действие;
ИзменяемоеДействие.ОбнаруженныйСсылка = МестоИспользования.ОбнаруженныйСсылка;
ИзменяемоеДействие.ПараметрДействия = Параметр;
ИзменяемоеДействие.Источник = МестоИспользования.УдаляемыйСсылка;
КонецЕсли;
Иначе
СообщениеПользователю = НСтр("ru='Для места использования %1 нельзя выбрать действие %2.'");
СообщениеПользователю = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеПользователю,
МестоИспользования.ОбнаруженныйСсылка,
МестоИспользования.ДействиеПредставление);
Состояние(СообщениеПользователю);
Успешно = Ложь;
КонецЕсли;
Если Успешно Тогда
МестоИспользования.Действие = Действие;
МестоИспользования.ДействиеПредставление = ДействиеПредставление;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -1132,19 +1152,33 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВыбранноеДействиеНадПричинойНеудаления(Форма, Знач ПричинаНеудаления, Действие = "")
Процедура ЗаполнитьДействиеВСтрокеМестаИспользованияНеудаленных(Форма, Знач ПричинаНеудаления, Действие = "")
Если ПричинаНеудаления.ЭтоОшибка Тогда
Возврат;
КонецЕсли;
ТаблицаДействий = Форма.ТаблицаДействий;
ВыбранныеДействия = ТаблицаДействий.НайтиСтроки(Новый Структура("ОбнаруженныйСсылка", ПричинаНеудаления.ОбнаруженныйСсылка));
Фильтр = Новый Структура("ОбнаруженныйСсылка, Действие",
ПричинаНеудаления.ОбнаруженныйСсылка, "Удалить");
ВыбранныеДействия = ТаблицаДействий.НайтиСтроки(Фильтр);
Если ВыбранныеДействия.Количество() = 0 Тогда
Фильтр = Новый Структура("Источник, Действие",
ПричинаНеудаления.УдаляемыйСсылка, "ЗаменитьСсылку");
ВыбранныеДействия = ТаблицаДействий.НайтиСтроки(Фильтр);
КонецЕсли;
Если ВыбранныеДействия.Количество() > 0 Тогда
Действие = ВыбранныеДействия[0].Действие;
ПараметрДействия = ВыбранныеДействия[0].ПараметрДействия;
КонецЕсли;
Если НЕ ПричинаНеудаления.ОсновнаяПричина Тогда
Действие = "Удалить";
КонецЕсли;
ПричинаНеудаления.Действие = Действие;
Если Действие = "ЗаменитьСсылку" Тогда
ПричинаНеудаления.ДействиеПредставление = ПредставлениеКомандыЗаменитьНа(ПричинаНеудаления, ПараметрДействия);
Иначе
@@ -1166,9 +1200,6 @@
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеСтроки);
КонецЕсли;
Показываемые = Форма.СвязиНеудаленных.НайтиСтроки(Новый Структура("УдаляемыйСсылка", ДанныеСтроки.ОбнаруженныйСсылка));
УстановитьВыбранноеДействиеНадПричинойНеудаления(Форма,
НоваяСтрока,
?(Показываемые.Количество() <> 0, "Удалить", ""));
СодержатьсяТолькоОшибки = Истина;
Для Каждого СтрокаТаблицы Из Показываемые Цикл
@@ -1186,6 +1217,11 @@
И (ПодчиненныеСтроки.Количество() = 0
ИЛИ СодержатьсяТолькоОшибки
ИЛИ Показываемые.Количество() = 0);
ЗаполнитьДействиеВСтрокеМестаИспользованияНеудаленных(Форма,
НоваяСтрока,
?(Показываемые.Количество() <> 0, "Удалить", ""));
КонецПроцедуры
#КонецОбласти
@@ -1669,8 +1705,8 @@
УстановитьЗаменитьНа(Неопределено);
ИначеЕсли ВыбранноеЗначение = "Удалить" И НЕ ТекущиеДанные.СсылочногоТипа Тогда
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Нельзя установить действие удалить для %1'"),
ТекущиеДанные.Представление));
НСтр("ru='Нельзя установить действие удалить для %1'"),
ТекущиеДанные.Представление));
Иначе
ЗарегистрироватьДействиеМестаИспользования(ТекущиеДанные, ВыбранноеЗначение);
КонецЕсли;
@@ -96,6 +96,12 @@
Продолжить;
КонецЕсли;
// Объект может быть не удален из-за ПометкаУдаления = Ложь,
// но удален как подчиненный
Если ОбъектУдален(Элемент.УдаляемыйСсылка) Тогда
Продолжить;
КонецЕсли;
ПараметрыУдаления.Неудаленные.Добавить(Элемент.УдаляемыйСсылка);
Если Элемент.РезультатУдаления <> КодыРезультатаУдаления().НеПомеченНаУдаление Тогда
РегистрыСведений.НеудаленныеОбъекты.Добавить(Элемент.УдаляемыйСсылка);
@@ -130,6 +136,15 @@
Причина.МестоИспользования = СведенияОМестеИспользования.МестоИспользования;
Причина.Метаданные = СведенияОМестеИспользования.Метаданные;
КонецЦикла;
КолонкиПрепятствующиеУдалению = Новый Массив;
Для каждого Колонка Из ПрепятствующиеУдалению.Колонки Цикл
КолонкиПрепятствующиеУдалению.Добавить(Колонка.Имя);
КонецЦикла;
// Группируем таблицу для исключения дублей, т.к.
// Не выполняем поиск повторений между пакетами
ПрепятствующиеУдалению.Свернуть(СтрСоединить(КолонкиПрепятствующиеУдалению, ","));
КонецПроцедуры
#КонецОбласти
@@ -749,9 +749,10 @@
Возврат;
КонецЕсли;
Иначе
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ИмяОперации = "СтандартныеПодсистемы.ОбновлениеКонфигурации.Патчи.РучнаяУстановкаПатча";
МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга");
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики("РучнаяУстановкаПатча", 1);
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, 1);
КонецЕсли;
КонецЕсли;
@@ -28,13 +28,6 @@
</standardAttributes>
<quickChoice>true</quickChoice>
<choiceMode>BothWays</choiceMode>
<enumValues uuid="e6a53f32-0b7d-499d-844e-fb8df13a3519">
<name>GSMINFORM</name>
<synonym>
<key>ru</key>
<value>GSM-INFORM</value>
</synonym>
</enumValues>
<enumValues uuid="4a55351b-77e2-4c7c-a7d7-aac213d3c2a7">
<name>SMS4B</name>
<synonym>
@@ -210,13 +210,17 @@
<items xsi:type="form:FormField">
<name>СписокПраво</name>
<id>8</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>
<segments>Список.ПравоОбъекта</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
@@ -884,9 +888,26 @@
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
РегистрСведенийНастройкиПравОбъектов.Объект,
РегистрСведенийНастройкиПравОбъектов.Пользователь,
РегистрСведенийНастройкиПравОбъектов.Право КАК ПравоОбъекта,
РегистрСведенийНастройкиПравОбъектов.Таблица,
РегистрСведенийНастройкиПравОбъектов.ПравоЗапрещено,
РегистрСведенийНастройкиПравОбъектов.НаследованиеРазрешено,
РегистрСведенийНастройкиПравОбъектов.ПорядокНастройки,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияПрава,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияПрава,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияЧтения,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияЧтения,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияИзменения,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияИзменения
ИЗ
РегистрСведений.НастройкиПравОбъектов КАК РегистрСведенийНастройкиПравОбъектов</queryText>
<mainTable>InformationRegister.НастройкиПравОбъектов</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
@@ -162,6 +162,60 @@
<textSize>Normal</textSize>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ОтборПоЯзыку</name>
<id>111</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>
<handlers>
<event>OnChange</event>
<name>ОтборПоЯзыкуПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ОтборПоЯзыкуРасширеннаяПодсказка</name>
<id>113</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОтборПоЯзыкуКонтекстноеМеню</name>
<id>112</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">
<handlers>
<event>Clearing</event>
<name>ОтборПоЯзыкуОчистка</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<clearButton>true</clearButton>
<listChoiceMode>true</listChoiceMode>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -183,7 +237,7 @@
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<group>AlwaysHorizontal</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
@@ -358,6 +412,10 @@
<items xsi:type="form:FormField">
<name>МакетыПечатныхФормДоступныеЯзыки</name>
<id>108</id>
<title>
<key>ru</key>
<value>Доп. языки</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -818,6 +876,115 @@
<autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/>
</items>
<items xsi:type="form:FormGroup">
<name>ГруппаДополнительнаяИнформация</name>
<id>114</id>
<items xsi:type="form:Decoration">
<name>КартинкаИнформации</name>
<id>116</id>
<title>
<key>ru</key>
<value>Картинка информации</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>КартинкаИнформацииРасширеннаяПодсказка</name>
<id>118</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КартинкаИнформацииКонтекстноеМеню</name>
<id>117</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.Информация</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>ДополнительнаяИнформация</name>
<id>119</id>
<title>
<key>ru</key>
<value>Список доступных языков печатных форм расширен &lt;link ПерейтиКЯзыкамПечатныхФорм>дополнительными языками&lt;/>.
Для вывода печатной формы на дополнительном языке требуется выполнить перевод ее макета на этот язык.
Для перевода макета необходимо перейти к его редактированию, переключить язык и внести необходимые изменения.</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<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>
<contextMenu>
<name>ДополнительнаяИнформацияКонтекстноеМеню</name>
<id>120</id>
<autoFill>true</autoFill>
</contextMenu>
<formatted>true</formatted>
<type>Label</type>
<autoMaxHeight>true</autoMaxHeight>
<horizontalStretch>true</horizontalStretch>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<handlers>
<event>URLProcessing</event>
<name>ДополнительнаяИнформацияОбработкаНавигационнойСсылки</name>
</handlers>
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Дополнительная информация</value>
</title>
<extendedTooltip>
<name>ГруппаДополнительнаяИнформацияРасширеннаяПодсказка</name>
<id>115</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>
<commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar>
<autoCommandBar>
@@ -1119,6 +1286,24 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<attributes>
<name>ОтборПоЯзыку</name>
<title>
<key>ru</key>
<value>Отбор по языку</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>ИспользоватьИзмененныйМакет</name>
<title>
@@ -31,10 +31,28 @@
Элементы.МакетыПечатныхФормГруппаПереключениеИспользуемогоМакета.Видимость = ЕстьПравоИзменения;
Элементы.МакетыПечатныхФормУдалитьИзмененныйМакет.Видимость = ЕстьПравоИзменения;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда
МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность");
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
ДополнительныеЯзыкиПечатныхФорм = МодульУправлениеПечатьюМультиязычность.ДополнительныеЯзыкиПечатныхФорм();
Элементы.ОтборПоЯзыку.СписокВыбора.Добавить("", НСтр("ru = 'Все'"));
Для Каждого Язык Из ДополнительныеЯзыкиПечатныхФорм Цикл
ПредставлениеЯзыка = МодульМультиязычностьСервер.ПредставлениеЯзыка(Язык);
Элементы.ОтборПоЯзыку.СписокВыбора.Добавить(ПредставлениеЯзыка);
КонецЦикла;
ЕстьДополнительныеЯзыки = ДополнительныеЯзыкиПечатныхФорм.Количество() > 0;
Элементы.ДополнительнаяИнформация.Видимость = ЕстьДополнительныеЯзыки;
Элементы.ОтборПоЯзыку.Видимость = ЕстьДополнительныеЯзыки;
Элементы.МакетыПечатныхФормДоступныеЯзыки.Видимость = ЕстьДополнительныеЯзыки;
КонецЕсли;
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
СпрашиватьРежимОткрытияМакета = Ложь;
РежимОткрытияМакетаПросмотр = Истина;
Элементы.ГруппаОтборы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяЕслиВозможно;
Иначе
@@ -62,7 +80,8 @@
Макет = Параметр.ТабличныйДокумент;
АдресМакетаВоВременномХранилище = ПоместитьВоВременноеХранилище(Макет);
ЗаписатьМакет(Параметр.ИмяОбъектаМетаданныхМакета, АдресМакетаВоВременномХранилище, Параметр.КодЯзыка);
Для Каждого Макет Из МакетыПечатныхФорм.НайтиСтроки(Новый Структура("ИмяОбъектаМетаданныхМакета", Параметр.ИмяОбъектаМетаданныхМакета)) Цикл
Отбор = Новый Структура("ИмяОбъектаМетаданныхМакета", Параметр.ИмяОбъектаМетаданныхМакета);
Для Каждого Макет Из МакетыПечатныхФорм.НайтиСтроки(Отбор) Цикл
Макет.ДоступныеЯзыки = ДоступныеЯзыкиМакета(Параметр.ИмяОбъектаМетаданныхМакета);
КонецЦикла;
КонецЕсли;
@@ -124,6 +143,20 @@
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДополнительнаяИнформацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если НавигационнаяСсылкаФорматированнойСтроки = "ПерейтиКЯзыкамПечатныхФорм" Тогда
СтандартнаяОбработка = Ложь;
ОткрытьФорму("Справочник.ЯзыкиПечатныхФорм.ФормаСписка");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыМакетыПечатныхФорм
&НаКлиенте
@@ -334,6 +367,10 @@
СтруктураОтбора.Вставить("Изменен", Истина);
КонецЕсли;
Если ЗначениеЗаполнено(ОтборПоЯзыку) Тогда
СтруктураОтбора.Вставить("ДоступныеЯзыки", ОтборПоЯзыку);
КонецЕсли;
Элементы.МакетыПечатныхФорм.ОтборСтрок = Новый ФиксированнаяСтруктура(СтруктураОтбора);
УстановитьДоступностьКнопокКоманднойПанели();
КонецПроцедуры
@@ -368,6 +405,20 @@
УстановитьОтборМакетов();
КонецПроцедуры
&НаКлиенте
Процедура ОтборПоЯзыкуПриИзменении(Элемент)
УстановитьОтборМакетов();
КонецПроцедуры
&НаКлиенте
Процедура ОтборПоЯзыкуОчистка(Элемент, СтандартнаяОбработка)
УстановитьОтборМакетов();
КонецПроцедуры
// Открытие макета
&НаКлиенте
@@ -1712,6 +1712,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right>
@@ -2195,93 +2282,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name>
<right>
@@ -2316,6 +2316,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right>
@@ -3102,45 +3141,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name>
<right>
@@ -14,7 +14,7 @@
УстановитьУсловноеОформление();
ОпределитьПоведениеВМобильномКлиенте();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, СвойстваЗаголовка");
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, СвойстваЗаголовка, КомпоновщикНастроек");
НастройкиОтчета.Вставить("КэшЗначенийОтборов", Параметры.КэшЗначенийОтборов);
ЗаголовокПоля = СвойстваЗаголовка.Текст;
@@ -23,9 +23,6 @@
ПредставлениеПоля = ЗаголовокПоля;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки);
УстановитьСвойстваФильтраПоУсловию(ЗаголовокПоля);
ЗаполнитьЗначения();
ОбновитьИндексыГруппИЭлементов();
@@ -503,7 +500,7 @@
Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка);
Если Фильтр <> Неопределено Тогда
Если ТипЗнч(Фильтр) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Фильтр, "Использование, ВидСравнения, ПравоеЗначение");
КонецЕсли;
@@ -555,6 +552,9 @@
Элементы[Действие].Доступность = СвойстваЗаголовка[Действие];
КонецЦикла;
Элементы.ПредставлениеПоля.Доступность = Элементы.ПереименоватьПоле.Доступность;
Элементы.ПереименоватьПолеЕще.Доступность = Элементы.ПереименоватьПоле.Доступность;
СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.0") >= 0 Тогда
@@ -586,8 +586,12 @@
Действия.Добавить("СортироватьПоВозрастанию");
Действия.Добавить("СортироватьПоУбыванию");
Действия.Добавить("СкрытьПоле");
Действия.Добавить("ПереименоватьПоле");
Действия.Добавить("ОформитьОтрицательные");
Действия.Добавить("ОформитьПоложительные");
Действия.Добавить("ОформитьЕще");
Возврат Действия;
@@ -615,8 +619,7 @@
Если ТипЗнч(СвойстваЗаголовка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ЗначениеЯчейки = ЗначениеЯчейки(СвойстваЗаголовка, ДанныеРасшифровки);
ЗаполнитьЗначенияСвойств(Значения.Добавить(), ЗначениеЯчейки);
ЗаполнитьЗначенияГруппировкиКолонки(ДанныеРасшифровки);
Возврат;
КонецЕсли;
@@ -651,7 +654,7 @@
Продолжить;
КонецЕсли;
ЗначениеЯчейки = ЗначениеЯчейки(Ячейка, ДанныеРасшифровки);
ЗначениеЯчейки = ВариантыОтчетовСлужебный.ЗначениеЯчейки(Ячейка, ДоступныеТипы, ДанныеРасшифровки);
Если Индексы[ЗначениеЯчейки.Значение] <> Неопределено
Или (КоличествоДоступныхТипов > 0
@@ -683,127 +686,96 @@
КонецПроцедуры
// Параметры:
// Ячейка - ОбластьЯчеекТабличногоДокумента
// ДанныеРасшифровки - ДанныеРасшифровкиКомпоновкиДанных
//
// Возвращаемое значение:
// Структура:
// * Представление - Строка
//
&НаСервере
Функция ЗначениеЯчейки(Ячейка, ДанныеРасшифровки)
ЗначениеЯчейки = СтандартноеЗначениеЯчейки(Ячейка.Текст);
Процедура ЗаполнитьЗначенияГруппировкиКолонки(ДанныеРасшифровки)
ДоступныеТипы = Значения.ТипЗначения;
КоличествоДоступныхТипов = ДоступныеТипы.Типы().Количество();
Индексы = Новый Соответствие;
Если ТипЗнч(Ячейка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
Для Каждого ЭлементРасшифровки Из ДанныеРасшифровки.Элементы Цикл
Если ТипЗнч(ЭлементРасшифровки) <> Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля")
Или ЭлементРасшифровки.ОсновноеДействие <> ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда
Продолжить;
КонецЕсли;
ЭлементРасшифровки = ДанныеРасшифровки.Элементы[Ячейка.Расшифровка];
Поля = ЭлементРасшифровки.ПолучитьПоля();
Если Поля.Количество() > 0 Тогда
Если Поля.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
Значение = Поля[0].Значение;
Если Не ЗначениеЗаполнено(Значение)
Или Индексы[Значение] <> Неопределено
Или Не ДоступныеТипы.СодержитТип(ТипЗнч(Значение)) Тогда
Значение = Поля[0].Значение;
Продолжить;
КонецЕсли;
Индексы.Вставить(Значение, Истина);
ДоступноеЗначение = ДоступныеЗначения.НайтиПоЗначению(Значение);
Если ДоступноеЗначение = Неопределено Тогда
Если КоличествоДоступныхТипов = 0 Тогда
ЗначениеЯчейки.Значение = Значение;
ИначеЕсли ЗначениеЗаполнено(Значение)
И Не ДоступныеТипы.СодержитТип(ТипЗнч(Значение)) Тогда
ЗначениеЯчейки.Значение = Null;
ИначеЕсли Значение = Null Тогда
ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Ячейка.Текст);
Иначе
ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Значение);
КонецЕсли;
Значения.Добавить(Значение,, Истина);
Если ЗначениеЯчейки.Значение = Неопределено Тогда
ЗначениеЯчейки.Значение = Null;
КонецЕсли;
Иначе
Возврат ЗначениеЯчейки;
ДоступноеЗначение.Пометка = Истина;
ЗаполнитьЗначенияСвойств(Значения.Добавить(), ДоступноеЗначение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ЭтоЧисло(Ячейка.Текст) Тогда
ОписаниеЧисла = Новый ОписаниеТипов("Число");
ЗначениеЯчейки.Значение = ОписаниеЧисла.ПривестиЗначение(Ячейка.Текст);
Возврат ЗначениеЯчейки;
КонецЕсли;
ДополнитьЗначенияИзКэша();
Возврат ЗначениеЯчейки;
Значения.СортироватьПоЗначению();
КонецФункции
// Параметры:
// Значение - Строка
//
// Возвращаемое значение:
// Структура:
// * Значение - Строка
// * Представление - Строка
// * Пометка - Булево
//
&НаСервере
Функция СтандартноеЗначениеЯчейки(Значение)
ЗначениеЯчейки = Новый Структура;
ЗначениеЯчейки.Вставить("Значение", Значение);
ЗначениеЯчейки.Вставить("Представление", Значение);
ЗначениеЯчейки.Вставить("Пометка", Истина);
Возврат ЗначениеЯчейки;
КонецФункции
&НаСервере
Функция ЭтоЧисло(Знач ПроверяемоеЗначение)
Если ПроверяемоеЗначение = "0" Тогда
Возврат Истина;
КонецЕсли;
ОписаниеЧисла = Новый ОписаниеТипов("Число");
Возврат ОписаниеЧисла.ПривестиЗначение(ПроверяемоеЗначение) <> 0;
КонецФункции
КонецПроцедуры
&НаСервере
Процедура ДополнитьЗначенияИзКэша()
Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка);
ЗначенияФильтра = ЗначениеФильтраИзКэша();
Если Фильтр = Неопределено Тогда
Если ТипЗнч(ЗначенияФильтра) <> Тип("СписокЗначений") Тогда
Возврат;
КонецЕсли;
Для Каждого Элемент Из ЗначенияФильтра Цикл
Если Значения.НайтиПоЗначению(Элемент.Значение) = Неопределено Тогда
ЗаполнитьЗначенияСвойств(Значения.Добавить(), Элемент,, "Пометка");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ЗначениеФильтраИзКэша()
Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка);
Если ТипЗнч(Фильтр) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда
Возврат Неопределено;
КонецЕсли;
КэшЗначенийОтборов = НастройкиОтчета.КэшЗначенийОтборов;
ЗначениеФильтра = Неопределено;
Если ЗначениеЗаполнено(Фильтр.ИдентификаторПользовательскойНастройки) Тогда
ЗначениеФильтра = КэшЗначенийОтборов[Фильтр.ИдентификаторПользовательскойНастройки];
КонецЕсли;
Если ЗначениеФильтра <> Неопределено Тогда
ЗначенияФильтра = ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра);
ОтчетыКлиентСервер.ДополнитьСписок(Значения, ЗначенияФильтра);
Возврат;
Возврат ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра);
КонецЕсли;
ФильтрОсновныхНастроек = Неопределено;
@@ -826,13 +798,12 @@
КонецЕсли;
Если ЗначениеФильтра <> Неопределено Тогда
ЗначенияФильтра = ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра);
ОтчетыКлиентСервер.ДополнитьСписок(Значения, ЗначенияФильтра);
Возврат ОтчетыКлиентСервер.ЗначенияСписком(ЗначениеФильтра);
КонецЕсли;
КонецПроцедуры
Возврат Неопределено;
КонецФункции
&НаСервере
Процедура ОбновитьИндексыГруппИЭлементов()
@@ -977,7 +948,7 @@
Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка);
Если Фильтр = Неопределено Тогда
Если ТипЗнч(Фильтр) <> Тип("ЭлементОтбораКомпоновкиДанных") Тогда
Фильтры = ВариантыОтчетовСлужебныйКлиентСервер.ФильтрыРазделаОтчета(
КомпоновщикНастроек.Настройки, СвойстваЗаголовка);
@@ -993,6 +964,8 @@
Фильтр.ВидСравнения = ВидСравнения;
Фильтр.ПравоеЗначение = ПравоеЗначение;
ОтчетыКлиент.КэшироватьЗначениеОтбора(КомпоновщикНастроек, Фильтр, Значения);
Возврат;
КонецЕсли;
@@ -136,7 +136,6 @@
</inputHint>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -547,7 +546,6 @@
</inputHint>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
@@ -1252,6 +1250,14 @@
<stringQualifiers/>
</valueType>
</parameters>
<parameters>
<name>ДанныеРасшифровки</name>
<valueType/>
</parameters>
<parameters>
<name>Ячейка</name>
<valueType/>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -13,13 +13,13 @@
ОпределитьПоведениеВМобильномКлиенте();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, КлючТекущегоВарианта");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки);
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, КомпоновщикНастроек, КлючТекущегоВарианта");
СвойстваЗаголовка = Параметры.СвойстваЗаголовка;
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Фильтровать по полю: %1'"), СвойстваЗаголовка.Текст);
ИнициализироватьДанныеФормы();
УстановитьУсловноеОформление();
@@ -237,7 +237,7 @@
ТипЗначенияФильтра = ОписаниеФильтра.ТипЗначения;
КонецЕсли;
УстановитьЛевоеЗначение(СвойстваЗаголовка.Поле, ОписаниеФильтра);
УстановитьЛевоеЗначение(СвойстваЗаголовка.Поле);
УстановитьДоступныеВидыСравнения(ОписаниеФильтра);
УстановитьПравоеЗначение(ОписаниеФильтра);
@@ -248,13 +248,7 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьЛевоеЗначение(Поле, ОписаниеФильтра)
Если ОписаниеФильтра = Неопределено Тогда
ПредставлениеЛевогоЗначения = Строка(Поле);
Иначе
ПредставлениеЛевогоЗначения = ОписаниеФильтра.Заголовок;
КонецЕсли;
Процедура УстановитьЛевоеЗначение(Поле)
Для НомерЭлемента = 1 По 2 Цикл
@@ -267,7 +261,7 @@
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"ПредставлениеЛевогоЗначения%1", НомерЭлемента);
ЭтотОбъект[ИмяЭлемента] = ПредставлениеЛевогоЗначения;
ЭтотОбъект[ИмяЭлемента] = СвойстваЗаголовка.Текст;
КонецЦикла;
@@ -329,11 +323,11 @@
КонецЦикла;
Если Параметры.Свойство("ПравоеЗначение")
И ЗначениеЗаполнено(Параметры.ПравоеЗначение) Тогда
ПравоеЗначение1 = Параметры.ПравоеЗначение;
КонецЕсли;
ДоступныеТипы = ?(ОписаниеФильтра = Неопределено, Новый ОписаниеТипов("Неопределено"), ОписаниеФильтра.ТипЗначения);
ДанныеРасшифровки = ПолучитьИзВременногоХранилища(Параметры.ДанныеРасшифровки);
ЗначениеЯчейки = ВариантыОтчетовСлужебный.ЗначениеЯчейки(Параметры.Ячейка, ДоступныеТипы, ДанныеРасшифровки);
ПравоеЗначение1 = ЗначениеЯчейки.Значение;
КонецПроцедуры
@@ -375,6 +369,10 @@
&НаСервере
Процедура УстановитьСвойстваФильтра(Фильтр, НомерЭлемента)
Если Не Фильтр.ИСпользование Тогда
Возврат;
КонецЕсли;
ЭтотОбъект[СтрШаблон("Использование%1", НомерЭлемента)] = Фильтр.Использование;
ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)] = Фильтр.ВидСравнения;
ЭтотОбъект[СтрШаблон("ПравоеЗначение%1", НомерЭлемента)] = Фильтр.ПравоеЗначение;
@@ -343,7 +343,7 @@
Если ТипЗнч(Автор) = Тип("СправочникСсылка.Пользователи") Тогда
Запрос.УстановитьПараметр("Автор", Автор);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
Иначе
Если ТипЗнч(Автор) = Тип("УникальныйИдентификатор") Тогда
ИдентификаторПользователя = Автор;
@@ -369,7 +369,7 @@
КонецЕсли;
Запрос.УстановитьПараметр("GUID", ИдентификаторПользователя);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор = &Автор", "");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор = &Автор", ""); // @query-part-1
КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить();
@@ -404,7 +404,7 @@
КонецЕсли;
Если КлючВарианта = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.КлючВарианта = &КлючВарианта", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.КлючВарианта = &КлючВарианта", ""); // @query-part-1
Иначе
Запрос.УстановитьПараметр("КлючВарианта", КлючВарианта);
КонецЕсли;
@@ -414,12 +414,12 @@
КонецЕсли;
Если Пользователь = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор = &Автор", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор = &Автор", ""); // @query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
ИначеЕсли ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") Тогда
Запрос.УстановитьПараметр("Автор", Пользователь);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", "");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
Иначе
Если ТипЗнч(Пользователь) = Тип("УникальныйИдентификатор") Тогда
@@ -19,7 +19,6 @@
<content>CommonModule.ОтправкаSMSЧерезSMSRU</content>
<content>CommonModule.ОтправкаSMSЧерезSMSЦЕНТР</content>
<content>CommonModule.ОтправкаSMSЧерезСМСУслуги</content>
<content>CommonModule.ОтправкаSMSЧерезGSMINFORM</content>
<content>CommonModule.ОтправкаSMSПовтИсп</content>
<content>CommonModule.ОтправкаSMSЧерезSMS4B</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>