3_1_5_132
This commit is contained in:
1 parent
4161ee88c2
commit
fddd4cf787
182 files changed
+13530
-2290
No files matched your search
@@ -287,7 +287,7 @@
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| ЕСТЬNULL(НастройкиРазделенных.Подсистема, НастройкиОбщих.Подсистема) КАК Ссылка,
|
||||
| СУММА(1) КАК Количество,
|
||||
| КОЛИЧЕСТВО(1) КАК Количество,
|
||||
| ВЫБОР
|
||||
| КОГДА ЕСТЬNULL(НастройкиРазделенных.Важный, НастройкиОбщих.Важный) = ИСТИНА
|
||||
| ТОГДА &ПредставлениеВажный
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -192,6 +192,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоиск</name>
|
||||
<id>53</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискРасширеннаяПодсказка</name>
|
||||
<id>55</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискКонтекстноеМеню</name>
|
||||
<id>54</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоискУправление</name>
|
||||
<id>56</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>58</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>57</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -173,8 +173,6 @@
|
||||
|
||||
ТекущийОбъект.Пользователи.Очистить();
|
||||
|
||||
ГруппаДоступаАдминистраторы = ГруппаДоступаАдминистраторы;
|
||||
|
||||
Если ТекущийОбъект.Ссылка <> ГруппаДоступаАдминистраторы
|
||||
И ЗначениеЗаполнено(ТекущийОбъект.Пользователь) Тогда
|
||||
|
||||
|
||||
@@ -667,6 +667,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоиск</name>
|
||||
<id>135</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискРасширеннаяПодсказка</name>
|
||||
<id>137</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискКонтекстноеМеню</name>
|
||||
<id>136</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоискУправление</name>
|
||||
<id>138</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>140</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>139</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
+7
-2
@@ -124,7 +124,10 @@
|
||||
</dataPath>
|
||||
<skipOnInput>false</skipOnInput>
|
||||
<titleLocation>None</titleLocation>
|
||||
<excludedCommands>CancelSearch</excludedCommands>
|
||||
<excludedCommands>Change</excludedCommands>
|
||||
<excludedCommands>Find</excludedCommands>
|
||||
<excludedCommands>FindByCurrentValue</excludedCommands>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Представление</name>
|
||||
<id>4</id>
|
||||
@@ -1653,7 +1656,7 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.НаборыСвойств.StandardCommand.Find</commandName>
|
||||
<commandName>0</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -1679,7 +1682,7 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Item.НаборыСвойств.StandardCommand.CancelSearch</commandName>
|
||||
<commandName>0</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
@@ -1826,6 +1829,8 @@
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<excludedCommands>Change</excludedCommands>
|
||||
<excludedCommands>Find</excludedCommands>
|
||||
<excludedCommands>FindByCurrentValue</excludedCommands>
|
||||
<windowOpeningMode>DontBlock</windowOpeningMode>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoUrl>true</autoUrl>
|
||||
|
||||
@@ -192,6 +192,20 @@
|
||||
НоваяСтрокаРеквизиты = НовыйНаборОбъект.ДополнительныеРеквизиты.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрокаРеквизиты, СтрокаРеквизит);
|
||||
НоваяСтрокаРеквизиты.ИмяПредопределенногоНабора = НовыйНаборОбъект.ИмяПредопределенногоНабора;
|
||||
|
||||
// Обновление набора свойств в зависимостях дополнительного реквизита.
|
||||
Свойство = НоваяСтрокаРеквизиты.Свойство;
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Свойство);
|
||||
Блокировка.Заблокировать();
|
||||
СвойствоОбъект = Свойство.ПолучитьОбъект();
|
||||
Для Каждого Зависимость Из СвойствоОбъект.ЗависимостиДополнительныхРеквизитов Цикл
|
||||
Если Зависимость.НаборСвойств = ОбновляемыйНабор.Ссылка Тогда
|
||||
Зависимость.НаборСвойств = НовыйНабор;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СвойствоОбъект);
|
||||
КонецЦикла;
|
||||
Для Каждого СтрокаСведение Из ОбновляемыйНабор.ДополнительныеСведения Цикл
|
||||
НоваяСтрокаСведения = НовыйНаборОбъект.ДополнительныеСведения.Добавить();
|
||||
|
||||
@@ -699,6 +699,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пользователи поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>ПользователиПоиск</name>
|
||||
<id>319</id>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиПоискРасширеннаяПодсказка</name>
|
||||
<id>321</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПользователиПоискКонтекстноеМеню</name>
|
||||
<id>320</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>ПользователиСписок</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Пользователи поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>ПользователиПоискУправление</name>
|
||||
<id>322</id>
|
||||
<extendedTooltip>
|
||||
<name>ПользователиПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>324</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ПользователиПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>323</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>ПользователиСписок</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -797,7 +862,6 @@
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<titleLocation>None</titleLocation>
|
||||
<shortcut>Shift+F</shortcut>
|
||||
<extendedTooltip>
|
||||
<name>СтрокаПоискаРасширеннаяПодсказка</name>
|
||||
<id>224</id>
|
||||
@@ -842,7 +906,7 @@
|
||||
<textSize>Normal</textSize>
|
||||
<inputHint>
|
||||
<key>ru</key>
|
||||
<value>Поиск (Shift + F) </value>
|
||||
<value>Введите имя пользователя</value>
|
||||
</inputHint>
|
||||
</extInfo>
|
||||
</items>
|
||||
|
||||
@@ -105,27 +105,38 @@
|
||||
РасписаниеСтрокой = Строка(НайденноеРегламентноеЗадание.Расписание);
|
||||
Иначе
|
||||
|
||||
ОбъектПравила = КлючСтроки.ПолучитьОбъект();
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("Использование", Истина);
|
||||
Параметры.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ПроверкаВеденияУчета);
|
||||
Параметры.Вставить("Расписание", ОбщегоНазначенияКлиентСервер.СтруктураВРасписание(
|
||||
ОбъектПравила.РасписаниеВыполненияПроверки.Получить()));
|
||||
|
||||
ВосстановленноеЗадание = РегламентныеЗаданияСервер.ДобавитьЗадание(Параметры);
|
||||
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Строка(ВосстановленноеЗадание.УникальныйИдентификатор));
|
||||
ПараметрыЗадания.Вставить("Параметры", МассивПараметров);
|
||||
|
||||
РегламентныеЗаданияСервер.ИзменитьЗадание(ВосстановленноеЗадание.УникальныйИдентификатор, ПараметрыЗадания);
|
||||
|
||||
ОбъектПравила.ИдентификаторРегламентногоЗадания = Строка(ВосстановленноеЗадание.УникальныйИдентификатор);
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ОбъектПравила);
|
||||
|
||||
РасписаниеСтрокой = Строка(ВосстановленноеЗадание.Расписание);
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПравилаПроверкиУчета");
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", КлючСтроки);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
ОбъектПравила = КлючСтроки.ПолучитьОбъект();
|
||||
|
||||
Параметры = Новый Структура;
|
||||
Параметры.Вставить("Использование", Истина);
|
||||
Параметры.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ПроверкаВеденияУчета);
|
||||
Параметры.Вставить("Расписание", ОбщегоНазначенияКлиентСервер.СтруктураВРасписание(
|
||||
ОбъектПравила.РасписаниеВыполненияПроверки.Получить()));
|
||||
|
||||
ВосстановленноеЗадание = РегламентныеЗаданияСервер.ДобавитьЗадание(Параметры);
|
||||
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
МассивПараметров = Новый Массив;
|
||||
МассивПараметров.Добавить(Строка(ВосстановленноеЗадание.УникальныйИдентификатор));
|
||||
ПараметрыЗадания.Вставить("Параметры", МассивПараметров);
|
||||
|
||||
РегламентныеЗаданияСервер.ИзменитьЗадание(ВосстановленноеЗадание.УникальныйИдентификатор, ПараметрыЗадания);
|
||||
|
||||
ОбъектПравила.ИдентификаторРегламентногоЗадания = Строка(ВосстановленноеЗадание.УникальныйИдентификатор);
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ОбъектПравила);
|
||||
|
||||
РасписаниеСтрокой = Строка(ВосстановленноеЗадание.Расписание);
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонецЕсли;
|
||||
ДанныеСтроки.РегламентноеЗаданиеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
@@ -281,9 +292,13 @@
|
||||
&НаСервере
|
||||
Процедура ВосстановитьПоНачальномуЗаполнениюНаСервере()
|
||||
|
||||
КонтрольВеденияУчетаСлужебный.ОбновитьПараметрыПроверокУчета();
|
||||
Если КонтрольВеденияУчетаСлужебный.ЕстьИзмененияПараметровПроверокУчета() Тогда
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
КонтрольВеденияУчетаСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации();
|
||||
Иначе
|
||||
КонтрольВеденияУчетаСлужебный.ОбновитьПараметрыПроверокУчета();
|
||||
Если КонтрольВеденияУчетаСлужебный.ЕстьИзмененияПараметровПроверокУчета() Тогда
|
||||
КонтрольВеденияУчетаСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации();
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -452,6 +452,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоиск</name>
|
||||
<id>69</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискРасширеннаяПодсказка</name>
|
||||
<id>71</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискКонтекстноеМеню</name>
|
||||
<id>70</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоискУправление</name>
|
||||
<id>66</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>68</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>67</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -821,10 +821,11 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура:
|
||||
// * ОписанияПрофилей - Соответствие из КлючИЗначение:
|
||||
// * ОписанияПрофилей - ФиксированноеСоответствие из КлючИЗначение:
|
||||
// ** Ключ - Строка
|
||||
// ** Значение - см. СвойстваПоставляемогоПрофиля
|
||||
// * ОписанияПрофилейМассив - Массив из см. СвойстваПоставляемогоПрофиля
|
||||
// * ОписанияПрофилейМассив - ФиксированныйМассив из см. СвойстваПоставляемогоПрофиля
|
||||
// * ПапкиПоРодителям - ФиксированноеСоответствие
|
||||
// * ПараметрыОбновления - ФиксированнаяСтруктура:
|
||||
// ** ОбновлятьИзмененныеПрофили - Булево
|
||||
// ** ЗапретитьИзменениеПрофилей - Булево
|
||||
@@ -892,6 +893,75 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// ИзменениеЯзыков - см. МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков
|
||||
//
|
||||
Процедура ПриИзмененииЯзыкаИнформационнойБазы(ИзменениеЯзыков) Экспорт
|
||||
|
||||
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей;
|
||||
|
||||
НовыеНаименованияПрофилей = Новый ТаблицаЗначений;
|
||||
НовыеНаименованияПрофилей.Колонки.Добавить("ИдентификаторПоставляемыхДанных",
|
||||
Новый ОписаниеТипов("УникальныйИдентификатор"));
|
||||
НовыеНаименованияПрофилей.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка",,,,
|
||||
Новый КвалификаторыСтроки(Метаданные.Справочники.ПрофилиГруппДоступа.ДлинаНаименования)));
|
||||
|
||||
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
|
||||
Наименование = ?(ОписаниеПрофиля.Свойство("Наименование"), ОписаниеПрофиля.Наименование, "");
|
||||
Если Не ЗначениеЗаполнено(Наименование)
|
||||
Или Не СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(ОписаниеПрофиля.Идентификатор) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
НоваяСтрока = НовыеНаименованияПрофилей.Добавить();
|
||||
НоваяСтрока.ИдентификаторПоставляемыхДанных =
|
||||
Новый УникальныйИдентификатор(ОписаниеПрофиля.Идентификатор);
|
||||
НоваяСтрока.Наименование = Наименование;
|
||||
КонецЦикла;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.УстановитьПараметр("НовыеНаименованияПрофилей", НовыеНаименованияПрофилей);
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| НовыеНаименованияПрофилей.ИдентификаторПоставляемыхДанных КАК ИдентификаторПоставляемыхДанных,
|
||||
| НовыеНаименованияПрофилей.Наименование КАК Наименование
|
||||
|ПОМЕСТИТЬ НовыеНаименованияПрофилей
|
||||
|ИЗ
|
||||
| &НовыеНаименованияПрофилей КАК НовыеНаименованияПрофилей
|
||||
|;
|
||||
|
|
||||
|////////////////////////////////////////////////////////////////////////////////
|
||||
|ВЫБРАТЬ
|
||||
| Профили.Ссылка КАК Ссылка,
|
||||
| НовыеНаименованияПрофилей.Наименование КАК Наименование
|
||||
|ИЗ
|
||||
| Справочник.ПрофилиГруппДоступа КАК Профили
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НовыеНаименованияПрофилей КАК НовыеНаименованияПрофилей
|
||||
| ПО Профили.ИдентификаторПоставляемыхДанных = НовыеНаименованияПрофилей.ИдентификаторПоставляемыхДанных
|
||||
| И Профили.Наименование <> НовыеНаименованияПрофилей.Наименование";
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ЭлементБлокировки.УстановитьЗначение("Ссылка", Выборка.Ссылка);
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
Блокировка.Заблокировать();
|
||||
ТекущийОбъект = Выборка.Ссылка.ПолучитьОбъект(); // СправочникОбъект.ПрофилиГруппДоступа
|
||||
Если ТекущийОбъект.Наименование <> Выборка.Наименование Тогда
|
||||
ТекущийОбъект.Наименование = Выборка.Наименование;
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ТекущийОбъект);
|
||||
КонецЕсли;
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
ОтменитьТранзакцию();
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции для поддержки обмена данными в РИБ.
|
||||
|
||||
@@ -1200,7 +1270,7 @@
|
||||
|
||||
ЗаполненныеПоставляемыеПрофили = ЗаполненныеПоставляемыеПрофили();
|
||||
ПараметрыОбновления = ЗаполненныеПоставляемыеПрофили.ПараметрыОбновления;
|
||||
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили.ОписанияПрофилей; // Массив из см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа -
|
||||
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили.ОписанияПрофилей; // Массив из см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
|
||||
|
||||
ЗаголовокОшибки =
|
||||
НСтр("ru = 'Заданы недопустимые значения в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа
|
||||
@@ -1640,8 +1710,8 @@
|
||||
|
||||
// Возвращает свойства профиля, указанные в переопределяемом модуле,
|
||||
// преобразованные в фиксированный формат сохранения в базе данных.
|
||||
// Подробное описание свойств смотри УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
|
||||
// и УправлениеДоступом.НовоеОписаниеПапкиПрофилейГруппДоступа
|
||||
// Подробное описание свойств смотри в функциях НовоеОписаниеПрофиляГруппДоступа
|
||||
// и НовоеОписаниеПапкиПрофилейГруппДоступа общего модуля УправлениеДоступом.
|
||||
//
|
||||
// Параметры:
|
||||
// Идентификатор - Строка - имя или идентификатор поставляемого профиля.
|
||||
@@ -1657,7 +1727,7 @@
|
||||
// * ВидыДоступа - ФиксированноеСоответствие из КлючИЗначение:
|
||||
// * Ключ - Строка
|
||||
// * Значение - Строка
|
||||
// * ЗначенияДоступа - ФиксированныйМассив из Структура:
|
||||
// * ЗначенияДоступа - ФиксированныйМассив из ФиксированнаяСтруктура:
|
||||
// * ВидДоступа - Строка
|
||||
// * ЗначениеДоступа - Строка
|
||||
//
|
||||
|
||||
@@ -1085,6 +1085,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоиск</name>
|
||||
<id>171</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискРасширеннаяПодсказка</name>
|
||||
<id>173</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискКонтекстноеМеню</name>
|
||||
<id>172</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоискУправление</name>
|
||||
<id>168</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>170</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>169</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
+22
-12
@@ -821,23 +821,33 @@
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачномСервисе(РезультатПоиска, Контекст) Экспорт
|
||||
|
||||
ТекущиеДанные = Элементы.Сертификаты.ТекущиеДанные;
|
||||
|
||||
Если ЕстьОблачнаяПодпись Тогда
|
||||
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
|
||||
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
|
||||
|
||||
ОбработкаСледующая = Новый ОписаниеОповещения("ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи", ЭтотОбъект, Контекст);
|
||||
СтруктураПоиска = Новый Структура;
|
||||
СтруктураПоиска.Вставить("Отпечаток", МодульСервисКриптографииDSSКлиентСервер.ТрансформироватьОтпечаток(ТекущиеДанные.Отпечаток));
|
||||
МодульСервисКриптографииDSSКлиент.НайтиСертификат(ОбработкаСледующая, СтруктураПоиска);
|
||||
Иначе
|
||||
ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи(РезультатПоиска, Контекст);
|
||||
Если Не РезультатПоиска.Выполнено Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = РезультатПоиска.ОписаниеОшибки.Описание;
|
||||
Контекст.Результат.ОбновитьСписокСертификатов = Истина;
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(РезультатПоиска.Сертификат) Тогда
|
||||
Контекст.Результат.ОписаниеОшибки = НСтр("ru = 'Сертификат отсутствует в облачном сервисе (возможно удален).'");
|
||||
Контекст.Результат.ОбновитьСписокСертификатов = Истина;
|
||||
ВыполнитьОбработкуОповещения(Контекст.Оповещение, Контекст.Результат);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Контекст.Вставить("СертификатКриптографии", РезультатПоиска.Сертификат);
|
||||
ПерейтиКВыборуТекущегоСертификатаПослеВыгрузкиСертификата(РезультатПоиска.Сертификат.Сертификат, Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Продолжение процедуры ПерейтиКВыборуТекущегоСертификата.
|
||||
//
|
||||
// Параметры:
|
||||
// РезультатПоиска - Структура:
|
||||
// * Выполнено - Булево
|
||||
// * Ошибка - Строка
|
||||
// Контекст - Структура
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ПерейтиКВыборуТекущегоСертификатаПослеПоискаСертификатаВОблачнойПодписи(РезультатПоиска, Контекст) Экспорт
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -50,7 +50,8 @@
|
||||
ДанныеСсылки = Справочники.УчетныеЗаписиDSS.ПолучитьДанныеСсылки(Ссылка);
|
||||
|
||||
Если ДанныеСсылки.Владелец <> Владелец
|
||||
ИЛИ ДанныеСсылки.Логин <> Логин Тогда
|
||||
ИЛИ ДанныеСсылки.Логин <> Логин
|
||||
ИЛИ ПометкаУдаления Тогда
|
||||
СервисКриптографииDSSСлужебный.ОчиститьСписокСертификатов(Ссылка);
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -1484,6 +1484,19 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СформироватьИОтправить</name>
|
||||
<id>22</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>СформироватьИОтправить</name>
|
||||
<title>
|
||||
|
||||
@@ -179,9 +179,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОтправки = КонструкторПараметровОтправки(ТекущиеДанные.Ссылка);
|
||||
ПараметрыОтправки.ДополнительныеПараметры.ОтправитьСразу = Истина;
|
||||
СформироватьИОтправить = Истина;
|
||||
Если ТекущиеДанные.ЕстьПроизвольныеПараметры Тогда
|
||||
ВводПараметров(ТекущиеДанные.Ссылка, ПараметрыОтправки, Истина);
|
||||
ВводПараметров(ТекущиеДанные.Ссылка, ПараметрыОтправки);
|
||||
Иначе
|
||||
ОтравитьСообщение(ПараметрыОтправки);
|
||||
КонецЕсли;
|
||||
@@ -194,7 +194,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ВводПараметров(Шаблон, ПараметрыОтправки, ОтправлятьСразу)
|
||||
Процедура ВводПараметров(Шаблон, ПараметрыОтправки)
|
||||
|
||||
ПараметрыДляЗаполнения = Новый Структура("Шаблон, Предмет", Шаблон, Предмет);
|
||||
|
||||
@@ -224,7 +224,7 @@
|
||||
ПараметрыОтправки.ДополнительныеПараметры.ПреобразовыватьHTMLДляФорматированногоДокумента = Истина;
|
||||
|
||||
Если ТекущиеДанные.ЕстьПроизвольныеПараметры Тогда
|
||||
ВводПараметров(ТекущиеДанные.Ссылка, ПараметрыОтправки, Ложь);
|
||||
ВводПараметров(ТекущиеДанные.Ссылка, ПараметрыОтправки);
|
||||
Иначе
|
||||
СформироватьСообщениеДляОтправки(ПараметрыОтправки);
|
||||
КонецЕсли;
|
||||
@@ -252,7 +252,7 @@
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(Результат, ПараметрыСообщения, Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыОтправки.ДополнительныеПараметры.ОтправитьСразу Тогда
|
||||
Если СформироватьИОтправить Тогда
|
||||
ПослеФормированияИОтправкиСообщения(Результат, ПараметрыОтправки);
|
||||
Иначе
|
||||
Если ПодготовитьШаблон Тогда
|
||||
@@ -276,14 +276,16 @@
|
||||
ПараметрыОтправки.ДополнительныеПараметры.Вставить("РасширенныйСписокПолучателей", МодульВзаимодействия.ИспользуетсяПрочиеВзаимодействия());
|
||||
КонецЕсли;
|
||||
|
||||
ШаблоныСообщенийСлужебный.СформироватьСообщениеВФоне(ПараметрыВызоваСервера, АдресВременногоХранилища);
|
||||
ШаблоныСообщенийСлужебный.СформироватьСообщениеВФоне(ПараметрыВызоваСервера, АдресВременногоХранилища, СформироватьИОтправить);
|
||||
|
||||
Возврат АдресВременногоХранилища;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// Результат - КодВозвратаДиалога
|
||||
// Результат - Соответствие - если данные введены пользователем:
|
||||
// - КодВозвратаДиалога - если отмена ввода данных
|
||||
// - Неопределено - если окно было закрыто
|
||||
// ПараметрыОтправки - см. ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки
|
||||
//
|
||||
&НаКлиенте
|
||||
@@ -320,10 +322,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
// Параметры:
|
||||
// Результат - см. ШаблоныСообщенийСлужебный.РезультатОтправкиПисьма
|
||||
// ПараметрыОтправки - Структура
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ПослеФормированияИОтправкиСообщения(Результат, ПараметрыОтправки)
|
||||
|
||||
Если Результат.Отправлено Тогда;
|
||||
Если ПустаяСтрока(Результат.ОписаниеОшибки)Тогда;
|
||||
Закрыть();
|
||||
Иначе
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеВопросаОбОткрытиеФормыСообщения", ЭтотОбъект, ПараметрыОтправки);
|
||||
@@ -417,11 +424,13 @@
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ПослеВопросаОбОткрытиеФормыСообщения(Результат, ПараметрыОтправки) Экспорт
|
||||
|
||||
Если Результат = КодВозвратаДиалога.Да Тогда
|
||||
ПараметрыОтправки.ДополнительныеПараметры.ОтправитьСразу = Ложь;
|
||||
СформироватьИОтправить = Ложь;
|
||||
ПараметрыОтправки.ДополнительныеПараметры.ПреобразовыватьHTMLДляФорматированногоДокумента = Истина;
|
||||
СформироватьСообщениеДляОтправки(ПараметрыОтправки);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -320,6 +320,71 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоиск</name>
|
||||
<id>64</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискРасширеннаяПодсказка</name>
|
||||
<id>66</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискКонтекстноеМеню</name>
|
||||
<id>65</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Список поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СписокПоискУправление</name>
|
||||
<id>67</id>
|
||||
<extendedTooltip>
|
||||
<name>СписокПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>69</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СписокПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>68</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Список</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -361,21 +426,108 @@
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<titleLocation>None</titleLocation>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЕстьФайлы</name>
|
||||
<id>59</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаНаименованиеИФайлы</name>
|
||||
<id>62</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЕстьФайлы</name>
|
||||
<id>59</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.ЕстьФайлы</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<extendedTooltip>
|
||||
<name>ЕстьФайлыРасширеннаяПодсказка</name>
|
||||
<id>61</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЕстьФайлыКонтекстноеМеню</name>
|
||||
<id>60</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerPicture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Скрепка</picture>
|
||||
</headerPicture>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<valuesPicture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.КоллекцияСкрепка</picture>
|
||||
</valuesPicture>
|
||||
<border xsi:type="core:BorderDef">
|
||||
<style>Single</style>
|
||||
<width>1</width>
|
||||
</border>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Наименование</name>
|
||||
<id>16</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.Description</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>НаименованиеРасширеннаяПодсказка</name>
|
||||
<id>18</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НаименованиеКонтекстноеМеню</name>
|
||||
<id>17</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>LabelField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.ЕстьФайлы</segments>
|
||||
</dataPath>
|
||||
<titleLocation>None</titleLocation>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Наименование и файлы</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ЕстьФайлыРасширеннаяПодсказка</name>
|
||||
<id>61</id>
|
||||
<name>ГруппаНаименованиеИФайлыРасширеннаяПодсказка</name>
|
||||
<id>63</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -383,69 +535,10 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЕстьФайлыКонтекстноеМеню</name>
|
||||
<id>60</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>PictureField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerPicture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.Скрепка</picture>
|
||||
</headerPicture>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:ImageFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<valuesPicture xsi:type="core:PictureRef">
|
||||
<picture>CommonPicture.КоллекцияСкрепка</picture>
|
||||
</valuesPicture>
|
||||
<border xsi:type="core:BorderDef">
|
||||
<style>Single</style>
|
||||
<width>1</width>
|
||||
</border>
|
||||
<fileDragMode>AsFileRef</fileDragMode>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Наименование</name>
|
||||
<id>16</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Список.Description</segments>
|
||||
</dataPath>
|
||||
<defaultItem>true</defaultItem>
|
||||
<extendedTooltip>
|
||||
<name>НаименованиеРасширеннаяПодсказка</name>
|
||||
<id>18</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>НаименованиеКонтекстноеМеню</name>
|
||||
<id>17</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>LabelField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<type>ColumnGroup</type>
|
||||
<extInfo xsi:type="form:ColumnGroupExtInfo">
|
||||
<showTitle>auto</showTitle>
|
||||
<showInCard>true</showInCard>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
@@ -707,9 +800,6 @@
|
||||
<horizontalStretch>true</horizontalStretch>
|
||||
<verticalStretch>true</verticalStretch>
|
||||
<enableStartDrag>true</enableStartDrag>
|
||||
<rowPictureDataPath xsi:type="form:DataPath">
|
||||
<segments>Список.DefaultPicture</segments>
|
||||
</rowPictureDataPath>
|
||||
<autoMaxCardHeight>true</autoMaxCardHeight>
|
||||
<extInfo xsi:type="form:DynamicListTableExtInfo">
|
||||
<handlers>
|
||||
|
||||
@@ -52,6 +52,10 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
|
||||
Элементы.ГруппаНаименованиеИФайлы.Группировка = ГруппировкаКолонок.ВЯчейке;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
|
||||
|
||||
Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
Возврат ОбщегоНазначения.ОбщийМодуль("РаботаСФайлами").РеквизитыРедактируемыеВГрупповойОбработке();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -440,6 +440,58 @@
|
||||
</picture>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>СтандартныеКомандыФормы</name>
|
||||
<id>48</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Стандартные команды формы</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>СтандартныеКомандыФормыРасширеннаяПодсказка</name>
|
||||
<id>49</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo">
|
||||
<commandSource>Form</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ФормаСправка</name>
|
||||
<id>50</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ФормаСправкаРасширеннаяПодсказка</name>
|
||||
<id>51</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.StandardCommand.Help</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
|
||||
@@ -22,6 +22,13 @@
|
||||
Элементы.ФормаСоздать.Отображение = ОтображениеКнопки.Картинка;
|
||||
КонецЕсли;
|
||||
|
||||
Поля = Новый Массив;
|
||||
Поля.Добавить("Наименование");
|
||||
|
||||
Список.УстановитьОграниченияИспользованияВГруппировке(Поля);
|
||||
Список.УстановитьОграниченияИспользованияВПорядке(Поля);
|
||||
Список.УстановитьОграниченияИспользованияВОтборе(Поля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+28
-4
@@ -807,6 +807,16 @@
|
||||
|
||||
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
|
||||
|
||||
// Получение наборов свойств с префиксом Удалить.
|
||||
НаборыСвойств = Новый Массив;
|
||||
ИменаПредопределенныхНаборов = Метаданные.Справочники.НаборыДополнительныхРеквизитовИСведений.ПолучитьИменаПредопределенных();
|
||||
Для Каждого ИмяПредопределенногоНабора Из ИменаПредопределенныхНаборов Цикл
|
||||
Если СтрНачинаетсяС(ИмяПредопределенногоНабора, "Удалить") Тогда
|
||||
НаборыСвойств.Добавить(Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяПредопределенногоНабора]);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
НаборыСвойств.Добавить(Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка());
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
@@ -825,7 +835,7 @@
|
||||
|ИЗ
|
||||
| ПланВидовХарактеристик.ДополнительныеРеквизитыИСведения.ЗависимостиДополнительныхРеквизитов КАК ЗависимостиДополнительныхРеквизитов
|
||||
|ГДЕ
|
||||
| ЗависимостиДополнительныхРеквизитов.НаборСвойств = &НаборСвойств
|
||||
| ЗависимостиДополнительныхРеквизитов.НаборСвойств В (&НаборыСвойств)
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
@@ -836,7 +846,7 @@
|
||||
|ГДЕ
|
||||
| ИдентификаторДляФормул = """"";
|
||||
|
||||
Запрос.УстановитьПараметр("НаборСвойств", Справочники.НаборыДополнительныхРеквизитовИСведений.ПустаяСсылка());
|
||||
Запрос.УстановитьПараметр("НаборыСвойств", НаборыСвойств);
|
||||
|
||||
Результат = Запрос.Выполнить().Выгрузить();
|
||||
МассивСсылок = Результат.ВыгрузитьКолонку("Ссылка");
|
||||
@@ -873,11 +883,25 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Зависимость Из Объект.ЗависимостиДополнительныхРеквизитов Цикл
|
||||
ИмяПредопределенныхДанных = "";
|
||||
Если ЗначениеЗаполнено(Зависимость.НаборСвойств) Тогда
|
||||
Продолжить;
|
||||
ИмяПредопределенныхДанных = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Зависимость.НаборСвойств, "ИмяПредопределенныхДанных");
|
||||
Если Не СтрНачинаетсяС(ИмяПредопределенныхДанных, "Удалить") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если Не ЗначениеЗаполнено(ИмяПредопределенныхДанных) Тогда
|
||||
Зависимость.НаборСвойств = Объект.НаборСвойств;
|
||||
Иначе
|
||||
ДлинаПрефикса = СтрДлина("Удалить");
|
||||
ИмяНабора = Сред(ИмяПредопределенныхДанных, ДлинаПрефикса + 1, СтрДлина(ИмяПредопределенныхДанных) - ДлинаПрефикса);
|
||||
НовыйНабор = УправлениеСвойствами.НаборСвойствПоИмени(ИмяНабора);
|
||||
Если НовыйНабор <> Неопределено Тогда
|
||||
Зависимость.НаборСвойств = НовыйНабор;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Зависимость.НаборСвойств = Объект.НаборСвойств;
|
||||
КонецЦикла;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Объект.ИдентификаторДляФормул) Тогда
|
||||
ЗаголовокДляФормул = ЗаголовокДляФормированияИдентификатора(Объект.Заголовок, Объект.Представления);
|
||||
Объект.ИдентификаторДляФормул = УникальныйИдентификаторДляФормул(ЗаголовокДляФормул, Объект.Ссылка);
|
||||
|
||||
@@ -99,33 +99,6 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>БольшеНеНапоминать</name>
|
||||
<id>10</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<skipOnInput>false</skipOnInput>
|
||||
<extendedTooltip>
|
||||
<name>БольшеНеНапоминатьРасширеннаяПодсказка</name>
|
||||
<id>13</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<commandName>Form.Command.БольшеНеНапоминать</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<horizontalAlign>Right</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
@@ -210,28 +183,6 @@
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>БольшеНеНапоминать</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Больше не напоминать</value>
|
||||
</title>
|
||||
<id>3</id>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Не устанавливать и больше не напоминать</value>
|
||||
</toolTip>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>БольшеНеНапоминать</name>
|
||||
</handler>
|
||||
</action>
|
||||
<currentRowUse>DontUse</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
<parameters>
|
||||
<name>ТекстПредложения</name>
|
||||
<valueType>
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
Если Не Параметры.ВозможноПродолжениеБезУстановки Тогда
|
||||
Элементы.ПродолжитьБезУстановки.Заголовок = НСтр("ru = 'Отмена'");
|
||||
Элементы.БольшеНеНапоминать.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -44,13 +43,6 @@
|
||||
&НаКлиенте
|
||||
Процедура ПродолжитьБезУстановки(Команда)
|
||||
|
||||
Закрыть("ПродолжитьБезУстановки");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура БольшеНеНапоминать(Команда)
|
||||
|
||||
Закрыть("БольшеНеПредлагать");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
Если ТипЗнч(ТекущийЭлемент) = Тип("ПолеФормы")
|
||||
И ТекущийЭлемент.Вид = ВидПоляФормы.ПолеВвода
|
||||
И СтрНайти(ТекущийЭлемент.Имя, "Текст") = 1 Тогда
|
||||
И СтрНайти(ТекущийЭлемент.Имя, "Текст") > 0 Тогда
|
||||
ВставитьТекст(ТекущийЭлемент, ШаблоныТекста[Команда.Имя]);
|
||||
|
||||
ОбновитьОбразец();
|
||||
|
||||
@@ -305,17 +305,7 @@
|
||||
|
||||
Если РезультатыПроверок.ПродолжитьНастройкуНовойСинхронизации Тогда
|
||||
|
||||
Если ТекущиеДанные.ВнешняяСистема
|
||||
И РезультатыПроверок.ФоновоеЗаданиеНастройки <> Неопределено Тогда
|
||||
|
||||
ОписаниеСтрокиПриложения.Вставить("ОбменДаннымиСВнешнейСистемой", Истина);
|
||||
ОткрытьФормуОжиданияОкончанияНастройки(РезультатыПроверок.ФоновоеЗаданиеНастройки, ОписаниеСтрокиПриложения);
|
||||
|
||||
Иначе
|
||||
|
||||
ЗавершитьНастройкуСинхронизацииВДиалоге(ОписаниеСтрокиПриложения, ДанныеДляЗавершенияНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
ЗавершитьНастройкуСинхронизацииВДиалоге(ОписаниеСтрокиПриложения, ДанныеДляЗавершенияНастройки);
|
||||
|
||||
ИначеЕсли ОписаниеСтрокиПриложения.ЗапускОбменаИзКорреспондента
|
||||
И НЕ РезультатыПроверок.ПолученоСообщениеДляСопоставления Тогда
|
||||
@@ -354,17 +344,7 @@
|
||||
РезультатыПроверок = СерверныеПроверкиПередВыполнениемКоманд(ОписаниеСтрокиПриложения, ДанныеДляЗавершенияНастройки, "Минимум");
|
||||
Если РезультатыПроверок.ПродолжитьНастройкуНовойСинхронизации Тогда
|
||||
|
||||
Если ТекущиеДанные.ВнешняяСистема
|
||||
И РезультатыПроверок.ФоновоеЗаданиеНастройки <> Неопределено Тогда
|
||||
|
||||
ОписаниеСтрокиПриложения.Вставить("ОбменДаннымиСВнешнейСистемой", Истина);
|
||||
ОткрытьФормуОжиданияОкончанияНастройки(РезультатыПроверок.ФоновоеЗаданиеНастройки, ОписаниеСтрокиПриложения);
|
||||
|
||||
Иначе
|
||||
|
||||
ОткрытьФормуПомощникаНастройкиНовойСинхронизации(ОписаниеСтрокиПриложения, ДанныеДляЗавершенияНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
ОткрытьФормуПомощникаНастройкиНовойСинхронизации(ОписаниеСтрокиПриложения, ДанныеДляЗавершенияНастройки);
|
||||
|
||||
Иначе
|
||||
|
||||
@@ -692,9 +672,6 @@
|
||||
НастройкаЗавершена = НастройкаСинхронизацииЗавершена(СтрокаПриложение, ДанныеДляЗавершенияНастройки);
|
||||
РезультатыПроверок.Вставить("ПродолжитьНастройкуНовойСинхронизации", НЕ НастройкаЗавершена);
|
||||
|
||||
ФоновоеЗаданиеНастройки = ФоновоеЗаданиеВариантыНастроекОбменаДаннымиСВнешнимиСистемами(СтрокаПриложение.УзелИнформационнойБазы, УникальныйИдентификатор);
|
||||
РезультатыПроверок.Вставить("ФоновоеЗаданиеНастройки", ФоновоеЗаданиеНастройки);
|
||||
|
||||
Если ВариантПроверки <> "Минимум" Тогда
|
||||
|
||||
ПолученоСообщениеДляСопоставления = ОбменДаннымиСервер.ПолученоСообщениеСДаннымиДляСопоставления(СтрокаПриложение.УзелИнформационнойБазы);
|
||||
@@ -1097,10 +1074,24 @@
|
||||
|
||||
ОповещениеОЗакрытии = Новый ОписаниеОповещения("ПослеЗавершенияНастройкиПараметровСинхронизации", ЭтотОбъект);
|
||||
|
||||
КлючУникальностиПомощника = СтрШаблон("%1_%2_%3", ПараметрыПомощника.ИмяПланаОбмена, ПараметрыПомощника.ИдентификаторНастройки, ПараметрыПомощника.УзелОбмена.УникальныйИдентификатор());
|
||||
|
||||
ОткрытьФорму("Обработка.ПомощникСозданияОбменаДанными.Форма.НастройкаСинхронизации",
|
||||
ПараметрыПомощника, ЭтотОбъект, КлючУникальностиПомощника, , , ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.Независимый);
|
||||
Если ТекущиеДанные.ВнешняяСистема Тогда
|
||||
|
||||
ФоновоеЗаданиеНастройки = ФоновоеЗаданиеВариантыНастроекОбменаДаннымиСВнешнимиСистемами(ТекущиеДанные.УзелИнформационнойБазы, УникальныйИдентификатор);
|
||||
Если ФоновоеЗаданиеНастройки <> Неопределено Тогда
|
||||
|
||||
ПараметрыПомощника.Вставить("ОбменДаннымиСВнешнейСистемой", Истина);
|
||||
ОткрытьФормуОжиданияОкончанияНастройки(ФоновоеЗаданиеНастройки, ПараметрыПомощника);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
КлючУникальностиПомощника = СтрШаблон("%1_%2_%3", ПараметрыПомощника.ИмяПланаОбмена, ПараметрыПомощника.ИдентификаторНастройки, ПараметрыПомощника.УзелОбмена.УникальныйИдентификатор());
|
||||
|
||||
ОткрытьФорму("Обработка.ПомощникСозданияОбменаДанными.Форма.НастройкаСинхронизации",
|
||||
ПараметрыПомощника, ЭтотОбъект, КлючУникальностиПомощника, , , ОповещениеОЗакрытии, РежимОткрытияОкнаФормы.Независимый);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -367,6 +367,71 @@
|
||||
<commandSource>Item.Сертификаты</commandSource>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сертификаты поиск</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СертификатыПоиск</name>
|
||||
<id>364</id>
|
||||
<extendedTooltip>
|
||||
<name>СертификатыПоискРасширеннаяПодсказка</name>
|
||||
<id>366</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СертификатыПоискКонтекстноеМеню</name>
|
||||
<id>365</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<source>Сертификаты</source>
|
||||
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Addition">
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Сертификаты поиск управление</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<name>СертификатыПоискУправление</name>
|
||||
<id>373</id>
|
||||
<extendedTooltip>
|
||||
<name>СертификатыПоискУправлениеРасширеннаяПодсказка</name>
|
||||
<id>375</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>СертификатыПоискУправлениеКонтекстноеМеню</name>
|
||||
<id>374</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>SearchControlAddition</type>
|
||||
<source>Сертификаты</source>
|
||||
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
</extInfo>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеДалее)
|
||||
И Не СтрокаПерехода.ДлительнаяОперация Тогда
|
||||
|
||||
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)";
|
||||
ИмяПроцедуры = "[ИмяОбработчика](Отказ)";
|
||||
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеДалее);
|
||||
|
||||
Отказ = Ложь;
|
||||
@@ -215,7 +215,7 @@
|
||||
Если Не ПустаяСтрока(СтрокаПерехода.ИмяОбработчикаПриПереходеНазад)
|
||||
И Не СтрокаПерехода.ДлительнаяОперация Тогда
|
||||
|
||||
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ)";
|
||||
ИмяПроцедуры = "[ИмяОбработчика](Отказ)";
|
||||
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПерехода.ИмяОбработчикаПриПереходеНазад);
|
||||
|
||||
Отказ = Ложь;
|
||||
@@ -251,7 +251,7 @@
|
||||
// обработчик ПриОткрытии
|
||||
Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии) Тогда
|
||||
|
||||
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)";
|
||||
ИмяПроцедуры = "[ИмяОбработчика](Отказ, ПропуститьСтраницу, ЭтоПереходДалее)";
|
||||
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаПриОткрытии);
|
||||
|
||||
Отказ = Ложь;
|
||||
@@ -301,7 +301,7 @@
|
||||
// обработчик ОбработкаДлительнойОперации
|
||||
Если Не ПустаяСтрока(СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации) Тогда
|
||||
|
||||
ИмяПроцедуры = "Подключаемый_[ИмяОбработчика](Отказ, ПерейтиДалее)";
|
||||
ИмяПроцедуры = "[ИмяОбработчика](Отказ, ПерейтиДалее)";
|
||||
ИмяПроцедуры = СтрЗаменить(ИмяПроцедуры, "[ИмяОбработчика]", СтрокаПереходаТекущая.ИмяОбработчикаДлительнойОперации);
|
||||
|
||||
Отказ = Ложь;
|
||||
@@ -504,15 +504,15 @@
|
||||
|
||||
НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание");
|
||||
НовыйПереход.ДлительнаяОперация = Истина;
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "Ожидание_ОбработкаДлительнойОперации";
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "Подключаемый_Ожидание_ОбработкаДлительнойОперации";
|
||||
|
||||
НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание");
|
||||
НовыйПереход.ДлительнаяОперация = Истина;
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеДлительнаяОперация_ОбработкаДлительнойОперации";
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "Подключаемый_ОжиданиеДлительнаяОперация_ОбработкаДлительнойОперации";
|
||||
|
||||
НовыйПереход = ТаблицаПереходовНоваяСтрока("Ожидание", "СтраницаНавигацииОжидание");
|
||||
НовыйПереход.ДлительнаяОперация = Истина;
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "ОжиданиеДлительнаяОперацияОкончание_ОбработкаДлительнойОперации";
|
||||
НовыйПереход.ИмяОбработчикаДлительнойОперации = "Подключаемый_ОжиданиеДлительнаяОперацияОкончание_ОбработкаДлительнойОперации";
|
||||
|
||||
НовыйПереход = ТаблицаПереходовНоваяСтрока("Завершение", "СтраницаНавигацииОкончание");
|
||||
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
ЕстьРазрешенныйВывод = ЕстьРазрешенныйВывод();
|
||||
НастроитьВидимостьЭлементовФормы(ЕстьРазрешенныйВывод);
|
||||
УстановитьПризнакДоступностиВыводаВПредставленияхПечатныхФорм(ЕстьРазрешенныйВывод);
|
||||
УстановитьИмяПринтераВПодсказкеКнопкиПечать();
|
||||
УстановитьЗаголовокФормы();
|
||||
Если Не ОбщегоНазначения.ЭтоМобильныйКлиент() И ЭтоПечатьКомплекта() Тогда
|
||||
Элементы.Копий.Заголовок = НСтр("ru = 'Копий комплекта'");
|
||||
@@ -158,6 +157,8 @@
|
||||
ОбщегоНазначенияСлужебныйКлиент.УстановитьВидимостьПанелиПоказателей(Элементы, РазвернутьОбластьПоказателей);
|
||||
ОбщегоНазначенияСлужебныйКлиент.РассчитатьПоказатели(ЭтотОбъект, "ТекущаяПечатнаяФорма", ОсновнойПоказатель);
|
||||
|
||||
УстановитьИмяПринтераВПодсказкеКнопкиПечать();
|
||||
|
||||
ИнтеграцияПодсистемБСПКлиент.ПечатьДокументовПослеОткрытия(ЭтотОбъект);
|
||||
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовПослеОткрытия(ЭтотОбъект);
|
||||
|
||||
@@ -778,14 +779,19 @@
|
||||
Элементы.ГруппаНастройкаКомплектаКоманднаяПанель.Видимость = Видимость И ДоступнаНастройкаКомплекта;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
&НаКлиенте
|
||||
Процедура УстановитьИмяПринтераВПодсказкеКнопкиПечать()
|
||||
Если НастройкиПечатныхФорм.Количество() > 0 Тогда
|
||||
ИмяПринтера = ЭтотОбъект[НастройкиПечатныхФорм[0].ИмяРеквизита].ИмяПринтера;
|
||||
Если Не ПустаяСтрока(ИмяПринтера) Тогда
|
||||
ЭтотОбъект.Команды["Печать"].Подсказка = НСтр("ru = 'Напечатать на принтере'") + " (" + ИмяПринтера + ")";
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПринтера = ТекущаяПечатнаяФорма.ИмяПринтера;
|
||||
Подсказка = Элементы.КнопкаПечатьКоманднаяПанель.РасширеннаяПодсказка;
|
||||
Если Не ПустаяСтрока(ИмяПринтера) И Не СтрНайти(Подсказка.Заголовок, ИмяПринтера) Тогда
|
||||
Элементы.КнопкаПечатьКоманднаяПанель.РасширеннаяПодсказка.Заголовок =
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Напечатать на принтере (%1)'"), ИмяПринтера);
|
||||
КонецЕсли;
|
||||
|
||||
ПодключитьОбработчикОжидания("УстановитьИмяПринтераВПодсказкеКнопкиПечать", 3, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
|
||||
@@ -9,20 +9,127 @@
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаЧасовойПоясПрограммы</name>
|
||||
<id>3</id>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ГруппаЧасовойПояс</name>
|
||||
<id>85</id>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЧасовойПоясПрограммы</name>
|
||||
<id>5</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ЧасовойПоясПрограммы</segments>
|
||||
</dataPath>
|
||||
<handlers>
|
||||
<event>OnChange</event>
|
||||
<name>ЧасовойПоясПрограммыПриИзменении</name>
|
||||
</handlers>
|
||||
<extendedTooltip>
|
||||
<name>ЧасовойПоясПрограммыExtendedTooltip</name>
|
||||
<id>7</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЧасовойПоясПрограммыКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<width>20</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<listChoiceMode>true</listChoiceMode>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<editTextUpdate>OnValueChange</editTextUpdate>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВремяТекущегоСеанса</name>
|
||||
<id>8</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВремяТекущегоСеансаРасширеннаяПодсказка</name>
|
||||
<id>9</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>CommonCommand.ВремяТекущегоСеанса</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Часовой пояс</value>
|
||||
</title>
|
||||
<extendedTooltip>
|
||||
<name>ГруппаЧасовойПоясРасширеннаяПодсказка</name>
|
||||
<id>86</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>AlwaysHorizontal</group>
|
||||
<behavior>Auto</behavior>
|
||||
<representation>WeakSeparation</representation>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЧасовойПоясПрограммы</name>
|
||||
<id>5</id>
|
||||
<name>ВремяЧасовогоПояса</name>
|
||||
<id>82</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ЧасовойПоясПрограммы</segments>
|
||||
<segments>ВремяВыбранногоЧасовогоПояса</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ЧасовойПоясПрограммыExtendedTooltip</name>
|
||||
<id>7</id>
|
||||
<name>ВремяЧасовогоПоясаРасширеннаяПодсказка</name>
|
||||
<id>84</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
@@ -31,54 +138,20 @@
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЧасовойПоясПрограммыКонтекстноеМеню</name>
|
||||
<id>6</id>
|
||||
<name>ВремяЧасовогоПоясаКонтекстноеМеню</name>
|
||||
<id>83</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<type>LabelField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<horizontalStretch>false</horizontalStretch>
|
||||
<wrap>true</wrap>
|
||||
<listChoiceMode>true</listChoiceMode>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<editTextUpdate>OnValueChange</editTextUpdate>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>ВремяТекущегоСеанса</name>
|
||||
<id>8</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ВремяТекущегоСеансаРасширеннаяПодсказка</name>
|
||||
<id>9</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>Hyperlink</type>
|
||||
<commandName>CommonCommand.ВремяТекущегоСеанса</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -105,10 +178,9 @@
|
||||
</extendedTooltip>
|
||||
<type>UsualGroup</type>
|
||||
<extInfo xsi:type="form:UsualGroupExtInfo">
|
||||
<group>HorizontalIfPossible</group>
|
||||
<group>Vertical</group>
|
||||
<behavior>Auto</behavior>
|
||||
<showLeftMargin>true</showLeftMargin>
|
||||
<united>true</united>
|
||||
<throughAlign>Auto</throughAlign>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
</extInfo>
|
||||
@@ -894,6 +966,7 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<fillChecking>ShowError</fillChecking>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ИспользоватьДополнительныйЯзык1</name>
|
||||
@@ -911,6 +984,7 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДополнительныйЯзык1</name>
|
||||
@@ -929,6 +1003,7 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ЧасовойПоясПрограммы</name>
|
||||
@@ -947,6 +1022,7 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДополнительныйЯзык2</name>
|
||||
@@ -965,6 +1041,7 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ИспользоватьДополнительныйЯзык2</name>
|
||||
@@ -982,6 +1059,7 @@
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
<savedData>true</savedData>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Источник</name>
|
||||
@@ -1010,6 +1088,56 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ВремяВыбранногоЧасовогоПояса</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Время выбранного часового пояса</value>
|
||||
</title>
|
||||
<id>9</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>Смещение</name>
|
||||
<id>10</id>
|
||||
<valueType>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>СмещениеЧасовогоПояса</name>
|
||||
<id>11</id>
|
||||
<valueType>
|
||||
<types>Number</types>
|
||||
<numberQualifiers>
|
||||
<precision>10</precision>
|
||||
</numberQualifiers>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</attributes>
|
||||
<formCommands>
|
||||
<name>ОК</name>
|
||||
<title>
|
||||
|
||||
@@ -22,7 +22,8 @@
|
||||
Если Источник = "ПанельАдминистрированияБСП" Тогда
|
||||
Элементы.ОК.Заголовок = НСтр("ru = 'Изменить'")
|
||||
КонецЕсли;
|
||||
Элементы.ЧасовойПоясПрограммы.СписокВыбора.ЗагрузитьЗначения(ПолучитьДопустимыеЧасовыеПояса());
|
||||
|
||||
ЗаполнитьЧасовыеПояса();
|
||||
|
||||
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
|
||||
|
||||
@@ -73,6 +74,9 @@
|
||||
И СтрНайти(ПараметрЗапуска, "ВыполнитьОбновлениеИЗавершитьРаботу") > 0 Тогда
|
||||
ПодключитьОбработчикОжидания("УстановитьЗначенияПоУмолчанию", 0.1, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
СмещениеЧасовогоПояса = ОбщегоНазначенияКлиент.ДатаСеанса() - ТекущиеВремяНаКлиенте();
|
||||
УстановитьВремя();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -218,6 +222,11 @@
|
||||
ПредыдущийЯзык = ДополнительныйЯзык1;
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ЧасовойПоясПрограммыПриИзменении(Элемент)
|
||||
СмещениеЧасовогоПояса = СмещениеЧасовогоПояса(ЧасовойПоясПрограммы, ТекущиеВремяНаКлиенте());
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -273,8 +282,8 @@
|
||||
&НаСервере
|
||||
Функция ЗапуститьФоновоеПерезаполнениеНаСервере(Знач УникальныйИдентификатор)
|
||||
|
||||
ПараметрыМетода = СтарыеИНовыеЗначенияКонстант();
|
||||
ЗаписатьЗначенияКонстант();
|
||||
ПараметрыМетода = Новый Структура;
|
||||
|
||||
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Перезаполнение строк предопределенных элементов и классификаторов.'");
|
||||
@@ -412,4 +421,71 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
// Возвращаемое значение:
|
||||
// см. МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков
|
||||
//
|
||||
&НаСервере
|
||||
Функция СтарыеИНовыеЗначенияКонстант()
|
||||
|
||||
Результат = МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков();
|
||||
|
||||
Результат.ОсновнойЯзыкСтароеЗначение= Константы.ОсновнойЯзык.Получить();
|
||||
Результат.ОсновнойЯзыкНовоеЗначение = ОсновнойЯзык;
|
||||
|
||||
Результат.ДополнительныйЯзык1СтароеЗначение = Константы.ДополнительныйЯзык1.Получить();
|
||||
Результат.ДополнительныйЯзык1НовоеЗначение = ДополнительныйЯзык1;
|
||||
|
||||
Результат.ДополнительныйЯзык2СтароеЗначение = Константы.ДополнительныйЯзык2.Получить();
|
||||
Результат.ДополнительныйЯзык2НовоеЗначение = ДополнительныйЯзык2;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Часовые пояса
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьЧасовыеПояса()
|
||||
|
||||
Для Каждого ОписаниеЧасовогоПояса Из ПолучитьДопустимыеЧасовыеПояса() Цикл
|
||||
|
||||
СмещениеДатой = Дата(1, 1, 1) + СмещениеСтандартногоВремени(ОписаниеЧасовогоПояса);
|
||||
ПредставлениеСмещения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("(UTC+%1)",
|
||||
Формат(СмещениеДатой, "ДФ=HH:mm; ДП=00:00;"));
|
||||
|
||||
ПредставлениеЧасовогоПояса = ПредставлениеСмещения + " " + ОписаниеЧасовогоПояса;
|
||||
Элементы.ЧасовойПоясПрограммы.СписокВыбора.Добавить(ОписаниеЧасовогоПояса, ПредставлениеЧасовогоПояса);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция СмещениеЧасовогоПояса(ЧасовойПоясПрограммы, ВремяНаКлиенте)
|
||||
|
||||
ДатаСеансаУниверсальная = УниверсальноеВремя(ТекущаяДатаСеанса(), ЧасовойПоясСеанса());
|
||||
ДатаСеансаНовыйЧасовойПояс = ДатаСеансаУниверсальная + СмещениеСтандартногоВремени(ЧасовойПоясПрограммы);
|
||||
|
||||
Возврат ДатаСеансаНовыйЧасовойПояс - ВремяНаКлиенте + СмещениеЛетнегоВремени(ЧасовойПоясПрограммы);
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура УстановитьВремя()
|
||||
|
||||
ВремяВыбранногоЧасовогоПояса = ТекущиеВремяНаКлиенте() + СмещениеЧасовогоПояса;
|
||||
ПодключитьОбработчикОжидания("УстановитьВремя", 1, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ТекущиеВремяНаКлиенте()
|
||||
|
||||
// АПК:143-выкл -Требуется ТекущаяДата для расчета смещения отображаемого времени сеанса на форме.
|
||||
Возврат ТекущаяДата();
|
||||
// АПК:143-вкл
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -190,6 +190,55 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаЗначенийСвойствКолонкаВопрос</name>
|
||||
<id>39</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>?</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ТаблицаЗначенийСвойств.КолонкаВопрос</segments>
|
||||
</dataPath>
|
||||
<toolTip>
|
||||
<key>ru</key>
|
||||
<value>Подсказка</value>
|
||||
</toolTip>
|
||||
<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>
|
||||
<contextMenu>
|
||||
<name>ТаблицаЗначенийСвойствКолонкаВопросКонтекстноеМеню</name>
|
||||
<id>40</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>LabelField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<cellHyperlink>true</cellHyperlink>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<cellHyperlinkRepresentation>Show</cellHyperlinkRepresentation>
|
||||
<cellHyperlinkDisplayVariant>Always</cellHyperlinkDisplayVariant>
|
||||
<extInfo xsi:type="form:LabelFieldExtInfo">
|
||||
<width>2</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<hyperlink>true</hyperlink>
|
||||
</extInfo>
|
||||
</items>
|
||||
<commandBarLocation>None</commandBarLocation>
|
||||
<autoCommandBar>
|
||||
<name>ТаблицаЗначенийСвойствКоманднаяПанель</name>
|
||||
@@ -197,6 +246,10 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
<autoFill>true</autoFill>
|
||||
</autoCommandBar>
|
||||
<handlers>
|
||||
<event>Selection</event>
|
||||
<name>ТаблицаЗначенийСвойствВыбор</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>BeforeAddRow</event>
|
||||
<name>ТаблицаЗначенийСвойствПередНачаломДобавления</name>
|
||||
@@ -587,6 +640,38 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>КолонкаВопрос</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Колонка вопрос</value>
|
||||
</title>
|
||||
<id>10</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Подсказка</name>
|
||||
<id>11</id>
|
||||
<valueType>
|
||||
<types>String</types>
|
||||
<stringQualifiers/>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДоступныеНаборыСвойств</name>
|
||||
|
||||
@@ -110,6 +110,34 @@
|
||||
Элементы.ТаблицаЗначенийСвойствЗначение.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораМассив);
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТаблицаЗначенийСвойствВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
|
||||
|
||||
Если Поле.Имя <> Элементы.ТаблицаЗначенийСвойствКолонкаВопрос.Имя Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СтандартнаяОбработка = Ложь;
|
||||
|
||||
Строка = ТаблицаЗначенийСвойств.НайтиПоИдентификатору(ВыбраннаяСтрока);
|
||||
Если Не ЗначениеЗаполнено(Строка.Подсказка) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗаголовка = НСтр("ru = 'Подсказка сведения ""%1""'");
|
||||
ТекстЗаголовка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстЗаголовка, Строка.Наименование);
|
||||
|
||||
ПараметрыВопросаПользователю = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
|
||||
ПараметрыВопросаПользователю.Заголовок = ТекстЗаголовка;
|
||||
ПараметрыВопросаПользователю.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
|
||||
ПараметрыВопросаПользователю.Картинка = БиблиотекаКартинок.Информация32;
|
||||
|
||||
Кнопки = Новый СписокЗначений;
|
||||
Кнопки.Добавить("ОК", НСтр("ru = 'ОК'"));
|
||||
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, Строка.Подсказка, Кнопки, ПараметрыВопросаПользователю);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
@@ -254,6 +282,10 @@
|
||||
НоваяСтрока = ТаблицаЗначенийСвойств.Добавить();
|
||||
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
|
||||
|
||||
Если ЗначениеЗаполнено(НоваяСтрока.Подсказка) Тогда
|
||||
НоваяСтрока.КолонкаВопрос = "?";
|
||||
КонецЕсли;
|
||||
|
||||
НоваяСтрока.НомерКартинки = ?(Строка.Удалено, 0, -1);
|
||||
НоваяСтрока.ДоступноДляИзменения = ДоступноДляИзменения;
|
||||
|
||||
|
||||
@@ -698,8 +698,7 @@
|
||||
Для Каждого Параметр Из НайденныеПараметры Цикл
|
||||
Если СтрНайти(Текст, Параметр) Тогда
|
||||
Счетчик = Счетчик + 1;
|
||||
Идентификатор = "%" + XMLСтрока(Счетчик);
|
||||
Текст = СтрЗаменить(Текст, Параметр, Идентификатор);
|
||||
Текст = СтрЗаменить(Текст, Параметр, ИдентификаторПараметра(Счетчик));
|
||||
ОбработанныеПараметры.Добавить(Параметр);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -715,10 +714,22 @@
|
||||
&НаСервере
|
||||
Функция ВернутьПараметрыВТекст(Знач Текст, ОбработанныеПараметры)
|
||||
|
||||
Для Счетчик = 1 По ОбработанныеПараметры.Количество() Цикл
|
||||
Текст = СтрЗаменить(Текст, ИдентификаторПараметра(Счетчик), "%" + XMLСтрока(Счетчик));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтрокуИзМассива(Текст, ОбработанныеПараметры);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Последовательность символов, которая не должна меняться при переводе на любой язык.
|
||||
&НаСервере
|
||||
Функция ИдентификаторПараметра(Номер)
|
||||
|
||||
Возврат "{<" + XMLСтрока(Номер) + ">}";
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПоказатьСкрытьОригинал(Команда)
|
||||
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
Процедура КомпоновщикНастроекНастройкиПараметрыВыводаПриИзменении(Элемент)
|
||||
|
||||
Строка = Элемент.ТекущиеДанные;
|
||||
ИдентификаторПараметра = НСтр("ru = 'Заголовок'");
|
||||
ИдентификаторПараметра = "Заголовок";
|
||||
|
||||
Если Строка <> Неопределено
|
||||
И Строка.Свойство("Параметр")
|
||||
|
||||
@@ -383,14 +383,26 @@
|
||||
|
||||
Дополнение = ОтчетыКлиентСервер.ДополнитьСписок(Список, Выбранные, Ложь, Истина);
|
||||
|
||||
ЗначениеЭлементаНастройки = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(Список);
|
||||
Индекс = ЗначениеЭлементаНастройки.Количество() - 1;
|
||||
Пока Индекс >= 0 Цикл
|
||||
ТекущееЗначение = ЗначениеЭлементаНастройки[Индекс];
|
||||
|
||||
Если Не ТекущееЗначение.Пометка Тогда
|
||||
ЗначениеЭлементаНастройки.Удалить(ТекущееЗначение);
|
||||
КонецЕсли;
|
||||
|
||||
Индекс = Индекс - 1;
|
||||
КонецЦикла;
|
||||
|
||||
Индекс = ПутьКДаннымЭлементов.ПоИмени[Элемент.Имя];
|
||||
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
|
||||
ЭлементНастройки = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс];
|
||||
|
||||
Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
|
||||
ЭлементНастройки.Значение = Список;
|
||||
ЭлементНастройки.Значение = ЗначениеЭлементаНастройки;
|
||||
Иначе
|
||||
ЭлементНастройки.ПравоеЗначение = Список;
|
||||
ЭлементНастройки.ПравоеЗначение = ЗначениеЭлементаНастройки;
|
||||
КонецЕсли;
|
||||
ЭлементНастройки.Использование = Истина;
|
||||
|
||||
@@ -1109,15 +1121,35 @@
|
||||
КонецЕсли;
|
||||
|
||||
ВариантыОтчетовСлужебныйКлиент.ИзменитьФормулу(
|
||||
ЭтотОбъект, Отчет.КомпоновщикНастроек.Настройки, Строка(Строка.Поле),, Истина);
|
||||
ЭтотОбъект, Отчет.КомпоновщикНастроек.Настройки, Строка(Строка.Поле));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ОписаниеФормулы - ДоступноеПолеКомпоновкиДанных
|
||||
// - Структура:
|
||||
// * Наименование - Строка
|
||||
// * ПредставлениеФормулы - Строка
|
||||
// * Формула - Строка
|
||||
// Формула - Структура:
|
||||
// * КоллекцияПолей - ДоступныеПоляКомпоновкиДанных
|
||||
// * Формула - ПользовательскоеПолеВыражениеКомпоновкиДанных
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ПослеИзмененияФормулы(ОписаниеФормулы, Формула) Экспорт
|
||||
|
||||
Если ТипЗнч(ОписаниеФормулы) <> Тип("Структура") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВариантыОтчетовСлужебныйКлиент.ПослеИзмененияФормулы(ОписаниеФормулы, Формула);
|
||||
|
||||
Строка = Элементы.ВыбранныеПоля.ТекущиеДанные; // ДанныеФормыЭлементДерева
|
||||
|
||||
Если Строка <> Неопределено Тогда
|
||||
Строка.Заголовок = ОписаниеФормулы.Заголовок;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьМодифицированность();
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1761,7 +1793,7 @@
|
||||
ПараметрыФормы.Вставить("ВариантНаименование", ВариантНаименование);
|
||||
ПараметрыФормы.Вставить("ИдентификаторЭлементаСтруктурыНастроек", ИдентификаторЭлементаСтруктурыНастроек);
|
||||
ПараметрыФормы.Вставить("ИмяСтраницы", Элементы.СтраницыНастроек.ТекущаяСтраница.Имя);
|
||||
ПараметрыФормы.Вставить("Заголовок", ВариантНаименование);
|
||||
ПараметрыФормы.Вставить("ПредставлениеВарианта", ВариантНаименование);
|
||||
ПараметрыФормы.Вставить("ВариантМодифицирован", ВариантИзменен);
|
||||
ПараметрыФормы.Вставить(
|
||||
"ПользовательскиеНастройкиМодифицированы",
|
||||
@@ -3235,7 +3267,8 @@
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЗначенияДляВыбора(Строка)
|
||||
ЗначенияДляВыбора = Строка.ДоступныеЗначения;
|
||||
ЗначенияДляВыбора = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(Строка.ДоступныеЗначения);
|
||||
|
||||
Если ЗначенияДляВыбора = Неопределено Тогда
|
||||
ЗначенияДляВыбора = Новый СписокЗначений;
|
||||
КонецЕсли;
|
||||
@@ -3255,6 +3288,8 @@
|
||||
ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора);
|
||||
КонецЕсли;
|
||||
|
||||
ОтчетыКлиентСервер.ОбновитьПредставленияСписка(ЗначенияДляВыбора, Строка.ДоступныеЗначения);
|
||||
|
||||
Возврат ЗначенияДляВыбора;
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -5549,7 +5549,11 @@
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<extInfo xsi:type="form:ButtonGroupExtInfo"/>
|
||||
<type>Popup</type>
|
||||
<extInfo xsi:type="form:PopupGroupExtInfo">
|
||||
<representation>Auto</representation>
|
||||
<importance>Normal</importance>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КонтекстноеМенюОбластиОбщееСкомпоноватьРезультат</name>
|
||||
|
||||
@@ -664,12 +664,8 @@
|
||||
&НаКлиенте
|
||||
Процедура ОтчетТабличныйДокументПриАктивизации(Элемент)
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
ПодключитьОбработчикОжидания("ПодготовитьКомандыКонтекстнойНастройки", 0.1, Истина);
|
||||
#Иначе
|
||||
ПодготовитьКомандыКонтекстнойНастройки();
|
||||
#КонецЕсли
|
||||
|
||||
ВариантыОтчетовСлужебныйКлиент.ПриАктивизацииРезультатаОтчета(ЭтотОбъект, Элементы.ОтчетТабличныйДокумент);
|
||||
|
||||
ПодключитьОбработчикОжидания("РассчитатьПоказателиДинамически", 0.2, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -1249,7 +1245,10 @@
|
||||
&НаКлиенте
|
||||
Процедура ПослеФормирования(Результат, ПараметрыФормирования) Экспорт
|
||||
Если ФоновоеЗаданиеИдентификатор <> ПараметрыФормирования.ИдентификаторЗадания Тогда
|
||||
|
||||
ПоказатьВыбранныйУровеньГруппировок();
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
@@ -1520,7 +1519,8 @@
|
||||
ЗначенияДляВыбора = ЗначенияДляВыбора(
|
||||
Элемент.СписокВыбора,
|
||||
Сведения.ЭлементПользовательскойНастройки,
|
||||
Элемент.ДоступныеТипы);
|
||||
Элемент.ДоступныеТипы,
|
||||
ДоступныеЗначения);
|
||||
|
||||
ОграничиватьВыборУказаннымиЗначениями = ДоступныеЗначения <> Неопределено;
|
||||
|
||||
@@ -1551,19 +1551,21 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ЗначенияДляВыбора(СписокВыбора, ЭлементНастройки, ТипЗначения)
|
||||
ЗначенияДляВыбора = СписокВыбора;
|
||||
Функция ЗначенияДляВыбора(СписокВыбора, ЭлементНастройки, ДоступныеТипы, ДоступныеЗначения)
|
||||
ЗначенияДляВыбора = ОбщегоНазначенияКлиент.СкопироватьРекурсивно(СписокВыбора);
|
||||
Если ЭлементНастройки = Неопределено Тогда
|
||||
Возврат ЗначенияДляВыбора;
|
||||
КонецЕсли;
|
||||
|
||||
ЗначенияДляВыбора.ТипЗначения = ТипЗначения;
|
||||
ЗначенияДляВыбора.ТипЗначения = ДоступныеТипы;
|
||||
|
||||
ЗначениеОтбора = ОтчетыКлиент.КэшЗначенияОтбора(Отчет.КомпоновщикНастроек, ЭлементНастройки);
|
||||
Если ЗначениеОтбора <> Неопределено Тогда
|
||||
ОтчетыКлиентСервер.ДополнитьСписок(ЗначенияДляВыбора, ЗначениеОтбора);
|
||||
КонецЕсли;
|
||||
|
||||
ОтчетыКлиентСервер.ОбновитьПредставленияСписка(ЗначенияДляВыбора, ДоступныеЗначения);
|
||||
|
||||
Возврат ЗначенияДляВыбора;
|
||||
КонецФункции
|
||||
|
||||
@@ -1672,11 +1674,6 @@
|
||||
Сформировать();
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПодготовитьКомандыКонтекстнойНастройки()
|
||||
ВариантыОтчетовСлужебныйКлиент.ПриАктивизацииРезультатаОтчета(ЭтотОбъект, Элементы.ОтчетТабличныйДокумент);
|
||||
КонецПроцедуры
|
||||
|
||||
#Область РасчетПоказателей
|
||||
|
||||
// Параметры:
|
||||
@@ -1831,6 +1828,7 @@
|
||||
Функция ПодходящиеЗначенияУниверсальногоПоиска(Запрос)
|
||||
|
||||
ПодходящиеЗначения = Новый СписокЗначений;
|
||||
МаксимальноеКоличествоПодходящихЗначений = 50;
|
||||
|
||||
ПараметрыПоиска = ПараметрыУниверсальногоПоиска(Запрос);
|
||||
|
||||
@@ -1852,15 +1850,30 @@
|
||||
|
||||
НайтиПодходящиеЗначенияУниверсальногоПоискаЧисла(ПодходящиеЗначения, ПараметрыПоиска);
|
||||
|
||||
Если ПодходящиеЗначения.Количество() = 0
|
||||
И СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Тогда
|
||||
Если ПодходящиеЗначения.Количество() = 0 Тогда
|
||||
|
||||
Представление = Новый ФорматированнаяСтрока(НСтр("ru = 'Совпадений не найдено'"),, WebЦвета.НейтральноСерый);
|
||||
ПодходящиеЗначения.Добавить("", Представление);
|
||||
Если СтрДлина(ПараметрыПоиска.СтрокаПоиска) > 2 Тогда
|
||||
Сообщение = НСтр("ru = 'Совпадений не найдено'");
|
||||
Иначе
|
||||
Сообщение = НСтр("ru = 'Продолжите ввод...'");
|
||||
КонецЕсли;
|
||||
|
||||
СообщениеФорматированное = Новый ФорматированнаяСтрока(Сообщение,, WebЦвета.НейтральноСерый);
|
||||
ПодходящиеЗначения.Добавить("", СообщениеФорматированное);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПодходящиеЗначения;
|
||||
Если ПодходящиеЗначения.Количество() <= МаксимальноеКоличествоПодходящихЗначений Тогда
|
||||
Возврат ПодходящиеЗначения;
|
||||
КонецЕсли;
|
||||
|
||||
ПодходящиеЗначенияНормализованные = Новый СписокЗначений;
|
||||
|
||||
Для НомерЭлемента = 1 По МаксимальноеКоличествоПодходящихЗначений Цикл
|
||||
ЗаполнитьЗначенияСвойств(ПодходящиеЗначенияНормализованные.Добавить(), ПодходящиеЗначения[НомерЭлемента - 1]);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ПодходящиеЗначенияНормализованные;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1939,10 +1952,18 @@
|
||||
ИспользуемыеПоляПоискаПоТипам = НастройкиОтчета.ИспользуемыеПоляУниверсальногоПоискаПоТипам;
|
||||
ПоляПоиска = ИспользуемыеПоляПоискаПоТипам[Тип("Число")];
|
||||
|
||||
Если ПоляПоиска = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПодходящиеЗначенияДляЧисла = Новый СписокЗначений;
|
||||
|
||||
ОписаниеЧисла = Новый ОписаниеТипов("Число");
|
||||
ЗначениеПоиска = ОписаниеЧисла.ПривестиЗначение(ПараметрыПоиска.СтрокаПоиска);
|
||||
|
||||
Для Каждого ПолеПоиска Из ПоляПоиска Цикл
|
||||
ДоступныеПоляПоиска = ДоступныеПоляПоискаЧисла(ПоляПоиска, ЗначениеПоиска, ПараметрыПоиска.УправляющиеСимволы);
|
||||
|
||||
Для Каждого ПолеПоиска Из ДоступныеПоляПоиска Цикл
|
||||
|
||||
СвойстваПоиска = СвойстваУниверсальногоПоиска(ПолеПоиска.Ключ, ЗначениеПоиска, ПараметрыПоиска.УправляющиеСимволы);
|
||||
ПредставлениеПоиска = ПредставлениеЗначенияУниверсальногоПоискаСтроки(
|
||||
@@ -1951,12 +1972,39 @@
|
||||
ВариантыПоиска = Новый Массив;
|
||||
ВариантыПоиска.Добавить(СвойстваПоиска);
|
||||
|
||||
ПодходящиеЗначения.Добавить(ВариантыПоиска, ПредставлениеПоиска);
|
||||
ПодходящиеЗначенияДляЧисла.Добавить(ВариантыПоиска, ПредставлениеПоиска);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПодходящиеЗначенияДляЧисла.СортироватьПоПредставлению();
|
||||
ОтчетыКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ПодходящиеЗначенияДляЧисла);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ДоступныеПоляПоискаЧисла(ПоляПоиска, ЗначениеПоиска, УправляющиеСимволы)
|
||||
|
||||
Условие = УсловиеУниверсальногоПоиска(ЗначениеПоиска, УправляющиеСимволы);
|
||||
|
||||
Если Условие = ВидСравненияКомпоновкиДанных.Равно Тогда
|
||||
Возврат ОбщегоНазначенияКлиент.СкопироватьРекурсивно(ПоляПоиска);
|
||||
КонецЕсли;
|
||||
|
||||
ДоступныеПоляПоиска = Новый Соответствие;
|
||||
ДоступныеПоляПараметров = Отчет.КомпоновщикНастроек.Настройки.ДоступныеПоляПараметровДанных;
|
||||
|
||||
Для Каждого ПолеПоиска Из ПоляПоиска Цикл
|
||||
|
||||
Если ДоступныеПоляПараметров.НайтиПоле(ПолеПоиска.Ключ) = Неопределено Тогда
|
||||
ДоступныеПоляПоиска.Вставить(ПолеПоиска.Ключ, ПолеПоиска.Значение);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДоступныеПоляПоиска;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Процедура НайтиПодходящиеЗначенияУниверсальногоПоиска(ПодходящиеЗначения, ИспользуемыеПоляПоискаПоТипам, ПараметрыПоиска)
|
||||
|
||||
@@ -2027,7 +2075,7 @@
|
||||
Если ВариантыПоиска = Неопределено Тогда
|
||||
|
||||
ПредставлениеПоиска = ПредставлениеУниверсальногоПоискаСсылки(
|
||||
Выборка, СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска);
|
||||
Выборка, ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска);
|
||||
|
||||
ИндексПредставленийПоиска.Вставить(СвойстваПоиска.ПравоеЗначение, ПредставлениеПоиска);
|
||||
ВариантыПоиска = Новый Массив;
|
||||
@@ -2048,7 +2096,9 @@
|
||||
|
||||
РеквизитПоля = Новый ПолеКомпоновкиДанных(ПутьКДанным);
|
||||
|
||||
СвойстваПоиска = СвойстваУниверсальногоПоиска(РеквизитПоля, ПараметрыПоиска.СтрокаПоиска, ПараметрыПоиска.УправляющиеСимволы);
|
||||
СвойстваПоиска = СвойстваУниверсальногоПоиска(
|
||||
РеквизитПоля, ПараметрыПоиска.СтрокаПоиска, ПараметрыПоиска.УправляющиеСимволы);
|
||||
|
||||
ПредставлениеПоиска = ПредставлениеЗначенияУниверсальногоПоискаСтроки(
|
||||
ПолеПоиска.Значение, СвойстваПоиска.ВидСравнения, ПараметрыПоиска.СтрокаПоиска);
|
||||
|
||||
@@ -2068,6 +2118,8 @@
|
||||
КонецЦикла;
|
||||
|
||||
ПодходящиеЗначения.СортироватьПоПредставлению();
|
||||
ДополнительныеЗначения.СортироватьПоПредставлению();
|
||||
|
||||
ОтчетыКлиентСервер.ДополнитьСписок(ПодходящиеЗначения, ДополнительныеЗначения);
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2220,7 +2272,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервереБезКонтекста
|
||||
Функция ПредставлениеУниверсальногоПоискаСсылки(Данные, Условие, СтрокаПоиска)
|
||||
Функция ПредставлениеУниверсальногоПоискаСсылки(Данные, ПолеПоиска, Условие, СтрокаПоиска)
|
||||
|
||||
ПредставлениеЗначения = Данные.Представление;
|
||||
|
||||
@@ -2231,11 +2283,7 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ФрагментУсловия = "";
|
||||
|
||||
Если Условие <> ВидСравненияКомпоновкиДанных.Равно Тогда
|
||||
ФрагментУсловия = ФрагментУсловия(Условие, "");
|
||||
КонецЕсли;
|
||||
ФрагментУсловия = ФрагментУсловия(Условие);
|
||||
|
||||
НачалоСтрокиПоиска = СтрНайти(ВРег(ПредставлениеЗначения), ВРег(СтрокаПоиска));
|
||||
КонецСтрокиПоиска = НачалоСтрокиПоиска + СтрДлина(СтрокаПоиска);
|
||||
@@ -2247,6 +2295,7 @@
|
||||
ФрагментПослеСтрокиПоиска = Сред(ПредставлениеЗначения, КонецСтрокиПоиска);
|
||||
|
||||
Возврат Новый ФорматированнаяСтрока(
|
||||
ПолеПоиска,
|
||||
ФрагментУсловия,
|
||||
ФрагментДоСтрокиПоиска,
|
||||
ФрагментСтрокиПоиска,
|
||||
@@ -2275,10 +2324,12 @@
|
||||
&НаКлиентеНаСервереБезКонтекста
|
||||
Функция ФрагментУсловия(Условие, ОтступДоУсловия = " ", ОтступПослеУсловия = " ")
|
||||
|
||||
УсловиеНормализованное = НРег(СтрЗаменить(Условие, "<", "<"));
|
||||
|
||||
ШаблонФрагментаУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1<span style=""color: СкрытыйВариантОтчетаЦвет"">%2</span>%3'"),
|
||||
ОтступДоУсловия,
|
||||
НРег(Условие),
|
||||
УсловиеНормализованное,
|
||||
ОтступПослеУсловия);
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
@@ -2390,16 +2441,10 @@
|
||||
|
||||
ИспользуемыеПоляПоискаПоТипам = Новый Соответствие;
|
||||
|
||||
Настройки = Отчет.КомпоновщикНастроек.Настройки;
|
||||
|
||||
Коллекции = Новый Массив;
|
||||
Коллекции.Добавить(Настройки.ДоступныеПоляОтбора.Элементы);
|
||||
|
||||
ПоляПараметровДанных = Настройки.ДоступныеПоляПараметровДанных.Элементы;
|
||||
|
||||
Для Каждого ПолеПараметровДанных Из ПоляПараметровДанных Цикл
|
||||
Коллекции.Добавить(ПолеПараметровДанных.Элементы);
|
||||
КонецЦикла;
|
||||
Коллекции.Добавить(ОписаниеПараметровОтчета());
|
||||
Коллекции.Добавить(ОписаниеОтборовОтчета());
|
||||
Коллекции.Добавить(ОписаниеПолейОтчета());
|
||||
|
||||
Для Каждого Коллекция Из Коллекции Цикл
|
||||
|
||||
@@ -2428,6 +2473,116 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
Функция ОписаниеПараметровОтчета()
|
||||
|
||||
ОписаниеПараметров = Новый Массив;
|
||||
|
||||
Настройки = Отчет.КомпоновщикНастроек.Настройки;
|
||||
ПоляПараметровДанных = Настройки.ДоступныеПоляПараметровДанных.Элементы;
|
||||
ПараметрыДанных = Настройки.ПараметрыДанных;
|
||||
|
||||
Для Каждого ПолеПараметровДанных Из ПоляПараметровДанных Цикл
|
||||
|
||||
Для Каждого Элемент Из ПолеПараметровДанных.Элементы Цикл
|
||||
|
||||
СтруктураПоля = СтрРазделить(Элемент.Поле, ".");
|
||||
|
||||
Если СтруктураПоля.Количество() < 2 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПараметра = СтруктураПоля[1];
|
||||
|
||||
Если ПараметрыДанных.Элементы.Найти(ИмяПараметра) = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеПараметра = ПараметрыДанных.ДоступныеПараметры.Элементы.Найти(ИмяПараметра);
|
||||
|
||||
Если ОписаниеПараметра= Неопределено
|
||||
Или Не ОписаниеПараметра.Видимость Тогда
|
||||
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеПараметров.Добавить(Элемент);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ОписаниеПараметров;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ОписаниеОтборовОтчета(Отбор = Неопределено, ОписаниеОтборов = Неопределено)
|
||||
|
||||
Если ОписаниеОтборов = Неопределено Тогда
|
||||
ОписаниеОтборов = Новый Массив;
|
||||
КонецЕсли;
|
||||
|
||||
Настройки = Отчет.КомпоновщикНастроек.Настройки;
|
||||
|
||||
Если Отбор = Неопределено Тогда
|
||||
Отбор = Настройки.Отбор;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из Отбор.Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
|
||||
|
||||
ОписаниеОтборовОтчета(Элемент, ОписаниеОтборов);
|
||||
|
||||
Иначе
|
||||
|
||||
ОписаниеПоля = Настройки.ДоступныеПоляОтбора.НайтиПоле(Элемент.ЛевоеЗначение);
|
||||
|
||||
Если ОписаниеПоля <> Неопределено Тогда
|
||||
ОписаниеОтборов.Добавить(ОписаниеПоля);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ОписаниеОтборов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаСервере
|
||||
Функция ОписаниеПолейОтчета()
|
||||
|
||||
ОписаниеПолей = Новый Массив;
|
||||
|
||||
ИндексСтруктурыОтчета = ВариантыОтчетовСлужебный.ИндексСтруктурыОтчета(ЭтотОбъект);
|
||||
|
||||
ИндексПолейОтчета = ИндексСтруктурыОтчета.Скопировать(, "Поле");
|
||||
ИндексПолейОтчета.Свернуть("Поле");
|
||||
|
||||
ПоляОтчета = ИндексПолейОтчета.ВыгрузитьКолонку("Поле");
|
||||
|
||||
Настройки = Отчет.КомпоновщикНастроек.Настройки;
|
||||
|
||||
Для Каждого ПолеОтчета Из ПоляОтчета Цикл
|
||||
|
||||
ОписаниеПоля = Настройки.ДоступныеПоляВыбора.НайтиПоле(ПолеОтчета);
|
||||
|
||||
Если ОписаниеПоля = Неопределено Тогда
|
||||
ОписаниеПоля = Настройки.ДоступныеПоляГруппировок.НайтиПоле(ПолеОтчета);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеПоля <> Неопределено Тогда
|
||||
ОписаниеПолей.Добавить(ОписаниеПоля);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ОписаниеПолей;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ПрименитьЗначениеУниверсальногоПоиска(ВариантыПоиска)
|
||||
|
||||
@@ -2831,7 +2986,7 @@
|
||||
&НаСервере
|
||||
Функция ГруппировкиОтчетаСУчетомПоляСИерархическойГруппировкой(ИндексСтруктурыОтчета, ПоляСИерархическойГруппировкой, КоличествоУровнейГруппировок)
|
||||
|
||||
ГруппировкиОтчета = ИндексСтруктурыОтчета.Скопировать();
|
||||
ГруппировкиОтчета = ИндексСтруктурыОтчета.Скопировать(); // ТаблицаЗначений
|
||||
|
||||
Индекс = ГруппировкиОтчета.Количество() - 1;
|
||||
|
||||
@@ -2846,6 +3001,10 @@
|
||||
КонецЦикла;
|
||||
|
||||
ГруппировкиОтчета.Свернуть("ПорядокГруппировки, ПредставлениеГруппировки");
|
||||
|
||||
КолонкиГруппировкиОтчета = ГруппировкиОтчета.Колонки; // КоллекцияКолонокТаблицыЗначений
|
||||
КолонкиГруппировкиОтчета.Добавить("Уровень", Новый ОписаниеТипов("Число"));
|
||||
|
||||
ГруппировкиОтчета.Сортировать("ПорядокГруппировки");
|
||||
|
||||
КоличествоУровнейПоляСИерархическойГруппировкой = КоличествоУровнейГруппировок - ГруппировкиОтчета.Количество();
|
||||
@@ -2872,6 +3031,8 @@
|
||||
ДополнительнаяГруппировка = ГруппировкиОтчета.Вставить(ИндексНайденнойГруппировки);
|
||||
ЗаполнитьЗначенияСвойств(ДополнительнаяГруппировка, НайденнаяГруппировка);
|
||||
|
||||
ДополнительнаяГруппировка.Уровень = УровеньПоляСИерархическойГруппировкой;
|
||||
|
||||
ДополнительнаяГруппировка.ПредставлениеГруппировки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ШаблонПредставленияГруппировки,
|
||||
ДополнительнаяГруппировка.ПредставлениеГруппировки,
|
||||
@@ -2883,11 +3044,15 @@
|
||||
|
||||
УровеньПоляСИерархическойГруппировкой = УровеньПоляСИерархическойГруппировкой + 1;
|
||||
|
||||
НайденнаяГруппировка.Уровень = УровеньПоляСИерархическойГруппировкой;
|
||||
|
||||
НайденнаяГруппировка.ПредставлениеГруппировки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ШаблонПредставленияГруппировки,
|
||||
НайденнаяГруппировка.ПредставлениеГруппировки,
|
||||
УровеньПоляСИерархическойГруппировкой);
|
||||
|
||||
ГруппировкиОтчета.Сортировать("ПорядокГруппировки, Уровень");
|
||||
|
||||
Возврат ГруппировкиОтчета;
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
// Нельзя менять данные, полученные из кэша, поэтому копируем структуру настроек для дальнешего заполнения
|
||||
// Нельзя менять данные, полученные из кэша, поэтому копируем структуру настроек для дальнейшего заполнения
|
||||
НастройкаОтборовНаУзле = ОбщегоНазначения.СкопироватьРекурсивно(НастройкаОтборовНаУзлеПоУмолчанию, Ложь);
|
||||
|
||||
Реквизиты = Новый Массив;
|
||||
|
||||
@@ -2290,7 +2290,8 @@
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокОшибок = Истина;
|
||||
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(КоманднаяСтрока, ПараметрыЗапускаПрограммы);
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(ПреобразоватьКоманднуюСтрокуВМассив(КоманднаяСтрока),
|
||||
ПараметрыЗапускаПрограммы);
|
||||
|
||||
ПотокВывода = Результат.ПотокВывода;
|
||||
ПотокОшибок = Результат.ПотокОшибок;
|
||||
@@ -2304,7 +2305,6 @@
|
||||
КонецЕсли;
|
||||
|
||||
Результат = ПарсерВывода(ПотокВывода, Словарь, Фильтр, ТипыСвойств);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
@@ -2464,4 +2464,37 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПреобразоватьКоманднуюСтрокуВМассив(Знач КоманднаяСтрока)
|
||||
|
||||
Результат = Новый Массив;
|
||||
|
||||
ОткрытыеКавычки = Ложь;
|
||||
ДлинаСтроки = СтрДлина(КоманднаяСтрока);
|
||||
НовыйЭлемент = "";
|
||||
|
||||
Для Индекс = 1 По ДлинаСтроки Цикл
|
||||
|
||||
Символ = Сред(КоманднаяСтрока, Индекс, 1);
|
||||
НовыйЭлемент = НовыйЭлемент + Символ;
|
||||
|
||||
Если (Символ = " " И Не ОткрытыеКавычки) Или Индекс = ДлинаСтроки Тогда
|
||||
|
||||
Если Не ПустаяСтрока(НовыйЭлемент) Тогда
|
||||
НовыйЭлемент = СокрЛП(СтрЗаменить(НовыйЭлемент, """", ""));
|
||||
Результат.Добавить(НовыйЭлемент);
|
||||
КонецЕсли;
|
||||
|
||||
НовыйЭлемент = "";
|
||||
Продолжить;
|
||||
|
||||
ИначеЕсли Символ = """" Тогда
|
||||
ОткрытыеКавычки = Не ОткрытыеКавычки;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -654,6 +654,7 @@
|
||||
// Параметры:
|
||||
// ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - родительский объект.
|
||||
// СтрокаПоиска - Строка - текст, отбора в списке домов.
|
||||
// ПорцияПриПоиске - Число - кол-во получаемых вариантов за один запрос.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. КонструкторСпискаДомов
|
||||
@@ -789,6 +790,7 @@
|
||||
// Параметры:
|
||||
// ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - родительский объект.
|
||||
// СтрокаПоиска - Строка - текст, отбора в списке земельных участков.
|
||||
// ПорцияПриПоиске - Число - кол-во получаемых вариантов за один запрос.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - найденные варианты.
|
||||
@@ -860,7 +862,10 @@
|
||||
// Возвращает актуальные данные адресного объекта или ориентира с точностью доя подчиненного (без домов).
|
||||
//
|
||||
// Параметры:
|
||||
// Идентификатор - УникальныйИдентификатор - идентификатор адресного объекта или ориентира.
|
||||
// СведенияОбАдресномОбъекте - Структура:
|
||||
// * ЗагруженныеДанные - Булево - признак, что источник адресных сведений загруженные в программу данные.
|
||||
// * Муниципальный - Булево - признак, что адрес муниципальный.
|
||||
// * Идентификатор - УникальныйИдентификатор - идентификатор адресного объекта или ориентира.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - найденные варианты. Содержит поля:
|
||||
@@ -1419,6 +1424,13 @@
|
||||
КонецФункции
|
||||
|
||||
// Обратная совместимость
|
||||
//
|
||||
// Параметры:
|
||||
// Наименование - Строка
|
||||
// Сокращение - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - краткое написание поселений
|
||||
//
|
||||
Функция КраткоеНаписаниеПоселений(Знач Наименование, Сокращение) Экспорт
|
||||
|
||||
@@ -1628,6 +1640,9 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Проверяет наличие записей о регионах в регистре сведений АдресныеОбъекты и заполняет их в случае отсутствия.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ПроверитьНачальноеЗаполнение() Экспорт
|
||||
|
||||
@@ -1992,9 +2007,9 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается при отмене обработки данных в случае сбоя.
|
||||
//
|
||||
//
|
||||
// Параметры:
|
||||
// Дескриптор - ОбъектXDTO - дескриптор.
|
||||
// Дескриптор - ОбъектXDTO - дескриптор
|
||||
//
|
||||
Процедура ОбработкаДанныхОтменена(Знач Дескриптор) Экспорт
|
||||
|
||||
@@ -7373,7 +7388,7 @@
|
||||
// Выполняет обратное действие для функции УникальныйИдентификаторВДвоичныеДанные.
|
||||
//
|
||||
// Параметры:
|
||||
// ДвоичныеДанные - исходные данные.
|
||||
// ДвоичныеДанные - ДвоичныеДанные - исходные данные.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// УникальныйИдентификатор - результат преобразования.
|
||||
@@ -7406,7 +7421,7 @@
|
||||
// Преобразует строку в ДвоичныеДанные.
|
||||
//
|
||||
// Параметры:
|
||||
// Строка - исходные данные.
|
||||
// Строка - Строка - исходные данные.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДвоичныеДанные - результат преобразования.
|
||||
@@ -7459,7 +7474,10 @@
|
||||
|
||||
#Область ПрочиеСлужебныеПроцедурыИФункции
|
||||
|
||||
// Имя событие для записи в журнал регистрации.
|
||||
// Имя событие для записи в журнал регистрации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - событие журнала регистрации
|
||||
//
|
||||
Функция СобытиеЖурналаРегистрации() Экспорт
|
||||
|
||||
@@ -8049,7 +8067,10 @@
|
||||
КонецФункции
|
||||
|
||||
// Проверяет наличие в конфигурации подсистемы ПолучениеФайловИзИнтернета для определения возможности
|
||||
// обновлений адресного классификатора через интернет.
|
||||
// обновлений адресного классификатора через интернет.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - доступна загрузка адресных сведений из интернет
|
||||
//
|
||||
Функция ДоступнаЗагрузкаАдресныхСведенийИзИнтернет() Экспорт
|
||||
Возврат ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолучениеФайловИзИнтернета");
|
||||
@@ -9341,8 +9362,7 @@
|
||||
// Тип контактной информации, определяющий состав полей контактной информации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - поля контактной информации добавленные к основным полям:
|
||||
// Для типа контактной информации адрес:
|
||||
// Структура - поля контактной информации c типом Адрес добавленные к основным полям:
|
||||
// * ID - Строка - идентификационный код последнего адресного объекта в иерархи адреса.
|
||||
// * AddressType - Строка - установленный пользователем тип адреса(только для адресов РФ).
|
||||
// Варианты: "Муниципальный", "Административно-территориальный".
|
||||
@@ -9759,7 +9779,7 @@
|
||||
|
||||
// Возвращает XPath для дополнительного объекта адресации по умолчанию.
|
||||
//
|
||||
// Параметры;
|
||||
// Параметры:
|
||||
// Уровень - Число - уровень объекта. 90 - дополнительный(Варианты: ГСК, СНТ, ТЕР), 91 - подчиненный, -1 -
|
||||
// Ориентир.
|
||||
//
|
||||
@@ -10135,7 +10155,7 @@
|
||||
|
||||
// Возвращает XPath для номера дополнительного объекта адресации.
|
||||
//
|
||||
// Параметры;
|
||||
// Параметры:
|
||||
// СтрокаЗначения - Строка - искомый тип, например "Дом", "Корпус".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
Для Каждого ТочкаДиаграммыГанта Из СписокТочек Цикл
|
||||
|
||||
РасшифровкаТочки = ТочкаДиаграммыГанта.Расшифровка;
|
||||
Если ТочкаДиаграммыГанта.Значение = НСтр("ru = 'Фоновые задания'") Тогда
|
||||
Если ТочкаДиаграммыГанта.Значение = НСтр("ru = 'Фоновые задания'") Тогда // АПК:1391 Значение точки диаграммы локализуемое.
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
// ВариантОтчетаОснование - СправочникСсылка.ВариантыОтчетов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ВариантыОтчетов.СвойстваВариантОтчетаИзФайла
|
||||
// см. ВариантыОтчетов.СвойстваВариантаОтчетаИзФайла
|
||||
//
|
||||
Функция СвойстваВариантаОтчетаИзФайла(ОписаниеФайла, ВариантОтчетаОснование) Экспорт
|
||||
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
|
||||
#Область ИндексацияРазделовОтчета
|
||||
|
||||
Функция ИндексСтруктурыОтчета(Форма)
|
||||
Функция ИндексСтруктурыОтчета(Форма) Экспорт
|
||||
|
||||
НастройкиОтчета = Форма.НастройкиОтчета;
|
||||
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата;
|
||||
@@ -2084,6 +2084,8 @@
|
||||
|
||||
Если ЗначениеЗаполнено(Значение) Тогда
|
||||
ЗначениеЯчейки.Значение = Значение;
|
||||
Иначе
|
||||
ЗначениеЯчейки.Значение = ДоступныеТипы.ПривестиЗначение(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗначениеЯчейки;
|
||||
|
||||
@@ -156,25 +156,18 @@
|
||||
Элементы = Форма.Элементы;
|
||||
|
||||
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя];
|
||||
ЭтоРасшифровка = (ТипЗнч(Область.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных"));
|
||||
ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
|
||||
И ТипЗнч(Область.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных");
|
||||
|
||||
Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость = (ТипЗнч(СвойстваЗаголовка) = Тип("Структура"))
|
||||
И ТипЗнч(СвойстваЗаголовка.Поле) = Тип("ПолеКомпоновкиДанных");
|
||||
|
||||
Элементы.КонтекстноеМенюОбластиДанных.Видимость = Не Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость
|
||||
И Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
|
||||
И ЭтоРасшифровка;
|
||||
|
||||
Элементы.ГруппаУровниГруппировокКонтекстноеМеню.Видимость = Не ЭтоРасшифровка;
|
||||
|
||||
Если Не ЭтоРасшифровка
|
||||
И (Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость
|
||||
Или Элементы.КонтекстноеМенюОбластиДанных.Видимость) Тогда
|
||||
|
||||
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.Подменю;
|
||||
Иначе
|
||||
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||
КонецЕсли;
|
||||
ОпределитьВариантОтображениеКомандРедактированияТаблицы(Элементы, ЭтоРасшифровка);
|
||||
|
||||
ВариантыОтчетовСлужебныйКлиентСервер.ОпределитьДоступностьДействийКонтекстногоМеню(Форма, СвойстваЗаголовка);
|
||||
|
||||
@@ -509,8 +502,8 @@
|
||||
|
||||
Процедура ОформитьЕще(Форма, Команда, СвойстваЗаголовка = Неопределено, Значение = Неопределено) Экспорт
|
||||
|
||||
Если СвойстваЗаголовка = Неопределено Тогда
|
||||
СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма);
|
||||
Если Не ДействиеДоступно(Форма,, СвойстваЗаголовка) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИспользуемыеНастройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
||||
@@ -560,6 +553,10 @@
|
||||
|
||||
Процедура ПоказатьРасширеннуюНастройкуФильтра(Форма, СвойстваЗаголовка) Экспорт
|
||||
|
||||
Если Не ДействиеДоступно(Форма,, СвойстваЗаголовка) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НастройкиОтчета = Форма.НастройкиОтчета;
|
||||
|
||||
Поле = Форма.Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента
|
||||
@@ -644,7 +641,7 @@
|
||||
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
||||
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
|
||||
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел);
|
||||
КомпоновщикНастроек.РазвернутьАвтоПоля();
|
||||
|
||||
Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки);
|
||||
ОписаниеПоля = ОписаниеПоляОтчета(КомпоновщикНастроек, СвойстваЗаголовка.Поле);
|
||||
@@ -705,14 +702,13 @@
|
||||
|
||||
Если ПолеОтчета = Неопределено Тогда
|
||||
|
||||
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел);
|
||||
КомпоновщикНастроек.РазвернутьАвтоПоля();
|
||||
ПолеОтчета = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ПолеОтчета <> Неопределено Тогда
|
||||
УстановитьЗаголовокПоляОтчета(Заголовок, ПолеОтчета, ОписаниеПоля);
|
||||
УстановитьЗаголовокПоляОтчета(Настройки, ПолеОтчета, ОписаниеПоля, Заголовок);
|
||||
КонецЕсли;
|
||||
|
||||
ОповеститьОЗавершенииКонтекстнойНастройки(Форма, ДействиеКоманды(Команда));
|
||||
@@ -789,13 +785,12 @@
|
||||
|
||||
Процедура ВставитьПоле(КомпоновщикНастроек, Настройки, ВыбранноеПоле, Действие, СвойстваЗаголовка, РолиПолей)
|
||||
|
||||
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
|
||||
КомпоновщикНастроек.РазвернутьАвтоПоля();
|
||||
|
||||
Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки);
|
||||
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел);
|
||||
|
||||
ВставитьПолеВПоляГруппировки(Группировка.ПоляГруппировки, ВыбранноеПоле, СвойстваЗаголовка.Поле, Действие, РолиПолей);
|
||||
ВставитьПолеВГруппировкуРаздела(Группировка, ВыбранноеПоле, СвойстваЗаголовка.Поле, Действие, РолиПолей)
|
||||
ВставитьПолеВГруппировкуРаздела(Группировка, ВыбранноеПоле, СвойстваЗаголовка.Поле, Действие, РолиПолей);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1214,7 +1209,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьЗаголовокПоляОтчета(Заголовок, Поле, ОписаниеПоля)
|
||||
Процедура УстановитьЗаголовокПоляОтчета(Настройки, Поле, ОписаниеПоля, Заголовок)
|
||||
|
||||
Если ОписаниеПоля <> Неопределено
|
||||
И Заголовок = ОписаниеПоля.Заголовок Тогда
|
||||
@@ -1227,6 +1222,12 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Формула = ВариантыОтчетовСлужебныйКлиентСервер.ФормулаПоПутиКДанным(Настройки, Поле.Поле);
|
||||
|
||||
Если ТипЗнч(Формула) = Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных") Тогда
|
||||
Формула.Заголовок = Заголовок;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2110,469 +2111,6 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбновлениеПолейРаздела
|
||||
|
||||
Процедура ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел)
|
||||
|
||||
ГруппировкиРаздела = Новый Массив;
|
||||
|
||||
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
|
||||
|
||||
ГруппировкиРаздела.Добавить(Раздел.Строки);
|
||||
ГруппировкиРаздела.Добавить(Раздел.Колонки);
|
||||
|
||||
Иначе
|
||||
|
||||
ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Раздел);
|
||||
ГруппировкиРаздела.Добавить(Раздел.Структура);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Группировки Из ГруппировкиРаздела Цикл
|
||||
|
||||
Для Каждого Группировка Из Группировки Цикл
|
||||
|
||||
ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка);
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбновитьПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка)
|
||||
|
||||
Если ТипЗнч(Группировка) <> Тип("ГруппировкаКомпоновкиДанных")
|
||||
И ТипЗнч(Группировка) <> Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда
|
||||
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Группировка);
|
||||
КонецЕсли;
|
||||
|
||||
ДобавляемыеПоля = СтандартныеДобавляемыеПоля();
|
||||
ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировки(Настройки, Группировка);
|
||||
|
||||
НайтиПоляГруппировки(ИспользуемыеНастройки, Группировка, ДобавляемыеПоля);
|
||||
НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, ИспользуемыеНастройки, Группировка, Группировка.Выбор, ДобавляемыеПоля);
|
||||
|
||||
Поля = Группировка.Выбор.Элементы;
|
||||
Поля.Очистить();
|
||||
|
||||
СоздатьИерархиюПолейГруппировки(Поля, ДобавляемыеПоля.ИндексГрупп);
|
||||
|
||||
Для Каждого СвойстваПоля Из ДобавляемыеПоля.Свойства Цикл
|
||||
|
||||
СвойстваТекущегоПоля = СвойстваПоля; // см. СвойстваПоля
|
||||
Родитель = СвойстваТекущегоПоля.Родитель; // см. СвойстваПоля
|
||||
|
||||
Если Родитель = Неопределено Тогда
|
||||
|
||||
Если СвойстваТекущегоПоля.Индекс < Поля.Количество() Тогда
|
||||
ПолеОтчета = Поля.Вставить(СвойстваТекущегоПоля.Индекс, Тип("ВыбранноеПолеКомпоновкиДанных"));
|
||||
Иначе
|
||||
ПолеОтчета = Поля.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
|
||||
ГруппаПолейОтчета = ДобавляемыеПоля.ИндексГрупп[Родитель.Идентификатор]; // ГруппаВыбранныхПолейКомпоновкиДанных
|
||||
|
||||
Если СвойстваТекущегоПоля.Индекс < ГруппаПолейОтчета.Элементы.Количество() Тогда
|
||||
ПолеОтчета = ГруппаПолейОтчета.Элементы.Вставить(СвойстваТекущегоПоля.Индекс, Тип("ВыбранноеПолеКомпоновкиДанных"));
|
||||
Иначе
|
||||
ПолеОтчета = ГруппаПолейОтчета.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ПолеОтчета, СвойстваТекущегоПоля);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ПолеОтчета = Поля.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));
|
||||
ПолеОтчета.Использование = Ложь;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Свойства - Массив из Структура
|
||||
// * ИндексПолей - Соответствие
|
||||
// * ИндексГрупп - Соответствие
|
||||
//
|
||||
Функция СтандартныеДобавляемыеПоля()
|
||||
|
||||
ДобавляемыеПоля = Новый Структура;
|
||||
ДобавляемыеПоля.Вставить("Свойства", Новый Массив);
|
||||
ДобавляемыеПоля.Вставить("ИндексПолей", Новый Соответствие);
|
||||
ДобавляемыеПоля.Вставить("ИндексГрупп", Новый Соответствие);
|
||||
|
||||
Возврат ДобавляемыеПоля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура НайтиПоляГруппировки(Настройки, Группировка, ДобавляемыеПоля)
|
||||
|
||||
Если Не ИспользуетсяАвтоПоле(Группировка.Выбор) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПоляГруппировки = Группировка.ПоляГруппировки;
|
||||
|
||||
Для Каждого Элемент Из ПоляГруппировки.Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных")
|
||||
И Элемент.Использование Тогда
|
||||
|
||||
ВыбранноеПолеГруппировки = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.Выбор, Элемент.Поле);
|
||||
ВыбранноеПолеНастроек = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Настройки.Выбор, Элемент.Поле);
|
||||
|
||||
Если ВыбранноеПолеГруппировки = Неопределено
|
||||
И ВыбранноеПолеНастроек = Неопределено Тогда
|
||||
|
||||
ДобавитьПредыдущиеПоляГруппировки(ДобавляемыеПоля, Группировка, Элемент);
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, ПоляГруппировки, Элемент);
|
||||
|
||||
ИначеЕсли ВыбранноеПолеГруппировки = Неопределено
|
||||
И ВыбранноеПолеНастроек <> Неопределено
|
||||
И Не ВыбранноеПолеНастроек.Использование Тогда
|
||||
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, ПоляГруппировки, Элемент);
|
||||
|
||||
ИначеЕсли ВыбранноеПолеНастроек = Неопределено
|
||||
И ВыбранноеПолеГруппировки <> Неопределено
|
||||
И Не ВыбранноеПолеГруппировки.Использование Тогда
|
||||
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, ПоляГруппировки, Элемент);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка, Поля, ДобавляемыеПоля)
|
||||
|
||||
Для Каждого Элемент Из Поля.Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда
|
||||
|
||||
НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Настройки.Выбор, Настройки.Выбор, ДобавляемыеПоля);
|
||||
|
||||
ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
|
||||
НайтиВыбранныеПоляГруппировки(КомпоновщикНастроек, Настройки, Группировка, Элемент, ДобавляемыеПоля);
|
||||
|
||||
ИначеЕсли РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Элемент.Поле) Тогда
|
||||
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.Выбор, Элемент);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Узел, Поля, ДобавляемыеПоля)
|
||||
|
||||
Для Каждого Элемент Из Поля.Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
|
||||
НайтиВыбранныеПоляНастроек(КомпоновщикНастроек, Группировка, Узел, Элемент, ДобавляемыеПоля);
|
||||
|
||||
ИначеЕсли ТипЗнч(Элемент) <> Тип("АвтоВыбранноеПолеКомпоновкиДанных")
|
||||
И РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Элемент.Поле) Тогда
|
||||
|
||||
ПолеОтчета = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.Выбор, Элемент.Поле);
|
||||
|
||||
Если ПолеОтчета = Неопределено Тогда
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, Узел, Элемент);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИспользуемыеНастройкиГруппировки(Настройки, Группировка)
|
||||
|
||||
Если ТипЗнч(Группировка.Родитель) = Тип("НастройкиКомпоновкиДанных") Тогда
|
||||
Возврат Группировка.Родитель;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Настройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИспользуетсяАвтоПоле(Поля)
|
||||
|
||||
Для Каждого Элемент Из Поля.Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных")
|
||||
Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
|
||||
|
||||
Возврат Элемент.Использование;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РазрешеноИспользоватьПолеВГруппировке(КомпоновщикНастроек, Группировка, Поле)
|
||||
|
||||
Элементы = Группировка.ПоляГруппировки.Элементы;
|
||||
ЭтоГруппировкаДетальныхЗаписей = (Элементы.Количество() = 0);
|
||||
|
||||
Если ЭтоГруппировкаДетальныхЗаписей
|
||||
И (ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Поле)
|
||||
Или Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеИспользуетсяВРодительскихГруппировкахОтчета(Группировка.Родитель, Поле)) Тогда
|
||||
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеПоля = ОписаниеПоляОтчета(КомпоновщикНастроек, Поле);
|
||||
|
||||
Если ОписаниеПоля = Неопределено Тогда
|
||||
ОписаниеПоля = Группировка.ПоляГруппировки.ДоступныеПоляПолейГруппировок.НайтиПоле(Поле);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОписаниеПоля <> Неопределено
|
||||
И ОписаниеПоля.Ресурс Тогда
|
||||
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из Элементы Цикл
|
||||
|
||||
Если ТипЗнч(Элемент) = Тип("ПолеГруппировкиКомпоновкиДанных")
|
||||
И Элемент.Использование
|
||||
И (Элемент.Поле = Поле
|
||||
Или СтрНайти(Строка(Элемент.Поле), Строка(Поле)) > 0
|
||||
Или СтрНайти(Строка(Поле), Строка(Элемент.Поле)) > 0) Тогда
|
||||
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьПредыдущиеПоляГруппировки(ДобавляемыеПоля, Группировка, ТекущееПоле)
|
||||
|
||||
ПоляГруппировки = Группировка.ПоляГруппировки.Элементы;
|
||||
ИндексТекущегоПоля = ПоляГруппировки.Индекс(ТекущееПоле);
|
||||
|
||||
Если ИндексТекущегоПоля = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Индекс = 0 По ИндексТекущегоПоля - 1 Цикл
|
||||
|
||||
Поле = ПоляГруппировки[Индекс];
|
||||
|
||||
Если ДобавляемыеПоля.ИндексПолей[Поле.Поле] = Неопределено Тогда
|
||||
ДобавитьПолеГруппировки(ДобавляемыеПоля, Группировка.ПоляГруппировки, Поле);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПолеГруппировки(ДобавляемыеПоля, Узел, Поле)
|
||||
|
||||
Если ДобавляемыеПоля.ИндексПолей[Поле.Поле] <> Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваПоля = СвойстваПоля(Поле);
|
||||
СвойстваПоля.Идентификатор = Узел.ПолучитьИдентификаторПоОбъекту(Поле);
|
||||
|
||||
Если СвойстваПоля.Родитель = Неопределено Тогда
|
||||
СвойстваПоля.Индекс = Узел.Элементы.Индекс(Поле);
|
||||
Иначе
|
||||
СвойстваПоля.Индекс = Поле.Родитель.Элементы.Индекс(Поле);
|
||||
КонецЕсли;
|
||||
|
||||
ДобавляемыеПоля.Свойства.Добавить(СвойстваПоля);
|
||||
ДобавляемыеПоля.ИндексПолей.Вставить(Поле.Поле, СвойстваПоля);
|
||||
|
||||
ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, СвойстваПоля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Поле - ВыбранноеПолеКомпоновкиДанных
|
||||
// - АвтоВыбранноеПолеКомпоновкиДанных
|
||||
// - ГруппаВыбранныхПолейКомпоновкиДанных
|
||||
// - ПолеГруппировкиКомпоновкиДанных
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Тип - Тип
|
||||
// * Индекс - Число
|
||||
// * Идентификатор - ИдентификаторКомпоновкиДанных
|
||||
// * РежимОтображения - РежимОтображенияЭлементаНастройкиКомпоновкиДанных
|
||||
// * Поле - ПолеКомпоновкиДанных
|
||||
// * Использование - Булево
|
||||
// * Заголовок - Строка
|
||||
// * Родитель - Структура
|
||||
//
|
||||
Функция СвойстваПоля(Поле)
|
||||
|
||||
СвойстваПоля = Новый Структура;
|
||||
СвойстваПоля.Вставить("Заголовок", "");
|
||||
СвойстваПоля.Вставить("Использование", Ложь);
|
||||
СвойстваПоля.Вставить("Поле", Неопределено);
|
||||
СвойстваПоля.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
|
||||
СвойстваПоля.Вставить("Родитель", Неопределено);
|
||||
СвойстваПоля.Вставить("Идентификатор", Неопределено);
|
||||
|
||||
ЗаполнитьЗначенияСвойств(СвойстваПоля, Поле);
|
||||
|
||||
СвойстваПоля.Вставить("Индекс", -1);
|
||||
СвойстваПоля.Вставить("Тип", ТипЗнч(Поле));
|
||||
|
||||
Возврат СвойстваПоля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, Элемент, Группа = Неопределено)
|
||||
|
||||
Если Элемент.Тип = Тип("ГруппаВыбранныхПолейКомпоновкиДанных")
|
||||
Или Элемент.Тип = Тип("ВыбранноеПолеКомпоновкиДанных")
|
||||
И ТипЗнч(Элемент.Родитель) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
|
||||
Группа = Элемент.Родитель;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Группа) <> Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Идентификатор = Узел.ПолучитьИдентификаторПоОбъекту(Группа);
|
||||
СвойстваГруппы = ДобавляемыеПоля.ИндексГрупп[Идентификатор];
|
||||
|
||||
Если СвойстваГруппы = Неопределено Тогда
|
||||
|
||||
СвойстваГруппы = СвойстваГруппыПолей(Группа);
|
||||
СвойстваГруппы.Идентификатор = Идентификатор;
|
||||
|
||||
ДобавляемыеПоля.ИндексГрупп.Вставить(Идентификатор, СвойстваГруппы);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваГруппы.Элементы.Добавить(Элемент);
|
||||
Элемент.Родитель = СвойстваГруппы;
|
||||
|
||||
Если ТипЗнч(Группа.Родитель) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
ДобавитьГруппуПолей(ДобавляемыеПоля, Узел, СвойстваГруппы);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Группа - ГруппаВыбранныхПолейКомпоновкиДанных
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Заголовок - Строка
|
||||
// * Использование - Булево
|
||||
// * Поле - Неопределено
|
||||
// * Расположение - РасположениеПоляКомпоновкиДанных
|
||||
// * РежимОтображения - РежимОтображенияЭлементаНастройкиКомпоновкиДанных
|
||||
// * Родитель - Структура
|
||||
// * Идентификатор - ИдентификаторКомпоновкиДанных
|
||||
// * Элементы - Массив
|
||||
// * Тип - Тип
|
||||
//
|
||||
Функция СвойстваГруппыПолей(Группа)
|
||||
|
||||
СвойстваГруппы = Новый Структура;
|
||||
СвойстваГруппы.Вставить("Заголовок", "");
|
||||
СвойстваГруппы.Вставить("Использование", Ложь);
|
||||
СвойстваГруппы.Вставить("Поле", Неопределено);
|
||||
СвойстваГруппы.Вставить("Расположение", РасположениеПоляКомпоновкиДанных.Авто);
|
||||
СвойстваГруппы.Вставить("РежимОтображения", РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто);
|
||||
СвойстваГруппы.Вставить("Родитель", Неопределено);
|
||||
СвойстваГруппы.Вставить("Идентификатор", Неопределено);
|
||||
|
||||
ЗаполнитьЗначенияСвойств(СвойстваГруппы, Группа);
|
||||
|
||||
СвойстваГруппы.Вставить("Элементы", Новый Массив);
|
||||
СвойстваГруппы.Вставить("Тип", ТипЗнч(Группа));
|
||||
|
||||
Возврат СвойстваГруппы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// Поля - КоллекцияВыбранныхПолейКомпоновкиДанных
|
||||
// ИндексГрупп - Соответствие из КлючИЗначение:
|
||||
// * Ключ - ИдентификаторКомпоновкиДанных
|
||||
// * Значение - см. СвойстваГруппыПолей
|
||||
//
|
||||
Процедура СоздатьИерархиюПолейГруппировки(Поля, ИндексГрупп)
|
||||
|
||||
СоздатьОсновныеГруппыПолейГруппировки(Поля, ИндексГрупп);
|
||||
|
||||
Для Каждого Индекс Из ИндексГрупп Цикл
|
||||
|
||||
СвойстваГруппы = Индекс.Значение; // см. СвойстваГруппыПолей
|
||||
|
||||
Если ТипЗнч(СвойстваГруппы) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваРодителяГруппы = СвойстваГруппы.Родитель; // см. СвойстваГруппыПолей
|
||||
|
||||
Если СвойстваРодителяГруппы <> Неопределено Тогда
|
||||
|
||||
Родитель = ИндексГрупп[СвойстваРодителяГруппы.Идентификатор]; // ВыбранныеПоляКомпоновкиДанных
|
||||
|
||||
Группа = Родитель.Элементы.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
|
||||
ЗаполнитьЗначенияСвойств(Группа, СвойстваГруппы);
|
||||
|
||||
ИндексГрупп.Вставить(Индекс.Ключ, Группа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьОсновныеГруппыПолейГруппировки(Поля, ИндексГрупп)
|
||||
|
||||
Для Каждого Индекс Из ИндексГрупп Цикл
|
||||
|
||||
СвойстваГруппы = Индекс.Значение; // см.
|
||||
|
||||
Если ТипЗнч(СвойстваГруппы) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если СвойстваГруппы.Родитель = Неопределено Тогда
|
||||
|
||||
Группа = Поля.Добавить(Тип("ГруппаВыбранныхПолейКомпоновкиДанных"));
|
||||
ЗаполнитьЗначенияСвойств(Группа, СвойстваГруппы);
|
||||
|
||||
ИндексГрупп.Вставить(Индекс.Ключ, Группа);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ВыборПоля
|
||||
|
||||
Процедура ВыбратьПолеОтчета(Форма, Действие, ИмяКоллекции, Обработчик = Неопределено,
|
||||
@@ -2711,9 +2249,7 @@
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не СвойстваЗаголовка.Ресурс
|
||||
И ПоляОтчета.НайтиПоЗначению("Еще") = Неопределено Тогда
|
||||
|
||||
Если ПоляОтчета.НайтиПоЗначению("Еще") = Неопределено Тогда
|
||||
ПоляОтчета.Добавить("Еще", НСтр("ru = 'Еще...'"));
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2947,10 +2483,9 @@
|
||||
|
||||
КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма);
|
||||
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
||||
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
|
||||
Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки);
|
||||
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел);
|
||||
КомпоновщикНастроек.РазвернутьАвтоПоля();
|
||||
|
||||
Поля = Группировка.Выбор;
|
||||
ТекущееПоле = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Поля, СвойстваЗаголовка.Поле);
|
||||
@@ -2988,7 +2523,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПереместитьПолеВертикально(Форма, Команда)
|
||||
Процедура ПереместитьПолеВертикально(Форма, Команда, Ответ = Неопределено)
|
||||
|
||||
Если Не ДействиеДоступно(Форма, Команда) Тогда
|
||||
Возврат;
|
||||
@@ -2998,12 +2533,9 @@
|
||||
|
||||
КомпоновщикНастроек = КомпоновщикНастроекОтчета(Форма);
|
||||
Настройки = ИспользуемыеНастройки(Форма, СвойстваЗаголовка.ИдентификаторНастроек);
|
||||
Раздел = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
|
||||
Группировка = Настройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторГруппировки);
|
||||
|
||||
Если ДоступноОбновлениеПолейРаздела(Группировка, Команда) Тогда
|
||||
ОбновитьПоляРаздела(КомпоновщикНастроек, Настройки, Раздел);
|
||||
КонецЕсли;
|
||||
КомпоновщикНастроек.РазвернутьАвтоПоля();
|
||||
|
||||
ПолеГруппировки = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.ПоляГруппировки, СвойстваЗаголовка.Поле);
|
||||
ВыбранноеПоле = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(Группировка.Выбор, СвойстваЗаголовка.Поле);
|
||||
@@ -3028,7 +2560,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
Поля = СоседняяГруппировка.Выбор;
|
||||
ИндексПоля = ИндексВыбранногоПоля(ИсходныйИндексПоля, Поля, СвойстваЗаголовка.Поле);
|
||||
ПараметрыПеремещения = Новый Структура("Форма, Команда, Ответ", Форма, Команда, Ответ);
|
||||
ИндексПоля = ИндексВыбранногоПоля(ИсходныйИндексПоля, Поля, СвойстваЗаголовка.Поле, ПараметрыПеремещения);
|
||||
|
||||
Если ИндексПоля = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НовоеПоле = Поля.Элементы.Вставить(ИндексПоля, Тип("ВыбранноеПолеКомпоновкиДанных"));
|
||||
|
||||
ЗаполнитьЗначенияСвойств(НовоеПоле, ?(ВыбранноеПоле = Неопределено, ПолеГруппировки, ВыбранноеПоле));
|
||||
@@ -3056,22 +2594,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ДоступноОбновлениеПолейРаздела(Группировка, Команда)
|
||||
|
||||
КоличествоПолейГруппировки = Группировка.ПоляГруппировки.Элементы.Количество();
|
||||
|
||||
ВыбранныеПоля = Группировка.Выбор.Элементы;
|
||||
КоличествоВыбранныхПолей = ВыбранныеПоля.Количество();
|
||||
|
||||
ЭтоАвтоПоле = КоличествоВыбранныхПолей = 1
|
||||
И ТипЗнч(ВыбранныеПоля[0]) = Тип("АвтоВыбранноеПолеКомпоновкиДанных");
|
||||
|
||||
Возврат ДействиеКоманды(Команда) <> "ПереместитьПолеВыше"
|
||||
Или КоличествоПолейГруппировки = 1
|
||||
Или КоличествоВыбранныхПолей > 0 И Не ЭтоАвтоПоле;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СоседняяГруппировка(Форма, Команда, Настройки, ПорядокГруппировки)
|
||||
|
||||
СоседняяГруппировка = Неопределено;
|
||||
@@ -3099,14 +2621,35 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИндексВыбранногоПоля(ИсходныйИндексПоля, КонечнаяКоллекцияПолей, Поле)
|
||||
Функция ИндексВыбранногоПоля(ИсходныйИндексПоля, КонечнаяКоллекцияПолей, Поле, ПараметрыПеремещения)
|
||||
|
||||
Граница = КонечнаяКоллекцияПолей.Элементы.Количество();
|
||||
|
||||
НовоеПоле = ВариантыОтчетовСлужебныйКлиентСервер.ПолеОтчета(КонечнаяКоллекцияПолей, Поле);
|
||||
ДоступноеПоле = КонечнаяКоллекцияПолей.ДоступныеПоляВыбора.НайтиПоле(Поле);
|
||||
|
||||
Если НовоеПоле <> Неопределено Тогда
|
||||
КонечнаяКоллекцияПолей.Элементы.Удалить(НовоеПоле);
|
||||
|
||||
Если ПараметрыПеремещения.Ответ = Неопределено Тогда
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ПродолжитьПеремещениеПоляВертикально", ЭтотОбъект, ПараметрыПеремещения);
|
||||
|
||||
ШаблонТекстаВопроса = НСтр("ru = 'Группировка уже содержит подобное поле - %1.
|
||||
|Удалить поле?'");
|
||||
|
||||
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
ШаблонТекстаВопроса, ?(ДоступноеПоле = Неопределено, Поле, ДоступноеПоле.Заголовок));
|
||||
|
||||
ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена,, КодВозвратаДиалога.Да);
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
ИначеЕсли ПараметрыПеремещения.Ответ = КодВозвратаДиалога.Да Тогда
|
||||
|
||||
КонечнаяКоллекцияПолей.Элементы.Удалить(НовоеПоле);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из КонечнаяКоллекцияПолей.Элементы Цикл
|
||||
@@ -3133,6 +2676,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПродолжитьПеремещениеПоляВертикально(Ответ, ПараметрыПеремещения) Экспорт
|
||||
|
||||
Если Ответ = КодВозвратаДиалога.Да
|
||||
Или Ответ = КодВозвратаДиалога.Нет Тогда
|
||||
|
||||
ПереместитьПолеВертикально(ПараметрыПеремещения.Форма, ПараметрыПеремещения.Команда, Ответ);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -3202,6 +2756,23 @@
|
||||
|
||||
#Область КонтекстноеМеню
|
||||
|
||||
Процедура ОпределитьВариантОтображениеКомандРедактированияТаблицы(Элементы, ЭтоРасшифровка)
|
||||
|
||||
#Если Не ВебКлиент Тогда
|
||||
|
||||
Если Не ЭтоРасшифровка
|
||||
И (Элементы.КонтекстноеМенюОбластиЗаголовка.Видимость
|
||||
Или Элементы.КонтекстноеМенюОбластиДанных.Видимость) Тогда
|
||||
|
||||
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.Подменю;
|
||||
Иначе
|
||||
Элементы.КонтекстноеМенюОбластиОбщееРедактирование.Вид = ВидГруппыФормы.ГруппаКнопок;
|
||||
КонецЕсли;
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КонтекстноеМенюОбластиЗаголовка()
|
||||
|
||||
КонтекстноеМеню = Новый СписокЗначений;
|
||||
@@ -3714,9 +3285,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДействиеДоступно(Форма, Команда = Неопределено)
|
||||
Функция ДействиеДоступно(Форма, Команда = Неопределено, СвойстваЗаголовка = Неопределено)
|
||||
|
||||
Если СвойстваЗаголовка = Неопределено Тогда
|
||||
СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма);
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваЗаголовка = СвойстваЗаголовкаОтчета(Форма);
|
||||
ДействиеКоманды = ДействиеКоманды(Команда);
|
||||
|
||||
Если ТипЗнч(СвойстваЗаголовка) <> Тип("Структура")
|
||||
@@ -3799,9 +3373,11 @@
|
||||
Формула = Формулы.Добавить(Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных"));
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьСвойстваФормулы(Формула, ОписаниеФормулы);
|
||||
ДополнительныеПараметры = Новый Структура("КоллекцияПолей, Формула", КоллекцияПолей, Формула);
|
||||
УстановитьСвойстваФормулы(ОписаниеФормулы, ДополнительныеПараметры);
|
||||
|
||||
ОписаниеФормулы = КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным));
|
||||
УстановитьВыражениеИтоговыхЗаписей(Формула, ОписаниеФормулы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -3819,7 +3395,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ИзменитьФормулу(Форма, Настройки, ПутьКДанным, ИмяКоллекции = "ДоступныеПоляВыбора", ОбработатьВФорме = Ложь) Экспорт
|
||||
Процедура ИзменитьФормулу(Форма, Настройки, ПутьКДанным, ИмяКоллекции = "ДоступныеПоляВыбора") Экспорт
|
||||
|
||||
Формула = ВариантыОтчетовСлужебныйКлиентСервер.ФормулаПоПутиКДанным(Настройки, ПутьКДанным);
|
||||
|
||||
@@ -3829,14 +3405,26 @@
|
||||
ПараметрыРедактированияФормулы.Формула = Формула.ПолучитьВыражениеДетальныхЗаписей();
|
||||
ПараметрыРедактированияФормулы.Наименование = Формула.Заголовок;
|
||||
|
||||
Модуль = ?(ОбработатьВФорме, Форма, ЭтотОбъект);
|
||||
Обработчик = Новый ОписаниеОповещения("ПослеИзмененияФормулы", Модуль, Формула);
|
||||
ДополнительныеПараметры = Новый Структура();
|
||||
ДополнительныеПараметры.Вставить("КоллекцияПолей", Настройки.ДоступныеПоляВыбора);
|
||||
ДополнительныеПараметры.Вставить("Формула", Формула);
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ПослеИзмененияФормулы", Форма, ДополнительныеПараметры);
|
||||
КонструкторФормулКлиент.НачатьРедактированиеФормулы(ПараметрыРедактированияФормулы, Обработчик);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеИзмененияФормулы(ОписаниеФормулы, Формула) Экспорт
|
||||
// Параметры:
|
||||
// ОписаниеФормулы - ДоступноеПолеКомпоновкиДанных
|
||||
// - Структура:
|
||||
// * Формула - Строка
|
||||
// * ПредставлениеФормулы - Строка
|
||||
// * Наименование - Строка
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * Формула - ПользовательскоеПолеВыражениеКомпоновкиДанных
|
||||
// * КоллекцияПолей - ДоступныеПоляКомпоновкиДанных
|
||||
//
|
||||
Процедура ПослеИзмененияФормулы(ОписаниеФормулы, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ТипЗнч(ОписаниеФормулы) <> Тип("Структура")
|
||||
Или Не ОписаниеФормулы.Свойство("Формула") Тогда
|
||||
@@ -3844,10 +3432,19 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьСвойстваФормулы(Формула, ОписаниеФормулы);
|
||||
УстановитьСвойстваФормулы(ОписаниеФормулы, ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Образец - ПользовательскоеПолеВыражениеКомпоновкиДанных
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Формула - Строка
|
||||
// * ПредставлениеФормулы - Строка
|
||||
// * Наименование - Строка
|
||||
//
|
||||
Функция ОписаниеФормулыПоОбразцу(Образец)
|
||||
|
||||
ОписаниеФормулы = Новый Структура;
|
||||
@@ -3859,18 +3456,128 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьСвойстваФормулы(Формула, ОписаниеФормулы)
|
||||
// Параметры:
|
||||
// ОписаниеФормулы - ДоступноеПолеКомпоновкиДанных
|
||||
// - Структура:
|
||||
// * Формула - Строка
|
||||
// * ПредставлениеФормулы - Строка
|
||||
// * Наименование - Строка
|
||||
// ДополнительныеПараметры - Структура:
|
||||
// * Формула - ПользовательскоеПолеВыражениеКомпоновкиДанных
|
||||
// * КоллекцияПолей - ДоступныеПоляКомпоновкиДанных
|
||||
//
|
||||
Процедура УстановитьСвойстваФормулы(ОписаниеФормулы, ДополнительныеПараметры)
|
||||
|
||||
Выражение = СокрЛП(ОписаниеФормулы.Формула);
|
||||
ПредставлениеВыражения = СокрЛП(ОписаниеФормулы.ПредставлениеФормулы);
|
||||
Заголовок = СокрЛП(ОписаниеФормулы.Наименование);
|
||||
|
||||
Формула = ДополнительныеПараметры.Формула;
|
||||
Формула.УстановитьВыражениеДетальныхЗаписей(Выражение);
|
||||
Формула.УстановитьПредставлениеВыражений(ПредставлениеВыражения, "");
|
||||
Формула.Заголовок = ?(ЗначениеЗаполнено(Заголовок), Заголовок, ПредставлениеВыражения);
|
||||
|
||||
ОписаниеФормулы = ДополнительныеПараметры.КоллекцияПолей.НайтиПоле(Новый ПолеКомпоновкиДанных(Формула.ПутьКДанным));
|
||||
УстановитьВыражениеИтоговыхЗаписей(Формула, ОписаниеФормулы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьВыражениеИтоговыхЗаписей(Формула, ОписаниеФормулы)
|
||||
|
||||
ВыражениеДетальныхЗаписей = Формула.ПолучитьВыражениеДетальныхЗаписей();
|
||||
ВыражениеИтоговыхЗаписей = Формула.ПолучитьВыражениеИтоговыхЗаписей();
|
||||
|
||||
Если ОписаниеФормулы = Неопределено
|
||||
Или ОписаниеФормулы.Тип.Типы().Количество() > 1
|
||||
Или Не ОписаниеФормулы.Тип.СодержитТип(Тип("Число")) Тогда
|
||||
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
|
||||
ВыражениеИтоговыхЗаписей = ВыражениеИтоговыхЗаписей(ВыражениеДетальныхЗаписей);
|
||||
Формула.УстановитьВыражения(ВыражениеДетальныхЗаписей, ВыражениеИтоговыхЗаписей);
|
||||
|
||||
Исключение
|
||||
|
||||
ВыражениеИтоговыхЗаписей = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
"Сумма(%1)", ВыражениеДетальныхЗаписей);
|
||||
|
||||
Формула.УстановитьВыражения(ВыражениеДетальныхЗаписей, ВыражениеИтоговыхЗаписей);
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ВыражениеИтоговыхЗаписей(Знач Выражение)
|
||||
|
||||
ОписаниеВыражения = Новый Массив;
|
||||
|
||||
АрифметическиеОператоры = "+-*/%";
|
||||
КоличествоСимволов = СтрДлина(Выражение);
|
||||
|
||||
Для НомерСимвола = 1 По КоличествоСимволов Цикл
|
||||
|
||||
Если КоличествоСимволов = 0 Тогда
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Символ = Сред(Выражение, НомерСимвола, 1);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Символ) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если Символ = "(" Тогда
|
||||
|
||||
ОписаниеВыражения.Добавить(Символ);
|
||||
|
||||
Выражение = СокрЛП(Сред(Выражение, НомерСимвола + 1));
|
||||
|
||||
НомерСимвола = 0;
|
||||
КоличествоСимволов = СтрДлина(Выражение);
|
||||
|
||||
ИначеЕсли СтрНайти(АрифметическиеОператоры, Символ) > 0 Тогда
|
||||
|
||||
Операнд = СокрЛП(Сред(Выражение, 1, НомерСимвола - 1));
|
||||
|
||||
Если ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Операнд) Тогда
|
||||
ВложенноеВыражение = Операнд;
|
||||
Иначе
|
||||
ВложенноеВыражение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Сумма(%1)", Операнд);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеВыражения.Добавить(ВложенноеВыражение);
|
||||
ОписаниеВыражения.Добавить(Символ);
|
||||
|
||||
Выражение = СокрЛП(Сред(Выражение, НомерСимвола + 1));
|
||||
|
||||
НомерСимвола = 0;
|
||||
КоличествоСимволов = СтрДлина(Выражение);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначенияКлиентСервер.ЭтоЧисло(Выражение) Тогда
|
||||
ВложенноеВыражение = Выражение;
|
||||
Иначе
|
||||
ВложенноеВыражение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Сумма(%1)", Выражение);
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеВыражения.Добавить(ВложенноеВыражение);
|
||||
|
||||
ВыражениеИтоговыхЗаписей = "";
|
||||
|
||||
Для Каждого Элемент Из ОписаниеВыражения Цикл
|
||||
ВыражениеИтоговыхЗаписей = ВыражениеИтоговыхЗаписей + " " + Элемент;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат СокрЛП(ВыражениеИтоговыхЗаписей);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПараметрыСохраненияВариантаОтчетаВФайл(Форма) Экспорт
|
||||
|
||||
ПараметрыСохранения = Новый Структура();
|
||||
|
||||
@@ -237,6 +237,7 @@
|
||||
ИначеЕсли Элемент.ЛевоеЗначение = Поле Тогда
|
||||
|
||||
Фильтр = Элемент;
|
||||
Прервать;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -368,6 +368,7 @@
|
||||
Если НЕ МенеджерЗаписи.Выбран() Тогда
|
||||
|
||||
// Сценарий: открыли карточку предупреждения, а параллельно поправили проблему
|
||||
ОтменитьТранзакцию();
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
@@ -1123,7 +1124,7 @@
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| ТИПЗНАЧЕНИЯ(ВерсииОбъектов.Объект) КАК ТипОбъекта,
|
||||
| СУММА(1) КАК Количество
|
||||
| КОЛИЧЕСТВО(1) КАК Количество
|
||||
|ИЗ
|
||||
| РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
|
||||
|
|
||||
|
||||
@@ -489,14 +489,14 @@
|
||||
// Параметры:
|
||||
// Сообщение - см. ШаблоныСообщенийСлужебный.СформироватьСообщение
|
||||
// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, с которой будет отправлено письмо.
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Отправлено - Булево - признак того, что письмо отправлено.
|
||||
// * ОписаниеОшибки - Строка - содержит описание ошибки, в случае если письмо отправить не удалось.
|
||||
// ОтправитьСразу - Булево - если Ложь, то письмо будет помещено в папку Исходящих и отправлено при общей отправке писем.
|
||||
//
|
||||
Функция СоздатьПисьмо(Сообщение, УчетнаяЗапись) Экспорт
|
||||
// Возвращаемое значение:
|
||||
// см. РезультатОтправкиПисьма
|
||||
//
|
||||
Функция СоздатьПисьмо(Сообщение, УчетнаяЗапись, ОтправитьСразу = Истина) Экспорт
|
||||
|
||||
РезультатОтправкиПисьма = Новый Структура("Отправлено, ОписаниеОшибки", Ложь);
|
||||
РезультатОтправкиПисьма = РезультатОтправкиПисьма();
|
||||
|
||||
ПисьмоHTML = (Сообщение.ДополнительныеПараметры.ФорматПисьма = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML);
|
||||
|
||||
@@ -632,6 +632,12 @@
|
||||
Возврат РезультатОтправкиПисьма;
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
РезультатОтправкиПисьма.СсылкаНаПисьмо = Письмо.Ссылка;
|
||||
|
||||
Если Не ОтправитьСразу Тогда
|
||||
Возврат РезультатОтправкиПисьма;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ИдентификаторПисьма = ВыполнитьОтправкуПисьма(Письмо);
|
||||
@@ -650,7 +656,7 @@
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
Если НЕ Письмо.УдалятьПослеОтправки Тогда
|
||||
Если Не Письмо.УдалятьПослеОтправки Тогда
|
||||
|
||||
Попытка
|
||||
|
||||
@@ -671,7 +677,7 @@
|
||||
УровеньЖурналаРегистрации.Ошибка,, Письмо,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаСообщения, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)));
|
||||
|
||||
РезультатОтправкиПисьма.Отправлено = Истина;
|
||||
РезультатОтправкиПисьма.Отправлено = Ложь;
|
||||
РезультатОтправкиПисьма.ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекстаСообщения, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
Возврат РезультатОтправкиПисьма;
|
||||
|
||||
@@ -1986,7 +1992,7 @@
|
||||
Продолжить;
|
||||
Иначе
|
||||
ТекстКВозврату = ТекстКВозврату + "
|
||||
|ИЛИ КонтактыВзаимодействия.%ИмяПоля% ССЫЛКА Справочник." + ЭлементМассиваОписания.Имя;
|
||||
|ИЛИ КонтактыВзаимодействия.%ИмяПоля% ССЫЛКА Справочник." + ЭлементМассиваОписания.Имя; // @query-part
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@@ -3465,10 +3471,10 @@
|
||||
РезультатЗапросаАдресаУведомленияОПрочтении = РезультатЗапроса[4]; // РезультатЗапроса
|
||||
РезультатЗапросаВложения = РезультатЗапроса[5]; // РезультатЗапроса
|
||||
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаПолучатели.Выбрать(), "Получатели");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаКопии.Выбрать(), "Копии");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаОбратныйАдрес.Выбрать(), "ОбратныйАдрес");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаАдресаУведомленияОПрочтении.Выбрать(), "АдресаУведомленияОПрочтении");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.Получатели, РезультатЗапросаПолучатели.Выбрать());
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.Копии, РезультатЗапросаКопии.Выбрать());
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.ОбратныйАдрес, РезультатЗапросаОбратныйАдрес.Выбрать());
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.АдресаУведомленияОПрочтении, РезультатЗапросаАдресаУведомленияОПрочтении.Выбрать());
|
||||
ДобавитьВложенияПисьмаВПочтовоеСообщение(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаВложения.Выбрать());
|
||||
|
||||
СтруктураВозврата.ИнтернетПочтовоеСообщение = ОбъектИнтернетПочтовоеСообщение;
|
||||
@@ -3612,9 +3618,9 @@
|
||||
РезультатЗапросаКопии = РезультатЗапроса[3]; // РезультатЗапроса
|
||||
РезультатЗапросаВложения = РезультатЗапроса[5]; // РезультатЗапроса
|
||||
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаПолучатели.Выбрать(), "Получатели");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаОбратныйАдрес.Выбрать(), "ОбратныйАдрес");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаКопии.Выбрать(), "Копии");
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.Получатели, РезультатЗапросаПолучатели.Выбрать());
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.ОбратныйАдрес, РезультатЗапросаОбратныйАдрес.Выбрать());
|
||||
ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ОбъектИнтернетПочтовоеСообщение.Копии, РезультатЗапросаКопии.Выбрать());
|
||||
ДобавитьВложенияПисьмаВПочтовоеСообщение(ОбъектИнтернетПочтовоеСообщение, РезультатЗапросаВложения.Выбрать());
|
||||
|
||||
СтруктураВозврата.ИнтернетПочтовоеСообщение = ОбъектИнтернетПочтовоеСообщение;
|
||||
@@ -3635,20 +3641,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(Сообщение, Выборка, ИмяТаблицы)
|
||||
Процедура ДобавитьПолучателейВПочтовоеСообщениеПоВыборке(ТаблицаАдресатов, Выборка)
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
ДобавитьПолучателяВПочтовоеСообщение(Сообщение, ИмяТаблицы, Выборка.Адрес, Выборка.Представление)
|
||||
ДобавитьПолучателяВПочтовоеСообщение(ТаблицаАдресатов, Выборка.Адрес, Выборка.Представление)
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьПолучателяВПочтовоеСообщение(Сообщение, ИмяТаблицы, Адрес, Представление)
|
||||
Процедура ДобавитьПолучателяВПочтовоеСообщение(ТаблицаАдресатов, Адрес, Представление)
|
||||
|
||||
ТаблицаАдресов = Сообщение[ИмяТаблицы]; // ИнтернетПочтовыеАдреса
|
||||
ПолучательПисьма = ТаблицаАдресов.Добавить(Адрес);
|
||||
ПолучательПисьма = ТаблицаАдресатов.Добавить(Адрес);
|
||||
ПолучательПисьма.ОтображаемоеИмя = Представление;
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -7869,10 +7874,10 @@
|
||||
|
||||
Значение = Статус.Значение;
|
||||
|
||||
НоваяКоманда = Форма.Команды.Добавить("УстановитьОтборСтатус_" + Значение);
|
||||
НоваяКоманда = Форма.Команды.Добавить("УстановитьОтборСтатус" + "_" + Значение);
|
||||
НоваяКоманда.Действие = "Подключаемый_ИзменитьОтборСтатус";
|
||||
|
||||
ЭлементКнопкаПодменю = Форма.Элементы.Добавить("УстановитьОтборСтатус_" + Значение, Тип("КнопкаФормы"),
|
||||
ЭлементКнопкаПодменю = Форма.Элементы.Добавить("УстановитьОтборСтатус" + "_" + Значение, Тип("КнопкаФормы"),
|
||||
ГруппаПодменю);
|
||||
ЭлементКнопкаПодменю.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
|
||||
ЭлементКнопкаПодменю.ИмяКоманды = НоваяКоманда.Имя;
|
||||
@@ -7895,17 +7900,17 @@
|
||||
|
||||
Значение = Отбор.Значение;
|
||||
|
||||
ИмяКоманды = "УстановитьОтборТипВзаимодействия_" + Значение;
|
||||
ИмяКоманды = "УстановитьОтборТипВзаимодействия" + "_" + Значение;
|
||||
НайденнаяКоманда = Форма.Команды.Найти(ИмяКоманды);
|
||||
|
||||
Если НайденнаяКоманда = Неопределено Тогда
|
||||
НоваяКоманда = Форма.Команды.Добавить("УстановитьОтборТипВзаимодействия_" + Значение);
|
||||
НоваяКоманда = Форма.Команды.Добавить("УстановитьОтборТипВзаимодействия" + "_" + Значение);
|
||||
НоваяКоманда.Действие = "Подключаемый_ИзменитьОтборТипВзаимодействия";
|
||||
Иначе
|
||||
НоваяКоманда = НайденнаяКоманда;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлементКнопкаПодменю = Форма.Элементы.Добавить("УстановитьОтборТипВзаимодействия_" + ГруппаПодменю.Имя + "_"+ Значение, Тип("КнопкаФормы"), ГруппаПодменю);
|
||||
ЭлементКнопкаПодменю = Форма.Элементы.Добавить("УстановитьОтборТипВзаимодействия" + "_" + ГруппаПодменю.Имя + "_"+ Значение, Тип("КнопкаФормы"), ГруппаПодменю);
|
||||
ЭлементКнопкаПодменю.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
|
||||
ЭлементКнопкаПодменю.ИмяКоманды = НоваяКоманда.Имя;
|
||||
ЭлементКнопкаПодменю.Заголовок = Отбор.Представление;
|
||||
@@ -8079,6 +8084,25 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Отправлено - Булево - признак того, что письмо отправлено.
|
||||
// * ОписаниеОшибки - Строка - содержит описание ошибки, в случае если письмо отправить не удалось.
|
||||
// * СсылкаНаПисьмо - Неопределено - письмо не было создано.
|
||||
// - ДокументСсылка.ЭлектронноеПисьмоИсходящее - ссылка на созданное электронное исходящие письмо.
|
||||
//
|
||||
Функция РезультатОтправкиПисьма()
|
||||
|
||||
РезультатОтправкиПисьма = Новый Структура;
|
||||
|
||||
РезультатОтправкиПисьма.Вставить("Отправлено", Ложь);
|
||||
РезультатОтправкиПисьма.Вставить("ОписаниеОшибки", "");
|
||||
РезультатОтправкиПисьма.Вставить("СсылкаНаПисьмо", Неопределено);
|
||||
|
||||
Возврат РезультатОтправкиПисьма;
|
||||
|
||||
КонецФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Определение типа ссылки
|
||||
|
||||
@@ -8221,8 +8245,9 @@
|
||||
// Возвращаемое значение:
|
||||
// Строка - сформированная тема сообщения.
|
||||
//
|
||||
Функция ТемаПоТекстуСообщения(ТекстСообщения) Экспорт
|
||||
|
||||
Функция ТемаПоТекстуСообщения(Знач ТекстСообщения) Экспорт
|
||||
|
||||
ТекстСообщения = СтрЗаменить(ТекстСообщения, Символы.ПС, " ");
|
||||
МассивСтрок = СтрРазделить(ТекстСообщения," ", Ложь);
|
||||
Тема = "";
|
||||
Для Инд = 0 По МассивСтрок.Количество() - 1 Цикл
|
||||
@@ -8542,6 +8567,10 @@
|
||||
|
||||
Расписание = РегламентноеЗадание.Расписание;
|
||||
|
||||
Если ТекущаяДата() - Расписание.ПериодПовтораВТечениеДня < ФоновоеЗадание.Начало Тогда // АПК:143 - Не локализуется.
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Расписание.ТребуетсяВыполнение(ТекущаяДата() - Расписание.ПериодПовтораВТечениеДня, // АПК:143 - Не локализуется.
|
||||
ФоновоеЗадание.Начало, ФоновоеЗадание.Конец);
|
||||
|
||||
|
||||
@@ -18,37 +18,46 @@
|
||||
Процедура ИзменитьВыделенные(СписокЭлемент, Знач СписокРеквизит = Неопределено) Экспорт
|
||||
|
||||
ПараметрыФормы = Новый Структура("МассивОбъектов", Новый Массив);
|
||||
|
||||
Если СписокРеквизит = Неопределено Тогда
|
||||
Форма = СписокЭлемент.Родитель;
|
||||
Пока ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Цикл
|
||||
Форма = Форма.Родитель;
|
||||
Если ТипЗнч(СписокЭлемент) = Тип("Массив") Тогда
|
||||
|
||||
ПараметрыФормы.МассивОбъектов = СписокЭлемент;
|
||||
|
||||
Иначе
|
||||
|
||||
Если СписокРеквизит = Неопределено Тогда
|
||||
|
||||
Форма = СписокЭлемент.Родитель;
|
||||
Пока ТипЗнч(Форма) <> Тип("ФормаКлиентскогоПриложения") Цикл
|
||||
Форма = Форма.Родитель;
|
||||
КонецЦикла;
|
||||
|
||||
Попытка
|
||||
СписокРеквизит = Форма.Список;
|
||||
Исключение
|
||||
СписокРеквизит = Неопределено;
|
||||
КонецПопытки;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВыделенныеСтроки = СписокЭлемент.ВыделенныеСтроки;
|
||||
|
||||
Если ТипЗнч(СписокРеквизит) = Тип("ДинамическийСписок") Тогда
|
||||
ПараметрыФормы.Вставить("КомпоновщикНастроек", СписокРеквизит.КомпоновщикНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ВыделеннаяСтрока Из ВыделенныеСтроки Цикл
|
||||
Если ТипЗнч(ВыделеннаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТекущаяСтрока = СписокЭлемент.ДанныеСтроки(ВыделеннаяСтрока);
|
||||
Если ТекущаяСтрока <> Неопределено И ЗначениеЗаполнено(ТекущаяСтрока.Ссылка) Тогда
|
||||
ПараметрыФормы.МассивОбъектов.Добавить(ТекущаяСтрока.Ссылка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Попытка
|
||||
СписокРеквизит = Форма.Список;
|
||||
Исключение
|
||||
СписокРеквизит = Неопределено;
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
|
||||
ВыделенныеСтроки = СписокЭлемент.ВыделенныеСтроки;
|
||||
|
||||
Если ТипЗнч(СписокРеквизит) = Тип("ДинамическийСписок") Тогда
|
||||
ПараметрыФормы.Вставить("КомпоновщикНастроек", СписокРеквизит.КомпоновщикНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ВыделеннаяСтрока Из ВыделенныеСтроки Цикл
|
||||
Если ТипЗнч(ВыделеннаяСтрока) = Тип("СтрокаГруппировкиДинамическогоСписка") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ТекущаяСтрока = СписокЭлемент.ДанныеСтроки(ВыделеннаяСтрока);
|
||||
Если ТекущаяСтрока <> Неопределено И ЗначениеЗаполнено(ТекущаяСтрока.Ссылка) Тогда
|
||||
ПараметрыФормы.МассивОбъектов.Добавить(ТекущаяСтрока.Ссылка);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
НачатьИзменениеВыделенных(ПараметрыФормы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -2645,7 +2645,10 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
// АПК:1327-выкл Механизм обновления дополнительных отчетов и обработок из метаданных.
|
||||
// Конкурентной работы не предполагается.
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(СправочникОбъект, , Истина);
|
||||
// АПК:1327-вкл
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
+3
-1
@@ -23,7 +23,9 @@
|
||||
// ** Важный - Булево - Истина, если выводится в группе важных.
|
||||
// ** СмТакже - Булево - Истина, если выводится в группе "См. также".
|
||||
// РасписанияКоманд - Структура - в ключах идентификаторы команд, а в значениях - расписание.
|
||||
// РазрешенияОбработки - Массив из ОбъектXDTO.
|
||||
// РазрешенияОбработки - Массив из ОбъектXDTO
|
||||
// - СправочникТабличнаяЧасть.ДополнительныеОтчетыИОбработки.Разрешения
|
||||
// - Неопределено
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбъектXDTO - ОбъектXDTO {http://www.1c.ru/1cFresh/ApplicationExtensions/Manifest/a.b.c.d}ExtensionManifest -
|
||||
|
||||
@@ -2932,6 +2932,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковПереходаСДругойПрограммы.
|
||||
Процедура ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Свойства") Тогда
|
||||
МодульУправлениеСвойствамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеСвойствамиСлужебный");
|
||||
МодульУправлениеСвойствамиСлужебный.ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбновлениеИнформационнойБазыБСП.ПослеОбновленияИнформационнойБазы.
|
||||
Процедура ПослеОбновленияИнформационнойБазы(Знач ПредыдущаяВерсия, Знач ТекущаяВерсия, Знач ВыполненныеОбработчики,
|
||||
ВыводитьОписаниеОбновлений, МонопольныйРежим) Экспорт
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
СтрокаТаблицы.ДатаНачалаПоказа = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 5, "Дата", '00010101');
|
||||
СтрокаТаблицы.ДатаОкончанияПоказа = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 6, "Дата", '29990101');
|
||||
|
||||
Если НРег(СтрокаТаблицы.Раздел) = НРег(НСтр("ru = 'Реклама'")) Тогда
|
||||
Если НРег(СтрокаТаблицы.Раздел) = НРег(НСтр("ru = 'Реклама'")) Тогда // АПК:1391 Раздел локализуется.
|
||||
СтрокаТаблицы.Приоритет = 0;
|
||||
Иначе
|
||||
СтрокаТаблицы.Приоритет = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 7, "Число", 0);
|
||||
|
||||
@@ -186,19 +186,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. ТаблицаПолей
|
||||
Функция ТаблицаОперандов() Экспорт
|
||||
|
||||
Возврат ТаблицаПолей();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Подготавливает стандартный список операторов требуемых видов.
|
||||
//
|
||||
// Параметры:
|
||||
// ГруппыОператоров - Строка - перечисление требуемых видов операторов. Возможные значения:
|
||||
// Разделители, Операторы, ЛогическиеОператорыИКонстанты,
|
||||
// ЧисловыеФункции, СтроковыеФункции, ПрочиеФункции.
|
||||
// Разделители, Операторы, ЛогическиеОператорыИКонстанты,
|
||||
// ЧисловыеФункции, СтроковыеФункции, ПрочиеФункции,
|
||||
// ОперацииНадСтрокамиСКД, ОперацииСравненияСКД, ЛогическиеОперацииСКД,
|
||||
// АгрегатныеФункцииСКД, ВсеОператорыСКД.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ДеревоЗначений
|
||||
|
||||
@@ -46,6 +46,8 @@
|
||||
// * Наименование - Неопределено - наименование не используется для формулы, соответствующее поле не выводится.
|
||||
// - Строка - наименование формулы. Если заполнено или пустое, соответствующее поле выводится
|
||||
// на в форме конструктора.
|
||||
// * ДляЗапроса - Булево - формула предназначена для вставки в запрос. Данный параметр влияет на состав операторов
|
||||
// по умолчанию, а также на выбор алгоритма проверки формулы.
|
||||
//
|
||||
Функция ПараметрыРедактированияФормулы() Экспорт
|
||||
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
Параметры.Вставить("ИмяКоллекцииСКДОперандов");
|
||||
Параметры.Вставить("ИмяКоллекцииСКДОператоров");
|
||||
Параметры.Вставить("Наименование");
|
||||
Параметры.Вставить("ДляЗапроса");
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
|
||||
@@ -256,6 +256,17 @@
|
||||
|
||||
Функция КоллекцияПолей(Знач ИсточникПолей, Форма = Неопределено, Знач ИмяКоллекцииСКД = Неопределено) Экспорт
|
||||
|
||||
КомпоновщикНастроек = КомпоновщикНастроекИсточникаПолей(ИсточникПолей, Форма);
|
||||
Если КомпоновщикНастроек = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат КоллекцияПолейКомпоновщикаНастроек(КомпоновщикНастроек, ИмяКоллекцииСКД);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КомпоновщикНастроекИсточникаПолей(Знач ИсточникПолей, Форма = Неопределено) Экспорт
|
||||
|
||||
Если ЭтоАдресВременногоХранилища(ИсточникПолей) Тогда
|
||||
ИсточникПолей = ПолучитьИзВременногоХранилища(ИсточникПолей);
|
||||
КонецЕсли;
|
||||
@@ -267,10 +278,6 @@
|
||||
СхемаКомпоновкиДанных = СхемаКомпоновкиДанныхИзДереваЗначений(ИсточникПолей);
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИмяКоллекцииСКД) Тогда
|
||||
ИмяКоллекцииСКД = "ДоступныеПоляОтбора";
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(СхемаКомпоновкиДанных) <> Тип("СхемаКомпоновкиДанных") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
@@ -285,10 +292,27 @@
|
||||
КомпоновщикНастроек.Инициализировать(ИсточникДоступныхНастроек);
|
||||
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
|
||||
|
||||
Возврат КомпоновщикНастроек.Настройки[ИмяКоллекцииСКД];
|
||||
Возврат КомпоновщикНастроек;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КоллекцияПолейКомпоновщикаНастроек(Знач КомпоновщикНастроек, Знач ИмяКоллекцииСКД = Неопределено)
|
||||
|
||||
Если Не ЗначениеЗаполнено(ИмяКоллекцииСКД) Тогда
|
||||
ИмяКоллекцииСКД = "ДоступныеПоляОтбора";
|
||||
КонецЕсли;
|
||||
|
||||
ОписаниеИмениКоллекцииПолей = СтрРазделить(ИмяКоллекцииСКД, ".");
|
||||
КоллекцияПолей = КомпоновщикНастроек.Настройки;
|
||||
|
||||
Для Каждого Элемент Из ОписаниеИмениКоллекцииПолей Цикл
|
||||
КоллекцияПолей = КоллекцияПолей[Элемент];
|
||||
КонецЦикла;
|
||||
|
||||
Возврат КоллекцияПолей;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ЗаполнитьСписокДоступныхРеквизитов(Знач ТекущийРеквизит, ИсточникиДоступныхПолей, Знач Отбор = "",
|
||||
ИспользоватьИдентификаторыДляФормул = Ложь)
|
||||
|
||||
@@ -338,9 +362,10 @@
|
||||
Если ЗначениеЗаполнено(Порядок) Тогда
|
||||
Реквизит.Порядок = Порядок;
|
||||
КонецЕсли;
|
||||
ЭтоГруппа = ДополнительныеПараметры["ЭтоГруппа"];
|
||||
Если ЗначениеЗаполнено(ЭтоГруппа) Тогда
|
||||
Реквизит.Папка = ЭтоГруппа;
|
||||
|
||||
Реквизит.ЭтоГруппа = ДополнительныеПараметры["ЭтоГруппа"];
|
||||
Если Реквизит.ЭтоГруппа Тогда
|
||||
Реквизит.Папка = Реквизит.ЭтоГруппа;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Реквизит.Картинка) Тогда
|
||||
@@ -366,7 +391,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Реквизит.ПредставлениеПутиКДанным = "";
|
||||
Если Не Реквизит.Папка Тогда
|
||||
Если Не Реквизит.ЭтоГруппа Тогда
|
||||
Реквизит.ПутьКДанным = Реквизит.Имя;
|
||||
Реквизит.ПредставлениеПутиКДанным = Реквизит.Заголовок;
|
||||
КонецЕсли;
|
||||
@@ -387,7 +412,7 @@
|
||||
|
||||
Если Родитель(Реквизит) <> Неопределено Тогда
|
||||
Родитель = Родитель(Реквизит);
|
||||
Если Реквизит.Папка Тогда
|
||||
Если Реквизит.ЭтоГруппа Тогда
|
||||
Реквизит.ПутьКДанным = Родитель.ПутьКДанным;
|
||||
Реквизит.ПредставлениеПутиКДанным = Строка(Родитель.ПредставлениеПутиКДанным);;
|
||||
Иначе
|
||||
@@ -426,6 +451,7 @@
|
||||
// * Отступ - Строка
|
||||
// * СоответствуетОтбору - Булево
|
||||
// * ПодчиненныйЭлементСоответствуетОтбору - Булево
|
||||
// * ЭтоГруппа - Булево
|
||||
//
|
||||
Функция НоваяКоллекцияДоступныхРеквизитов()
|
||||
|
||||
@@ -1066,28 +1092,12 @@
|
||||
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
|
||||
ЭлементОтбора.ПравоеЗначение = Ложь;
|
||||
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
|
||||
|
||||
//
|
||||
|
||||
|
||||
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
|
||||
|
||||
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
|
||||
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяСпискаПолей + "Картинка");
|
||||
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
|
||||
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяСпискаПолей + "Представление");
|
||||
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
|
||||
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяСпискаПолей + "ПредставлениеПутиКДанным");
|
||||
|
||||
ЭлементОтбора = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
|
||||
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяРеквизитаСтрокиПоискаСпискаПолей(ИмяСпискаПолей));
|
||||
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
|
||||
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
|
||||
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Истина);
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Истина);
|
||||
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Видимость", Ложь);
|
||||
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("Отображать", Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1439,6 +1449,7 @@
|
||||
Результат.Вставить("Отступ", Новый ОписаниеТипов("Строка"));
|
||||
Результат.Вставить("СоответствуетОтбору", Новый ОписаниеТипов("Булево"));
|
||||
Результат.Вставить("ПодчиненныйЭлементСоответствуетОтбору", Новый ОписаниеТипов("Булево"));
|
||||
Результат.Вставить("ЭтоГруппа", Новый ОписаниеТипов("Булево"));
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -1517,6 +1528,9 @@
|
||||
Если ГруппыОператоров = Неопределено Тогда
|
||||
ГруппыОператоров = "Разделители, Операторы, ЛогическиеОператорыИКонстанты,
|
||||
|ЧисловыеФункции, СтроковыеФункции, ПрочиеФункции";
|
||||
ИначеЕсли ГруппыОператоров = "ВсеОператорыСКД" Тогда
|
||||
ГруппыОператоров = "Операторы, ОперацииНадСтрокамиСКД, ОперацииСравненияСКД,
|
||||
|ЛогическиеОперацииСКД, АгрегатныеФункцииСКД";
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из Новый Структура(ГруппыОператоров) Цикл
|
||||
@@ -1533,6 +1547,14 @@
|
||||
ДобавитьГруппуОператоровСтроковыеФункции(СписокОператоров);
|
||||
ИначеЕсли ИмяГруппы = "ПрочиеФункции" Тогда
|
||||
ДобавитьГруппуОператоровПрочиеФункции(СписокОператоров);
|
||||
ИначеЕсли ИмяГруппы = "ОперацииНадСтрокамиСКД" Тогда
|
||||
ДобавитьГруппуОператоровОперацииНадСтроками(СписокОператоров);
|
||||
ИначеЕсли ИмяГруппы = "ОперацииСравненияСКД" Тогда
|
||||
ДобавитьГруппуОператоровОперацииСравнения(СписокОператоров);
|
||||
ИначеЕсли ИмяГруппы = "ЛогическиеОперацииСКД" Тогда
|
||||
ДобавитьГруппуОператоровЛогическиеОперации(СписокОператоров);
|
||||
ИначеЕсли ИмяГруппы = "АгрегатныеФункцииСКД" Тогда
|
||||
ДобавитьГруппуОператоровАгрегатныеФункции(СписокОператоров);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
@@ -1562,7 +1584,7 @@
|
||||
Группа.Представление = НСтр("ru = 'Операторы'");
|
||||
Группа.Порядок = 2;
|
||||
|
||||
Для Каждого Идентификатор Из СтрРазделить("+ - * /", " ", Ложь) Цикл
|
||||
Для Каждого Идентификатор Из СтрРазделить("+ - * / %", " ", Ложь) Цикл
|
||||
ДобавитьОператорВГруппу(Группа, Идентификатор, , Новый ОписаниеТипов("Число"));
|
||||
КонецЦикла;
|
||||
|
||||
@@ -1659,6 +1681,70 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьГруппуОператоровОперацииНадСтроками(СписокОператоров)
|
||||
|
||||
Группа = СписокОператоров.Строки.Добавить();
|
||||
Группа.Идентификатор = "ОперацииНадСтроками";
|
||||
Группа.Представление = НСтр("ru = 'Операции над строками'");
|
||||
Группа.Порядок = 2;
|
||||
|
||||
Тип = Новый ОписаниеТипов("Строка");
|
||||
|
||||
ДобавитьОператорВГруппу(Группа, "+", , Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "ПОДОБНО", НСтр("ru = 'ПОДОБНО'"), Тип);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьГруппуОператоровОперацииСравнения(СписокОператоров)
|
||||
|
||||
Группа = СписокОператоров.Строки.Добавить();
|
||||
Группа.Идентификатор = "ОперацииСравнения";
|
||||
Группа.Представление = НСтр("ru = 'Операции сравнения'");
|
||||
Группа.Порядок = 3;
|
||||
|
||||
Тип = Новый ОписаниеТипов("Булево");
|
||||
|
||||
Для Каждого Идентификатор Из СтрРазделить("<,>,<=,>=,=,<>", ",", Ложь) Цикл
|
||||
ДобавитьОператорВГруппу(Группа, Идентификатор, , Тип);
|
||||
КонецЦикла;
|
||||
|
||||
ДобавитьОператорВГруппу(Группа, "В", НСтр("ru = 'В'"), Тип);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьГруппуОператоровЛогическиеОперации(СписокОператоров)
|
||||
|
||||
Группа = СписокОператоров.Строки.Добавить();
|
||||
Группа.Идентификатор = "ЛогическиеОперации";
|
||||
Группа.Представление = НСтр("ru = 'Логические операции'");
|
||||
Группа.Порядок = 4;
|
||||
|
||||
Тип = Новый ОписаниеТипов("Булево");
|
||||
|
||||
ДобавитьОператорВГруппу(Группа, "НЕ", НСтр("ru = 'НЕ'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "И", НСтр("ru = 'И'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "ИЛИ", НСтр("ru = 'ИЛИ'"), Тип);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьГруппуОператоровАгрегатныеФункции(СписокОператоров)
|
||||
|
||||
Группа = СписокОператоров.Строки.Добавить();
|
||||
Группа.Идентификатор = "АгрегатныеФункции";
|
||||
Группа.Представление = НСтр("ru = 'Агрегатные функции'");
|
||||
Группа.Порядок = 5;
|
||||
Группа.ИмяКартинки = Метаданные.ОбщиеКартинки.ТипФункция.Имя;
|
||||
|
||||
Тип = Новый ОписаниеТипов("Число");
|
||||
|
||||
ДобавитьОператорВГруппу(Группа, "СУММА", НСтр("ru = 'СУММА'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "КОЛИЧЕСТВО", НСтр("ru = 'КОЛИЧЕСТВО'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "МАКСИМУМ", НСтр("ru = 'МАКСИМУМ'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "МИНИМУМ", НСтр("ru = 'МИНИМУМ'"), Тип);
|
||||
ДобавитьОператорВГруппу(Группа, "СРЕДНЕЕ", НСтр("ru = 'СРЕДНЕЕ'"), Тип);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ИмяРеквизитаСтрокиПоискаСпискаПолей(ИмяСпискаПолей)
|
||||
|
||||
Возврат "СтрокаПоиска" + ИмяСпискаПолей;
|
||||
|
||||
@@ -11,15 +11,13 @@
|
||||
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
|
||||
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
|
||||
|
||||
Если ЕстьИзмененияПараметровПроверокУчета() Тогда
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "*";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("c17ea385-6085-471f-ab94-219ec30a5a38");
|
||||
Обработчик.Комментарий = НСтр("ru = 'Обновляются правила проверки учета в соответствие с изменениями в новой версии программы.
|
||||
|До завершения обработки часть проверок ведения учета будет недоступна.'");
|
||||
Обработчик.Процедура = "КонтрольВеденияУчетаСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации";
|
||||
КонецЕсли;
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "*";
|
||||
Обработчик.РежимВыполнения = "Отложенно";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("c17ea385-6085-471f-ab94-219ec30a5a38");
|
||||
Обработчик.Комментарий = НСтр("ru = 'Обновляются правила проверки учета в соответствие с изменениями в новой версии программы.
|
||||
|До завершения обработки часть проверок ведения учета будет недоступна.'");
|
||||
Обработчик.Процедура = "КонтрольВеденияУчетаСлужебный.ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации";
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.0.1.25";
|
||||
|
||||
@@ -51,5 +51,19 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СуффиксЯзыка(Язык) Экспорт
|
||||
|
||||
Если Язык = Константы.ДополнительныйЯзык1.Получить() И МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
|
||||
Возврат "Язык1";
|
||||
КонецЕсли;
|
||||
|
||||
Если Язык = Константы.ДополнительныйЯзык2.Получить() И МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
|
||||
Возврат "Язык2";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат "";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -642,15 +642,7 @@
|
||||
//
|
||||
Функция СуффиксЯзыка(Язык) Экспорт
|
||||
|
||||
Если Язык = Константы.ДополнительныйЯзык1.Получить() И ИспользуетсяПервыйДополнительныйЯзык() Тогда
|
||||
Возврат "Язык1";
|
||||
КонецЕсли;
|
||||
|
||||
Если Язык = Константы.ДополнительныйЯзык2.Получить() И ИспользуетсяВторойДополнительныйЯзык() Тогда
|
||||
Возврат "Язык2";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат "";
|
||||
Возврат МультиязычностьПовтИсп.СуффиксЯзыка(Язык);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1208,6 +1200,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ОсновнойЯзыкСтароеЗначение - Строка
|
||||
// * ДополнительныйЯзык1СтароеЗначение - Строка
|
||||
// * ДополнительныйЯзык2СтароеЗначение - Строка
|
||||
// * ОсновнойЯзыкНовоеЗначение - Строка
|
||||
// * ДополнительныйЯзык1НовоеЗначение - Строка
|
||||
// * ДополнительныйЯзык2НовоеЗначение - Строка
|
||||
//
|
||||
Функция ОписаниеСтарыхИНовыхНастроекЯзыков() Экспорт
|
||||
|
||||
ОписаниеКонстант = Новый Структура;
|
||||
ОписаниеКонстант.Вставить("ОсновнойЯзыкСтароеЗначение", "");
|
||||
ОписаниеКонстант.Вставить("ДополнительныйЯзык1СтароеЗначение", "");
|
||||
ОписаниеКонстант.Вставить("ДополнительныйЯзык2СтароеЗначение", "");
|
||||
ОписаниеКонстант.Вставить("ОсновнойЯзыкНовоеЗначение", "");
|
||||
ОписаниеКонстант.Вставить("ДополнительныйЯзык1НовоеЗначение", "");
|
||||
ОписаниеКонстант.Вставить("ДополнительныйЯзык2НовоеЗначение", "");
|
||||
|
||||
Возврат ОписаниеКонстант;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОпределитьТипФормы(ИмяФормы) Экспорт
|
||||
|
||||
Результат = "";
|
||||
@@ -1395,7 +1410,7 @@
|
||||
КонецФункции
|
||||
|
||||
Процедура ПерезаполнитьМультиязычныеСтрокиВОбъектах(Параметры, Адрес) Экспорт
|
||||
ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных(Истина);
|
||||
ОбновлениеИнформационнойБазыСлужебный.НачальноеЗаполнениеПредопределенныхДанных(Истина, Параметры);
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЭтоОсновнойЯзык() Экспорт
|
||||
|
||||
@@ -501,6 +501,7 @@
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОтправкаДанных
|
||||
|
||||
// Выполняет выгрузку данных в соответствии с правилами и параметрами обмена.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -555,7 +556,17 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если КомпонентыОбмена.ФлагОшибки Тогда
|
||||
|
||||
// Объекты, которые выгружались по ссылкам кэшируются в регистре сведений ДанныеОбъектовДляРегистрацииВОбменах.
|
||||
// Для того, что бы при повторной выгрузке в файл сообщения попали не только ключевые сведения необходимо почистить регистр.
|
||||
Если КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты.Количество() > 0 Тогда
|
||||
|
||||
РегистрыСведений.ДанныеОбъектовДляРегистрацииВОбменах.УдалитьСведенияОВыгрузкеОбъектов(КомпонентыОбмена.ВыгруженныеПоСсылкеОбъекты, КомпонентыОбмена.УзелКорреспондента);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение НСтр("ru = 'При формировании сообщения обмена данными произошли ошибки. Подробнее см. в журнале регистрации.'");
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
@@ -812,19 +823,7 @@
|
||||
СвойстваИсточника.Добавить(Свойство);
|
||||
КонецЦикла;
|
||||
|
||||
Если Расширения <> Неопределено Тогда
|
||||
Для Каждого Расширение Из Расширения Цикл
|
||||
РасширенныйТипXDTO = Неопределено;
|
||||
Если (Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO)
|
||||
Или Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO))
|
||||
И РасширенныйТипXDTO <> Неопределено Тогда
|
||||
|
||||
Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл
|
||||
СвойстваИсточника.Добавить(Свойство);
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения);
|
||||
|
||||
Для Каждого Свойство Из СвойстваИсточника Цикл
|
||||
|
||||
@@ -855,14 +854,14 @@
|
||||
ТипСвойства = "AdditionalInfo";
|
||||
ИначеЕсли ЭтоТаблицаОбъекта(Свойство) Тогда
|
||||
ТипСвойства = "Таблица";
|
||||
ИначеЕсли Свойство.Имя = "КлючевыеСвойства"
|
||||
Или СтрНайти(Свойство.Тип.Имя, "КлючевыеСвойства") > 0 Тогда
|
||||
ТипСвойства = "КлючевыеСвойства";
|
||||
ИначеЕсли Свойство.Имя = КлассКлючевыеСвойства()
|
||||
Или СтрНайти(Свойство.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
|
||||
ТипСвойства = КлассКлючевыеСвойства();
|
||||
Иначе
|
||||
Если СвойствоНайдено Тогда
|
||||
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура")
|
||||
И (ЗначениеСвойства.Свойство("Значение")
|
||||
Или СтрНайти(СокрЛП(Свойство.Тип), "ОбщиеСвойства") > 0) Тогда
|
||||
Или СтрНайти(Свойство.Тип, КлассОбщиеСвойства()) > 0) Тогда
|
||||
ТипСвойства = "ОбщееСоставноеСвойство";
|
||||
Иначе
|
||||
ТипСвойства = "СвойствоСоставногоТипа";
|
||||
@@ -914,7 +913,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеXDTO = Неопределено;
|
||||
Если ТипСвойства = "КлючевыеСвойства" Тогда
|
||||
Если ТипСвойства = КлассКлючевыеСвойства() Тогда
|
||||
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства, Свойство.Тип, СсылкиИзОбъекта, , Расширения);
|
||||
ИначеЕсли ТипСвойства = "ОбычноеСвойство" Тогда
|
||||
|
||||
@@ -1021,8 +1020,6 @@
|
||||
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
Приемник[Свойство.Имя] = ЗначениеXDTO;
|
||||
|
||||
Если ЭтоБазоваяСхема Или Свойство.URIПространстваИмен = Приемник.Тип().URIПространстваИмен Тогда
|
||||
Приемник[Свойство.Имя] = ЗначениеXDTO;
|
||||
Иначе
|
||||
@@ -1164,8 +1161,8 @@
|
||||
// {Обработчик: ПриОтправкеДанных} Начало
|
||||
Если ПравилоКонвертации.ЕстьОбработчикПриОтправкеДанных Тогда
|
||||
|
||||
Если Не Приемник.Свойство("КлючевыеСвойства") Тогда
|
||||
Приемник.Вставить("КлючевыеСвойства", Новый Структура);
|
||||
Если Не Приемник.Свойство(КлассКлючевыеСвойства()) Тогда
|
||||
Приемник.Вставить(КлассКлючевыеСвойства(), Новый Структура);
|
||||
КонецЕсли;
|
||||
|
||||
ПриОтправкеДанных(Источник, Приемник, ПравилоКонвертации.ПриОтправкеДанных, КомпонентыОбмена, СтекВыгрузки);
|
||||
@@ -1175,10 +1172,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СтекВыгрузки.Количество() > 1 Тогда
|
||||
Для Каждого КлючевоеСвойство Из Приемник.КлючевыеСвойства Цикл
|
||||
Для Каждого КлючевоеСвойство Из Приемник[КлассКлючевыеСвойства()] Цикл
|
||||
Приемник.Вставить(КлючевоеСвойство.Ключ, КлючевоеСвойство.Значение);
|
||||
КонецЦикла;
|
||||
Приемник.Удалить("КлючевыеСвойства");
|
||||
Приемник.Удалить(КлассКлючевыеСвойства());
|
||||
КонецЕсли;
|
||||
|
||||
// Выполнение ПКС, 2-й этап
|
||||
@@ -1191,7 +1188,7 @@
|
||||
// Выполняем конвертацию, если в свойство помещена инструкция.
|
||||
ЗначениеСвойства = Неопределено;
|
||||
Если СтекВыгрузки.Количество() = 1 И ПКС.ОбработкаКлючевогоСвойства Тогда
|
||||
Приемник.КлючевыеСвойства.Свойство(ПКС.СвойствоФормата, ЗначениеСвойства);
|
||||
Приемник[КлассКлючевыеСвойства()].Свойство(ПКС.СвойствоФормата, ЗначениеСвойства);
|
||||
Иначе
|
||||
СвойствоФормата_Имя = СокрЛП(ПКС.СвойствоФормата);
|
||||
ВложенныеСвойства = СтрРазделить(СвойствоФормата_Имя,".",Ложь);
|
||||
@@ -1343,6 +1340,7 @@
|
||||
// КомпонентыОбмена - Структура - содержит все правила и параметры обмена.
|
||||
// ДанныеИБ - ЛюбаяСсылка - ссылка на выгружаемый объект информационной базы.
|
||||
// ПолучательСвойства - Структура - получатель данных типа Структура, в которой должно храниться значение выгруженного свойства.
|
||||
// - СтрокаТаблицыЗначений.
|
||||
// ПКС - СтрокаТаблицыЗначений - строка таблицы правил конвертации свойств, в соответствии с которой
|
||||
// выполняется преобразование.
|
||||
// СтекВыгрузки - Массив из ЛюбаяСсылка - ссылки на выгружаемые объекты с учетом вложенности.
|
||||
@@ -1428,7 +1426,7 @@
|
||||
ПолучательСвойства.Свойство(СвойствоФормата_Имя, ЗначениеСвойства);
|
||||
КонецЕсли;
|
||||
Если ЗначениеСвойства = Неопределено
|
||||
И Не (СтекВыгрузки.Количество() = 1 И ПолучательСвойства.КлючевыеСвойства.Свойство(СвойствоФормата_Имя, ЗначениеСвойства)) Тогда
|
||||
И Не (СтекВыгрузки.Количество() = 1 И ПолучательСвойства[КлассКлючевыеСвойства()].Свойство(СвойствоФормата_Имя, ЗначениеСвойства)) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -1484,10 +1482,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СтекВыгрузки.Количество() = 1 И ПКС.ОбработкаКлючевогоСвойства Тогда
|
||||
Если Не ПолучательСвойства.Свойство("КлючевыеСвойства") Тогда
|
||||
ПолучательСвойства.Вставить("КлючевыеСвойства", Новый Структура);
|
||||
Если Не ПолучательСвойства.Свойство(КлассКлючевыеСвойства()) Тогда
|
||||
ПолучательСвойства.Вставить(КлассКлючевыеСвойства(), Новый Структура);
|
||||
КонецЕсли;
|
||||
ПолучательСвойства.КлючевыеСвойства.Вставить(СвойствоФормата_Имя, ЗначениеСвойства);
|
||||
ПолучательСвойства[КлассКлючевыеСвойства()].Вставить(СвойствоФормата_Имя, ЗначениеСвойства);
|
||||
Иначе
|
||||
Если ТипЗнч(ПолучательСвойства) = Тип("СтрокаТаблицыЗначений") Тогда
|
||||
Если УказаноПолноеИмяСвойства Тогда
|
||||
@@ -1641,7 +1639,7 @@
|
||||
ПолученныеДанные = ИнициализироватьПолученныеДанные(ПравилоКонвертации);
|
||||
СоставСвойств = "Все";
|
||||
ПолученныеДанныеСсылка = Неопределено;
|
||||
ДанныеXDTOСодержатСсылку = ДанныеXDTO.Свойство("Ссылка");
|
||||
ДанныеXDTOСодержатСсылку = ДанныеXDTO.Свойство(КлассСсылка());
|
||||
Если ПравилоКонвертации.ЭтоСсылочныйТип Тогда
|
||||
ПолученныеДанныеСсылка = ПолученныеДанные.Ссылка;
|
||||
ВариантИдентификации = СокрЛП(ПравилоКонвертации.ВариантИдентификации);
|
||||
@@ -1650,7 +1648,7 @@
|
||||
Или ВариантИдентификации = "СначалаПоУникальномуИдентификаторуПотомПоПолямПоиска") Тогда
|
||||
|
||||
ПолученныеДанныеСсылка = СсылкаОбъектаПоУИДОбъектаXDTO(
|
||||
ДанныеXDTO.Ссылка.Значение,
|
||||
ДанныеXDTO[КлассСсылка()].Значение,
|
||||
ПравилоКонвертации.ТипДанных,
|
||||
КомпонентыОбмена);
|
||||
|
||||
@@ -1667,7 +1665,7 @@
|
||||
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
|
||||
ДанныеИБ,
|
||||
ПолученныеДанныеСсылка,
|
||||
ДанныеXDTO.Ссылка.Значение,
|
||||
ДанныеXDTO[КлассСсылка()].Значение,
|
||||
КомпонентыОбмена.УзелКорреспондента,
|
||||
ПравилоКонвертации);
|
||||
|
||||
@@ -1699,7 +1697,7 @@
|
||||
СоставСвойств);
|
||||
|
||||
Если Действие = "ПолучитьСсылку" Тогда
|
||||
ДанныеXDTO = Новый Структура("КлючевыеСвойства",
|
||||
ДанныеXDTO = Новый Структура(КлассКлючевыеСвойства(),
|
||||
ОбщегоНазначения.СкопироватьРекурсивно(ДанныеXDTO));
|
||||
КонецЕсли;
|
||||
|
||||
@@ -1710,7 +1708,7 @@
|
||||
ПравилоКонвертации.ПриКонвертацииДанныхXDTO);
|
||||
|
||||
Если Действие = "ПолучитьСсылку" Тогда
|
||||
ДанныеXDTO = ОбщегоНазначения.СкопироватьРекурсивно(ДанныеXDTO.КлючевыеСвойства);
|
||||
ДанныеXDTO = ОбщегоНазначения.СкопироватьРекурсивно(ДанныеXDTO[КлассКлючевыеСвойства()]);
|
||||
КонецЕсли;
|
||||
|
||||
КонвертацияСвойствСтруктурыОбъектаXDTO(
|
||||
@@ -1761,7 +1759,7 @@
|
||||
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
|
||||
ДанныеИБ.ПолучитьОбъект(),
|
||||
ДанныеИБ,
|
||||
ДанныеXDTO.Ссылка.Значение,
|
||||
ДанныеXDTO[КлассСсылка()].Значение,
|
||||
КомпонентыОбмена.УзелКорреспондента,
|
||||
ПравилоКонвертации);
|
||||
КонецЕсли;
|
||||
@@ -1837,7 +1835,7 @@
|
||||
ЗаписатьПриНеобходимостиПубличныйИдентификатор(
|
||||
ДанныеИБ,
|
||||
?(ДанныеДляЗаписиВИБ.ЭтоНовый(), ДанныеДляЗаписиВИБ.ПолучитьСсылкуНового(), ДанныеДляЗаписиВИБ.Ссылка),
|
||||
ДанныеXDTO.Ссылка.Значение,
|
||||
ДанныеXDTO[КлассСсылка()].Значение,
|
||||
КомпонентыОбмена.УзелКорреспондента,
|
||||
ПравилоКонвертации);
|
||||
|
||||
@@ -2346,12 +2344,12 @@
|
||||
|
||||
КлючевыеСвойстваКопия = Неопределено;
|
||||
СсылкаКопия = Неопределено;
|
||||
Если Приемник.Свойство("КлючевыеСвойства", КлючевыеСвойстваКопия)
|
||||
Если Приемник.Свойство(КлассКлючевыеСвойства(), КлючевыеСвойстваКопия)
|
||||
И ТипЗнч(КлючевыеСвойстваКопия) = Тип("Структура")
|
||||
И КлючевыеСвойстваКопия.Свойство("Ссылка", СсылкаКопия)
|
||||
И КлючевыеСвойстваКопия.Свойство(КлассСсылка(), СсылкаКопия)
|
||||
Тогда
|
||||
|
||||
Приемник.Вставить("Ссылка", СсылкаКопия);
|
||||
Приемник.Вставить(КлассСсылка(), СсылкаКопия);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -2794,6 +2792,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает имя свойства, которое содержит ключевые свойства объекта
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - "КлючевыеСвойства".
|
||||
//
|
||||
Функция КлассКлючевыеСвойства() Экспорт
|
||||
|
||||
Возврат "КлючевыеСвойства"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
@@ -3319,11 +3328,11 @@
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
КлючевыеСвойства = ТипXDTO.Свойства.Получить("КлючевыеСвойства");
|
||||
КлючевыеСвойства = ТипXDTO.Свойства.Получить(КлассКлючевыеСвойства());
|
||||
Если КлючевыеСвойства <> Неопределено Тогда
|
||||
|
||||
ТипКлючевыхСвойствОбъектаXDTO = КлючевыеСвойства.Тип;
|
||||
СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить("Ссылка");
|
||||
СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить(КлассСсылка());
|
||||
Если СвойствоСсылкаXDTO <> Неопределено Тогда
|
||||
ПОД.ТипСсылкиXDTO = СвойствоСсылкаXDTO.Тип;
|
||||
КонецЕсли;
|
||||
@@ -3585,7 +3594,7 @@
|
||||
Или ПравилоКонвертации.ЭтоПланВидовРасчета;
|
||||
|
||||
Если ЗначениеЗаполнено(ПравилоКонвертации.ОбъектФормата) Тогда
|
||||
КлючевыеСвойства = ПравилоКонвертации.ТипXDTO.Свойства.Получить("КлючевыеСвойства");
|
||||
КлючевыеСвойства = ПравилоКонвертации.ТипXDTO.Свойства.Получить(КлассКлючевыеСвойства());
|
||||
Если КлючевыеСвойства <> Неопределено Тогда
|
||||
|
||||
ТипКлючевыхСвойствОбъектаXDTO = КлючевыеСвойства.Тип;
|
||||
@@ -3614,7 +3623,7 @@
|
||||
ЗаполнитьЗначенияСвойств(НовоеПКС, ПКС, , "ОбработкаКлючевогоСвойства");
|
||||
КонецЦикла;
|
||||
|
||||
СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить("Ссылка");
|
||||
СвойствоСсылкаXDTO = ТипКлючевыхСвойствОбъектаXDTO.Свойства.Получить(КлассСсылка());
|
||||
Если СвойствоСсылкаXDTO <> Неопределено Тогда
|
||||
|
||||
ПравилоКонвертации.ТипСсылкиXDTO = СвойствоСсылкаXDTO.Тип;
|
||||
@@ -3623,7 +3632,7 @@
|
||||
И КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда
|
||||
ПКСДляСсылки = ТаблицаПКС.Добавить();
|
||||
ПКСДляСсылки.СвойствоКонфигурации = "Ссылка";
|
||||
ПКСДляСсылки.СвойствоФормата = "Ссылка";
|
||||
ПКСДляСсылки.СвойствоФормата = КлассСсылка();
|
||||
ПКСДляСсылки.ОбработкаКлючевогоСвойства = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3633,7 +3642,7 @@
|
||||
|
||||
Если ЭтоБазоваяСхема И ЕстьРасширения Тогда
|
||||
Для Каждого Расширение Из ПравилоКонвертации.Расширения Цикл
|
||||
КлючевыеСвойства = Расширение.Значение.ТипXDTO.Свойства.Получить("КлючевыеСвойства");
|
||||
КлючевыеСвойства = Расширение.Значение.ТипXDTO.Свойства.Получить(КлассКлючевыеСвойства());
|
||||
|
||||
Если КлючевыеСвойства <> Неопределено Тогда
|
||||
|
||||
@@ -4716,13 +4725,13 @@
|
||||
КонецЕсли;
|
||||
|
||||
ИмяСвойства = ?(ИмяДляСвойстваСоставногоТипа = "", Свойство.Имя, ИмяДляСвойстваСоставногоТипа);
|
||||
|
||||
ЗначениеXDTO = Источник.ПолучитьXDTO(Свойство);
|
||||
ТипЗначенияXDTO = ?(ТипСвойства = Неопределено, ТипЗначенияСвойстваXDTO(КомпонентыОбмена, Свойство, ЗначениеXDTO), ТипСвойства);
|
||||
|
||||
Попытка
|
||||
Если ТипЗнч(ЗначениеXDTO) = Тип("ЗначениеXDTO") Тогда
|
||||
|
||||
КонвертироватьПростоеСвойства(Приемник, ИмяСвойства, ЗначениеXDTO);
|
||||
КонвертироватьПростоеСвойства(Приемник, ИмяСвойства, ЗначениеXDTO, ТипЗначенияXDTO);
|
||||
|
||||
ИначеЕсли ТипЗнч(ЗначениеXDTO) = Тип("ОбъектXDTO") Тогда
|
||||
|
||||
@@ -4733,8 +4742,6 @@
|
||||
// - набор общих свойств
|
||||
// - свойство составного типа.
|
||||
|
||||
ТипЗначенияXDTO = ?(ТипСвойства = Неопределено, ТипЗначенияСвойстваXDTO(КомпонентыОбмена, Свойство, ЗначениеXDTO), ТипСвойства);
|
||||
|
||||
КлассЗначенияXDTO = ИмяКлассаЗначенияXDTO(Свойство, ТипЗначенияXDTO);
|
||||
|
||||
Если КлассЗначенияXDTO = КлассПроизвольныеДанные() Тогда // Дополнительная информация
|
||||
@@ -4769,19 +4776,24 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПрочитатьЗначениеXDTO(ЗначениеXDTO)
|
||||
Функция ПрочитатьЗначениеXDTO(ЗначениеXDTO, ТипСвойства = Неопределено)
|
||||
|
||||
ТипСвойства = ?(ТипСвойства = Неопределено, ЗначениеXDTO.Тип(), ТипСвойства);
|
||||
|
||||
Если ЗначениеXDTO = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЭтоСсылкаXDTO(ЗначениеXDTO.Тип()) Тогда // Конвертация ссылки
|
||||
Значение = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, "Ссылка");
|
||||
Если ЭтоСсылкаXDTO(ТипСвойства) Тогда // Конвертация ссылки
|
||||
|
||||
Значение = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, "Ссылка", ТипСвойства);
|
||||
|
||||
ИначеЕсли ЗначениеXDTO.Тип().Фасеты <> Неопределено
|
||||
И ЗначениеXDTO.Тип().Фасеты.Перечисления <> Неопределено
|
||||
И ЗначениеXDTO.Тип().Фасеты.Перечисления.Количество() > 0 Тогда // Конвертация перечисления
|
||||
|
||||
Значение = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, "Перечисление");
|
||||
Значение = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, "Перечисление", ТипСвойства);
|
||||
|
||||
Иначе // Конвертация обычного значения.
|
||||
|
||||
Значение = ЗначениеXDTO.Значение;
|
||||
@@ -4792,12 +4804,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, СложныйТип)
|
||||
|
||||
Функция ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеXDTO, СложныйТип, ТипСвойства = Неопределено)
|
||||
|
||||
ТипСвойства = ?(ТипСвойства = Неопределено, ЗначениеXDTO.Тип(), ТипСвойства);
|
||||
|
||||
СтруктураXDTO = Новый Структура;
|
||||
СтруктураXDTO.Вставить("ЭтоСсылка", СложныйТип = "Ссылка");
|
||||
СтруктураXDTO.Вставить("ЭтоСсылка", СложныйТип = КлассСсылка());
|
||||
СтруктураXDTO.Вставить("ЭтоПеречисление", СложныйТип = "Перечисление");
|
||||
СтруктураXDTO.Вставить("ТипЗначенияXDTO", ЗначениеXDTO.Тип());
|
||||
СтруктураXDTO.Вставить("ТипЗначенияXDTO", ТипСвойства);
|
||||
СтруктураXDTO.Вставить("Значение", ЗначениеXDTO.Значение);
|
||||
|
||||
Возврат СтруктураXDTO;
|
||||
@@ -4811,7 +4825,7 @@
|
||||
Процедура ИнициализироватьКолонкиТаблицыОбъектаПоТипу(Таблица, Знач Тип)
|
||||
|
||||
Для Каждого Колонка Из Тип.Свойства Цикл
|
||||
Если СтрНайти(Колонка.Тип.Имя, "ОбщиеСвойства") > 0 Тогда
|
||||
Если СтрНайти(Колонка.Тип.Имя, КлассОбщиеСвойства()) > 0 Тогда
|
||||
ИнициализироватьКолонкиТаблицыОбъектаПоТипу(Таблица, Колонка.Тип);
|
||||
Иначе
|
||||
Таблица.Колонки.Добавить(Колонка.Имя);
|
||||
@@ -4850,7 +4864,7 @@
|
||||
КонецФункции
|
||||
|
||||
// Определение класса для значения свойства.
|
||||
// Класс используется для выбора алгоритма преобразования в структуру
|
||||
// Класс используется для выбора алгоритма преобразования в структуру.
|
||||
//
|
||||
Функция ИмяКлассаЗначенияXDTO(Знач СвойствоXDTO, Знач ТипЗначенияXDTO)
|
||||
|
||||
@@ -4858,9 +4872,9 @@
|
||||
Возврат КлассПроизвольныеДанные();
|
||||
ИначеЕсли ЭтоТипТаблицыОбъекта(ТипЗначенияXDTO) Тогда
|
||||
Возврат КлассТаблицаОбъекта();
|
||||
ИначеЕсли СтрНайти(ТипЗначенияXDTO.Имя, "КлючевыеСвойства") > 0 Тогда
|
||||
ИначеЕсли СтрНайти(ТипЗначенияXDTO.Имя, КлассКлючевыеСвойства()) > 0 Тогда
|
||||
Возврат КлассКлючевыеСвойства();
|
||||
ИначеЕсли СтрНайти(ТипЗначенияXDTO.Имя, "ОбщиеСвойства") > 0 Тогда
|
||||
ИначеЕсли СтрНайти(ТипЗначенияXDTO.Имя, КлассОбщиеСвойства()) > 0 Тогда
|
||||
Возврат КлассОбщиеСвойства();
|
||||
КонецЕсли;
|
||||
|
||||
@@ -4870,9 +4884,9 @@
|
||||
|
||||
// Инкапсуляция алгоритмов преобразования свойств объекта XDTO в элементы структуры
|
||||
//
|
||||
Процедура КонвертироватьПростоеСвойства(Приемник,Знач ИмяСвойства, Знач ЗначениеXDTO)
|
||||
Процедура КонвертироватьПростоеСвойства(Приемник,Знач ИмяСвойства, Знач ЗначениеXDTO, Знач ТипСвойства)
|
||||
|
||||
Значение = ПрочитатьЗначениеXDTO(ЗначениеXDTO);
|
||||
Значение = ПрочитатьЗначениеXDTO(ЗначениеXDTO, ТипСвойства);
|
||||
|
||||
Если ТипЗнч(Приемник) = Тип("Структура") Тогда
|
||||
Приемник.Вставить(ИмяСвойства, Значение);
|
||||
@@ -4933,11 +4947,11 @@
|
||||
Приемник.Вставить(ИмяСвойства, ПриемникГруппыСвойств);
|
||||
// По возможности свойства из группы свойств надо продублировать в приемнике,
|
||||
// Для совместимости с существующими правилами и алгоритмами.
|
||||
ЕстьКлючевыеСвойства = Приемник.Свойство("КлючевыеСвойства");
|
||||
ЕстьКлючевыеСвойства = Приемник.Свойство(КлассКлючевыеСвойства());
|
||||
Для Каждого СвойствоГруппы Из ПриемникГруппыСвойств Цикл
|
||||
ИмяПодСвойства = СвойствоГруппы.Ключ;
|
||||
Если НЕ Приемник.Свойство(ИмяПодСвойства)
|
||||
И НЕ (ЕстьКлючевыеСвойства И Приемник.КлючевыеСвойства.Свойство(ИмяПодСвойства)) Тогда
|
||||
И НЕ (ЕстьКлючевыеСвойства И Приемник[КлассКлючевыеСвойства()].Свойство(ИмяПодСвойства)) Тогда
|
||||
Приемник.Вставить(ИмяПодСвойства, СвойствоГруппы.Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -4960,7 +4974,7 @@
|
||||
Процедура КонвертироватьКлючевоеСвойство(Приемник, Знач КомпонентыОбмена, Знач ИмяСвойства, Знач ТипЗначенияXDTO, Знач ЗначениеXDTO)
|
||||
|
||||
Значение = Новый Структура("ЭтоНаборКлючевыхСвойств");
|
||||
Значение.Вставить("ТипЗначения", СтрЗаменить(ТипЗначенияXDTO.Имя, "КлючевыеСвойства", ""));
|
||||
Значение.Вставить("ТипЗначения", СтрЗаменить(ТипЗначенияXDTO.Имя, КлассКлючевыеСвойства(), ""));
|
||||
|
||||
Для Каждого КлючевоеСвойство Из ЗначениеXDTO.Свойства() Цикл
|
||||
ОписаниеСвойства = ТипЗначенияXDTO.Свойства.Получить(КлючевоеСвойство.Имя);
|
||||
@@ -4971,6 +4985,8 @@
|
||||
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, КлючевоеСвойство, Значение, КомпонентыОбмена,,ОписаниеСвойства.Тип);
|
||||
КонецЦикла;
|
||||
|
||||
ДополнитьТаблицуСвойствамиАктивныхРасширений(КомпонентыОбмена, ТипЗначенияXDTO, ЗначениеXDTO, Значение);
|
||||
|
||||
Если ТипЗнч(Приемник) = Тип("Структура") Тогда
|
||||
Приемник.Вставить(ИмяСвойства, Значение);
|
||||
Иначе
|
||||
@@ -5002,33 +5018,33 @@
|
||||
|
||||
// Формализация классов значения свойств
|
||||
//
|
||||
Функция КлассКлючевыеСвойства()
|
||||
|
||||
Возврат "КлючевыеСвойства";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлассОбщиеСвойства()
|
||||
|
||||
Возврат "ОбщиеСвойства";
|
||||
Возврат "ОбщиеСвойства"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлассСоставныеСвойства()
|
||||
|
||||
Возврат "СоставныеСвойства";
|
||||
Возврат "СоставныеСвойства"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлассПроизвольныеДанные()
|
||||
|
||||
Возврат "ПроизвольныеДанные";
|
||||
Возврат "ПроизвольныеДанные"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлассТаблицаОбъекта()
|
||||
|
||||
Возврат "ТаблицаОбъекта";
|
||||
Возврат "ТаблицаОбъекта"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КлассСсылка()
|
||||
|
||||
Возврат "Ссылка"; // @Non-NLS
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -5184,7 +5200,7 @@
|
||||
|
||||
Если ПКС.ОбработкаКлючевогоСвойства
|
||||
И Не ДанныеXDTO.Свойство("ЭтоНаборКлючевыхСвойств") Тогда
|
||||
ИсточникДанных = ДанныеXDTO.КлючевыеСвойства;
|
||||
ИсточникДанных = ДанныеXDTO[КлассКлючевыеСвойства()];
|
||||
Иначе
|
||||
ИсточникДанных = ДанныеXDTO;
|
||||
КонецЕсли;
|
||||
@@ -5487,10 +5503,11 @@
|
||||
ПолученныеДанные = ПравилоКонвертации.МенеджерОбъекта.СоздатьДокумент();
|
||||
ИначеЕсли ПравилоКонвертации.ЭтоСправочник
|
||||
Или ПравилоКонвертации.ЭтоПланВидовХарактеристик Тогда
|
||||
МенеджерОбъекта = ПравилоКонвертации.МенеджерОбъекта; //СправочникМенеджер
|
||||
Если ПравилоКонвертации.ПравилоДляГруппыСправочника Тогда
|
||||
ПолученныеДанные = ПравилоКонвертации.МенеджерОбъекта.СоздатьГруппу();
|
||||
ПолученныеДанные = МенеджерОбъекта.СоздатьГруппу();
|
||||
Иначе
|
||||
ПолученныеДанные = ПравилоКонвертации.МенеджерОбъекта.СоздатьЭлемент();
|
||||
ПолученныеДанные = МенеджерОбъекта.СоздатьЭлемент();
|
||||
КонецЕсли;
|
||||
ИначеЕсли ПравилоКонвертации.ЭтоРегистр Тогда
|
||||
ПолученныеДанные = ПравилоКонвертации.МенеджерОбъекта.СоздатьНаборЗаписей();
|
||||
@@ -5791,7 +5808,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Колонка Из ТабличнаяЧасть.Тип.Свойства[0].Тип.Свойства Цикл
|
||||
Если СтрНайти(Колонка.Тип.Имя, "ОбщиеСвойства") > 0 Тогда
|
||||
Если СтрНайти(Колонка.Тип.Имя, КлассКлючевыеСвойства()) > 0 Тогда
|
||||
Для Каждого ПодКолонка Из Колонка.Тип.Свойства Цикл
|
||||
Если ТаблицаОбъекта.Колонки.Найти(ПодКолонка.Имя) <> Неопределено Тогда
|
||||
Продолжить;
|
||||
@@ -5938,12 +5955,12 @@
|
||||
КонецЕсли;
|
||||
|
||||
СинхронизироватьПоИдентификатору = ПоискПоИдентификатору(ПравилоКонвертации.ВариантИдентификации)
|
||||
И ДанныеXDTO.Свойство("Ссылка");
|
||||
И ДанныеXDTO.Свойство(КлассСсылка());
|
||||
|
||||
Если Не ТекущееПКО.Значение Тогда
|
||||
Если СинхронизироватьПоИдентификатору Тогда
|
||||
ДополнитьСписокОбъектовКУдалению(КомпонентыОбмена,
|
||||
ПравилоКонвертации.ТипДанных, ДанныеXDTO.Ссылка.Значение, МассивОбъектовКУдалению);
|
||||
ПравилоКонвертации.ТипДанных, ДанныеXDTO[КлассСсылка()].Значение, МассивОбъектовКУдалению);
|
||||
КонецЕсли;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
@@ -5954,7 +5971,7 @@
|
||||
|
||||
Если СинхронизироватьПоИдентификатору Тогда
|
||||
МассивЗагруженныхОбъектов.Добавить(
|
||||
СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO.Ссылка.Значение, ПравилоКонвертации.ТипДанных, КомпонентыОбмена));
|
||||
СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO[КлассСсылка()].Значение, ПравилоКонвертации.ТипДанных, КомпонентыОбмена));
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Если КомпонентыОбмена.РежимЗагрузкиДанныхВИнформационнуюБазу
|
||||
@@ -6008,8 +6025,8 @@
|
||||
|
||||
УникальныйИдентификаторСтрокой = "";
|
||||
СтрокаТаблицы = Неопределено;
|
||||
Если ДанныеXDTO.Свойство("Ссылка") Тогда
|
||||
УникальныйИдентификаторСтрокой = ДанныеXDTO.Ссылка.Значение;
|
||||
Если ДанныеXDTO.Свойство(КлассСсылка()) Тогда
|
||||
УникальныйИдентификаторСтрокой = ДанныеXDTO[КлассСсылка()].Значение;
|
||||
СтрокаТаблицы = ТаблицаДанныхСообщенияОбмена.Найти(УникальныйИдентификаторСтрокой, "УникальныйИдентификатор");
|
||||
КонецЕсли;
|
||||
|
||||
@@ -6025,7 +6042,7 @@
|
||||
|
||||
СсылкаНаОбъект = Неопределено;
|
||||
Если СинхронизироватьПоИдентификатору Тогда
|
||||
СсылкаНаОбъект = СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO.Ссылка.Значение,
|
||||
СсылкаНаОбъект = СсылкаОбъектаПоУИДОбъектаXDTO(ДанныеXDTO[КлассСсылка()].Значение,
|
||||
ПравилоКонвертации.ТипДанных, КомпонентыОбмена);
|
||||
Иначе
|
||||
СсылкаНаОбъект = Неопределено;
|
||||
@@ -6254,7 +6271,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ЗначениеСвойстваXDTO = ОбъектXDTO.СсылкаНаОбъект.СсылкаНаОбъект.ПолучитьXDTO(СвойствоXDTO);
|
||||
ЗначениеСсылкиXDTO = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеСвойстваXDTO, "Ссылка");
|
||||
ЗначениеСсылкиXDTO = ПрочитатьЗначениеXDTOСложногоТипа(ЗначениеСвойстваXDTO, "Ссылка", ЗначениеСвойстваXDTO.Тип());
|
||||
|
||||
// Определим тип ссылки
|
||||
ТипСсылкиXDTO = ЗначениеСсылкиXDTO.ТипЗначенияXDTO;
|
||||
@@ -7203,10 +7220,10 @@
|
||||
ПредставлениеОбъекта = "";
|
||||
ТипОбъекта = Объект.Тип().Имя;
|
||||
|
||||
Если КоллекцияСвойств.Количество() > 0 И КоллекцияСвойств.Получить("КлючевыеСвойства") <> Неопределено Тогда
|
||||
КлючевыеСвойства = Объект.Получить("КлючевыеСвойства");
|
||||
Если КоллекцияСвойств.Количество() > 0 И КоллекцияСвойств.Получить(КлассКлючевыеСвойства()) <> Неопределено Тогда
|
||||
КлючевыеСвойства = Объект.Получить(КлассКлючевыеСвойства());
|
||||
|
||||
Реквизиты = Новый Структура("Наименование, Код, КодВПрограмме, Номер, Дата");
|
||||
Реквизиты = Новый Структура("Наименование, Код, КодВПрограмме, Номер, Дата"); // @Non-NLS
|
||||
ЗаполнитьЗначенияСвойств(Реквизиты, КлючевыеСвойства);
|
||||
|
||||
ПредставлениеОбъекта = ПредставлениеКоллекцииСвойствДляПротокола(Реквизиты);
|
||||
@@ -7253,24 +7270,24 @@
|
||||
|
||||
ЗначениеСвойства = Неопределено;
|
||||
|
||||
Если КоллекцияСвойств.Свойство("Наименование", ЗначениеСвойства)
|
||||
Если КоллекцияСвойств.Свойство("Наименование", ЗначениеСвойства) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
ЭлементыПредставления.Добавить(СокрЛП(ЗначениеСвойства));
|
||||
КонецЕсли;
|
||||
|
||||
Если КоллекцияСвойств.Свойство("Код", ЗначениеСвойства)
|
||||
Если КоллекцияСвойств.Свойство("Код", ЗначениеСвойства) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
ЭлементыПредставления.Добавить("(" + СокрЛП(ЗначениеСвойства) + ")");
|
||||
ИначеЕсли КоллекцияСвойств.Свойство("КодВПрограмме", ЗначениеСвойства)
|
||||
ИначеЕсли КоллекцияСвойств.Свойство("КодВПрограмме", ЗначениеСвойства) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
ЭлементыПредставления.Добавить("(" + СокрЛП(ЗначениеСвойства) + ")");
|
||||
КонецЕсли;
|
||||
|
||||
Если КоллекцияСвойств.Свойство("Номер", ЗначениеСвойства)
|
||||
Если КоллекцияСвойств.Свойство("Номер", ЗначениеСвойства) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
|
||||
ЗначениеСвойстваДата = Неопределено;
|
||||
Если КоллекцияСвойств.Свойство("Дата", ЗначениеСвойстваДата)
|
||||
Если КоллекцияСвойств.Свойство("Дата", ЗначениеСвойстваДата) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойстваДата) Тогда
|
||||
ЭлементыПредставления.Добавить(
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '№%1 от %2'"), ЗначениеСвойства, Формат(ЗначениеСвойстваДата, "ДЛФ=D")));
|
||||
@@ -7279,7 +7296,7 @@
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '№%1'"), ЗначениеСвойства));
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли КоллекцияСвойств.Свойство("Дата", ЗначениеСвойства)
|
||||
ИначеЕсли КоллекцияСвойств.Свойство("Дата", ЗначениеСвойства) // @Non-NLS
|
||||
И ЗначениеЗаполнено(ЗначениеСвойства) Тогда
|
||||
|
||||
ЭлементыПредставления.Добавить(
|
||||
@@ -7700,6 +7717,112 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДоступныеРасширенияФормата(ВерсияФорматаОбмена) Экспорт
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
КоллекцияРасширений = Новый Соответствие;
|
||||
|
||||
ОбменДаннымиПереопределяемый.ПриПолученииДоступныхРасширенийФормата(КоллекцияРасширений);
|
||||
|
||||
СчетчикРасширений = 1;
|
||||
Для Каждого КлючЗначение Из КоллекцияРасширений Цикл
|
||||
|
||||
Если ВерсияФорматаОбмена <> КлючЗначение.Значение Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Вставить(КлючЗначение.Ключ, СтрШаблон("ext%1", XMLСтрока(СчетчикРасширений)));
|
||||
СчетчикРасширений = СчетчикРасширений + 1;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДополнитьСвойстваПакетаИзРасширений(СвойстваИсточника, КомпонентыОбмена, Расширения)
|
||||
|
||||
Если Расширения = Неопределено Тогда
|
||||
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// КомпонентыОбмена.РасширенияФормата - расширения доступные в текущем формате обмена;
|
||||
// Расширения - расширения инициализированное в правиле обмена.
|
||||
Для Каждого Расширение Из Расширения Цикл
|
||||
|
||||
Если КомпонентыОбмена.РасширенияФормата.Получить(Расширение.Ключ) = Неопределено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
РасширенныйТипXDTO = Неопределено;
|
||||
НужныеСвойстваОтсутствуют = НЕ Расширение.Значение.Свойство("ТипXDTO", РасширенныйТипXDTO)
|
||||
И НЕ Расширение.Значение.Свойство("ТипСоставногоСвойства", РасширенныйТипXDTO);
|
||||
|
||||
Если НужныеСвойстваОтсутствуют
|
||||
ИЛИ РасширенныйТипXDTO = Неопределено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Свойство Из РасширенныйТипXDTO.Свойства Цикл
|
||||
|
||||
Если Свойство.URIПространстваИмен <> Расширение.Ключ Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваИсточника.Добавить(Свойство);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДополнитьТаблицуСвойствамиАктивныхРасширений(КомпонентыОбмена, ТипЗначенияXDTO, ЗначениеXDTO, Значение)
|
||||
|
||||
Если НЕ ЭтоБазоваяСхема(КомпонентыОбмена, ТипЗначенияXDTO.URIПространстваИмен)
|
||||
ИЛИ КомпонентыОбмена.РасширенияФормата.Количество() = 0 Тогда
|
||||
|
||||
Возврат;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Для Каждого Расширение Из КомпонентыОбмена.РасширенияФормата Цикл
|
||||
|
||||
РасширениеТипаЗначенияXDTO = ФабрикаXDTO.Тип(Расширение.Ключ, ТипЗначенияXDTO.Имя);
|
||||
Если РасширениеТипаЗначенияXDTO = Неопределено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого КлючевоеСвойство Из ЗначениеXDTO.Свойства() Цикл
|
||||
|
||||
ОписаниеСвойства = РасширениеТипаЗначенияXDTO.Свойства.Получить(КлючевоеСвойство.Имя);
|
||||
Если ОписаниеСвойства = Неопределено Тогда
|
||||
|
||||
Продолжить;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, КлючевоеСвойство, Значение, КомпонентыОбмена,,ОписаниеСвойства.Тип);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗаписатьПриНеобходимостиПубличныйИдентификатор(
|
||||
ДанныеДляЗаписиВИБ,
|
||||
ПолученныеДанныеСсылка,
|
||||
@@ -7904,7 +8027,7 @@
|
||||
|
||||
Для Каждого ДочернееСвойство Из ТипОбъектаXDTO.Свойства Цикл
|
||||
Если ТипЗнч(ДочернееСвойство.Тип) = Тип("ТипОбъектаXDTO")
|
||||
И СтрНачинаетсяС(ДочернееСвойство.Тип.Имя, "ОбщиеСвойства") Тогда
|
||||
И СтрНачинаетсяС(ДочернееСвойство.Тип.Имя, КлассОбщиеСвойства()) Тогда
|
||||
ЗаполнитьСписокСвойствОбъектаXDTO(ДочернееСвойство.Тип, Свойства);
|
||||
Иначе
|
||||
Свойства.Добавить(ДочернееСвойство.Имя);
|
||||
|
||||
@@ -1463,7 +1463,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// ПланОбменаСсылка
|
||||
// ПланОбменаМенеджер
|
||||
//
|
||||
Функция МенеджерПланаОбменаКонечныхТочек() Экспорт
|
||||
|
||||
|
||||
@@ -291,6 +291,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// УзелОбъект - ПланОбменаОбъект
|
||||
//
|
||||
Функция ПроверитьНеобходимостьОтложеннойЗаписиУзла(Знач УзелОбъект) Экспорт
|
||||
|
||||
ИсключаемыеСвойства = Новый Массив;
|
||||
@@ -319,7 +322,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
ТипУзла = Тип("ПланОбменаОбъект." + УзелОбъект.Ссылка.Метаданные().Имя);
|
||||
УзелПередЗаписью = ДанныеФормыВЗначение(УзелОбъект, ТипУзла);
|
||||
УзелПередЗаписью = ДанныеФормыВЗначение(УзелОбъект, ТипУзла); //ПланОбменаОбъект
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("НеобходимаДлительнаяОперация" , Ложь);
|
||||
|
||||
@@ -288,7 +288,7 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - узел плана обмена.
|
||||
// Отказ - Булево - признак отказа от записи узла плана обмена.
|
||||
// Отказ - Булево - признак отказа от записи узла плана обмена.
|
||||
// ПараметрыЗаписи - Структура - произвольные параметры записи. См. описание события ПослеЗаписи в синтакс-помощнике.
|
||||
//
|
||||
Процедура ПередЗаписью(Форма, Отказ, ПараметрыЗаписи) Экспорт
|
||||
@@ -310,8 +310,10 @@
|
||||
|
||||
ИначеЕсли РезультатПроверки.НеобходимаДлительнаяОперация Тогда
|
||||
|
||||
Объект = Форма.Объект; //ПланОбменаОбъект
|
||||
|
||||
ПараметрыОбработки = Новый Структура;
|
||||
ПараметрыОбработки.Вставить("Узел", Форма.Объект.Ссылка);
|
||||
ПараметрыОбработки.Вставить("Узел", Объект.Ссылка);
|
||||
ПараметрыОбработки.Вставить("АдресСтруктурыУзла", РезультатПроверки.АдресСтруктурыУзла);
|
||||
|
||||
Форма.Модифицированность = Ложь;
|
||||
|
||||
@@ -1662,6 +1662,24 @@
|
||||
|
||||
#Область РазличногоНазначения
|
||||
|
||||
Функция ЭтоТехническийОбъект(Знач ПолноеИмяОбъекта) Экспорт
|
||||
|
||||
Если СтрНайти(ПолноеИмяОбъекта, ВРег("ПланОбмена")) > 0 Тогда
|
||||
|
||||
Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл
|
||||
|
||||
Если СтрНайти(ПолноеИмяОбъекта, ВРег(ИмяПланаОбмена)) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Выполняет загрузку приоритетных данных, полученных из главного узла РИБ.
|
||||
Процедура ЗагрузитьПриоритетныеДанныеВПодчиненныйУзелРИБ(Отказ = Ложь) Экспорт
|
||||
|
||||
@@ -4808,24 +4826,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЭтоТехническийОбъект(Знач ПолноеИмяОбъекта) Экспорт
|
||||
|
||||
Если СтрНайти(ПолноеИмяОбъекта, ВРег("ПланОбмена")) > 0 Тогда
|
||||
|
||||
Для Каждого ИмяПланаОбмена Из ОбменДаннымиПовтИсп.ПланыОбменаБСП() Цикл
|
||||
|
||||
Если СтрНайти(ПолноеИмяОбъекта, ВРег(ИмяПланаОбмена)) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьОтложенноеПроведениеДокументов(
|
||||
ДокументыДляОтложенногоПроведения,
|
||||
УзелКорреспондента,
|
||||
@@ -6368,7 +6368,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
// Получаем инициализированную обработку обмена данными.
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными;
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными; //ОбработкаОбъект.КонвертацияОбъектовXDTO
|
||||
ОбработкаОбменаДаннымиXML.ИмяФайлаОбмена = ИмяФайлаСообщенияОбмена;
|
||||
|
||||
// выгрузка данных
|
||||
@@ -6449,7 +6449,7 @@
|
||||
Отказ = Ложь;
|
||||
|
||||
// Получаем обработку обмена данными.
|
||||
ОбработкаОбменаДанными = СтруктураНастроекОбмена.ОбработкаОбменаДанными;
|
||||
ОбработкаОбменаДанными = СтруктураНастроекОбмена.ОбработкаОбменаДанными; //ОбработкаОбъект.КонвертацияОбъектовРаспределенныхИнформационныхБаз
|
||||
|
||||
// Устанавливаем имя файла сообщения обмена, который необходимо прочитать.
|
||||
ОбработкаОбменаДанными.УстановитьИмяФайлаСообщенияОбмена(ИмяФайлаСообщенияОбмена);
|
||||
@@ -6511,7 +6511,7 @@
|
||||
Если СтруктураНастроекОбмена.ОбменПоПравиламКонвертацииОбъектов Тогда
|
||||
|
||||
// Получаем инициализированную обработку обмена данными.
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными;
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными; //ОбработкаОбъект.КонвертацияОбъектовXDTO
|
||||
ОбработкаОбменаДаннымиXML.ИмяФайлаОбмена = ИмяФайлаСообщенияОбмена;
|
||||
|
||||
// загрузка данных
|
||||
@@ -7218,8 +7218,17 @@
|
||||
//
|
||||
Функция ИмяОбработкиТранспортаСообщенийОбмена(ВидТранспорта)
|
||||
|
||||
Возврат СтрЗаменить("ТранспортСообщенийОбмена[ВидТранспорта]", "[ВидТранспорта]", ОбщегоНазначения.ИмяЗначенияПеречисления(ВидТранспорта));
|
||||
ВидыТранспортаИОбработки = Новый Соответствие();
|
||||
ВидыТранспортаИОбработки.Вставить(Перечисления.ВидыТранспортаСообщенийОбмена.EMAIL, Метаданные.Обработки.ТранспортСообщенийОбменаEMAIL.Имя);
|
||||
ВидыТранспортаИОбработки.Вставить(Перечисления.ВидыТранспортаСообщенийОбмена.FILE, Метаданные.Обработки.ТранспортСообщенийОбменаFILE.Имя);
|
||||
ВидыТранспортаИОбработки.Вставить(Перечисления.ВидыТранспортаСообщенийОбмена.FTP, Метаданные.Обработки.ТранспортСообщенийОбменаFTP.Имя);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ОбменДаннымиСВнешнимиСистемами") Тогда
|
||||
ВидыТранспортаИОбработки.Вставить(Перечисления.ВидыТранспортаСообщенийОбмена.ВнешняяСистема, "ТранспортСообщенийОбменаВнешняяСистема");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ВидыТранспортаИОбработки.Получить(ВидТранспорта);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Дубль процедуры на сервере ОбменДаннымиКлиент.МаксимальноеКоличествоПолейСопоставленияОбъектов().
|
||||
@@ -8691,7 +8700,7 @@
|
||||
// Параметры:
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СтруктураНастроекОбмена - Структура - структура со всеми необходимыми данными и объектами для выполнения обмена.
|
||||
// Структура - структура со всеми необходимыми данными и объектами для выполнения обмена.
|
||||
//
|
||||
Функция НастройкиОбменаДляУзлаИнформационнойБазы(
|
||||
УзелИнформационнойБазы,
|
||||
@@ -8864,6 +8873,15 @@
|
||||
Возврат СтруктураНастроекОбмена;
|
||||
КонецФункции
|
||||
|
||||
// Структура настроек обмена для сеанса интерактивной загрузки.
|
||||
//
|
||||
// Параметры:
|
||||
// УзелИнформационнойБазы - ПланОбменаСсылка - узел информационной базы.
|
||||
// ИмяФайлаСообщенияОбмена - Строка - имя файла сообщения обмена.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. СтруктураНастроекОбменаБазовая.
|
||||
//
|
||||
Функция СтруктураНастроекОбменаДляСеансаИнтерактивнойЗагрузки(Знач УзелИнформационнойБазы, Знач ИмяФайлаСообщенияОбмена) Экспорт
|
||||
|
||||
Возврат ОбменДаннымиПовтИсп.СтруктураНастроекОбменаДляСеансаИнтерактивнойЗагрузки(УзелИнформационнойБазы, ИмяФайлаСообщенияОбмена);
|
||||
@@ -9006,6 +9024,57 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Структура настроек обмена базовая.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ДатаНачала - Дата
|
||||
// * ДатаОкончания - Дата
|
||||
// * НомерСтроки - Число.
|
||||
// * НастройкаВыполненияОбмена - СправочникСсылка.СценарииОбменовДанными - элемент справочника,
|
||||
// по значениям реквизитов которого будет выполнен обмен данными.
|
||||
// * НастройкаВыполненияОбменаНаименование - Строка - наименование настройки выполнения обмена.
|
||||
// * УзелИнформационнойБазы - ПланОбменаСсылка - узел плана обмена, для которого выполняется действие обмена данными.
|
||||
// * УзелИнформационнойБазыКод - Строка.
|
||||
// * УзелИнформационнойБазыНаименование - Строка.
|
||||
// * ВидТранспортаОбмена - ПеречислениеСсылка.ВидыТранспортаСообщенийОбмена - вид транспорта,
|
||||
// который будет использоваться в процессе обмена данными.
|
||||
// * ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене - выполняемое действие обмена данными.
|
||||
// * КоличествоЭлементовВТранзакции - Число.
|
||||
// * ПроизводитьЗагрузкуДанных - Булево.
|
||||
// * ПроизводитьВыгрузкуДанных - Булево.
|
||||
// * ИспользоватьПередачуБольшогоОбъемаДанных - Булево.
|
||||
// * Отказ - Булево.
|
||||
// * ЭтоОбменВРИБ - Булево.
|
||||
// * ОбработкаОбменаДанными - ОбработкаОбъект.КонвертацияОбъектовXDTO.
|
||||
// - ОбработкаОбъект.КонвертацияОбъектовИнформационныхБаз.
|
||||
// - ОбработкаОбъект.КонвертацияОбъектовРаспределенныхИнформационныхБаз.
|
||||
// * ОбработкаТранспортаСообщенийОбмена - ОбработкаМенеджер.
|
||||
// * ИмяПланаОбмена - Строка.
|
||||
// * ТекущийУзелПланаОбмена - ПланОбменаСсылка.
|
||||
// * ТекущийУзелПланаОбменаКод - ПланОбменаСсылка.
|
||||
// * ОбменПоПравиламКонвертацииОбъектов - Булево.
|
||||
// * НаличиеПравилКонвертацииОбязательно - Булево.
|
||||
// * ИмяОбработкиТранспортаСообщенийОбмена - Строка.
|
||||
// * КлючСообщенияЖурналаРегистрации - Строка.
|
||||
// * НастройкиТранспорта - Произвольный - сохраненные настройки транспорта сообщений обмена внешней системы.
|
||||
// * ПравилаКонвертацииОбъектов - ХранилищеЗначения - зачитанные правила конвертации объектов.
|
||||
// - Неопределено - если правила конвертации не были загружены в базу для
|
||||
// * ПравилаЗагружены - Булево.
|
||||
// * ОтладкаОбработчиковВыгрузки - Булево.
|
||||
// * ОтладкаОбработчиковЗагрузки - Булево.
|
||||
// * ИмяФайлаВнешнейОбработкиОтладкиВыгрузки - Строка.
|
||||
// * ИмяФайлаВнешнейОбработкиОтладкиЗагрузки - Строка.
|
||||
// * РежимПротоколированияОбменаДанными - Булево.
|
||||
// * ИмяФайлаПротоколаОбмена - Строка.
|
||||
// * ПродолжитьПриОшибке - Булево.
|
||||
// * ДополнительныеПараметры - Структура.
|
||||
// * РезультатВыполненияОбмена - ПеречислениеСсылка.РезультатыВыполненияОбмена.
|
||||
// * ДействиеПриОбмене - ПеречислениеСсылка.ДействияПриОбмене - выполняемое действие обмена данными.
|
||||
// * КоличествоОбъектовОбработано - Число.
|
||||
// * СообщениеПриОбмене - Строка.
|
||||
// * СтрокаСообщенияОбОшибке - Строка.
|
||||
//
|
||||
Функция СтруктураНастроекОбменаБазовая()
|
||||
|
||||
СтруктураНастроекОбмена = Новый Структура;
|
||||
@@ -11423,7 +11492,7 @@
|
||||
Отбор = Новый Структура("ПолноеИмя", ОтборСтрока);
|
||||
|
||||
// Получаем дерево объектов метаданных конфигурации.
|
||||
ДеревоИнформацииСтатистики = ОбменДаннымиПовтИсп.МетаданныеКонфигурации(Отбор).Скопировать();
|
||||
ДеревоИнформацииСтатистики = ОбменДаннымиПовтИсп.МетаданныеКонфигурации(Отбор).Скопировать(); //ДеревоЗначений
|
||||
|
||||
// Добавляем колонки
|
||||
ДеревоИнформацииСтатистики.Колонки.Добавить("Ключ");
|
||||
@@ -14742,7 +14811,7 @@
|
||||
ОбработкаДляЗагрузкиДанных.ИспользоватьТранзакции = (ОбработкаДляЗагрузкиДанных.КоличествоОбъектовНаТранзакцию <> 1);
|
||||
|
||||
// Получаем инициализированную обработку для выгрузки данных.
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными;
|
||||
ОбработкаОбменаДаннымиXML = СтруктураНастроекОбмена.ОбработкаОбменаДанными; //ОбработкаОбъект.КонвертацияОбъектовXDTO
|
||||
ОбработкаОбменаДаннымиXML.ИмяФайлаОбмена = "";
|
||||
|
||||
Если Не ЭтоПланОбменаXDTO Тогда
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.5.110";
|
||||
Описание.Версия = "3.1.5.132";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
@@ -227,6 +227,8 @@
|
||||
//
|
||||
Процедура ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики) Экспорт
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Вызывается после выполнения всех процедур-обработчиков перехода с другой программы (с другим именем конфигурации),
|
||||
|
||||
@@ -919,6 +919,7 @@
|
||||
|
||||
ОписаниеОбрабатываемыхДанных = НовоеОписаниеОбрабатываемыхДанных(Обработчик.Многопоточный);
|
||||
ОписаниеОбрабатываемыхДанных.ДанныеОбработчика = ПараметрыОбработчикаСтруктура.ДанныеОбработчика;
|
||||
ОписаниеОбрабатываемыхДанных.ИмяОбработчика = Обработчик.ИмяОбработчика;
|
||||
|
||||
Если Обработчик.Многопоточный Тогда
|
||||
ОписаниеОбрабатываемыхДанных.ПараметрыВыборки = ПараметрыОбработчикаСтруктура.ПараметрыВыборки;
|
||||
@@ -1712,6 +1713,21 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбщегоНазначения.ЭтоПланСчетов(МетаданныеОбъекта)
|
||||
Или ОбщегоНазначения.ЭтоПланВидовРасчета(МетаданныеОбъекта) Тогда
|
||||
Для Каждого ТабличнаяЧасть Из МетаданныеОбъекта.СтандартныеТабличныеЧасти Цикл
|
||||
|
||||
ПредопределенныеДанные.Колонки.Добавить(ТабличнаяЧасть.Имя, Новый ОписаниеТипов("ТаблицаЗначений"));
|
||||
Таблица = Новый ТаблицаЗначений;
|
||||
Для Каждого Реквизит Из ТабличнаяЧасть.СтандартныеРеквизиты Цикл
|
||||
ДобавитьКолонкуТаблицыПредопределенныхДанных(Таблица, Реквизит, ЛокализуемыеРеквизитыОбъекта, Языки);
|
||||
КонецЦикла;
|
||||
|
||||
ТабличныеЧасти.Вставить(ТабличнаяЧасть.Имя, Таблица);
|
||||
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПредопределенныеДанные.Колонки.Найти("ИмяПредопределенныхДанных") <> Неопределено Тогда
|
||||
ПредопределенныеДанные.Индексы.Добавить("ИмяПредопределенныхДанных");
|
||||
КонецЕсли;
|
||||
@@ -1723,9 +1739,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполнение предопределенных элементов при первом запуске
|
||||
//
|
||||
Процедура НачальноеЗаполнениеПредопределенныхДанных(ОбновитьМультиязычныеСтроки = Ложь) Экспорт
|
||||
// Параметры:
|
||||
// ОбновитьМультиязычныеСтроки - Булево - если Истина, то будут перезаполнены, только мультиязычные реквизиты.
|
||||
// ДополнительныеПараметры - см. МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков
|
||||
//
|
||||
Процедура НачальноеЗаполнениеПредопределенныхДанных(ОбновитьМультиязычныеСтроки = Ложь, ДополнительныеПараметры = Неопределено) Экспорт
|
||||
|
||||
ОбъектыСНачальнымЗаполнением = ОбъектыСНачальнымЗаполнением();
|
||||
ПараметрыЗаполнения = Новый Структура;
|
||||
@@ -1758,15 +1776,20 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
РеквизитыИсключения = ?(СтрНачинаетсяС(МетаданныеОбъекта.ПолноеИмя(), "ПланВидовХарактеристик"), "ТипЗначения", "");
|
||||
РеквизитыИсключения = Новый Соответствие;
|
||||
Если СтрНачинаетсяС(МетаданныеОбъекта.ПолноеИмя(), "ПланВидовХарактеристик") Тогда
|
||||
РеквизитыИсключения.Вставить("ТипЗначения", Истина);
|
||||
КонецЕсли;
|
||||
|
||||
ПоддерживаетсяИерархия = ПредопределенныеДанные.Колонки.Найти("ЭтоГруппа") <> Неопределено;
|
||||
|
||||
РеквизитыСЭлементами = Новый Массив;
|
||||
РеквизитыИсключенияСЭлементами = Новый Соответствие;
|
||||
Если ПоддерживаетсяИерархия Тогда
|
||||
ОбщегоНазначенияКлиентСервер.ДополнитьСоответствие(РеквизитыИсключенияСЭлементами, РеквизитыИсключения);
|
||||
ДляЭлемента = Метаданные.СвойстваОбъектов.ИспользованиеРеквизита.ДляЭлемента;
|
||||
Для Каждого Реквизит Из МетаданныеОбъекта.Реквизиты Цикл
|
||||
Если Реквизит.Использование = ДляЭлемента Тогда
|
||||
РеквизитыСЭлементами.Добавить(Реквизит.Имя);
|
||||
РеквизитыИсключенияСЭлементами.Вставить(Реквизит.Имя, Истина);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
@@ -1799,27 +1822,36 @@
|
||||
|
||||
Если Не ОбновитьМультиязычныеСтроки Тогда
|
||||
|
||||
КромеРеквизитов = РеквизитыИсключения;
|
||||
Если ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа Тогда
|
||||
КромеРеквизитов = РеквизитыИсключения
|
||||
+ ?(ПустаяСтрока(РеквизитыИсключения), "", ",") + СтрСоединить(РеквизитыСЭлементами, ",");
|
||||
КонецЕсли;
|
||||
ПоляИсключения =?(ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа,
|
||||
РеквизитыИсключенияСЭлементами, РеквизитыИсключения);
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ЗаполняемыйЭлемент, СтрокаТаблицы,, КромеРеквизитов);
|
||||
ДанныеЗаполнения = ОпределитьДанныеЗаполнения(ПредопределенныеДанные,
|
||||
СтрокаТаблицы, ПоляИсключения);
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ЗаполняемыйЭлемент, ДанныеЗаполнения);
|
||||
|
||||
Если НЕ (ПоддерживаетсяИерархия И ЗаполняемыйЭлемент.ЭтоГруппа) Тогда
|
||||
Для Каждого ИмяТабличнойЧасти Из ТабличныеЧасти Цикл
|
||||
ЗаполняемыйЭлемент[ИмяТабличнойЧасти].Загрузить(СтрокаТаблицы[ИмяТабличнойЧасти]);
|
||||
Если СтрокаТаблицы[ИмяТабличнойЧасти].Количество() > 0 Тогда
|
||||
ЗаполняемыйЭлемент[ИмяТабличнойЧасти].Загрузить(СтрокаТаблицы[ИмяТабличнойЧасти]);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
|
||||
МодульМультиязычностьСервер.НачальноеЗаполнениеПредопределенныхДанныхЛокализуемыеРеквизиты(
|
||||
ЗаполняемыйЭлемент, ПоддерживаетсяИерархия, СтрокаТаблицы, ПараметрыЗаполнения);
|
||||
Если ЛокализуемыеРеквизитыОбъекта.Количество() > 0 И ЛокализуемыеРеквизитыОбъекта["Наименование"] <> Неопределено Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
|
||||
МодульМультиязычностьСервер = ОбщегоНазначения.ОбщийМодуль("МультиязычностьСервер");
|
||||
МодульМультиязычностьСервер.НачальноеЗаполнениеПредопределенныхДанныхЛокализуемыеРеквизиты(
|
||||
ЗаполняемыйЭлемент, ПоддерживаетсяИерархия, СтрокаТаблицы, ПараметрыЗаполнения);
|
||||
КонецЕсли;
|
||||
ИначеЕсли ОбновитьМультиязычныеСтроки
|
||||
И ПредопределенныеДанные.Колонки.Найти("Наименование") <> Неопределено
|
||||
И ЗначениеЗаполнено(СтрокаТаблицы["Наименование"]) Тогда
|
||||
ЗаполняемыйЭлемент["Наименование"] = СтрокаТаблицы["Наименование"];
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
Если Не ОбновитьМультиязычныеСтроки И НастройкиПредопределенныхЭлементов.ПриНачальномЗаполненииЭлемента Тогда
|
||||
|
||||
@@ -1844,12 +1876,47 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОбновитьМультиязычныеСтроки Тогда
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
|
||||
МодульУправлениеДоступомСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступомСлужебный");
|
||||
МодульУправлениеДоступомСлужебный.ПриИзмененииЯзыкаИнформационнойБазы(ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ОпределитьДанныеЗаполнения(Знач ПредопределенныеДанные, Знач СтрокаТаблицы, Знач ПоляИсключения)
|
||||
|
||||
ДанныеЗаполнения = Новый Структура;
|
||||
Для Каждого Колонка Из ПредопределенныеДанные.Колонки Цикл
|
||||
|
||||
ИмяПоля = Колонка.Имя;
|
||||
Если ПоляИсключения[ИмяПоля] = Истина Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Значение = СтрокаТаблицы[ИмяПоля];
|
||||
Если Колонка.ТипЗначения.Типы().Количество() > 1 Тогда
|
||||
Заполнено = Значение <> Неопределено;
|
||||
ИначеЕсли ТипЗнч(Значение) = Тип("Булево") Тогда
|
||||
Заполнено = Значение;
|
||||
Иначе
|
||||
Заполнено = ЗначениеЗаполнено(Значение);
|
||||
КонецЕсли;
|
||||
|
||||
Если Заполнено Тогда
|
||||
ДанныеЗаполнения.Вставить(ИмяПоля, Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ДанныеЗаполнения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДействияПередОбновлениемИнформационнойБазы(ПараметрыОбновления)
|
||||
|
||||
Если Не ПараметрыОбновления.ПриЗапускеКлиентскогоПриложения Тогда
|
||||
@@ -2541,6 +2608,8 @@
|
||||
Модуль = ОбщегоНазначения.ОбщийМодуль(ОписаниеПодсистемы.ОсновнойСерверныйМодуль);
|
||||
Модуль.ПриДобавленииОбработчиковПереходаСДругойПрограммы(ОбработчикиПерехода);
|
||||
КонецЦикла;
|
||||
// Дополнительно добавляются обязательные обработчики перехода БСП.
|
||||
ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковПереходаСДругойПрограммы(ОбработчикиПерехода);
|
||||
|
||||
Отбор = Новый Структура("ПредыдущееИмяКонфигурации", "*");
|
||||
Результат = ОбработчикиПерехода.НайтиСтроки(Отбор);
|
||||
@@ -5271,9 +5340,11 @@
|
||||
|
||||
ОписаниеПроцедурыЗаполнения.ПоискЗавершен = РезультатПоиска.ПоискЗавершен;
|
||||
|
||||
УстановитьСвойствоОбработчика(ОписаниеПроцедурыЗаполнения.ИмяОбработчика,
|
||||
"ОбрабатываемыеДанные",
|
||||
Новый ХранилищеЗначения(ОписаниеПроцедурыЗаполнения));
|
||||
Если ОписаниеПроцедурыЗаполнения.Свойство("ИмяОбработчика") Тогда
|
||||
УстановитьСвойствоОбработчика(ОписаниеПроцедурыЗаполнения.ИмяОбработчика,
|
||||
"ОбрабатываемыеДанные",
|
||||
Новый ХранилищеЗначения(ОписаниеПроцедурыЗаполнения));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -5499,6 +5570,7 @@
|
||||
|
||||
Описание = Новый Структура;
|
||||
Описание.Вставить("ДанныеОбработчика");
|
||||
Описание.Вставить("ИмяОбработчика");
|
||||
|
||||
Если Многопоточное Тогда
|
||||
Описание.Вставить("ВыполняетсяПоискПорции", Ложь);
|
||||
@@ -5509,7 +5581,6 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Фоновое Тогда
|
||||
Описание.Вставить("ИмяОбработчика");
|
||||
Описание.Вставить("Очередь");
|
||||
Описание.Вставить("ПроцедураЗаполнения");
|
||||
Описание.Вставить("Статус");
|
||||
@@ -7900,6 +7971,7 @@
|
||||
|
||||
ОписаниеОбрабатываемыхДанных = НовоеОписаниеОбрабатываемыхДанных(Обработчик.Многопоточный);
|
||||
ОписаниеОбрабатываемыхДанных.ДанныеОбработчика = ПараметрыОбработчикаСтруктура.ДанныеОбработчика;
|
||||
ОписаниеОбрабатываемыхДанных.ИмяОбработчика = Обработчик.ИмяОбработчика;
|
||||
|
||||
Если Обработчик.Многопоточный Тогда
|
||||
ОписаниеОбрабатываемыхДанных.ПараметрыВыборки = ПараметрыОбработчикаСтруктура.ПараметрыВыборки;
|
||||
|
||||
@@ -2819,7 +2819,7 @@
|
||||
|
||||
#Область ДинамическийСписок
|
||||
|
||||
// Создать структуру свойств динамического списка для вызова УстановитьСвойстваДинамическогоСписка().
|
||||
// Создает структуру для второго параметра СвойстваСписка процедуры УстановитьСвойстваДинамическогоСписка.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - любое поле может иметь значение Неопределено, если оно не устанавливается:
|
||||
@@ -2838,9 +2838,9 @@
|
||||
//
|
||||
// Параметры:
|
||||
// Список - ТаблицаФормы - элемент формы динамического списка, для которого устанавливаются свойства.
|
||||
// СтруктураПараметров - см. СтруктураСвойствДинамическогоСписка
|
||||
// СвойстваСписка - см. СтруктураСвойствДинамическогоСписка
|
||||
//
|
||||
Процедура УстановитьСвойстваДинамическогоСписка(Список, СтруктураПараметров) Экспорт
|
||||
Процедура УстановитьСвойстваДинамическогоСписка(Список, СвойстваСписка) Экспорт
|
||||
|
||||
Форма = Список.Родитель;
|
||||
ТипФормаКлиентскогоПриложения = Тип("ФормаКлиентскогоПриложения");
|
||||
@@ -2850,19 +2850,19 @@
|
||||
КонецЦикла;
|
||||
|
||||
ДинамическийСписок = Форма[Список.ПутьКДанным];
|
||||
ТекстЗапроса = СтруктураПараметров.ТекстЗапроса;
|
||||
ТекстЗапроса = СвойстваСписка.ТекстЗапроса;
|
||||
|
||||
Если Не ПустаяСтрока(ТекстЗапроса) Тогда
|
||||
ДинамическийСписок.ТекстЗапроса = ТекстЗапроса;
|
||||
КонецЕсли;
|
||||
|
||||
ОсновнаяТаблица = СтруктураПараметров.ОсновнаяТаблица;
|
||||
ОсновнаяТаблица = СвойстваСписка.ОсновнаяТаблица;
|
||||
|
||||
Если Не ПустаяСтрока(ОсновнаяТаблица) Тогда
|
||||
ДинамическийСписок.ОсновнаяТаблица = ОсновнаяТаблица;
|
||||
КонецЕсли;
|
||||
|
||||
ДинамическоеСчитываниеДанных = СтруктураПараметров.ДинамическоеСчитываниеДанных;
|
||||
ДинамическоеСчитываниеДанных = СвойстваСписка.ДинамическоеСчитываниеДанных;
|
||||
|
||||
Если ТипЗнч(ДинамическоеСчитываниеДанных) = Тип("Булево") Тогда
|
||||
ДинамическийСписок.ДинамическоеСчитываниеДанных = ДинамическоеСчитываниеДанных;
|
||||
|
||||
@@ -400,7 +400,7 @@
|
||||
COMConnector = Новый COMObject(ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя()); // "V83.COMConnector"
|
||||
Исключение
|
||||
Информация = ИнформацияОбОшибке();
|
||||
СтрокаСообщенияОбОшибке = НСтр("ru = 'Не удалось подключится к другой программе: %1'");
|
||||
СтрокаСообщенияОбОшибке = НСтр("ru = 'Не удалось подключиться к другой программе: %1'");
|
||||
|
||||
Результат.ОшибкаПодключенияКомпоненты = Истина;
|
||||
Результат.ПодробноеОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаСообщенияОбОшибке, ПодробноеПредставлениеОшибки(Информация));
|
||||
|
||||
@@ -1967,6 +1967,28 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбновитьПредставленияСписка(СписокПриемник, СписокИсточник) Экспорт
|
||||
|
||||
Если ТипЗнч(СписокИсточник) <> Тип("СписокЗначений") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из СписокИсточник Цикл
|
||||
|
||||
Если Не ЗначениеЗаполнено(Элемент.Представление) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НайденныйЭлемент = СписокПриемник.НайтиПоЗначению(Элемент.Значение);
|
||||
|
||||
Если НайденныйЭлемент <> Неопределено Тогда
|
||||
НайденныйЭлемент.Представление = Элемент.Представление;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СтрЛевДоСимвола(Строка, Разделитель, Остаток = Неопределено)
|
||||
Позиция = СтрНайти(Строка, Разделитель);
|
||||
Если Позиция = 0 Тогда
|
||||
|
||||
@@ -1926,7 +1926,7 @@
|
||||
|
||||
Если РасширенноеОписаниеТипа.КоличествоТипов = 1 Тогда
|
||||
Если РасширенноеОписаниеТипа.СодержитТипЧисло Тогда
|
||||
Поле.КнопкаВыбора = (Поле.СписокВыбора.Количество() = 0);
|
||||
Поле.КнопкаВыбора = Поле.СписокВыбора.Количество() = 0 Или Элемент.ЭтоСписок;
|
||||
Если Поле.РастягиватьПоГоризонтали = Истина Тогда
|
||||
Поле.РастягиватьПоГоризонтали = Ложь;
|
||||
КонецЕсли;
|
||||
@@ -2551,7 +2551,7 @@
|
||||
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = '%1 (дата %2)'"),
|
||||
ЗаголовокЭлементаНастройки,
|
||||
?(СтрЗаканчиваетсяНа(НРег(Свойство), "начала"), НСтр("ru = 'начала'"), НСтр("ru = 'окончания'")));
|
||||
?(СтрЗаканчиваетсяНа(НРег(Свойство), НРег("ДатаНачала")), НСтр("ru = 'начала'"), НСтр("ru = 'окончания'")));
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -2595,7 +2595,7 @@
|
||||
Команда.Заголовок = НСтр("ru = 'Выбрать период...'");
|
||||
Команда.Подсказка = Команда.Заголовок;
|
||||
Команда.Отображение = ОтображениеКнопки.Картинка;
|
||||
Команда.Картинка = БиблиотекаКартинок.Выбрать;
|
||||
Команда.Картинка = КартинкаКнопкиВыбораПериода();
|
||||
|
||||
ИмяГруппыКнопки = СтрЗаменить(ИмяЭлемента, "ВыбратьПериод", "ГруппаВыбратьПериод");
|
||||
ГруппаКнопки = ГруппаЭлементовФормыНастроек(Форма.Элементы, Группа, ИмяГруппыКнопки);
|
||||
@@ -2623,9 +2623,9 @@
|
||||
Кнопка.Шрифт = Метаданные.ЭлементыСтиля.ВажнаяНадписьШрифт.Значение;
|
||||
|
||||
Если ЭтоСтандартноеПредставление Тогда
|
||||
ЭлементПериода.Ширина = 3;
|
||||
|
||||
Кнопка.Ширина = 3;
|
||||
Кнопка.Отображение = ОтображениеКнопки.Картинка;
|
||||
Кнопка.Картинка = КартинкаКнопкиВыбораПериода();
|
||||
Кнопка.ОтображениеФигуры = ОтображениеФигурыКнопки.Авто;
|
||||
Иначе
|
||||
ЭлементПериода.Ширина = 15;
|
||||
@@ -2635,6 +2635,18 @@
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КартинкаКнопкиВыбораПериода()
|
||||
|
||||
ВерсияРежимаСовместимости = СтандартныеПодсистемыСервер.ВерсияРежимаСовместимости();
|
||||
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияРежимаСовместимости, "8.3.17.0") >= 0 Тогда
|
||||
Возврат БиблиотекаКартинок["ПолеВводаВыбрать"];
|
||||
КонецЕсли;
|
||||
|
||||
Возврат БиблиотекаКартинок["Выбрать"];
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает значения свойствам стандартного периода: ДатаНачала, ДатаОкончания
|
||||
//
|
||||
// Параметры:
|
||||
|
||||
@@ -277,15 +277,18 @@
|
||||
// НастройкиПрограммногоИнтерфейса - см. ПодключаемыеКоманды.НастройкиПрограммногоИнтерфейсаПодключаемыхОбъектов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - настройки интеграции этого объекта.
|
||||
// Состав полей см. в блоке "Параметры процедуры ПриОпределенииНастроек"
|
||||
// процедуры ПодключаемыеКомандыПереопределяемый.ПриОпределенииСоставаНастроекПодключаемыхОбъектов.
|
||||
// Дополнительно содержит следующие поля:
|
||||
// * Вид - Строка - вид имя объекта метаданных в верхнем регистре.
|
||||
// * ПолноеИмя - Строка - полное имя объекта метаданных.
|
||||
// * Менеджер - ОбработкаМенеджер
|
||||
// - ОтчетМенеджер - менеджер объекта метаданных.
|
||||
// Неопределено - если настройки не удалось получить.
|
||||
// Структура - настройки интеграции этого объекта:
|
||||
// * Размещение - Массив из ОбъектМетаданных - объекты, к которым подключен объект.
|
||||
// * ДобавитьКомандыПечати - Булево - в модуле менеджера объекта определена функция ДобавитьКомандыПечати.
|
||||
// * ДобавитьКомандыЗаполнения - Булево - в модуле менеджера объекта определена функция ДобавитьКомандыЗаполнения.
|
||||
// * ДобавитьКомандыОтчетов - Булево - в модуле менеджера объекта определена функция ДобавитьКомандыОтчетов.
|
||||
// * НастроитьВариантыОтчета - Булево - в модуле менеджера объекта определена функция НастроитьВариантыОтчета.
|
||||
// * ОпределитьНастройкиФормы - Булево - в модуле менеджера объекта определена функция ОпределитьНастройкиФормы.
|
||||
// * Вид - Строка - вид имя объекта метаданных в верхнем регистре.
|
||||
// * ПолноеИмя - Строка - полное имя объекта метаданных.
|
||||
// * Менеджер - ОбработкаМенеджер
|
||||
// - ОтчетМенеджер - менеджер объекта метаданных.
|
||||
// Неопределено - если настройки не удалось получить.
|
||||
//
|
||||
Функция НастройкиПодключаемогоОбъекта(ПолноеИмя, НастройкиПрограммногоИнтерфейса = Неопределено) Экспорт
|
||||
ЧастиИмени = СтрРазделить(ПолноеИмя, ".");
|
||||
@@ -849,7 +852,7 @@
|
||||
СведенияОКоманде = Новый Структура("ИмяВФорме, ТипПараметра, УсловияВидимости");
|
||||
ЗаполнитьЗначенияСвойств(СведенияОКоманде, Команда);
|
||||
СведенияОПодменюКоманды.КомандыСУсловиямиВидимости.Добавить(СведенияОКоманде);
|
||||
Иначе
|
||||
ИначеЕсли Команда.Важность <> "СмТакже" Тогда
|
||||
СведенияОПодменюКоманды.ЕстьКомандыБезУсловийВидимости = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
@@ -895,6 +898,13 @@
|
||||
КнопкаФормы.ИмяКоманды = "КомандаДляВыводаВПустоеПодменю";
|
||||
КнопкаФормы.Видимость = Ложь;
|
||||
КнопкаФормы.Доступность = Ложь;
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||||
ВерсияПлатформы = СистемнаяИнформация.ВерсияПриложения;
|
||||
ВерсияПлатформыБезНомераСборки = ОбщегоНазначенияКлиентСервер.ВерсияКонфигурацииБезНомераСборки(ВерсияПлатформы);
|
||||
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсииБезНомераСборки(ВерсияПлатформыБезНомераСборки, "8.3.15") >= 0 Тогда
|
||||
КнопкаФормы.ПоложениеВКоманднойПанели = ОбщегоНазначения.ВычислитьВБезопасномРежиме("ПоложениеКнопкиВКоманднойПанели.ВКоманднойПанели");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
@@ -1283,6 +1293,44 @@
|
||||
// Вызовы из модулей ВызовСервера.
|
||||
|
||||
// Возвращает описание команды по имени элемента формы.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяКомандыВФорме Имя команды в форме
|
||||
// АдресНастроек Адрес настроек
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура:
|
||||
// * Вид - Строка
|
||||
// * Идентификатор - Строка
|
||||
// * Представление - Строка
|
||||
// * Подменю - Строка
|
||||
// * Важность - Строка
|
||||
// * Порядок - Число
|
||||
// * Картинка - Картинка
|
||||
// * СочетаниеКлавиш - СочетаниеКлавиш
|
||||
// * ОтображениеКнопки - Неопределено
|
||||
// * ТолькоВоВсехДействиях - Булево
|
||||
// * ЗначениеПометки - Строка
|
||||
// * ТипПараметра - ОписаниеТипов
|
||||
// * ВидимостьВФормах - Строка
|
||||
// * Назначение - Строка
|
||||
// * ФункциональныеОпции - Строка
|
||||
// * УсловияВидимости - Массив
|
||||
// * ИзменяетВыбранныеОбъекты - Булево
|
||||
// * МножественныйВыбор - Булево, Неопределено
|
||||
// * РежимЗаписи - Строка
|
||||
// * ТребуетсяРаботаСФайлами - Булево
|
||||
// * Менеджер - Строка
|
||||
// * Обработчик - Строка
|
||||
// * ДополнительныеПараметры - Структура
|
||||
// * ИмяФормы - Строка
|
||||
// * ПараметрыФормы - Структура, Неопределено
|
||||
// * ИмяПараметраФормы - Строка
|
||||
// * ПорядокВажности - Число
|
||||
// * ИмяВФорме - Строка
|
||||
// * ЕстьУсловияВидимости - Булево
|
||||
// * КлючПараметровРазмещения - Строка
|
||||
//
|
||||
Функция ОписаниеКоманды(ИмяКомандыВФорме, АдресНастроек) Экспорт
|
||||
Команды = ПолучитьИзВременногоХранилища(АдресНастроек);
|
||||
Команда = Команды.Найти(ИмяКомандыВФорме, "ИмяВФорме");
|
||||
|
||||
@@ -969,6 +969,8 @@
|
||||
|
||||
Функция ПроверитьДоступностьСервера(АдресСервера) Экспорт
|
||||
|
||||
Результат = Новый Структура("Доступен, ЖурналДиагностики", Ложь, "");
|
||||
|
||||
ПараметрыЗапускаПрограммы = ФайловаяСистема.ПараметрыЗапускаПрограммы();
|
||||
ПараметрыЗапускаПрограммы.ДождатьсяЗавершения = Истина;
|
||||
ПараметрыЗапускаПрограммы.ПолучитьПотокВывода = Истина;
|
||||
@@ -980,15 +982,24 @@
|
||||
Иначе
|
||||
ШаблонКоманды = "ping -c 4 -W 1 %1";
|
||||
КонецЕсли;
|
||||
|
||||
СтрокаКоманды = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонКоманды, АдресСервера);
|
||||
|
||||
Результат = ФайловаяСистема.ЗапуститьПрограмму(СтрокаКоманды, ПараметрыЗапускаПрограммы);
|
||||
Попытка
|
||||
РезультатЗапуска = ФайловаяСистема.ЗапуститьПрограмму(СтрокаКоманды, ПараметрыЗапускаПрограммы);
|
||||
Исключение
|
||||
Результат.ЖурналДиагностики = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось проверить доступность интернет-ресурса ""%1"" по причине:
|
||||
|%2
|
||||
|
|
||||
|с помощью команды ""%3"".'"),
|
||||
АдресСервера, КраткоеПредставлениеОшибки(ИнформацияОбОшибке()), СтрокаКоманды);
|
||||
Возврат Результат;
|
||||
КонецПопытки;
|
||||
|
||||
// Разные операционные системы могут выводить ошибки в разные потоки:
|
||||
// - для Windows все всегда в потоке вывода;
|
||||
// - для Debian или RHEL ошибки падают в поток ошибок.
|
||||
ЖурналДоступности = Результат.ПотокВывода + Результат.ПотокОшибок;
|
||||
ЖурналДоступности = РезультатЗапуска.ПотокВывода + РезультатЗапуска.ПотокОшибок;
|
||||
|
||||
Если ОбщегоНазначения.ЭтоWindowsСервер() Тогда
|
||||
Доступен = СтрНайти(ЖурналДоступности, "Destination host unreachable") = 0 // Не локализуется.
|
||||
@@ -1014,7 +1025,9 @@
|
||||
Журнал.Добавить("> " + СтрокаКоманды);
|
||||
Журнал.Добавить(ЖурналДоступности);
|
||||
|
||||
Возврат Новый Структура("Доступен, ЖурналДиагностики", Доступен, СтрСоединить(Журнал, Символы.ПС));
|
||||
Результат.Доступен = Доступен;
|
||||
Результат.ЖурналДиагностики = СтрСоединить(Журнал, Символы.ПС);
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -132,10 +132,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращает назначение ролей, определенное разработчиком.
|
||||
// См. комментарий к процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.
|
||||
//
|
||||
@@ -162,7 +158,15 @@
|
||||
Для Каждого ОписаниеНазначенияРолей Из НазначениеРолей Цикл
|
||||
Имена = Новый Соответствие;
|
||||
Для Каждого Имя Из ОписаниеНазначенияРолей.Значение Цикл
|
||||
Имена.Вставить(Имя, Истина);
|
||||
Роль = Метаданные.Роли.Найти(Имя);
|
||||
Если Роль = Неопределено Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Указана несуществующая роль ""%1""
|
||||
|в процедуре ПриОпределенииНазначенияРолей
|
||||
|общего модуля ПользователиПереопределяемый.'"), Имя);
|
||||
ВызватьИсключение ТекстОшибки;
|
||||
КонецЕсли;
|
||||
Имена.Вставить(Роль.Имя, Истина);
|
||||
КонецЦикла;
|
||||
Назначение.Вставить(ОписаниеНазначенияРолей.Ключ, Новый ФиксированноеСоответствие(Имена));
|
||||
КонецЦикла;
|
||||
@@ -171,6 +175,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// См. Пользователи.ЭтоСеансВнешнегоПользователя.
|
||||
Функция ЭтоСеансВнешнегоПользователя() Экспорт
|
||||
|
||||
|
||||
@@ -777,8 +777,7 @@
|
||||
Адрес.country = ВРег(ДополнительнаяИнформацияАдреса.Страна);
|
||||
КонецЕсли;
|
||||
|
||||
ВидИнформации = Новый Структура("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес);
|
||||
РасчетноеПредставление = УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(Адрес, ВидИнформации);
|
||||
РасчетноеПредставление = УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(Адрес);
|
||||
Адрес.value = РасчетноеПредставление;
|
||||
|
||||
Если ДополнительнаяИнформацияАдреса.Свойство("АдресВJSON") И ДополнительнаяИнформацияАдреса.АдресВJSON = Истина Тогда
|
||||
@@ -1495,7 +1494,7 @@
|
||||
|
||||
// Возвращает XPath для номера дополнительного объекта адресации.
|
||||
//
|
||||
// Параметры;
|
||||
// Параметры:
|
||||
// СтрокаЗначения - Строка - искомый тип, например "Дом", "Корпус".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -2207,9 +2206,8 @@
|
||||
|
||||
// Возвращает XPath для дополнительного объекта адресации по умолчанию.
|
||||
//
|
||||
// Параметры;
|
||||
// Уровень - Число - уровень объекта. 90 - дополнительный(Варианты: ГСК, СНТ, ТЕР), 91 - подчиненный, -1 -
|
||||
// Ориентир.
|
||||
// Параметры:
|
||||
// Уровень - Число - уровень объекта.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - XPath
|
||||
@@ -2310,7 +2308,7 @@
|
||||
ТаблицаАдресов.Колонки.Добавить("Адрес", Новый ОписаниеТипов("Структура"));
|
||||
ТаблицаАдресов.Индексы.Добавить("ИндексАдреса");
|
||||
|
||||
ПодготовленныеПоляАдреса = РаботаСАдресамиКлиентСервер.КонструкторПолейАдреса();
|
||||
ПодготовленныеПоляАдреса = РаботаСАдресамиКлиентСервер.ПоляАдреса();
|
||||
Параметры = ИнициализироватьПараметрыСведенийОбАдресе(ДополнительныеПараметры);
|
||||
СформироватьПоляСведенийОбАдресе(ПодготовленныеПоляАдреса, Параметры);
|
||||
|
||||
@@ -2358,7 +2356,7 @@
|
||||
|
||||
АдресИзJSON = СтрокаАдреса.АдресJSON;
|
||||
|
||||
АдресПоПолям = Новый Структура(Новый ФиксированнаяСтруктура(ПодготовленныеПоляАдреса)); // см. РаботаСАдресамиКлиентСервер.КонструкторПолейАдреса
|
||||
АдресПоПолям = Новый Структура(Новый ФиксированнаяСтруктура(ПодготовленныеПоляАдреса)); // см. РаботаСАдресамиКлиентСервер.ПоляАдреса
|
||||
|
||||
// Основные сведения
|
||||
АдресПоПолям.Комментарий = АдресИзJSON.Comment;
|
||||
@@ -2529,7 +2527,7 @@
|
||||
Функция СведенияОбАдресеВВидеСтруктуры(Знач АдресСтрокой, ДополнительныеПараметры)
|
||||
|
||||
Если ПустаяСтрока(АдресСтрокой) Тогда
|
||||
Возврат РаботаСАдресамиКлиентСервер.КонструкторПолейАдреса();;
|
||||
Возврат РаботаСАдресамиКлиентСервер.ПоляАдреса();
|
||||
КонецЕсли;
|
||||
|
||||
Адреса = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(АдресСтрокой);
|
||||
|
||||
@@ -63,6 +63,42 @@
|
||||
Возврат СтрСравнить(ТипАдреса, РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес()) = 0;
|
||||
КонецФункции
|
||||
|
||||
// Телефон
|
||||
|
||||
// Показать подсказку корректности кода города при вводе телефона.
|
||||
//
|
||||
// Параметры:
|
||||
// КодСтраны - Строка
|
||||
// КодГорода - Строка
|
||||
//
|
||||
Процедура ПоказатьПодсказкуКорректностиКодовСтраныИГорода(КодСтраны, КодГорода) Экспорт
|
||||
Если (КодСтраны = "+7" ИЛИ КодСтраны = "8") И СтрНачинаетсяС(КодГорода, "9") И СтрДлина(КодГорода) <> 3 Тогда
|
||||
ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Коды мобильных телефонов начинающиеся на цифру 9 имеют фиксированную длину в 3 цифры, например - 916.'"),, "КодГорода");
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
|
||||
// Проверить корректность кода города и номера телефона кодов страны.
|
||||
//
|
||||
// Параметры:
|
||||
// КодСтраны - Строка
|
||||
// КодГорода - Строка
|
||||
// НомерТелефона - Строка
|
||||
// СписокОшибок - СписокЗначений
|
||||
//
|
||||
Процедура ПроверитьКорректностьКодовСтраныИГорода(КодСтраны, КодГорода, НомерТелефона, СписокОшибок) Экспорт
|
||||
|
||||
Если КодСтраны = "7" ИЛИ КодСтраны = "+7" Тогда
|
||||
Если СтрДлина(УправлениеКонтактнойИнформациейКлиент.ОставитьТолькоЦифрыВСтроке(НомерТелефона)) > 7 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номер телефона не может быть больше 7 цифр'"));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если СтрНачинаетсяС(КодГорода, "9") И СтрДлина(КодГорода) <> 3 Тогда
|
||||
СписокОшибок.Добавить("НомерТелефона", НСтр("ru = 'В России номера мобильных телефонов должны содержать 3 цифры'"));
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
|
||||
@@ -13,10 +13,10 @@
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * Представление - Строка - текстовое представление адреса по административно-территориальному делению.
|
||||
// Например, "175430, Новгородская обл, Валдайский р-н, Бор д, Полевая ул, дом 4"
|
||||
// Например, "175430, Новгородская обл, Валдайский р-н, Бор д, Полевая ул, дом 4".
|
||||
// * МуниципальноеПредставление - Строка - текстовое представление адреса по муниципальному делению.
|
||||
// Например, "175430, Новгородская обл, Валдайский муниципальный район, сельское
|
||||
// поселение Никулинское, Бор д, Полевая ул, дом 4";
|
||||
// поселение Никулинское, Бор д, Полевая ул, дом 4".
|
||||
// * ТипАдреса - Строка - основной тип адреса (только для адресов РФ).
|
||||
// Варианты: "Муниципальный", "Административно-территориальный".
|
||||
// * Страна - Строка - текстовое представление страны. Например, "Россия".
|
||||
@@ -24,31 +24,51 @@
|
||||
// * Индекс - Строка - почтовый индекс. Например, "12700".
|
||||
// * КодРегиона - Строка - код региона РФ. Например, "50".
|
||||
// * Регион - Строка - текстовое представление региона РФ. Например, "Московская"
|
||||
// * РегионСокращение - Строка - сокращение региона. Например, "обл".
|
||||
// * Округ - Строка - текстовое представление округа (устарело).
|
||||
// * ОкругСокращение - Строка - сокращение округа (устарело).
|
||||
// * РегионТипПолный - Строка - тип региона. Например, "область".
|
||||
// * РегионТипКраткий - Строка - сокращение региона. Например, "обл".
|
||||
// * РегионСокращение - Строка - устарело. Сокращение региона. Например, "обл".
|
||||
// * Округ - Строка - устарело. Текстовое представление округа (устарело).
|
||||
// * ОкругСокращение - Строка - устарело. Сокращение округа (устарело).
|
||||
// * Район - Строка - текстовое представление района у адресов по административно-территориальному
|
||||
// делению. Например, "Валдайский".
|
||||
// * РайонСокращение - Строка - сокращение района у адресов по административно-территориальному делению. Например, "р-н".
|
||||
// * РайонТипПолный - Строка - тип района у адресов по административно-территориальному делению. Например, "район".
|
||||
// * РайонТипКраткий - Строка - сокращение района у адресов по административно-территориальному делению. Например, "р-н".
|
||||
// * РайонСокращение - Строка - устарело. Сокращение района у адресов по административно-территориальному делению.
|
||||
// Например, "р-н".
|
||||
// * МуниципальныйРайон - Строка - текстовое представление муниципального района у адресов по муниципальному делению.
|
||||
// Например, "Валдайский".
|
||||
// * МуниципальныйРайонСокращение - Строка - сокращение муниципального района у адресов по муниципальному делению.
|
||||
// Например, "м.р-н".
|
||||
// Например, "Валдайский".
|
||||
// * МуниципальныйРайонТипПолный - Строка - тип муниципального района у адресов по муниципальному делению.
|
||||
// Например, "муниципальный район".
|
||||
// * МуниципальныйРайонТипКраткий - Строка - сокращение муниципального района у адресов по муниципальному делению.
|
||||
// Например, "м.р-н".
|
||||
// * МуниципальныйРайонСокращение - Строка - устарело. Сокращение муниципального района у адресов по муниципальному делению.
|
||||
// Например, "м.р-н".
|
||||
// * Город - Строка - текстовое представление города у адресов по административно-территориальному
|
||||
// делению. Например, "Валдай".
|
||||
// * ГородСокращение - Строка - сокращение города у адресов по административно-территориальному делению. Например,
|
||||
// "г".
|
||||
// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. Например,
|
||||
// "сельское поселение Никулинское".
|
||||
// * ПоселениеСокращение - Строка - сокращение поселения у адресов по муниципальному делению. Например, "с.п.";
|
||||
// * ВнутригородскойРайон - Строка - текстовое представление внутригородского района. Например, "Центральный"
|
||||
// * ВнутригородскойРайонСокращение - Строка - сокращение внутригородского района. Например, "мкр";
|
||||
// * НаселенныйПункт - Строка - текстовое представление населенного пункта. Например, "Бор".
|
||||
// * НаселенныйПунктСокращение - Строка - сокращение населенного пункта. Например, "д".
|
||||
// * Территория - Строка - текстовое представление территории. Например, "Мотор".
|
||||
// * ТерриторияСокращение - Строка - сокращение территории. Например, "гск".
|
||||
// * Улица - Строка - текстовое представление улицы. Например "Полевая".
|
||||
// * УлицаСокращение - Строка - сокращение улицы. Например "ул".
|
||||
// * ГородТипПолный - Строка - тип города. Например, "город".
|
||||
// * ГородТипКраткий - Строка - сокращение типа города. Например, "г".
|
||||
// * ГородСокращение - Строка - устарело. Сокращение типа города. Например, "г".
|
||||
// * Поселение - Строка - текстовое представление поселения у адресов по муниципальному делению. Например,
|
||||
// "сельское поселение Никулинское".
|
||||
// * ПоселениеТипПолный - Строка - тип поселения у адресов по муниципальному делению. Например, "сельское поселение";
|
||||
// * ПоселениеТипКраткий - Строка - сокращение типа поселения у адресов по муниципальному делению. Например, "с.п.";
|
||||
// * ПоселениеСокращение - Строка - устарело. Сокращение поселения у адресов по муниципальному делению. Например, "с.п.";
|
||||
// * ВнутригородскойРайон - Строка - устарело. Текстовое представление внутригородского района. Например, "Центральный"
|
||||
// * ВнутригородскойРайонТипПолный - Строка - устарело. Тип внутригородского района. Например, "микрорайон";
|
||||
// * ВнутригородскойРайонТипКраткий - Строка - устарело. Сокращение типа внутригородского района. Например, "мкр";
|
||||
// * ВнутригородскойРайонСокращение - Строка - устарело. Сокращение внутригородского района. Например, "мкр";
|
||||
// * НаселенныйПункт - Строка - текстовое представление населенного пункта. Например, "Бор".
|
||||
// * НаселенныйПунктТипПолный - Строка - тип населенного пункта. Например, "деревня".
|
||||
// * НаселенныйПунктТипКраткий - Строка - сокращение типа населенного пункта. Например, "д".
|
||||
// * НаселенныйПунктСокращение - Строка - устарело. Сокращение населенного пункта. Например, "д".
|
||||
// * Территория - Строка - текстовое представление территории. Например, "Мотор".
|
||||
// * ТерриторияТипПолный - Строка -тип территории. Например, "территория".
|
||||
// * ТерриторияТипКраткий - Строка - сокращение территории. Например, "тер".
|
||||
// * ТерриторияСокращение - Строка - устарело. Сокращение территории. Например, "тер".
|
||||
// * Улица - Строка - текстовое представление улицы. Например "Полевая".
|
||||
// * УлицаТипПолный - Строка - тип улицы. Например "улица".
|
||||
// * УлицаТипКраткий - Строка - сокращение типа улицы. Например "ул".
|
||||
// * УлицаСокращение - Строка - устарело. Сокращение улицы. Например "ул".
|
||||
// * ДополнительнаяТерритория - Строка - текстовое представление дополнительной территории (устарело).
|
||||
// * ДополнительнаяТерриторияСокращение - Строка - сокращение дополнительной территории (устарело).
|
||||
// * ЭлементДополнительнойТерритории - Строка - текстовое представление элемента дополнительной территории (устарело).
|
||||
@@ -62,11 +82,15 @@
|
||||
// * Помещения - Массив из Структура:
|
||||
// * ТипПомещения - Строка - наименование помещения. Например, "Офис"
|
||||
// * Номер - Строка - номер помещения. Например, "1".
|
||||
// * НомерЗемельногоУчастка - Неопределено
|
||||
// - Строка - текстовое представление номера участка. Например, "10".
|
||||
// * ИдентификаторАдресногоОбъекта - УникальныйИдентификатор - идентификационный код последнего адресного объекта
|
||||
// в иерархи адреса. Например, для адреса: Москва г., Дмитровское ш., д.9 это
|
||||
// будет идентификатор улицы. Например, "8fe5e839-24c8-4500-bea8-a81a55a0fd1e"
|
||||
// будет идентификатор улицы. Например, "8fe5e839-24c8-4500-bea8-a81a55a0fd1e".
|
||||
// * ИдентификаторДома - УникальныйИдентификатор - идентификационный код дома(строения) адресного объекта.
|
||||
// Например, "bc26bdef-12be-40f8-959c-2149de1911b9".
|
||||
// Например, "bc26bdef-12be-40f8-959c-2149de1911b9".
|
||||
// * ИдентификаторЗемельногоУчастка - Неопределено
|
||||
// - УникальныйИдентификатор - идентификационный код земельного участка.
|
||||
// * Идентификаторы - Структура - идентификаторы адресных объектов адреса:
|
||||
// ** РегионИдентификатор - УникальныйИдентификатор
|
||||
// - Неопределено - идентификатор региона.
|
||||
@@ -93,154 +117,17 @@
|
||||
// ** Город - Строка - код КЛАДР города.
|
||||
// ** НаселенныйПункт - Строка - код КЛАДР населенного пункта.
|
||||
// ** Улица - Строка - код КЛАДР улицы.
|
||||
// * ДополнительныеКоды - Структура - коды ОКТМО, ОКТМО, ОКАТО, КодИФНСФЛ, КодИФНСЮЛ, КодУчасткаИФНСФЛ, КодУчасткаИФНСЮЛ.
|
||||
// * ДополнительныеКоды - Структура:
|
||||
// ** ОКТМО - Строка - код общероссийского классификатора территорий муниципальных образований. Например, "45346000".
|
||||
// ** ОКАТО - Строка - код общероссийского классификатора административно-территориальных образований. Например, "45277592000".
|
||||
// ** КодИФНСФЛ - Строка - код налоговых инспекции физических лиц. Например, "7713"
|
||||
// ** КодИФНСЮЛ - Строка - код налоговых инспекции юридических лиц. Например, "7713"
|
||||
// ** КодУчасткаИФНСФЛ - Строка - код участка налоговой инспекции физических лиц. Например, "7713"
|
||||
// ** КодУчасткаИФНСЮЛ - Строка - код участка налоговой инспекции юридических лиц. Например, "7713"
|
||||
// * Комментарий - Строка - комментарий к адресу.
|
||||
//
|
||||
Функция ПоляАдреса() Экспорт
|
||||
|
||||
Возврат КонструкторПолейАдреса();
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Оставленная для обратной совместимости. Возвращает структуру контактной информации по типу.
|
||||
// Для получения полей адреса следует использовать РаботаСАдресамиКлиентСервер.ПоляАдреса.
|
||||
// Для получения полей телефона следует использовать УправлениеКонтактнойИнформацией.СведенияОТелефоне.
|
||||
//
|
||||
// Параметры:
|
||||
// ТипКИ - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации.
|
||||
// ФорматАдреса - Строка - тип возвращаемой структуры в зависимости от формата адреса: "КЛАДР" или "ФИАС".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - пустая структура контактной информации, ключи - имена полей, значения поля.
|
||||
//
|
||||
Функция СтруктураКонтактнойИнформацииПоТипу(ТипКИ, ФорматАдреса = "КЛАДР") Экспорт
|
||||
|
||||
Если ТипКИ = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
|
||||
Возврат СтруктураПолейАдреса(ФорматАдреса);
|
||||
ИначеЕсли ТипКИ = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда
|
||||
Возврат УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона();
|
||||
Иначе
|
||||
Возврат Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ОсновнаяСтрана() Экспорт
|
||||
Возврат ПредопределенноеЗначение("Справочник.СтраныМира.Россия");
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоМуниципальныйАдрес(ТипАдреса) Экспорт
|
||||
Возврат СтрСравнить(ТипАдреса, МуниципальныйАдрес()) = 0;
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоОсновнаяСтрана(Страна) Экспорт
|
||||
Возврат СтрСравнить(ОсновнаяСтрана(), Страна) = 0;
|
||||
КонецФункции
|
||||
|
||||
Функция АдминистративноТерриториальныйАдрес() Экспорт
|
||||
Возврат "Административно-территориальный";
|
||||
КонецФункции
|
||||
|
||||
|
||||
Функция МуниципальныйАдрес() Экспорт
|
||||
Возврат "Муниципальный";
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * КодыКЛАДР - Структура:
|
||||
// ** Улица - Строка
|
||||
// ** НаселенныйПункт - Строка
|
||||
// ** Город - Строка
|
||||
// ** Район - Строка
|
||||
// ** Регион - Строка
|
||||
// * ДополнительныеКоды - Структура:
|
||||
// ** КодУчасткаИФНСЮЛ - Строка
|
||||
// ** КодУчасткаИФНСФЛ - Строка
|
||||
// ** КодИФНСЮЛ - Строка
|
||||
// ** КодИФНСФЛ - Строка
|
||||
// ** ОКАТО - Строка
|
||||
// ** ОКТМО - Строка
|
||||
// * Идентификаторы - Структура:
|
||||
// ** УлицаИдентификатор - Неопределено
|
||||
// ** ТерриторияИдентификатор - Неопределено
|
||||
// ** НаселенныйПунктИдентификатор - Неопределено
|
||||
// ** ВнутригородскойРайонИдентификатор - Неопределено
|
||||
// ** ПоселениеИдентификатор - Неопределено
|
||||
// ** ГородИдентификатор - Неопределено
|
||||
// ** МуниципальныйРайонИдентификатор - Неопределено
|
||||
// ** РайонИдентификатор - Неопределено
|
||||
// ** РегионИдентификатор - Неопределено
|
||||
// * ИдентификаторЗемельногоУчастка - Неопределено
|
||||
// * НомерЗемельногоУчастка - Неопределено
|
||||
// * ИдентификаторДома - Неопределено
|
||||
// * ИдентификаторАдресногоОбъекта - Неопределено
|
||||
// * Помещения - Массив
|
||||
// * Корпуса - Массив
|
||||
// * Здание - Структура:
|
||||
// ** Номер - Строка
|
||||
// ** ТипЗдания - Строка
|
||||
// * ЭлементДополнительнойТерриторииСокращение - Строка
|
||||
// * ЭлементДополнительнойТерритории - Строка
|
||||
// * ДополнительнаяТерриторияСокращение - Строка
|
||||
// * ДополнительнаяТерритория - Строка
|
||||
// * УлицаСокращение - Строка
|
||||
// * ТерриторияСокращение - Строка
|
||||
// * НаселенныйПунктСокращение - Строка
|
||||
// * ВнутригородскойРайонСокращение - Строка
|
||||
// * ПоселениеСокращение - Строка
|
||||
// * ГородСокращение - Строка
|
||||
// * МуниципальныйРайонСокращение - Строка
|
||||
// * РайонСокращение - Строка
|
||||
// * ОкругСокращение - Строка
|
||||
// * Округ - Строка
|
||||
// * РегионСокращение - Строка
|
||||
// * УлицаТипКраткий - Строка
|
||||
// * УлицаТипПолный - Строка
|
||||
// * Улица - Строка
|
||||
// * ТерриторияТипКраткий - Строка
|
||||
// * ТерриторияТипПолный - Строка
|
||||
// * Территория - Строка
|
||||
// * НаселенныйПунктТипКраткий - Строка
|
||||
// * НаселенныйПунктТипПолный - Строка
|
||||
// * НаселенныйПункт - Строка
|
||||
// * ВнутригородскойРайонТипКраткий - Строка
|
||||
// * ВнутригородскойРайонТипПолный - Строка
|
||||
// * ВнутригородскойРайон - Строка
|
||||
// * ПоселениеТипКраткий - Строка
|
||||
// * ПоселениеТипПолный - Строка
|
||||
// * Поселение - Строка
|
||||
// * ГородТипКраткий - Строка
|
||||
// * ГородТипПолный - Строка
|
||||
// * Город - Строка
|
||||
// * МуниципальныйРайонТипКраткий - Строка
|
||||
// * МуниципальныйРайонТипПолный - Строка
|
||||
// * МуниципальныйРайон - Строка
|
||||
// * РайонТипКраткий - Строка
|
||||
// * РайонТипПолный - Строка
|
||||
// * Район - Строка
|
||||
// * РегионТипКраткий - Строка
|
||||
// * РегионТипПолный - Строка
|
||||
// * Регион - Строка
|
||||
// * КодРегиона - Строка
|
||||
// * Индекс - Строка
|
||||
// * КодСтраны - Строка
|
||||
// * Страна - Строка
|
||||
// * МуниципальноеПредставление - Строка
|
||||
// * Представление - Строка
|
||||
// * Комментарий - Строка
|
||||
// * ТипАдреса - Строка
|
||||
//
|
||||
Функция КонструкторПолейАдреса() Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
|
||||
Результат.Вставить("ТипАдреса" , "");
|
||||
@@ -350,18 +237,78 @@
|
||||
Результат.Вставить("КодыКЛАДР", КодыКЛАДР);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область УстаревшиеПроцедурыИФункции
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Обратная совместимость.
|
||||
|
||||
// Устарела. Оставленная для обратной совместимости. Возвращает структуру контактной информации по типу.
|
||||
// Для получения полей адреса следует использовать РаботаСАдресамиКлиентСервер.ПоляАдреса.
|
||||
// Для получения полей телефона следует использовать УправлениеКонтактнойИнформацией.СведенияОТелефоне.
|
||||
//
|
||||
// Параметры:
|
||||
// ТипКИ - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации.
|
||||
// ФорматАдреса - Строка - тип возвращаемой структуры в зависимости от формата адреса: "КЛАДР" или "ФИАС".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - пустая структура контактной информации, ключи - имена полей, значения поля.
|
||||
//
|
||||
Функция СтруктураКонтактнойИнформацииПоТипу(ТипКИ, ФорматАдреса = "КЛАДР") Экспорт
|
||||
|
||||
Если ТипКИ = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
|
||||
Возврат СтруктураПолейАдреса(ФорматАдреса);
|
||||
ИначеЕсли ТипКИ = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон") Тогда
|
||||
Возврат УправлениеКонтактнойИнформациейКлиентСервер.СтруктураПолейТелефона();
|
||||
Иначе
|
||||
Возврат Новый Структура;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ОсновнаяСтрана() Экспорт
|
||||
Возврат ПредопределенноеЗначение("Справочник.СтраныМира.Россия");
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоМуниципальныйАдрес(ТипАдреса) Экспорт
|
||||
Возврат СтрСравнить(ТипАдреса, МуниципальныйАдрес()) = 0;
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоОсновнаяСтрана(Страна) Экспорт
|
||||
Возврат СтрСравнить(ОсновнаяСтрана(), Страна) = 0;
|
||||
КонецФункции
|
||||
|
||||
Функция АдминистративноТерриториальныйАдрес() Экспорт
|
||||
Возврат "Административно-территориальный";
|
||||
КонецФункции
|
||||
|
||||
|
||||
Функция МуниципальныйАдрес() Экспорт
|
||||
Возврат "Муниципальный";
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Описание национальных полей структуры контактной информации для хранения ее в формате JSON.
|
||||
// Основной список полей определяется в одноименной функции общего модуля УправлениеКонтактнойИнформациейКлиентСервер.
|
||||
//
|
||||
// Параметры:
|
||||
// ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации -
|
||||
// Тип контактной информации, определяющий состав полей контактной информации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - поля контактной информации добавленные к основным полям:
|
||||
// Для типа контактной информации адрес:
|
||||
// Структура - поля контактной информации для типа Адрес добавленные к основным полям:
|
||||
// * ID - Строка - идентификационный код последнего адресного объекта в иерархи адреса.
|
||||
// * AddressType - Строка - установленный пользователем тип адреса(только для адресов РФ).
|
||||
// Варианты: "Муниципальный", "Административно-территориальный".
|
||||
@@ -819,4 +766,4 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
#КонецОбласти
|
||||
@@ -1352,10 +1352,9 @@
|
||||
Для Каждого ФайлБезТекста Из ФайлыДляИзвлеченияТекста Цикл
|
||||
|
||||
ФайлЗаблокирован = Ложь;
|
||||
ИмяФайлаСДвоичнымиДанными = "";
|
||||
|
||||
Попытка
|
||||
ИзвлечьТекстИзФайла(ФайлБезТекста, ФайлЗаблокирован, ИмяФайлаСДвоичнымиДанными);
|
||||
ИмяФайлаСДвоичнымиДанными = ИзвлечьТекстИзФайла(ФайлБезТекста, ФайлЗаблокирован);
|
||||
Исключение
|
||||
Если ФайлЗаблокирован Тогда
|
||||
ПоляФайла = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ФайлБезТекста.Ссылка,
|
||||
@@ -2854,8 +2853,8 @@
|
||||
|
||||
Процедура ВыполнитьОчисткуДанныхОФайле(ФайлСсылка)
|
||||
|
||||
ИмяФайлаСПутем = "";
|
||||
ИмяФайлаСПутемДляУдаления = "";
|
||||
ПолноеИмяФайлаНаДиске = "";
|
||||
ИмяВременногоФайла = "";
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
@@ -2872,7 +2871,15 @@
|
||||
+ " " + Формат(ТекущаяДатаСеанса(),"ДЛФ=D") + Символы.ПС;
|
||||
|
||||
Если ФайлОбъект.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
|
||||
СвойствоФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(ФайлОбъект.Ссылка);
|
||||
ПолноеИмяФайлаНаДиске = РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойствоФайла);
|
||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(ФайлОбъект.Расширение);
|
||||
|
||||
КопироватьФайл(ПолноеИмяФайлаНаДиске, ИмяВременногоФайла);
|
||||
РаботаСФайламиВТомахСлужебный.УдалитьДанныеФайла(ФайлОбъект, ТекстОписания);
|
||||
ОписаниеВременногоФайла = Новый Файл(ИмяВременногоФайла);
|
||||
ОписаниеВременногоФайла.УстановитьТолькоЧтение(Ложь);
|
||||
ФайловаяСистема.УдалитьВременныйФайл(ИмяВременногоФайла);
|
||||
Иначе
|
||||
УдалитьЗаписьИзРегистраДвоичныеДанныеФайлов(ФайлСсылка);
|
||||
ФайлОбъект.Описание = ТекстОписания + ФайлОбъект.Описание;
|
||||
@@ -2891,10 +2898,10 @@
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Очистка ненужных файлов'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
УровеньЖурналаРегистрации.Ошибка,, ФайлСсылка, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
|
||||
Если Не ПустаяСтрока(ИмяФайлаСПутем) Тогда
|
||||
Если Не ПустаяСтрока(ПолноеИмяФайлаНаДиске) Тогда
|
||||
|
||||
// Вернем файл на прежнее место в случае ошибки.
|
||||
ПереместитьФайл(ИмяФайлаСПутемДляУдаления, ИмяФайлаСПутем);
|
||||
ПереместитьФайл(ИмяВременногоФайла, ПолноеИмяФайлаНаДиске);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -8372,8 +8379,9 @@
|
||||
// Параметры:
|
||||
// ФайлБезТекста - ОпределяемыйТип.ПрисоединенныйФайлОбъект
|
||||
//
|
||||
Процедура ИзвлечьТекстИзФайла(ФайлБезТекста, ФайлЗаблокирован, ИмяФайлаСДвоичнымиДанными)
|
||||
Функция ИзвлечьТекстИзФайла(ФайлБезТекста, ФайлЗаблокирован)
|
||||
|
||||
ИмяФайлаСДвоичнымиДанными = "";
|
||||
МетаданныеФайла = ФайлБезТекста.Ссылка.Метаданные();
|
||||
|
||||
БлокировкаДанных = Новый БлокировкаДанных;
|
||||
@@ -8394,6 +8402,7 @@
|
||||
ФайлЗаблокирован = Истина;
|
||||
|
||||
ФайлОбъект = ФайлБезТекста.Ссылка.ПолучитьОбъект();
|
||||
ФайлОбъект.ДополнительныеСвойства.Вставить("ИзвлечениеТекста", Истина);
|
||||
Если ФайлОбъект <> Неопределено Тогда
|
||||
|
||||
Если ЭтоЭлементРаботаСФайлами(ФайлОбъект.Ссылка) Тогда
|
||||
@@ -8410,7 +8419,6 @@
|
||||
РазблокироватьДанныеДляРедактирования(ФайлБезТекста.Ссылка);
|
||||
ФайлЗаблокирован = Ложь;
|
||||
Иначе
|
||||
|
||||
РезультатИзвлеченияТекста = ИзвлечьТекстИзФайлаНаДиске(ИмяФайлаСДвоичнымиДанными, ФайлБезТекста.Кодировка);
|
||||
ФайлОбъект.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
|
||||
ФайлОбъект.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
|
||||
@@ -8432,7 +8440,9 @@
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
Возврат ИмяФайлаСДвоичнымиДанными;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
||||
@@ -655,7 +655,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СохранитьНастройки Тогда
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(НастройкиПользователя.Ссылка, НастройкиПользователя, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(НастройкиПользователя);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(КлючНастроек, НастройкиПользователя, ИсточникНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
СервисКриптографииDSSСлужебный.ПротоколОшибкиПриВызове(РезультатЗапроса, "АутентификацияПоЛогину", ПараметрыЗапроса);
|
||||
@@ -810,7 +811,8 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если СохранитьНастройки Тогда
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(НастройкиПользователя.Ссылка, НастройкиПользователя, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(НастройкиПользователя);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(КлючНастроек, НастройкиПользователя, ИсточникНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
СервисКриптографииDSSСлужебный.ПротоколОшибкиПриВызове(РезультатЗапроса, "ПолучитьТокенПоКодуАвторизации", ПараметрыЗапроса);
|
||||
@@ -858,7 +860,8 @@
|
||||
Если СохранитьНастройки Тогда
|
||||
РезультатЗапроса = ОбновитьПолитикуПользователя(НастройкиПользователя, Принудительно, ВходящиеПараметры);
|
||||
РезультатЗапроса.Вставить("НастройкиПользователя", НастройкиПользователя);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(НастройкиПользователя.Ссылка, НастройкиПользователя, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(НастройкиПользователя);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(КлючНастроек, НастройкиПользователя, ИсточникНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
СервисКриптографииDSSСлужебный.ПротоколОшибкиПриВызове(РезультатЗапроса, "ОбновитьТокенАутентификации", ПараметрыЗапроса);
|
||||
|
||||
@@ -1560,7 +1560,9 @@
|
||||
|
||||
Результат = НашлиОшибку.КодОшибки + ": " + НашлиОшибку.Описание;
|
||||
Если НЕ ПустаяСтрока(ТекстОшибки) Тогда
|
||||
Результат = Результат + " " + ТекстОшибки;
|
||||
Результат = Результат + Символы.ПС + Символы.ПС
|
||||
+ НСтр("ru = 'Детали ошибки:'")
|
||||
+ Символы.ПС + ТекстОшибки;
|
||||
КонецЕсли;
|
||||
|
||||
Если РезультатОперации <> Неопределено Тогда
|
||||
|
||||
@@ -869,7 +869,11 @@
|
||||
Если ПарольПользователя <> Неопределено Тогда
|
||||
ПараметрыОперации.Вставить("ПарольПользователя", ПарольПользователя);
|
||||
КонецЕсли;
|
||||
СервисКриптографииDSSКлиент.ПроверкаАутентификацииПользователя(ОповещениеСледующее, НастройкиПользователя.Ссылка, ПараметрыОперации);
|
||||
Если ЗначениеЗаполнено(НастройкиПользователя.Ссылка) ИЛИ НЕ ЗначениеЗаполнено(НастройкиПользователя.Логин) Тогда
|
||||
СервисКриптографииDSSКлиент.ПроверкаАутентификацииПользователя(ОповещениеСледующее, НастройкиПользователя.Ссылка, ПараметрыОперации);
|
||||
Иначе
|
||||
СервисКриптографииDSSКлиент.ПроверкаАутентификацииПользователя(ОповещениеСледующее, НастройкиПользователя, ПараметрыОперации);
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
РезультатВыполнения = СервисКриптографииDSSКлиент.ОтветСервисаПоУмолчанию();
|
||||
@@ -1861,21 +1865,22 @@
|
||||
|
||||
КодЯзыка = СервисКриптографииDSSСлужебныйКлиент.КодЯзыка();
|
||||
|
||||
ЭлементыФормы.ГруппаПароль.Видимость = НуженПинКод ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = ПроверенПинКод;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПароль", "Видимость", НуженПинКод ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", ПроверенПинКод);
|
||||
Если СтандартныйВид Тогда
|
||||
ЭлементыФормы.Подписать.КнопкаПоУмолчанию = Истина;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = Ложь;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Подписать", "КнопкаПоУмолчанию", Истина);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", Ложь);
|
||||
Иначе
|
||||
ЭлементыФормы.Страницы.Видимость = Ложь;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Страницы", "Видимость", Ложь);
|
||||
КонецЕсли;
|
||||
ЭлементыФормы.Подписать.Видимость = НеНачалось ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка));
|
||||
ЭлементыФормы.ЗапомнитьПароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид,
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Подписать", "Видимость", НеНачалось ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "Заголовок", ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка)));
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ЗапомнитьПароль", "Заголовок",
|
||||
?(НуженПинКод И НЕ СтандартныйВид,
|
||||
НСтр("ru = 'Запомнить пин-код'", КодЯзыка),
|
||||
НСтр("ru = 'Запомнить пароль'", КодЯзыка));
|
||||
ЭлементыФормы.ГруппаПодписание.ОтображатьЗаголовок = СтандартныйВид;
|
||||
|
||||
НСтр("ru = 'Запомнить пароль'", КодЯзыка)));
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПодписание", "ОтображатьЗаголовок", СтандартныйВид);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Служебная для обработки элементов формы, адаптированная для элементов формы расшифрования
|
||||
@@ -1891,18 +1896,20 @@
|
||||
|
||||
КодЯзыка = СервисКриптографииDSSСлужебныйКлиент.КодЯзыка();
|
||||
|
||||
ЭлементыФормы.ГруппаПароль.Видимость = НуженПинКод ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = ПроверенПинКод;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаПароль", "Видимость", НуженПинКод ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", ПроверенПинКод);
|
||||
|
||||
Если СтандартныйВид Тогда
|
||||
ЭлементыФормы.ФормаРасшифровать.КнопкаПоУмолчанию = Истина;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = Ложь;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ФормаРасшифровать", "КнопкаПоУмолчанию", Истина);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", Ложь);
|
||||
Иначе
|
||||
ЭлементыФормы.Страницы.Видимость = Ложь;
|
||||
КонецЕсли;
|
||||
ЭлементыФормы.ФормаРасшифровать.Видимость = НеНачалось ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка));
|
||||
ЭлементыФормы.ЗапомнитьПароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Запомнить пин-код'", КодЯзыка), НСтр("ru = 'Запомнить пароль'", КодЯзыка));
|
||||
ЭлементыФормы.ГруппаРасшифровка.ОтображатьЗаголовок = СтандартныйВид;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Страницы", "Видимость", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ФормаРасшифровать", "Видимость", НеНачалось ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "Заголовок", ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка)));
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ЗапомнитьПароль", "Заголовок", ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Запомнить пин-код'", КодЯзыка), НСтр("ru = 'Запомнить пароль'", КодЯзыка)));
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаРасшифровка", "ОтображатьЗаголовок", СтандартныйВид);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -1919,20 +1926,21 @@
|
||||
|
||||
КодЯзыка = СервисКриптографииDSSСлужебныйКлиент.КодЯзыка();
|
||||
|
||||
ЭлементыФормы.ГруппаВводаПароля.Видимость = НуженПинКод ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = ПроверенПинКод;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаВводаПароля", "Видимость", НуженПинКод ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", ПроверенПинКод);
|
||||
|
||||
Если СтандартныйВид Тогда
|
||||
ЭлементыФормы.ФормаПроверить.КнопкаПоУмолчанию = Истина;
|
||||
ЭлементыФормы.Пароль.ТолькоПросмотр = Ложь;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ФормаПроверить", "КнопкаПоУмолчанию", Истина);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "ТолькоПросмотр", Ложь);
|
||||
Иначе
|
||||
ЭлементыФормы.Страницы.Видимость = Ложь;
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Страницы", "Видимость", Ложь);
|
||||
КонецЕсли;
|
||||
ЭлементыФормы.ГруппаВводаПароля.ОтображатьЗаголовок = СтандартныйВид;
|
||||
ЭлементыФормы.ФормаПроверить.Видимость = НеНачалось ИЛИ СтандартныйВид;
|
||||
ЭлементыФормы.Пароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка));
|
||||
ЭлементыФормы.ЗапомнитьПароль.Заголовок = ?(НуженПинКод И НЕ СтандартныйВид,
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ГруппаВводаПароля", "ОтображатьЗаголовок", СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ФормаПроверить", "Видимость", НеНачалось ИЛИ СтандартныйВид);
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "Пароль", "Заголовок", ?(НуженПинКод И НЕ СтандартныйВид, НСтр("ru = 'Пин-код'", КодЯзыка), НСтр("ru = 'Пароль'", КодЯзыка)));
|
||||
УстановитьСвойствоЭлемента(ЭлементыФормы, "ЗапомнитьПароль", "Заголовок", ?(НуженПинКод И НЕ СтандартныйВид,
|
||||
НСтр("ru = 'Запомнить пин-код'", КодЯзыка),
|
||||
НСтр("ru = 'Запомнить пароль'", КодЯзыка));
|
||||
НСтр("ru = 'Запомнить пароль'", КодЯзыка)));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -5569,7 +5569,8 @@
|
||||
РезультатЗапроса = ПакетнаяОперацияПользователя(НастройкиПользователя, ПараметрыВыполнения, ВходящиеПараметры);
|
||||
Если РезультатЗапроса.МаркерОбновлен Тогда
|
||||
НастройкиПользователя = РезультатЗапроса.НастройкиПользователя;
|
||||
УстановитьНастройкиПользователя(НастройкиПользователя.Ссылка, НастройкиПользователя, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(НастройкиПользователя);
|
||||
УстановитьНастройкиПользователя(КлючНастроек, НастройкиПользователя, ИсточникНастроек);
|
||||
КонецЕсли;
|
||||
|
||||
ЭтапЦикла = "";
|
||||
@@ -5791,7 +5792,8 @@
|
||||
Если Успешно Тогда
|
||||
Результат.МаркерОбновлен = Истина;
|
||||
Результат.Вставить("НастройкиПользователя", НастройкиПользователя);
|
||||
УстановитьНастройкиПользователя(НастройкиПользователя.Ссылка, НастройкиПользователя, ПараметрыОперации);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(НастройкиПользователя);
|
||||
УстановитьНастройкиПользователя(КлючНастроек, НастройкиПользователя, ПараметрыОперации);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@@ -1191,7 +1191,8 @@
|
||||
|
||||
ПодготовленныеНастройки = ПодготовитьНастройкиПользователя(НовыеНастройки, ПараметрыОперации);
|
||||
ИсточникНастроек = СервисКриптографииDSSСлужебный.ПолучитьИсточникНастроек(ПараметрыОперации);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(НовыеНастройки.Ссылка, ПодготовленныеНастройки, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(ПодготовленныеНастройки);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(КлючНастроек, ПодготовленныеНастройки, ИсточникНастроек);
|
||||
НастройкиПользователя = СервисКриптографииDSSСлужебный.ЗакрытьНастройкиПользователя(ПодготовленныеНастройки);
|
||||
|
||||
КонецЕсли;
|
||||
@@ -1421,7 +1422,8 @@
|
||||
ПодготовленныеНастройки = ПодготовитьНастройкиПользователя(НастройкиПользователя, ПараметрыОперации);
|
||||
Результат = СервисКриптографииDSS.ПроверитьМаркерДоступа(ПодготовленныеНастройки, РезультатЗапроса);
|
||||
ИсточникНастроек = СервисКриптографииDSSСлужебный.ПолучитьИсточникНастроек(ПараметрыОперации);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(ПодготовленныеНастройки.Ссылка, ПодготовленныеНастройки, ИсточникНастроек);
|
||||
КлючНастроек = СервисКриптографииDSSКлиентСервер.КлючНастроекПользователя(ПодготовленныеНастройки);
|
||||
СервисКриптографииDSSСлужебный.УстановитьНастройкиПользователя(КлючНастроек, ПодготовленныеНастройки, ИсточникНастроек);
|
||||
|
||||
НастройкиПользователя = СервисКриптографииDSSСлужебный.ЗакрытьНастройкиПользователя(ПодготовленныеНастройки);
|
||||
|
||||
|
||||
@@ -781,11 +781,18 @@
|
||||
|Затем выполнить синхронизацию с подчиненными узлами.'");
|
||||
КонецЕсли;
|
||||
|
||||
ОбъектыМетаданных = ОбъектыМетаданныхВсехПредопределенныхДанных();
|
||||
Блокировка = Новый БлокировкаДанных;
|
||||
Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
|
||||
Блокировка.Добавить(ОбъектМетаданных.ПолноеИмя());
|
||||
КонецЦикла;
|
||||
|
||||
НачатьТранзакцию();
|
||||
Попытка
|
||||
УстановитьИнициализациюВсехПредопределенныхДанных();
|
||||
|
||||
СоздатьНедостающиеПредопределенныеДанные();
|
||||
Блокировка.Заблокировать();
|
||||
|
||||
УстановитьИнициализациюВсехПредопределенныхДанных(ОбъектыМетаданных);
|
||||
СоздатьНедостающиеПредопределенныеДанные(ОбъектыМетаданных);
|
||||
|
||||
ЗафиксироватьТранзакцию();
|
||||
Исключение
|
||||
@@ -2449,7 +2456,10 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// ВСПОМОГАТЕЛЬНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
|
||||
|
||||
Процедура УстановитьИнициализациюВсехПредопределенныхДанных()
|
||||
// Возвращаемое значение:
|
||||
// Массив из ОбъектМетаданных
|
||||
//
|
||||
Функция ОбъектыМетаданныхВсехПредопределенныхДанных()
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
ЭтоРазделенныйСеанс = ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||
@@ -2460,6 +2470,8 @@
|
||||
КоллекцииМетаданных.Добавить(Метаданные.ПланыСчетов);
|
||||
КоллекцииМетаданных.Добавить(Метаданные.ПланыВидовРасчета);
|
||||
|
||||
ОбъектыМетаданных = Новый Массив;
|
||||
|
||||
Для Каждого Коллекция Из КоллекцииМетаданных Цикл
|
||||
Для Каждого ОбъектМетаданных Из Коллекция Цикл
|
||||
|
||||
@@ -2475,32 +2487,37 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя());
|
||||
Менеджер.УстановитьИнициализациюПредопределенныхДанных(Истина);
|
||||
ОбъектыМетаданных.Добавить(ОбъектМетаданных);
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ОбъектыМетаданных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьИнициализациюВсехПредопределенныхДанных(ОбъектыМетаданных)
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
ЭтоРазделенныйСеанс = ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||
|
||||
Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
|
||||
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОбъектМетаданных.ПолноеИмя());
|
||||
Менеджер.УстановитьИнициализациюПредопределенныхДанных(Истина);
|
||||
КонецЦикла;
|
||||
|
||||
Если Не РазделениеВключено Или Не ЭтоРазделенныйСеанс Тогда
|
||||
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(ОбновлениеПредопределенныхДанных.Авто);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СоздатьНедостающиеПредопределенныеДанные()
|
||||
|
||||
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
|
||||
ЭтоРазделенныйСеанс = ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
|
||||
|
||||
КоллекцииМетаданных = Новый Массив;
|
||||
КоллекцииМетаданных.Добавить(Метаданные.Справочники);
|
||||
КоллекцииМетаданных.Добавить(Метаданные.ПланыВидовХарактеристик);
|
||||
КоллекцииМетаданных.Добавить(Метаданные.ПланыСчетов);
|
||||
КоллекцииМетаданных.Добавить(Метаданные.ПланыВидовРасчета);
|
||||
Процедура СоздатьНедостающиеПредопределенныеДанные(ОбъектыМетаданных)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
ТекстЗапроса =
|
||||
"ВЫБРАТЬ
|
||||
| ПсевдонимЗаданнойТаблицы.Ссылка КАК Ссылка,
|
||||
| ПсевдонимЗаданнойТаблицы.ВерсияДанных КАК ВерсияДанных,
|
||||
| ЕСТЬNULL(ПсевдонимЗаданнойТаблицы.Родитель.ИмяПредопределенныхДанных, """") КАК ИмяРодителя,
|
||||
| ПсевдонимЗаданнойТаблицы.ИмяПредопределенныхДанных КАК Имя
|
||||
|ИЗ
|
||||
@@ -2509,52 +2526,44 @@
|
||||
| ПсевдонимЗаданнойТаблицы.Предопределенный";
|
||||
|
||||
ОписанияСохраненных = Новый Массив;
|
||||
Для Каждого Коллекция Из КоллекцииМетаданных Цикл
|
||||
ЭтоПланСчетов = (Коллекция = Метаданные.ПланыСчетов);
|
||||
Для Каждого ОбъектМетаданных Из Коллекция Цикл
|
||||
ТаблицыБезСохраненных = Новый Массив;
|
||||
Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
|
||||
|
||||
Если ОбъектМетаданных.ОбновлениеПредопределенныхДанных
|
||||
= Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ТекущаяТаблица", ПолноеИмя);
|
||||
|
||||
Если Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных)
|
||||
Или Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных)
|
||||
Или Не ОбъектМетаданных.Иерархический Тогда
|
||||
|
||||
Если РазделениеВключено Тогда
|
||||
|
||||
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
|
||||
ЭтоРазделенныйОбъектМетаданных = МодульРаботаВМоделиСервиса.ЭтоРазделенныйОбъектМетаданных(ОбъектМетаданных);
|
||||
|
||||
Если ( ЭтоРазделенныйСеанс И Не ЭтоРазделенныйОбъектМетаданных)
|
||||
Или (Не ЭтоРазделенныйСеанс И ЭтоРазделенныйОбъектМетаданных) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбъектМетаданных.ОбновлениеПредопределенныхДанных
|
||||
= Метаданные.СвойстваОбъектов.ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
Запрос.Текст = СтрЗаменить(ТекстЗапроса, "&ТекущаяТаблица", ПолноеИмя);
|
||||
|
||||
Если Коллекция = Метаданные.ПланыСчетов
|
||||
Или Коллекция = Метаданные.ПланыВидовРасчета
|
||||
Или Не ОбъектМетаданных.Иерархический Тогда
|
||||
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,
|
||||
"ЕСТЬNULL(ПсевдонимЗаданнойТаблицы.Родитель.ИмяПредопределенныхДанных, """")", """""");
|
||||
КонецЕсли;
|
||||
|
||||
ТаблицаИмен = Запрос.Выполнить().Выгрузить();
|
||||
ТаблицаИмен.Индексы.Добавить("Имя");
|
||||
Имена = ОбъектМетаданных.ПолучитьИменаПредопределенных();
|
||||
СохранитьСуществующиеПредопределенныеОбъектыПередСозданиемНедостающих(
|
||||
ОбъектМетаданных, ПолноеИмя, ТаблицаИмен, Имена, Запрос, ОписанияСохраненных, ЭтоПланСчетов);
|
||||
КонецЦикла;
|
||||
Запрос.Текст = СтрЗаменить(Запрос.Текст,
|
||||
"ЕСТЬNULL(ПсевдонимЗаданнойТаблицы.Родитель.ИмяПредопределенныхДанных, """")", """""");
|
||||
КонецЕсли;
|
||||
|
||||
// АПК:1328-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ТаблицаИмен = Запрос.Выполнить().Выгрузить();
|
||||
// АПК:1328-вкл.
|
||||
ТаблицаИмен.Индексы.Добавить("Имя");
|
||||
Имена = ОбъектМетаданных.ПолучитьИменаПредопределенных();
|
||||
СохранитьСуществующиеПредопределенныеОбъектыПередСозданиемНедостающих(ОбъектМетаданных,
|
||||
ПолноеИмя, ТаблицаИмен, Имена, Запрос, ОписанияСохраненных, ТаблицыБезСохраненных);
|
||||
КонецЦикла;
|
||||
|
||||
ИнициализироватьПредопределенныеДанные();
|
||||
|
||||
// Восстановление предопределенных элементов, существовавших до инициализации.
|
||||
Для Каждого ОписаниеСохраненных Из ОписанияСохраненных Цикл
|
||||
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ОписаниеСохраненных.ПолноеИмя);
|
||||
Менеджер.УстановитьИнициализациюПредопределенныхДанных(Ложь);
|
||||
ИнициализироватьПредопределенныеДанные();
|
||||
|
||||
Запрос.Текст = ОписаниеСохраненных.ТекстЗапроса;
|
||||
// АПК:1328-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ТаблицаИмен = Запрос.Выполнить().Выгрузить();
|
||||
// АПК:1328-вкл.
|
||||
ТаблицаИмен.Индексы.Добавить("Имя");
|
||||
Для Каждого ОписаниеСохраненного Из ОписаниеСохраненных.ТаблицаИмен Цикл
|
||||
Если Не ОписаниеСохраненного.ОбъектСуществует Тогда
|
||||
@@ -2564,12 +2573,19 @@
|
||||
Если Строка <> Неопределено Тогда
|
||||
НовыйОбъект = Строка.Ссылка.ПолучитьОбъект();
|
||||
Если ОписаниеСохраненных.ЭтоПланСчетов Тогда
|
||||
Если ОписаниеСохраненного.Объект.ВерсияДанных <> Строка.ВерсияДанных Тогда
|
||||
ОбновитьОбъектСчета(ОписаниеСохраненного.Объект);
|
||||
КонецЕсли;
|
||||
ДополнитьНовыеВидыСубконтоСчета(ОписаниеСохраненного.Объект, НовыйОбъект);
|
||||
КонецЕсли;
|
||||
// АПК:1327-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ОбновлениеИнформационнойБазы.УдалитьДанные(НовыйОбъект);
|
||||
// АПК:1327-вкл.
|
||||
Строка.Имя = "";
|
||||
КонецЕсли;
|
||||
// АПК:1327-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(ОписаниеСохраненного.Объект);
|
||||
// АПК:1327-вкл.
|
||||
КонецЦикла;
|
||||
Для Каждого Строка Из ТаблицаИмен Цикл
|
||||
Если Не ЗначениеЗаполнено(Строка.Имя)
|
||||
@@ -2580,11 +2596,41 @@
|
||||
Если СтрокаРодителя <> Неопределено Тогда
|
||||
НовыйОбъект = Строка.Ссылка.ПолучитьОбъект();
|
||||
НовыйОбъект.Родитель = СтрокаРодителя.Ссылка;
|
||||
// АПК:1327-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(НовыйОбъект);
|
||||
// АПК:1327-вкл.
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого ПолноеИмя Из ТаблицыБезСохраненных Цикл
|
||||
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
Менеджер.УстановитьИнициализациюПредопределенныхДанных(Ложь);
|
||||
КонецЦикла;
|
||||
|
||||
ИнициализироватьПредопределенныеДанные();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// СтарыйОбъект - ПланСчетовОбъект
|
||||
//
|
||||
Процедура ОбновитьОбъектСчета(СтарыйОбъект)
|
||||
|
||||
НовыйОбъект = СтарыйОбъект.Ссылка.ПолучитьОбъект();
|
||||
НовыйОбъект.ИмяПредопределенныхДанных = СтарыйОбъект.ИмяПредопределенныхДанных;
|
||||
Для Каждого СтрокаВидаСубконто Из СтарыйОбъект.ВидыСубконто Цикл
|
||||
Если СтрокаВидаСубконто.Предопределенное Тогда
|
||||
НоваяСтрокаВидаСубконто = НовыйОбъект.ВидыСубконто.Найти(
|
||||
СтрокаВидаСубконто.ВидСубконто, "ВидСубконто");
|
||||
Если НоваяСтрокаВидаСубконто <> Неопределено Тогда
|
||||
НоваяСтрокаВидаСубконто.Предопределенное = Истина;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
СтарыйОбъект = НовыйОбъект;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
@@ -2621,7 +2667,7 @@
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СохранитьСуществующиеПредопределенныеОбъектыПередСозданиемНедостающих(
|
||||
ОбъектМетаданных, ПолноеИмя, ТаблицаИмен, Имена, Запрос, ОписанияСохраненных, ЭтоПланСчетов)
|
||||
ОбъектМетаданных, ПолноеИмя, ТаблицаИмен, Имена, Запрос, ОписанияСохраненных, ТаблицыБезСохраненных)
|
||||
|
||||
ТребуетсяИнициализация = Ложь;
|
||||
ПредопределенныеСуществуют = Ложь;
|
||||
@@ -2644,7 +2690,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ПредопределенныеСуществуют Тогда
|
||||
ЭтоПланСчетов = Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных);
|
||||
ОписаниеСохраненных = Новый Структура;
|
||||
ОписаниеСохраненных.Вставить("ПолноеИмя", ПолноеИмя);
|
||||
ОписаниеСохраненных.Вставить("ТекстЗапроса", Запрос.Текст);
|
||||
ОписаниеСохраненных.Вставить("ТаблицаИмен", ТаблицаИмен);
|
||||
ОписаниеСохраненных.Вставить("ЭтоПланСчетов", ЭтоПланСчетов);
|
||||
@@ -2663,7 +2711,9 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
// АПК:1327-выкл - №648.1.1 В вызывающей процедуре установлена исключительная блокировка.
|
||||
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
|
||||
// АПК:1327-вкл.
|
||||
Если ЭтоПланСчетов Тогда
|
||||
Для Каждого СтрокаВидаСубконто Из СтрокиПредопределенныхВидовСубконто Цикл
|
||||
СтрокаВидаСубконто.Предопределенное = Истина;
|
||||
@@ -2674,11 +2724,10 @@
|
||||
КонецЕсли;
|
||||
Строка.Объект = Объект;
|
||||
КонецЦикла;
|
||||
Иначе
|
||||
ТаблицыБезСохраненных.Добавить(ПолноеИмя);
|
||||
КонецЕсли;
|
||||
|
||||
Менеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПолноеИмя);
|
||||
Менеджер.УстановитьИнициализациюПредопределенныхДанных(Ложь);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -83,7 +83,8 @@
|
||||
// разработчика для подсистемы Управление доступом.
|
||||
//
|
||||
// Параметры:
|
||||
// ОписанияПрофилей - Массив из см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа
|
||||
// ОписанияПрофилей - Массив из см. УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа,
|
||||
// см. УправлениеДоступом.НовоеОписаниеПапкиПрофилейГруппДоступа
|
||||
// ПараметрыОбновления - Структура:
|
||||
// * ОбновлятьИзмененныеПрофили - Булево - начальное значение Истина.
|
||||
// * ЗапретитьИзменениеПрофилей - Булево - начальное значение Истина.
|
||||
|
||||
@@ -1532,6 +1532,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// ИзменениеЯзыков - см. МультиязычностьСервер.ОписаниеСтарыхИНовыхНастроекЯзыков
|
||||
//
|
||||
Процедура ПриИзмененииЯзыкаИнформационнойБазы(ИзменениеЯзыков) Экспорт
|
||||
|
||||
Справочники.ПрофилиГруппДоступа.ПриИзмененииЯзыкаИнформационнойБазы(ИзменениеЯзыков);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Заполняет структуру параметров, необходимых для работы клиентского кода
|
||||
// конфигурации.
|
||||
//
|
||||
@@ -11470,6 +11479,8 @@
|
||||
УстановитьОтключениеБезопасногоРежима(Истина);
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра();
|
||||
|
||||
ДатаОбновленияВерсииРасширений = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ДатаОбновления;
|
||||
|
||||
ДатаОбновленияВсехПараметровРаботыПрограммы =
|
||||
@@ -22631,6 +22642,13 @@
|
||||
|
||||
// Для функций ОбщийКонтекстРасчетаПараметровОграничения и ИспользованиеВидовДоступаИзменено.
|
||||
//
|
||||
// Параметры:
|
||||
// СвойстваВидовДоступа - см. ХранимоеОписаниеСвойствВидовДоступа
|
||||
// ПолноеИмя - Строка
|
||||
// ВсеВидыДоступаИспользуются - Неопределено
|
||||
// - Булево
|
||||
// ТолькоХешСумма - Булево
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ДляИБ - Соответствие из КлючИЗначение:
|
||||
@@ -22709,7 +22727,7 @@
|
||||
Для Каждого Строка Из ИспользуемыеПоТаблицам Цикл
|
||||
Если ТекущаяТаблица <> Строка.Таблица Тогда
|
||||
ОбъектМетаданных = ОбъектыМетаданных.Получить(Строка.Таблица);
|
||||
Если ОбъектМетаданных = Неопределено Тогда
|
||||
Если ТипЗнч(ОбъектМетаданных) <> Тип("ОбъектМетаданных") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ТекущееПолноеИмя = ОбъектМетаданных.ПолноеИмя();
|
||||
@@ -22721,7 +22739,8 @@
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл
|
||||
СвойстваВидовДоступаМассив = СвойстваВидовДоступа.Массив; // Массив Из см. СвойстваВидаДоступа
|
||||
Для Каждого СвойстваВидаДоступа Из СвойстваВидовДоступаМассив Цикл
|
||||
Если ВсеВидыДоступаИспользуются <> Истина
|
||||
И Используемые.Найти(СвойстваВидаДоступа.Ссылка) = Неопределено Тогда
|
||||
Продолжить;
|
||||
@@ -27125,6 +27144,7 @@
|
||||
Или ЭтоБезусловноеОграничение(Контекст, Результат) Тогда
|
||||
|
||||
Результат.ДоступЗапрещен = Истина;
|
||||
Результат.Версия = " ";
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -27163,6 +27183,7 @@
|
||||
ЗаполнитьГруппыПолейИДополнительныхТаблиц(Контекст);
|
||||
|
||||
Если Контекст.СвойстваПолей.Количество() = 0 Тогда // Ограничение отключено.
|
||||
Результат.Версия = " ";
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -36932,7 +36953,7 @@
|
||||
ИначеЕсли Контекст.ЭтоЗначениеТогдаИначе Тогда
|
||||
ШаблонОшибки = ПодставитьКлючевыеСловаВСтроку(Контекст,
|
||||
НСтр("ru = 'Функция ""%4"" запрещена в условии ограничения в операции ""%1"" в предложениях ""%2"" и ""%3""'"),
|
||||
"Выбор,Тогда,Иначе");
|
||||
"Выбор,Тогда,Иначе", Строка.Символы);
|
||||
Иначе
|
||||
ШаблонОшибки = НСтр("ru = 'Функция ""%1"" запрещена в условии ограничения'");
|
||||
КонецЕсли;
|
||||
@@ -36948,7 +36969,7 @@
|
||||
ИначеЕсли Контекст.ЭтоЗначениеТогдаИначе Тогда
|
||||
ШаблонОшибки = ПодставитьКлючевыеСловаВСтроку(Контекст,
|
||||
НСтр("ru = 'Операция ""%4"" запрещена в условии ограничения в операции ""%1"" в предложениях ""%2"" и ""%3""'"),
|
||||
"Выбор,Тогда,Иначе");
|
||||
"Выбор,Тогда,Иначе", Строка.Символы);
|
||||
Иначе
|
||||
ШаблонОшибки = НСтр("ru = 'Операция ""%1"" запрещена в условии ограничения'");
|
||||
КонецЕсли;
|
||||
|
||||
@@ -837,14 +837,18 @@
|
||||
|
||||
ИменаРолей = Новый Массив;
|
||||
|
||||
НазначениеРолей = ПользователиСлужебныйПовтИсп.НазначениеРолей();
|
||||
|
||||
Для Каждого Роль Из Метаданные.Роли Цикл
|
||||
ИмяРоли = Роль.Имя;
|
||||
|
||||
Если Не СтрНачинаетсяС(ВРег(ИмяРоли), ВРег("БазовыеПрава")) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
РольДляВнешнихПользователей = СтрНачинаетсяС(ВРег(ИмяРоли), ВРег("БазовыеПраваВнешнихПользователей"));
|
||||
Если РольДляВнешнихПользователей = ДляВнешнихПользователей Тогда
|
||||
ИменаРолей.Добавить(ИмяРоли);
|
||||
РольДляВнешнихПользователей = НазначениеРолей.ТолькоДляВнешнихПользователей.Получить(Роль.Имя) <> Неопределено;
|
||||
Если НазначениеРолей.СовместноДляПользователейИВнешнихПользователей.Получить(Роль.Имя) <> Неопределено
|
||||
Или РольДляВнешнихПользователей = ДляВнешнихПользователей Тогда
|
||||
ИменаРолей.Добавить(Роль.Имя);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
|
||||
@@ -882,18 +882,14 @@
|
||||
// - ОбъектXDTO - XDTO-объект КонтактнаяИнформация или Адрес.
|
||||
// - Структура - см. РаботаСАдресами.СведенияОбАдресе
|
||||
// - Структура - см. УправлениеКонтактнойИнформацией.СведенияОТелефоне
|
||||
// ВидКонтактнойИнформации - Структура - дополнительные параметры, влияющие на формирование представления адреса:
|
||||
// * ВключатьСтрануВПредставление - Булево - в представление будет включена страна адреса;
|
||||
// * ФорматАдреса - Строка - устарело. Варианты: "ФИАС" или "КЛАДР".
|
||||
// Если указано "КЛАДР", то в представление адреса
|
||||
// не включаются значения уровней округ и внутригородской район.
|
||||
// УдалитьВидКонтактнойИнформации - Неопределено - устарел. Оставлен для обратной совместимости.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - представление контактной информации.
|
||||
//
|
||||
Функция ПредставлениеКонтактнойИнформации(Знач КонтактнаяИнформация, Знач ВидКонтактнойИнформации = Неопределено) Экспорт
|
||||
Функция ПредставлениеКонтактнойИнформации(Знач КонтактнаяИнформация, Знач УдалитьВидКонтактнойИнформации = Неопределено) Экспорт
|
||||
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(КонтактнаяИнформация, ВидКонтактнойИнформации);
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(КонтактнаяИнформация);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1223,7 +1219,7 @@
|
||||
| 0 КАК ИдентификаторСтрокиТабличнойЧасти
|
||||
|ИЗ
|
||||
| &СрезКонтактнойИнформации КАК СрезКонтактнойИнформации
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ &КонтактнаяИнформация КАК КонтактнаяИнформация
|
||||
| ЛЕВОЕ СОЕДИНЕНИЕ #КонтактнаяИнформация КАК КонтактнаяИнформация
|
||||
| ПО СрезКонтактнойИнформации.Вид = КонтактнаяИнформация.Вид
|
||||
| И СрезКонтактнойИнформации.ДействуетС = КонтактнаяИнформация.ДействуетС
|
||||
| И СрезКонтактнойИнформации.Объект = КонтактнаяИнформация.Ссылка " + УсловияОтбора;
|
||||
@@ -1242,7 +1238,7 @@
|
||||
| КонтактнаяИнформация.ЗначенияПолей КАК ЗначенияПолей,
|
||||
| 0 КАК ИдентификаторСтрокиТабличнойЧасти
|
||||
|ИЗ
|
||||
| &КонтактнаяИнформация КАК КонтактнаяИнформация
|
||||
| #КонтактнаяИнформация КАК КонтактнаяИнформация
|
||||
|ГДЕ
|
||||
| КонтактнаяИнформация.Вид <> ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ПустаяСсылка)
|
||||
| И КонтактнаяИнформация.Тип <> ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.ПустаяСсылка)
|
||||
@@ -1260,7 +1256,7 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&КонтактнаяИнформация" , МетаданныеОбъекта.ПолноеИмя() + ".КонтактнаяИнформация"); // @Query-part-1, @Query-part-2
|
||||
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#КонтактнаяИнформация" , МетаданныеОбъекта.ПолноеИмя() + ".КонтактнаяИнформация"); // @Query-part-1, @Query-part-2
|
||||
|
||||
Если ЭтоПервыйЗапрос Тогда
|
||||
|
||||
@@ -4738,7 +4734,7 @@
|
||||
Если ПустаяСтрока(СтрокаКИ.Значение) Тогда
|
||||
|
||||
Если ПустаяСтрока(СтрокаКИ.Представление) И ЗначениеЗаполнено(СтрокаКИ.ЗначенияПолей) Тогда
|
||||
СтрокаКИ.Представление = УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(СтрокаКИ.ЗначенияПолей, СтрокаКИ.Вид);
|
||||
СтрокаКИ.Представление = УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(СтрокаКИ.ЗначенияПолей);
|
||||
КонецЕсли;
|
||||
|
||||
Результат = УправлениеКонтактнойИнформациейСлужебный.КонтактнаяИнформацияИзXML(СтрокаКИ.ЗначенияПолей, СтрокаКИ.Вид, РезультатПреобразования, СтрокаКИ.Представление);
|
||||
@@ -5278,7 +5274,7 @@
|
||||
ИсточникЗначений = ?(ПустыеЗначенияПолей, СтрокаКонтактнойИнформации.Значение, СтрокаКонтактнойИнформации.ЗначенияПолей);
|
||||
|
||||
СтрокаКонтактнойИнформации.Представление = УправлениеКонтактнойИнформациейСлужебный.ПредставлениеКонтактнойИнформации(
|
||||
ИсточникЗначений, ФорматКонтактнойИнформации);
|
||||
ИсточникЗначений);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -329,8 +329,10 @@
|
||||
//
|
||||
Процедура СоздатьЭлектронноеПисьмо(Знач ЗначенияПолей, Знач Представление = "", ОжидаемыйВид = Неопределено, ИсточникКонтактнойИнформации = Неопределено) Экспорт
|
||||
|
||||
КонтактнаяИнформация = УправлениеКонтактнойИнформациейСлужебныйВызовСервера.ПривестиКонтактнуюИнформациюXML(
|
||||
Новый Структура("ЗначенияПолей, Представление, ВидКонтактнойИнформации", ЗначенияПолей, Представление, ОжидаемыйВид));
|
||||
ОписаниеКонтактнойИнформации = УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформации(
|
||||
ЗначенияПолей, Представление, ОжидаемыйВид);
|
||||
|
||||
КонтактнаяИнформация = УправлениеКонтактнойИнформациейСлужебныйВызовСервера.ПривестиКонтактнуюИнформациюXML(ОписаниеКонтактнойИнформации);
|
||||
|
||||
ТипИнформации = КонтактнаяИнформация.ТипКонтактнойИнформации;
|
||||
Если ТипИнформации <> ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
|
||||
@@ -1764,4 +1766,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
Функция ОставитьТолькоЦифрыВСтроке(Знач Строка) Экспорт
|
||||
|
||||
ЛишниеСимволы = СтрСоединить(СтрРазделить(Строка, "0123456789"), "");
|
||||
Результат = СтрСоединить(СтрРазделить(Строка, ЛишниеСимволы), "");
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -294,6 +294,26 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура - описание контактной информации:
|
||||
// * ЗначенияПолей - Строка - контактная информация в формате JSON
|
||||
// * Представление - Строка - представление контактной информации. Используется, если невозможно определить
|
||||
// представление из параметра.В ЗначенияПолей отсутствие поля Представление.
|
||||
// * ВидКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
// - СправочникСсылка.ВидыКонтактнойИнформации - вид контактной информации
|
||||
//
|
||||
Функция ОписаниеКонтактнойИнформации(ЗначенияПолей, Представление, ВидКонтактнойИнформации) Экспорт
|
||||
|
||||
Результат = Новый Структура;
|
||||
Результат.Вставить("ЗначенияПолей", ЗначенияПолей);
|
||||
Результат.Вставить("Представление", Представление);
|
||||
Результат.Вставить("ВидКонтактнойИнформации", ВидКонтактнойИнформации);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Функция ТипКонтактнойИнформацииВСтроку(Знач ТипКонтактнойИнформации)
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
@@ -1614,7 +1614,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПредставлениеКонтактнойИнформации(Знач КонтактнаяИнформация, Знач ФорматКонтактнойИнформации) Экспорт
|
||||
Функция ПредставлениеКонтактнойИнформации(Знач КонтактнаяИнформация) Экспорт
|
||||
|
||||
Если ПустаяСтрока(КонтактнаяИнформация) Тогда
|
||||
Возврат "";
|
||||
@@ -2244,7 +2244,7 @@
|
||||
Значение = ЗначениеИлиПредставление;
|
||||
ЗначенияПолей = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияВXML(Значение,, СвойстваВидаКонтактнойИнформации.Тип);
|
||||
ОбъектКонтактнойИнформации = JSONВКонтактнуюИнформациюПоПолям(Значение, СвойстваВидаКонтактнойИнформации.Тип);
|
||||
Представление = ПредставлениеКонтактнойИнформации(ЗначениеИлиПредставление, ВидКонтактнойИнформации);
|
||||
Представление = ПредставлениеКонтактнойИнформации(ЗначениеИлиПредставление);
|
||||
|
||||
Иначе
|
||||
ОбъектКонтактнойИнформации = КонтактнаяИнформацияПоПредставлению(ЗначениеИлиПредставление, СвойстваВидаКонтактнойИнформации.Тип);
|
||||
@@ -3352,6 +3352,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Параметры:
|
||||
// Данные - см. УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформации
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ДанныеXML - Строка
|
||||
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации
|
||||
//
|
||||
Функция ПривестиКонтактнуюИнформациюXML(Знач Данные) Экспорт
|
||||
|
||||
XMLСтрока = "";
|
||||
@@ -3556,7 +3564,7 @@
|
||||
Если Не Формат9Запятых Тогда
|
||||
|
||||
ПространствоИмен = ПространствоИмен();
|
||||
Состав = XDTOКонтактнаяИнформация.Состав;
|
||||
Состав = XDTOКонтактнаяИнформация.Состав; // см. XDTOПакет.КонтактнаяИнформация.Адрес
|
||||
|
||||
Если Состав = Неопределено Тогда
|
||||
Возврат Результат;
|
||||
|
||||
+11
-1
@@ -36,13 +36,23 @@
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебный.СтрокаСоставаКонтактнойИнформации(XMLДанные);
|
||||
КонецФункции
|
||||
|
||||
// Преобразует все входящие форматы контактной информации в XML.
|
||||
// Параметры:
|
||||
// Данные - см. УправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформации
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. УправлениеКонтактнойИнформациейСлужебный.ПривестиКонтактнуюИнформациюXML
|
||||
//
|
||||
Функция ПривестиКонтактнуюИнформациюXML(Знач Данные) Экспорт
|
||||
Возврат УправлениеКонтактнойИнформациейСлужебный.ПривестиКонтактнуюИнформациюXML(Данные);
|
||||
КонецФункции
|
||||
|
||||
// Возвращает найденную ссылку или создает новую страну мира и возвращает ссылку на нее.
|
||||
//
|
||||
// Параметры:
|
||||
// КодСтраны - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. УправлениеКонтактнойИнформацией.СтранаМираПоКодуИлиНаименованию
|
||||
//
|
||||
Функция СтранаМираПоДаннымКлассификатора(Знач КодСтраны) Экспорт
|
||||
|
||||
|
||||
@@ -599,7 +599,7 @@
|
||||
Процедура ЗаполнитьПрофильРедактированиеПечатныхФорм(ОписанияПрофилей) Экспорт
|
||||
|
||||
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
|
||||
ОписаниеПрофиля = МодульУправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();;
|
||||
ОписаниеПрофиля = МодульУправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
|
||||
ОписаниеПрофиля.Родитель = "ДополнительныеПрофили";
|
||||
ОписаниеПрофиля.Идентификатор = "70179f20-2315-11e6-9bff-d850e648b60c";
|
||||
ОписаниеПрофиля.Наименование = НСтр("ru = 'Редактирование, отправка по почте, сохранение в файл печатных форм (дополнительно)'",
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
Обработчик.НачальноеЗаполнение = Истина;
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.Версия = "3.1.4.18";
|
||||
Обработчик.Версия = "3.1.5.128";
|
||||
Обработчик.Идентификатор = Новый УникальныйИдентификатор("ecd6aad4-4b04-43be-82bc-cd4f563beb0b");
|
||||
Обработчик.Процедура = "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
Обработчик.Комментарий = НСтр("ru = 'Заполняет уникальное имя и обновляет зависимости дополнительных реквизитов и сведений.
|
||||
@@ -207,6 +207,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковПереходаСДругойПрограммы.
|
||||
Процедура ПриДобавленииОбработчиковПереходаСДругойПрограммы(Обработчики) Экспорт
|
||||
|
||||
Обработчик = Обработчики.Добавить();
|
||||
Обработчик.ПредыдущееИмяКонфигурации = "*";
|
||||
Обработчик.Процедура = "УправлениеСвойствамиСлужебный.СоздатьПредопределенныеНаборыСвойств";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ЗапретРедактированияРеквизитовОбъектовПереопределяемый.ПриОпределенииОбъектовСЗаблокированнымиРеквизитами.
|
||||
Процедура ПриОпределенииОбъектовСЗаблокированнымиРеквизитами(Объекты) Экспорт
|
||||
Объекты.Вставить(Метаданные.ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.ПолноеИмя(), "");
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
//
|
||||
Процедура УдалитьВременныйКаталог(Знач Путь) Экспорт
|
||||
|
||||
Если ЭтоИмяВременногоФайла(Путь) Тогда
|
||||
Если НЕ ЭтоИмяВременногоФайла(Путь) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверное значение параметра Путь в ФайловаяСистема.УдалитьВременныйКаталог:
|
||||
|Каталог не является временным ""%1""'"),
|
||||
@@ -56,6 +56,9 @@
|
||||
КонецПроцедуры
|
||||
|
||||
// Удаляет временный файл.
|
||||
//
|
||||
// Выбрасывает исключение, если передано имя не временного файла.
|
||||
//
|
||||
// Если временный файл не может быть удален (например, он занят каким-то процессом),
|
||||
// то в журнал регистрации записывается соответствующее предупреждение, а процедура завершается.
|
||||
//
|
||||
@@ -67,7 +70,7 @@
|
||||
//
|
||||
Процедура УдалитьВременныйФайл(Знач Путь) Экспорт
|
||||
|
||||
Если ЭтоИмяВременногоФайла(Путь) Тогда
|
||||
Если НЕ ЭтоИмяВременногоФайла(Путь) Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверное значение параметра Путь в ФайловаяСистема.УдалитьВременныйФайл:
|
||||
|Файл не является временным ""%1""'"),
|
||||
@@ -309,7 +312,7 @@
|
||||
|
||||
// Ожидается, что Путь получен методом ПолучитьИмяВременногоФайла().
|
||||
// Перед проверкой разворачиваем слэши в одну сторону.
|
||||
Возврат Не СтрНачинаетсяС(СтрЗаменить(Путь, "/", "\"), СтрЗаменить(КаталогВременныхФайлов(), "/", "\"));
|
||||
Возврат СтрНачинаетсяС(СтрЗаменить(Путь, "/", "\"), СтрЗаменить(КаталогВременныхФайлов(), "/", "\"));
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
Loaded 100 of 182 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user