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"> <items xsi:type="form:FormField">
<name>СписокНаименование</name> <name>СписокНаименование</name>
<id>17</id> <id>17</id>
<displayImportance>VeryHigh</displayImportance>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -232,6 +233,7 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<width>40</width>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
@@ -244,6 +246,7 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>СписокКод</name> <name>СписокКод</name>
<id>33</id> <id>33</id>
<displayImportance>VeryLow</displayImportance>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Код локализации</value> <value>Код локализации</value>
@@ -430,6 +433,11 @@
<enabled>true</enabled> <enabled>true</enabled>
<showTitle>auto</showTitle> <showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton> <showCloseButton>true</showCloseButton>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>КоманднаяПанель</value>
</value>
</mobileDeviceCommandBarContent>
<attributes> <attributes>
<name>Список</name> <name>Список</name>
<title> <title>
@@ -136,7 +136,8 @@
Результат = Новый Массив; Результат = Новый Массив;
Для Каждого ВыделеннаяСтрока Из Элементы.Список.ВыделенныеСтроки Цикл Для Каждого ВыделеннаяСтрока Из Элементы.Список.ВыделенныеСтроки Цикл
Результат.Добавить(Новый Структура("Код,Наименование", Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Код, Список.НайтиПоИдентификатору(ВыделеннаяСтрока).Наименование)); ВыбранныйЯзык = Список.НайтиПоИдентификатору(ВыделеннаяСтрока);
Результат.Добавить(Новый Структура("Код,Наименование", ВыбранныйЯзык.Код, ВыбранныйЯзык.Наименование));
КонецЦикла; КонецЦикла;
Возврат Результат; Возврат Результат;
@@ -1,5 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <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"> <items xsi:type="form:FormGroup">
<name>СписокКомпоновщикНастроекПользовательскиеНастройки</name> <name>СписокКомпоновщикНастроекПользовательскиеНастройки</name>
<id>1</id> <id>1</id>
@@ -298,119 +405,6 @@
<userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup> <userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
</extInfo> </extInfo>
</items> </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> <autoCommandBar>
<name>ФормаКоманднаяПанель</name> <name>ФормаКоманднаяПанель</name>
<id>-1</id> <id>-1</id>
@@ -437,11 +431,13 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.Создать</commandName> <commandName>Form.Command.Создать</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton> <defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.CreateListItem</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
@@ -520,36 +516,6 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations> <getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo> </extInfo>
</attributes> </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> <formCommands>
<name>Создать</name> <name>Создать</name>
<title> <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"?> <?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"> <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"> <items xsi:type="form:Button">
<name>КоманднаяПанель</name> <name>Перевести</name>
<id>9</id> <id>11</id>
<items xsi:type="form:Button"> <title>
<name>Перевести</name> <key>ru</key>
<id>11</id> <value>Перевести автоматически</value>
<title> </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>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<title>
<key>ru</key>
<value>Командная панель</value>
</title>
<extendedTooltip> <extendedTooltip>
<name>КоманднаяПанельРасширеннаяПодсказка</name> <name>ПеревестиРасширеннаяПодсказка</name>
<id>10</id> <id>12</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -56,15 +22,17 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualButton</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <commandName>Form.Command.Перевести</commandName>
<group>HorizontalIfPossible</group> <buttonImportance>Normal</buttonImportance>
<behavior>Auto</behavior> <representation>PictureAndText</representation>
<showLeftMargin>true</showLeftMargin> <autoMaxWidth>true</autoMaxWidth>
<united>true</united> <autoMaxHeight>true</autoMaxHeight>
<throughAlign>Auto</throughAlign> <placementArea>UserCmds</placementArea>
<currentRowUse>Auto</currentRowUse> <picture xsi:type="core:PictureRef">
</extInfo> <picture>CommonPicture.ЗаполнитьФорму</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаЯзыки</name> <name>ГруппаЯзыки</name>
@@ -123,11 +91,13 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.ОК</commandName> <commandName>Form.Command.ОК</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton> <defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.WriteAndClose</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button"> <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> <key>ru</key>
<value>Восстановление паролей</value> <value>Восстановление паролей</value>
</synonym> </synonym>
<help>
<pages>
<lang>ru</lang>
</pages>
</help>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
<useStandardCommands>true</useStandardCommands> <useStandardCommands>true</useStandardCommands>
@@ -133,13 +133,42 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.ЗаписатьИЗакрыть</commandName> <commandName>Form.Command.ЗаписатьИЗакрыть</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton> <defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.WriteAndClose</picture>
</picture>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </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"> <items xsi:type="form:FormGroup">
<name>СтандартныеКоманды</name> <name>СтандартныеКоманды</name>
<id>11</id> <id>11</id>
@@ -194,6 +223,10 @@
</items> </items>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</autoCommandBar> </autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>WriteAndClose</excludedCommands> <excludedCommands>WriteAndClose</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode> <windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings> <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>КоманднаяПанельЕще</value>
</value> </value>
</mobileDeviceCommandBarContent> </mobileDeviceCommandBarContent>
<mobileDeviceCommandBarContent>
<value xsi:type="core:StringValue">
<value>Язык</value>
</value>
</mobileDeviceCommandBarContent>
<attributes> <attributes>
<name>ОбъектыПечати</name> <name>ОбъектыПечати</name>
<id>14</id> <id>14</id>
@@ -94,6 +94,7 @@
Элементы.ФлажокПодписьИПечать.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто; Элементы.ФлажокПодписьИПечать.ПоложениеЗаголовка = ПоложениеЗаголовкаЭлементаФормы.Авто;
Элементы.НастройкаКоличестваКопий.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная; Элементы.НастройкаКоличестваКопий.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
Элементы.Переместить(Элементы.КомандыПоказателей, Элементы.КомандыПоказателей.Родитель, Элементы.Показатель); Элементы.Переместить(Элементы.КомандыПоказателей, Элементы.КомандыПоказателей.Родитель, Элементы.Показатель);
Элементы.ГруппаКоманднаяПанель.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
КонецЕсли; КонецЕсли;
Если УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования Тогда Если УправлениеПечатью.НастройкиПечати().СкрыватьПодписиИПечатиДляРедактирования Тогда
@@ -611,18 +611,16 @@
Процедура Подключаемый_ПриПереключенииЯзыка(КодЯзыка, ДополнительныеПараметры) Экспорт Процедура Подключаемый_ПриПереключенииЯзыка(КодЯзыка, ДополнительныеПараметры) Экспорт
ЗагрузитьТабличныйДокументИзМетаданных(КодЯзыка); ЗагрузитьТабличныйДокументИзМетаданных(КодЯзыка);
Если ТребуетсяПеревод Тогда Если ТребуетсяПеревод И ДоступенАвтоматическийПеревод Тогда
Если ДоступенАвтоматическийПеревод Тогда ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Макет еще не переведен на %1 язык.
НСтр("ru = 'Макет еще не переведен на %1 язык. |Выполнить автоматический перевод?'"), Элементы.Язык.Заголовок);
|Выполнить автоматический перевод?'"), Элементы.Язык.Заголовок); Кнопки = Новый СписокЗначений;
Кнопки = Новый СписокЗначений; Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'"));
Кнопки.Добавить(КодВозвратаДиалога.Да, НСтр("ru = 'Выполнить перевод'")); Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
Кнопки.Добавить(КодВозвратаДиалога.Нет, НСтр("ru = 'Не выполнять'"));
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект);
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОтветеНаВопросОПереводеМакета", ЭтотОбъект); ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -664,7 +662,8 @@
ТекстыДляПеревода.Добавить(Элемент.Ключ); ТекстыДляПеревода.Добавить(Элемент.Ключ);
КонецЦикла; КонецЦикла;
Переводы = МодульПереводТекстаНаДругиеЯзыки.ПеревестиТексты(ТекстыДляПеревода, ТекущийЯзык, ОбщегоНазначения.КодОсновногоЯзыка()); Переводы = МодульПереводТекстаНаДругиеЯзыки.ПеревестиТексты(
ТекстыДляПеревода, ТекущийЯзык, ОбщегоНазначения.КодОсновногоЯзыка());
Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл Для НомерСтроки = 1 По ТабличныйДокумент.ВысотаТаблицы Цикл
Для НомерКолонки = 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> <h3>Загрузка варианта отчета из файла</h3>
<div> <div>
<ul><li>Нажмите <b>Еще - Варианты отчета - Обновить из файла</b> для загрузки варианта отчета, сохраненного вместе с пользовательскими настройками в архивный файл на компьютере. Укажите путь к архиву с вариантом отчета.</li> <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> <h3><a name="#1">Настройки</a></h3>
<ul style="MARGIN-RIGHT: 0px" dir="ltr"><li>По кнопке <strong>Настройки</strong> можно перейти к <a href="CommonForm.ФормаНастроекОтчета/Help">настройке</a> параметров отчета. Часть настроек (отборы) иногда выведены в шапку отчета. <ul style="MARGIN-RIGHT: 0px" dir="ltr"><li>По кнопке <strong>Настройки</strong> можно перейти к <a href="CommonForm.ФормаНастроекОтчета/Help">настройке</a> параметров отчета. Часть настроек (отборы) иногда выведены в шапку отчета.
</li> </li>
@@ -63,22 +75,4 @@
</li> </li>
<li>С помощью кнопок <img src="StdPicture.CollapseAll"></img> <strong>Свернуть все группы</strong> или <img src="StdPicture.ExpandAll"></img> <strong>Развернуть все группы</strong> можно скрыть или показать группировку отчета. <li>С помощью кнопок <img src="StdPicture.CollapseAll"></img> <strong>Свернуть все группы</strong> или <img src="StdPicture.ExpandAll"></img> <strong>Развернуть все группы</strong> можно скрыть или показать группировку отчета.
</li> </li>
<li>Для сохранения результата отчета в файл нажмите <img src="StdPicture.Write"></img>, укажите наименование файла и путь для сохранения. <li>Для сохранения результата отчета в файл нажмите <img src="StdPicture.Write"></img>, укажите наименование файла и путь для сохранения.</li></ul></body></html>
</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>
@@ -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 Тогда Если HTTPОтвет.КодСостояния <> 200 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"),
+ HTTPОтвет.ПолучитьТелоКакСтроку(); HTTPЗапрос.АдресРесурса,
HTTPОтвет.КодСостояния) + Символы.ПС + HTTPОтвет.ПолучитьТелоКакСтроку();
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки); ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли; КонецЕсли;
@@ -109,7 +109,12 @@
// Обновляет превью табличного вопроса. // Обновляет превью табличного вопроса.
// //
// Параметры: // Параметры:
// Вопросы - ТаблицаЗначений // Вопросы - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.Вопросы
// Ответы - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.Ответы
// ТипТабличногоВопроса - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов.ТипТабличногоВопроса
// Форма - см. Справочник.ШаблоныАнкет.Форма.ФормаМастераТабличныхВопросов
// ИмяТаблицыПревью - Строка
// Ключ - Строка
// //
Процедура ОбновитьПревьюТабличныйВопрос(Вопросы,Ответы,ТипТабличногоВопроса,Форма,ИмяТаблицыПревью,Ключ) Экспорт Процедура ОбновитьПревьюТабличныйВопрос(Вопросы,Ответы,ТипТабличногоВопроса,Форма,ИмяТаблицыПревью,Ключ) Экспорт
@@ -481,7 +486,8 @@
// Выполняет построение формы, согласно раздела шаблона анкеты. // Выполняет построение формы, согласно раздела шаблона анкеты.
// //
// Параметры: // Параметры:
// Форма - ФормаКлиентскогоПриложения - форма для которой получается информация. // Форма - см. Документ.Анкета.Форма.ФормаДокумента
// - см. ОбщаяФорма.МастерАнкетыПоРазделам
// ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения, где: // ТекущиеДанныеДеревоРазделов - ДанныеФормыЭлементДерева - текущий раздел, для которого строится форма заполнения, где:
// * Ссылка - СправочникСсылка.ВопросыШаблонаАнкеты // * Ссылка - СправочникСсылка.ВопросыШаблонаАнкеты
// //
@@ -18,6 +18,8 @@
// * ИндексПолей - см. ИндексПолейСтруктурыОтчета // * ИндексПолей - см. ИндексПолейСтруктурыОтчета
// * ОсновныеПоля - Массив из см. ОсновныеПоляОтчета // * ОсновныеПоля - Массив из см. ОсновныеПоляОтчета
// * ИтоговыеНастройки - НастройкиКомпоновкиДанных - см. синтакс-помощник КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки(); // * ИтоговыеНастройки - НастройкиКомпоновкиДанных - см. синтакс-помощник КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки();
// * КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных
// * ВремяФормирования - Число
// //
Функция СвойстваРезультатаОтчета() Экспорт Функция СвойстваРезультатаОтчета() Экспорт
@@ -28,6 +30,7 @@
СвойстваРезультата.Вставить("ИндексПолей", Новый Соответствие); СвойстваРезультата.Вставить("ИндексПолей", Новый Соответствие);
СвойстваРезультата.Вставить("ОсновныеПоля", Новый Массив); СвойстваРезультата.Вставить("ОсновныеПоля", Новый Массив);
СвойстваРезультата.Вставить("ИтоговыеНастройки", Неопределено); СвойстваРезультата.Вставить("ИтоговыеНастройки", Неопределено);
СвойстваРезультата.Вставить("КомпоновщикНастроек", Неопределено);
СвойстваРезультата.Вставить("ВремяФормирования", 0); СвойстваРезультата.Вставить("ВремяФормирования", 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 = 'Снять фильтр'"));
КонтекстноеМеню.Добавить("Фильтровать", НСтр("ru = 'Фильтровать...'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных); КонтекстноеМеню.Добавить("Фильтровать", НСтр("ru = 'Фильтровать...'"),, БиблиотекаКартинок.ОтборКомпоновкиДанных);
@@ -2888,11 +2929,8 @@
// Оформить // Оформить
ПодменюОформления = Новый СписокЗначений; ПодменюОформления = Новый СписокЗначений;
ПодменюОформления.Добавить("ОформитьОтрицательные", НСтр("ru = 'Отрицательные красным'"));
ПодменюОформления.Добавить("ОформитьПоложительные", НСтр("ru = 'Положительные зеленым'"));
ПодменюОформления.Добавить("УстановитьВысотуСтроки", НСтр("ru = 'Высота строки...'"),, БиблиотекаКартинок.ВысотаСтроки); ПодменюОформления.Добавить("УстановитьВысотуСтроки", НСтр("ru = 'Высота строки...'"),, БиблиотекаКартинок.ВысотаСтроки);
ПодменюОформления.Добавить("УстановитьШиринуКолонки", НСтр("ru = 'Ширина колонки...'"),, БиблиотекаКартинок.ШиринаКолонки); ПодменюОформления.Добавить("УстановитьШиринуКолонки", НСтр("ru = 'Ширина колонки...'"),, БиблиотекаКартинок.ШиринаКолонки);
ПодменюОформления.Добавить("ОформитьЕще", НСтр("ru = 'Еще...'"));
КонтекстноеМеню.Добавить(ПодменюОформления, НСтр("ru = 'Оформить'"),, БиблиотекаКартинок.УсловноеОформлениеКомпоновкиДанных); КонтекстноеМеню.Добавить(ПодменюОформления, НСтр("ru = 'Оформить'"),, БиблиотекаКартинок.УсловноеОформлениеКомпоновкиДанных);
@@ -2926,6 +2964,7 @@
КонтекстноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение, НСтр("ru = 'Открыть'")); КонтекстноеМеню.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение, НСтр("ru = 'Открыть'"));
// Фильтровать // Фильтровать
УточнитьДоступныеВидыСравнения(ДоступныеВидыСравнения);
КонтекстноеМеню.Добавить(ДоступныеВидыСравнения, НСтр("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"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -483,8 +483,9 @@
Если РезультатВыполнения.Установленные.Количество() > 0 Тогда Если РезультатВыполнения.Установленные.Количество() > 0 Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ИмяОперации = "СтандартныеПодсистемы.ОбновлениеКонфигурации.Патчи.АвтоматическаяУстановкаПатча";
МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга"); МодульЦентрМониторинга = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторинга");
МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики("АвтоматическаяУстановкаПатча", РезультатВыполнения.Установленные.Количество()); МодульЦентрМониторинга.ЗаписатьОперациюБизнесСтатистики(ИмяОперации, РезультатВыполнения.Установленные.Количество());
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -133,6 +133,12 @@
ОбновлениеКонфигурации.ОбновитьИсправленияИзСкрипта(НовыеИсправления, УдаляемыеИсправления); ОбновлениеКонфигурации.ОбновитьИсправленияИзСкрипта(НовыеИсправления, УдаляемыеИсправления);
КонецПроцедуры КонецПроцедуры
Функция КаталогСкрипта() Экспорт
Возврат ОбновлениеКонфигурации.КаталогСкрипта();
КонецФункции
// АПК:299-выкл для использования из скрипта обновления. // АПК:299-выкл для использования из скрипта обновления.
// АПК:557-выкл для использования из скрипта обновления. // АПК: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 Цикл Для Индекс = 0 По ЧислоЭлементов - 1 Цикл
Элемент1 = Элемент.Оформление.Элементы[Индекс]; Элемент1 = Элемент.Оформление.Элементы[Индекс]; // ЗначениеПараметраНастроекКомпоновкиДанных
Элемент2 = ЭлементПоиска.Оформление.Элементы[Индекс]; Элемент2 = ЭлементПоиска.Оформление.Элементы[Индекс]; // ЗначениеПараметраНастроекКомпоновкиДанных
Если Элемент1.Использование И Элемент2.Использование Тогда Если Элемент1.Использование И Элемент2.Использование Тогда
Если Элемент1.Параметр <> Элемент2.Параметр ИЛИ Элемент1.Значение <> Элемент2.Значение Тогда Если Элемент1.Параметр <> Элемент2.Параметр ИЛИ Элемент1.Значение <> Элемент2.Значение Тогда
@@ -4404,7 +4404,7 @@
Если ЭтоАдресВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла) Тогда Если ЭтоАдресВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла) Тогда
ДвоичныеДанныеИлиПуть = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); ДвоичныеДанныеИлиПуть = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
Если Версия.Размер = 0 Тогда Если Версия.Размер = 0 Тогда
Версия.Размер = ДвоичныеДанныеИлиПуть.Размер(); Версия.Размер = ДвоичныеДанныеИлиПуть.Размер();
@@ -4643,7 +4643,7 @@
Версия.ТипХраненияФайла = ТипХраненияФайлов; Версия.ТипХраненияФайла = ТипХраненияФайлов;
Если ДвоичныеДанные = Неопределено Тогда Если ДвоичныеДанные = Неопределено Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
КонецЕсли; КонецЕсли;
Если Версия.Размер = 0 Тогда Если Версия.Размер = 0 Тогда
@@ -5974,7 +5974,7 @@
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
ФайлСДвоичнымиДанными = ПараметрыСинхронизации.Ответ.ПолучитьТелоКакДвоичныеДанные(); ФайлСДвоичнымиДанными = ПараметрыСинхронизации.Ответ.ПолучитьТелоКакДвоичныеДанные(); // ДвоичныеДанные
ИдентификаторEtag = ?(ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"] = Неопределено, "", ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"]); ИдентификаторEtag = ?(ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"] = Неопределено, "", ПараметрыСинхронизации.Ответ.Заголовки["ИдентификаторEtag"]);
ДатаМодификацииФайла = ?(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"] = Неопределено,ТекущаяУниверсальнаяДата(),ДатаRFC1123(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"])); ДатаМодификацииФайла = ?(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"] = Неопределено,ТекущаяУниверсальнаяДата(),ДатаRFC1123(ПараметрыСинхронизации.Ответ.Заголовки["Last-Modified"]));
@@ -746,7 +746,7 @@
Версия.ТипХраненияФайла = ТипХраненияФайлов; Версия.ТипХраненияФайла = ТипХраненияФайлов;
Если ДвоичныеДанные = Неопределено Тогда Если ДвоичныеДанные = Неопределено Тогда
ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); ДвоичныеДанные = ПолучитьИзВременногоХранилища(СведенияОФайле.АдресВременногоХранилищаФайла); // ДвоичныеДанные
КонецЕсли; КонецЕсли;
Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда Если ТипХраненияФайлов = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
@@ -754,7 +754,7 @@
ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные); ХранилищеФайла = Новый ХранилищеЗначения(ДвоичныеДанные);
Если Версия.Размер = 0 Тогда Если Версия.Размер = 0 Тогда
ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); ДвоичныеДанныеФайла = ХранилищеФайла.Получить(); // ДвоичныеДанные
Версия.Размер = ДвоичныеДанныеФайла.Размер(); Версия.Размер = ДвоичныеДанныеФайла.Размер();
РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия); РаботаСФайламиСлужебный.ПроверитьРазмерФайлаДляЗагрузки(Версия);
@@ -797,7 +797,7 @@
Если Версия.Размер = 0 Тогда Если Версия.Размер = 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 Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(Текущая, Минимальная) < 0 Тогда
Если ПараметрыКлиента.ЕстьДоступДляОбновленияВерсииПлатформы Тогда Если ПараметрыКлиента.ЕстьДоступДляОбновленияВерсииПлатформы Тогда
ТекстСообщения = ТекстСообщения =
@@ -32283,7 +32283,7 @@
| " + Контекст.ОпорныеПоля.ДляВыбора + " | " + Контекст.ОпорныеПоля.ДляВыбора + "
| ПОМЕСТИТЬ ТекущийСписок | ПОМЕСТИТЬ ТекущийСписок
|ИЗ |ИЗ
| &ЗначенияОпорныхПолей КАК ТекущийСписок"; // @query-part | &ЗначенияОпорныхПолей КАК ТекущийСписок"; // @query-part-1
Контекст.ЧастиЗапросаЗначенийИзОбъектов.Добавить(ТекстЗапроса); Контекст.ЧастиЗапросаЗначенийИзОбъектов.Добавить(ТекстЗапроса);
ИначеЕсли НомерШапки = 0 Тогда ИначеЕсли НомерШапки = 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 Использование ОБЪЕДИНИТЬ допустимо, так как // АПК:96-выкл - №434 Использование ОБЪЕДИНИТЬ допустимо, так как
// строки не должны повторятся и объем данных небольшой. // строки не должны повторятся и объем данных небольшой.
@@ -32718,7 +32719,7 @@
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| ТекущаяСсылка" + ПоляУпорядочения + " | ТекущаяСсылка" + ПоляУпорядочения + "
|ИТОГИ ПО |ИТОГИ ПО
| ТекущаяСсылка"; | ТекущаяСсылка"; // @query-part-1
// АПК:96-вкл. // АПК: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; ПорядковыйНомер = 1;
Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта Для Каждого ОбъектКонтактнойИнформации Из КонтактнаяИнформация Цикл
Если ОбъектКонтактнойИнформации.ПометкаУдаления И ПустаяСтрока(ОбъектКонтактнойИнформации.Значение) Тогда Если ОбъектКонтактнойИнформации.ПометкаУдаления И ПустаяСтрока(ОбъектКонтактнойИнформации.Значение) Тогда
Продолжить; Продолжить;
@@ -3468,7 +3468,7 @@
ОбъектКонтактнойИнформации.Строки.Сортировать("РеквизитДопУпорядочивания"); ОбъектКонтактнойИнформации.Строки.Сортировать("РеквизитДопУпорядочивания");
Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл // СтрокаТаблицыЗначений: см. КонтактнаяИнформацияОбъекта Для Каждого СтрокаКИ Из ОбъектКонтактнойИнформации.Строки Цикл
ТекущийВид = СтрокаКИ.Вид; ТекущийВид = СтрокаКИ.Вид;
Если ТекущийВид <> ПредыдущийВид Тогда Если ТекущийВид <> ПредыдущийВид Тогда
@@ -2506,6 +2506,9 @@
#Область СлужебныеПроцедурыИФункцииДляСовместимости #Область СлужебныеПроцедурыИФункцииДляСовместимости
// Возвращаемое значение:
// см. XDTOПакет.КонтактнаяИнформация
//
Функция КонтактнаяИнформацияИзXML(Знач Текст, Знач ОжидаемыйВид = Неопределено, РезультатПреобразования = Неопределено, Знач Представление = "") Экспорт Функция КонтактнаяИнформацияИзXML(Знач Текст, Знач ОжидаемыйВид = Неопределено, РезультатПреобразования = Неопределено, Знач Представление = "") Экспорт
ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид); ОжидаемыйТип = УправлениеКонтактнойИнформациейСлужебныйПовтИсп.ТипВидаКонтактнойИнформации(ОжидаемыйВид);
@@ -2541,7 +2544,7 @@
Попытка Попытка
Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); Результат = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML, ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); // см. XDTOПакет.КонтактнаяИнформация
Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес И КонтактнаяИнформацияXDTOПустая(Результат) Тогда Если ОжидаемыйТип = Перечисления.ТипыКонтактнойИнформации.Адрес И КонтактнаяИнформацияXDTOПустая(Результат) Тогда
НеобходимоВосстановитьКонтактнуюИнформацию = Истина; НеобходимоВосстановитьКонтактнуюИнформацию = Истина;
@@ -2624,7 +2627,7 @@
ЭтоНовый = Ложь; ЭтоНовый = Ложь;
КонецЕсли; КонецЕсли;
Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); Результат = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(ПространствоИмен, "КонтактнаяИнформация")); // см. XDTOПакет.КонтактнаяИнформация
// Разбор // Разбор
Если ОжидаемыйТип = ПеречислениеАдрес Тогда Если ОжидаемыйТип = ПеречислениеАдрес Тогда
@@ -2932,6 +2932,16 @@
// Подготовить структуру параметров вывода для менеджера объекта формирующего печатные формы. // Подготовить структуру параметров вывода для менеджера объекта формирующего печатные формы.
// //
// Возвращаемое значение:
// Структура:
// * ПараметрыОтправки - Структура:
// ** Получатель - Неопределено, Произвольный
// ** Тема - Строка
// ** Текст - Строка
// * КодЯзыка - Строка
// * ДоступнаПечатьПоКомплектно - Булево
// * ЗаголовокФормы - Строка
//
Функция ПодготовитьСтруктуруПараметровВывода() Экспорт Функция ПодготовитьСтруктуруПараметровВывода() Экспорт
ПараметрыВывода = Новый Структура; ПараметрыВывода = Новый Структура;
@@ -214,7 +214,10 @@
Форма.ТекущийЯзык = ТекущийЯзык; Форма.ТекущийЯзык = ТекущийЯзык;
ДоступныеЯзыки = ДоступныеЯзыки(ИспользоватьРегиональныеПредставленияЯзыков); ДоступныеЯзыки = ДоступныеЯзыки(ИспользоватьРегиональныеПредставленияЯзыков);
Элементы.Язык.Заголовок = ""; ЭтоМобильныйКлиент = ОбщегоНазначения.ЭтоМобильныйКлиент();
Если Не ЭтоМобильныйКлиент Тогда
Элементы.Язык.Заголовок = "";
КонецЕсли;
Для Каждого КодЛокализации Из ДоступныеЯзыки Цикл Для Каждого КодЛокализации Из ДоступныеЯзыки Цикл
КодЯзыка = СтрРазделить(КодЛокализации, "_", Истина)[0]; КодЯзыка = СтрРазделить(КодЛокализации, "_", Истина)[0];
@@ -235,6 +238,7 @@
КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
КнопкаФормы.ИмяКоманды = Команда.Имя; КнопкаФормы.ИмяКоманды = Команда.Имя;
КнопкаФормы.Заголовок = ПредставлениеЯзыка; КнопкаФормы.Заголовок = ПредставлениеЯзыка;
КнопкаФормы.ТолькоВоВсехДействиях= ЭтоМобильныйКлиент;
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -1795,6 +1795,7 @@
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ИмяЭлемента = ВидОбъектаМетаданных + "_" + ИмяОбъектаМетаданных; ИмяЭлемента = ВидОбъектаМетаданных + "_" + ИмяОбъектаМетаданных;
ОсновнойНабор = УправлениеСвойствами.НаборСвойствПоИмени(ИмяЭлемента); ОсновнойНабор = УправлениеСвойствами.НаборСвойствПоИмени(ИмяЭлемента);
Если ОсновнойНабор = Неопределено Тогда Если ОсновнойНабор = Неопределено Тогда
@@ -824,7 +824,7 @@
// Получим нужные сообщения // Получим нужные сообщения
Сообщения = Почта.Выбрать(Ложь, Сообщения = Почта.Выбрать(Ложь,
МассивИдентификаторовПорцииДляЗагрузки, МассивИдентификаторовПорцииДляЗагрузки,
?(ДанныеУчетнойЗаписи.ПротоколВходящейПочты = "IMAP",Ложь, Истина)); ?(ДанныеУчетнойЗаписи.ПротоколВходящейПочты = "IMAP",Ложь, Истина)); // Массив из ПочтовоеСообщение
КоличествоНеАктуальныхСообщений = КоличествоНеАктуальныхСообщений + (КоличествоВПорции - Сообщения.Количество()); КоличествоНеАктуальныхСообщений = КоличествоНеАктуальныхСообщений + (КоличествоВПорции - Сообщения.Количество());
@@ -82,7 +82,8 @@
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
Если Не ЗначениеЗаполнено(ПараметрыТокена.IAMТокен) Если Не ЗначениеЗаполнено(ПараметрыТокена.IAMТокен)
Или Не ЗначениеЗаполнено(ПараметрыТокена.СрокДействия) Или ПараметрыТокена.СрокДействия <= УниверсальноеВремя(ТекущаяДата()) Тогда // АПК:143 Или Не ЗначениеЗаполнено(ПараметрыТокена.СрокДействия)
Или ПараметрыТокена.СрокДействия <= УниверсальноеВремя(ТекущаяДата()) Тогда // АПК:143
ПараметрыТокена = НовыйIAMТокен(); ПараметрыТокена = НовыйIAMТокен();
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста"); Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("Константа.СервисПереводаТекста");
@@ -185,8 +186,9 @@
Если HTTPОтвет.КодСостояния <> 200 Тогда Если HTTPОтвет.КодСостояния <> 200 Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"), HTTPЗапрос.АдресРесурса, HTTPОтвет.КодСостояния) + Символы.ПС НСтр("ru = 'Запрос ""%1"" не выполнен. Код состояния: %2.'"),
+ HTTPОтвет.ПолучитьТелоКакСтроку(); HTTPЗапрос.АдресРесурса,
HTTPОтвет.КодСостояния) + Символы.ПС + HTTPОтвет.ПолучитьТелоКакСтроку();
ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки); ЗаписатьОшибкуВЖурналРегистрации(ТекстОшибки);
КонецЕсли; КонецЕсли;
@@ -245,7 +247,9 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
НастройкиАвторизации = НастройкиАвторизации(); НастройкиАвторизации = НастройкиАвторизации();
Возврат ЗначениеЗаполнено(НастройкиАвторизации.OAuthТокен) И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторКаталога);
Возврат ЗначениеЗаполнено(НастройкиАвторизации.OAuthТокен)
И ЗначениеЗаполнено(НастройкиАвторизации.ИдентификаторКаталога);
КонецФункции КонецФункции
+9 -10
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?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> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="6cd94230-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4f645f54-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6cd94258-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4f645f7c-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="6cd94262-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4f645f86-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="6cd94263-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="4f645f87-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="6cd9426c-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="4f645f88-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6cd9426d-3ec1-11eb-529c-0242ac110002"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4f645f90-455c-11eb-8589-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="1881089f-6b80-4ca3-b991-666e78673ec5"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="f48a1b3a-6f73-417d-b9f3-b34d06b14f1d"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <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> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -870,7 +870,6 @@
<commonModules>CommonModule.ОтправкаSMSКлиентПереопределяемый</commonModules> <commonModules>CommonModule.ОтправкаSMSКлиентПереопределяемый</commonModules>
<commonModules>CommonModule.ОтправкаSMSПереопределяемый</commonModules> <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ЧерезSMS4B</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезSMSRU</commonModules> <commonModules>CommonModule.ОтправкаSMSЧерезSMSRU</commonModules>
<commonModules>CommonModule.ОтправкаSMSЧерезSMSЦЕНТР</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> <id>1708</id>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Доступные языки печатных форм</value> <value>Настройка списка языков, на которых доступен вывод печатных форм.</value>
</title> </title>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -249,6 +249,120 @@
<toolTipRepresentation>ShowBottom</toolTipRepresentation> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </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> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -268,7 +382,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group> <group>Vertical</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -1177,6 +1291,9 @@
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборКонстант.ЗаголовокСистемы</segments> <segments>НаборКонстант.ЗаголовокСистемы</segments>
</notDefaultUseAlwaysAttributes> </notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборКонстант.СервисПереводаТекста</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main> <main>true</main>
</attributes> </attributes>
<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> </use>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>Активировать</name> <name>АктивироватьБота</name>
</handler> </handler>
</action> </action>
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
@@ -51,7 +51,7 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура Активировать(Команда) Процедура АктивироватьБота(Команда)
Если НЕ ПроверитьЗаполнение() Тогда Если НЕ ПроверитьЗаполнение() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -615,7 +615,7 @@
</use> </use>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>Активировать</name> <name>АктивироватьБота</name>
</handler> </handler>
</action> </action>
<currentRowUse>Auto</currentRowUse> <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].Действие; Действие = ВыбранныеДействия[0].Действие;
ПараметрДействия = ВыбранныеДействия[0].ПараметрДействия; ПараметрДействия = ВыбранныеДействия[0].ПараметрДействия;
КонецЕсли;
Если НЕ ПричинаНеудаления.ОсновнаяПричина Тогда
Действие = "Удалить";
КонецЕсли; КонецЕсли;
ПричинаНеудаления.Действие = Действие; ПричинаНеудаления.Действие = Действие;
Если Действие = "ЗаменитьСсылку" Тогда Если Действие = "ЗаменитьСсылку" Тогда
ПричинаНеудаления.ДействиеПредставление = ПредставлениеКомандыЗаменитьНа(ПричинаНеудаления, ПараметрДействия); ПричинаНеудаления.ДействиеПредставление = ПредставлениеКомандыЗаменитьНа(ПричинаНеудаления, ПараметрДействия);
Иначе Иначе
@@ -1166,9 +1200,6 @@
ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеСтроки); ЗаполнитьЗначенияСвойств(НоваяСтрока, ДанныеСтроки);
КонецЕсли; КонецЕсли;
Показываемые = Форма.СвязиНеудаленных.НайтиСтроки(Новый Структура("УдаляемыйСсылка", ДанныеСтроки.ОбнаруженныйСсылка)); Показываемые = Форма.СвязиНеудаленных.НайтиСтроки(Новый Структура("УдаляемыйСсылка", ДанныеСтроки.ОбнаруженныйСсылка));
УстановитьВыбранноеДействиеНадПричинойНеудаления(Форма,
НоваяСтрока,
?(Показываемые.Количество() <> 0, "Удалить", ""));
СодержатьсяТолькоОшибки = Истина; СодержатьсяТолькоОшибки = Истина;
Для Каждого СтрокаТаблицы Из Показываемые Цикл Для Каждого СтрокаТаблицы Из Показываемые Цикл
@@ -1186,6 +1217,11 @@
И (ПодчиненныеСтроки.Количество() = 0 И (ПодчиненныеСтроки.Количество() = 0
ИЛИ СодержатьсяТолькоОшибки ИЛИ СодержатьсяТолькоОшибки
ИЛИ Показываемые.Количество() = 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> </standardAttributes>
<quickChoice>true</quickChoice> <quickChoice>true</quickChoice>
<choiceMode>BothWays</choiceMode> <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"> <enumValues uuid="4a55351b-77e2-4c7c-a7d7-aac213d3c2a7">
<name>SMS4B</name> <name>SMS4B</name>
<synonym> <synonym>
@@ -210,13 +210,17 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>СписокПраво</name> <name>СписокПраво</name>
<id>8</id> <id>8</id>
<title>
<key>ru</key>
<value>Список право</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>Список.Право</segments> <segments>Список.ПравоОбъекта</segments>
</dataPath> </dataPath>
<defaultItem>true</defaultItem> <defaultItem>true</defaultItem>
<extendedTooltip> <extendedTooltip>
@@ -884,9 +888,26 @@
</edit> </edit>
<main>true</main> <main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo"> <extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
РегистрСведенийНастройкиПравОбъектов.Объект,
РегистрСведенийНастройкиПравОбъектов.Пользователь,
РегистрСведенийНастройкиПравОбъектов.Право КАК ПравоОбъекта,
РегистрСведенийНастройкиПравОбъектов.Таблица,
РегистрСведенийНастройкиПравОбъектов.ПравоЗапрещено,
РегистрСведенийНастройкиПравОбъектов.НаследованиеРазрешено,
РегистрСведенийНастройкиПравОбъектов.ПорядокНастройки,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияПрава,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияПрава,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияЧтения,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияЧтения,
РегистрСведенийНастройкиПравОбъектов.УровеньРазрешенияИзменения,
РегистрСведенийНастройкиПравОбъектов.УровеньЗапрещенияИзменения
ИЗ
РегистрСведений.НастройкиПравОбъектов КАК РегистрСведенийНастройкиПравОбъектов</queryText>
<mainTable>InformationRegister.НастройкиПравОбъектов</mainTable> <mainTable>InformationRegister.НастройкиПравОбъектов</mainTable>
<dynamicDataRead>true</dynamicDataRead> <dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields> <autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings> <autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations> <getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo> </extInfo>
@@ -162,6 +162,60 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </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> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -183,7 +237,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group> <group>AlwaysHorizontal</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -358,6 +412,10 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>МакетыПечатныхФормДоступныеЯзыки</name> <name>МакетыПечатныхФормДоступныеЯзыки</name>
<id>108</id> <id>108</id>
<title>
<key>ru</key>
<value>Доп. языки</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -818,6 +876,115 @@
<autoMaxCardHeight>true</autoMaxCardHeight> <autoMaxCardHeight>true</autoMaxCardHeight>
<rowFilter xsi:type="core:UndefinedValue"/> <rowFilter xsi:type="core:UndefinedValue"/>
</items> </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> <commandBarLocation>None</commandBarLocation>
<showCommandBar>false</showCommandBar> <showCommandBar>false</showCommandBar>
<autoCommandBar> <autoCommandBar>
@@ -1119,6 +1286,24 @@
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations> <getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo> </extInfo>
</attributes> </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> <formCommands>
<name>ИспользоватьИзмененныйМакет</name> <name>ИспользоватьИзмененныйМакет</name>
<title> <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> <value>true</value>
</right> </right>
</object> </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> <object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name> <name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right> <right>
@@ -2195,93 +2282,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name> <name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name>
<right> <right>
@@ -2316,6 +2316,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name> <name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right> <right>
@@ -3102,45 +3141,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </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> <object>
<name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name> <name>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</name>
<right> <right>
@@ -14,7 +14,7 @@
УстановитьУсловноеОформление(); УстановитьУсловноеОформление();
ОпределитьПоведениеВМобильномКлиенте(); ОпределитьПоведениеВМобильномКлиенте();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, СвойстваЗаголовка"); ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, СвойстваЗаголовка, КомпоновщикНастроек");
НастройкиОтчета.Вставить("КэшЗначенийОтборов", Параметры.КэшЗначенийОтборов); НастройкиОтчета.Вставить("КэшЗначенийОтборов", Параметры.КэшЗначенийОтборов);
ЗаголовокПоля = СвойстваЗаголовка.Текст; ЗаголовокПоля = СвойстваЗаголовка.Текст;
@@ -23,9 +23,6 @@
ПредставлениеПоля = ЗаголовокПоля; ПредставлениеПоля = ЗаголовокПоля;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки);
УстановитьСвойстваФильтраПоУсловию(ЗаголовокПоля); УстановитьСвойстваФильтраПоУсловию(ЗаголовокПоля);
ЗаполнитьЗначения(); ЗаполнитьЗначения();
ОбновитьИндексыГруппИЭлементов(); ОбновитьИндексыГруппИЭлементов();
@@ -503,7 +500,7 @@
Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка); Фильтр = Фильтр(КомпоновщикНастроек, СвойстваЗаголовка);
Если Фильтр <> Неопределено Тогда Если ТипЗнч(Фильтр) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Фильтр, "Использование, ВидСравнения, ПравоеЗначение"); ЗаполнитьЗначенияСвойств(ЭтотОбъект, Фильтр, "Использование, ВидСравнения, ПравоеЗначение");
КонецЕсли; КонецЕсли;
@@ -555,6 +552,9 @@
Элементы[Действие].Доступность = СвойстваЗаголовка[Действие]; Элементы[Действие].Доступность = СвойстваЗаголовка[Действие];
КонецЦикла; КонецЦикла;
Элементы.ПредставлениеПоля.Доступность = Элементы.ПереименоватьПоле.Доступность;
Элементы.ПереименоватьПолеЕще.Доступность = Элементы.ПереименоватьПоле.Доступность;
СистемнаяИнформация = Новый СистемнаяИнформация; СистемнаяИнформация = Новый СистемнаяИнформация;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.0") >= 0 Тогда Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(СистемнаяИнформация.ВерсияПриложения, "8.3.16.0") >= 0 Тогда
@@ -586,8 +586,12 @@
Действия.Добавить("СортироватьПоВозрастанию"); Действия.Добавить("СортироватьПоВозрастанию");
Действия.Добавить("СортироватьПоУбыванию"); Действия.Добавить("СортироватьПоУбыванию");
Действия.Добавить("СкрытьПоле");
Действия.Добавить("ПереименоватьПоле");
Действия.Добавить("ОформитьОтрицательные"); Действия.Добавить("ОформитьОтрицательные");
Действия.Добавить("ОформитьПоложительные"); Действия.Добавить("ОформитьПоложительные");
Действия.Добавить("ОформитьЕще");
Возврат Действия; Возврат Действия;
@@ -615,8 +619,7 @@
Если ТипЗнч(СвойстваЗаголовка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда Если ТипЗнч(СвойстваЗаголовка.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
ЗначениеЯчейки = ЗначениеЯчейки(СвойстваЗаголовка, ДанныеРасшифровки); ЗаполнитьЗначенияГруппировкиКолонки(ДанныеРасшифровки);
ЗаполнитьЗначенияСвойств(Значения.Добавить(), ЗначениеЯчейки);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -651,7 +654,7 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ЗначениеЯчейки = ЗначениеЯчейки(Ячейка, ДанныеРасшифровки); ЗначениеЯчейки = ВариантыОтчетовСлужебный.ЗначениеЯчейки(Ячейка, ДоступныеТипы, ДанныеРасшифровки);
Если Индексы[ЗначениеЯчейки.Значение] <> Неопределено Если Индексы[ЗначениеЯчейки.Значение] <> Неопределено
Или (КоличествоДоступныхТипов > 0 Или (КоличествоДоступныхТипов > 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> </inputHint>
</extInfo> </extInfo>
</items> </items>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -547,7 +546,6 @@
</inputHint> </inputHint>
</extInfo> </extInfo>
</items> </items>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -1252,6 +1250,14 @@
<stringQualifiers/> <stringQualifiers/>
</valueType> </valueType>
</parameters> </parameters>
<parameters>
<name>ДанныеРасшифровки</name>
<valueType/>
</parameters>
<parameters>
<name>Ячейка</name>
<valueType/>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -13,13 +13,13 @@
ОпределитьПоведениеВМобильномКлиенте(); ОпределитьПоведениеВМобильномКлиенте();
ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, КлючТекущегоВарианта"); ЗаполнитьЗначенияСвойств(ЭтотОбъект, Параметры, "НастройкиОтчета, КомпоновщикНастроек, КлючТекущегоВарианта");
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(НастройкиОтчета.АдресСхемы));
КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки);
СвойстваЗаголовка = Параметры.СвойстваЗаголовка; СвойстваЗаголовка = Параметры.СвойстваЗаголовка;
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Фильтровать по полю: %1'"), СвойстваЗаголовка.Текст);
ИнициализироватьДанныеФормы(); ИнициализироватьДанныеФормы();
УстановитьУсловноеОформление(); УстановитьУсловноеОформление();
@@ -237,7 +237,7 @@
ТипЗначенияФильтра = ОписаниеФильтра.ТипЗначения; ТипЗначенияФильтра = ОписаниеФильтра.ТипЗначения;
КонецЕсли; КонецЕсли;
УстановитьЛевоеЗначение(СвойстваЗаголовка.Поле, ОписаниеФильтра); УстановитьЛевоеЗначение(СвойстваЗаголовка.Поле);
УстановитьДоступныеВидыСравнения(ОписаниеФильтра); УстановитьДоступныеВидыСравнения(ОписаниеФильтра);
УстановитьПравоеЗначение(ОписаниеФильтра); УстановитьПравоеЗначение(ОписаниеФильтра);
@@ -248,13 +248,7 @@
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
Процедура УстановитьЛевоеЗначение(Поле, ОписаниеФильтра) Процедура УстановитьЛевоеЗначение(Поле)
Если ОписаниеФильтра = Неопределено Тогда
ПредставлениеЛевогоЗначения = Строка(Поле);
Иначе
ПредставлениеЛевогоЗначения = ОписаниеФильтра.Заголовок;
КонецЕсли;
Для НомерЭлемента = 1 По 2 Цикл Для НомерЭлемента = 1 По 2 Цикл
@@ -267,7 +261,7 @@
ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ИмяЭлемента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
"ПредставлениеЛевогоЗначения%1", НомерЭлемента); "ПредставлениеЛевогоЗначения%1", НомерЭлемента);
ЭтотОбъект[ИмяЭлемента] = ПредставлениеЛевогоЗначения; ЭтотОбъект[ИмяЭлемента] = СвойстваЗаголовка.Текст;
КонецЦикла; КонецЦикла;
@@ -329,11 +323,11 @@
КонецЦикла; КонецЦикла;
Если Параметры.Свойство("ПравоеЗначение") ДоступныеТипы = ?(ОписаниеФильтра = Неопределено, Новый ОписаниеТипов("Неопределено"), ОписаниеФильтра.ТипЗначения);
И ЗначениеЗаполнено(Параметры.ПравоеЗначение) Тогда ДанныеРасшифровки = ПолучитьИзВременногоХранилища(Параметры.ДанныеРасшифровки);
ПравоеЗначение1 = Параметры.ПравоеЗначение; ЗначениеЯчейки = ВариантыОтчетовСлужебный.ЗначениеЯчейки(Параметры.Ячейка, ДоступныеТипы, ДанныеРасшифровки);
КонецЕсли; ПравоеЗначение1 = ЗначениеЯчейки.Значение;
КонецПроцедуры КонецПроцедуры
@@ -375,6 +369,10 @@
&НаСервере &НаСервере
Процедура УстановитьСвойстваФильтра(Фильтр, НомерЭлемента) Процедура УстановитьСвойстваФильтра(Фильтр, НомерЭлемента)
Если Не Фильтр.ИСпользование Тогда
Возврат;
КонецЕсли;
ЭтотОбъект[СтрШаблон("Использование%1", НомерЭлемента)] = Фильтр.Использование; ЭтотОбъект[СтрШаблон("Использование%1", НомерЭлемента)] = Фильтр.Использование;
ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)] = Фильтр.ВидСравнения; ЭтотОбъект[СтрШаблон("ВидСравнения%1", НомерЭлемента)] = Фильтр.ВидСравнения;
ЭтотОбъект[СтрШаблон("ПравоеЗначение%1", НомерЭлемента)] = Фильтр.ПравоеЗначение; ЭтотОбъект[СтрШаблон("ПравоеЗначение%1", НомерЭлемента)] = Фильтр.ПравоеЗначение;
@@ -343,7 +343,7 @@
Если ТипЗнч(Автор) = Тип("СправочникСсылка.Пользователи") Тогда Если ТипЗнч(Автор) = Тип("СправочникСсылка.Пользователи") Тогда
Запрос.УстановитьПараметр("Автор", Автор); Запрос.УстановитьПараметр("Автор", Автор);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
Иначе Иначе
Если ТипЗнч(Автор) = Тип("УникальныйИдентификатор") Тогда Если ТипЗнч(Автор) = Тип("УникальныйИдентификатор") Тогда
ИдентификаторПользователя = Автор; ИдентификаторПользователя = Автор;
@@ -369,7 +369,7 @@
КонецЕсли; КонецЕсли;
Запрос.УстановитьПараметр("GUID", ИдентификаторПользователя); Запрос.УстановитьПараметр("GUID", ИдентификаторПользователя);
Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор = &Автор", ""); Запрос.Текст = СтрЗаменить(Запрос.Текст, "И Варианты.Автор = &Автор", ""); // @query-part-1
КонецЕсли; КонецЕсли;
Возврат Запрос.Выполнить().Выгрузить(); Возврат Запрос.Выполнить().Выгрузить();
@@ -404,7 +404,7 @@
КонецЕсли; КонецЕсли;
Если КлючВарианта = Неопределено Тогда Если КлючВарианта = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.КлючВарианта = &КлючВарианта", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.КлючВарианта = &КлючВарианта", ""); // @query-part-1
Иначе Иначе
Запрос.УстановитьПараметр("КлючВарианта", КлючВарианта); Запрос.УстановитьПараметр("КлючВарианта", КлючВарианта);
КонецЕсли; КонецЕсли;
@@ -414,12 +414,12 @@
КонецЕсли; КонецЕсли;
Если Пользователь = Неопределено Тогда Если Пользователь = Неопределено Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор = &Автор", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор = &Автор", ""); // @query-part-1
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
ИначеЕсли ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") Тогда ИначеЕсли ТипЗнч(Пользователь) = Тип("СправочникСсылка.Пользователи") Тогда
Запрос.УстановитьПараметр("Автор", Пользователь); Запрос.УстановитьПараметр("Автор", Пользователь);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "И Варианты.Автор.ИдентификаторПользователяИБ = &GUID", ""); // @query-part-1
Иначе Иначе
Если ТипЗнч(Пользователь) = Тип("УникальныйИдентификатор") Тогда Если ТипЗнч(Пользователь) = Тип("УникальныйИдентификатор") Тогда
@@ -19,7 +19,6 @@
<content>CommonModule.ОтправкаSMSЧерезSMSRU</content> <content>CommonModule.ОтправкаSMSЧерезSMSRU</content>
<content>CommonModule.ОтправкаSMSЧерезSMSЦЕНТР</content> <content>CommonModule.ОтправкаSMSЧерезSMSЦЕНТР</content>
<content>CommonModule.ОтправкаSMSЧерезСМСУслуги</content> <content>CommonModule.ОтправкаSMSЧерезСМСУслуги</content>
<content>CommonModule.ОтправкаSMSЧерезGSMINFORM</content>
<content>CommonModule.ОтправкаSMSПовтИсп</content> <content>CommonModule.ОтправкаSMSПовтИсп</content>
<content>CommonModule.ОтправкаSMSЧерезSMS4B</content> <content>CommonModule.ОтправкаSMSЧерезSMS4B</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem> <parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>