3_1_3_216

This commit is contained in:
Компания 1С committed 2020-07-23 15:53:00 +03:00
1 parent 007ee04366
commit 02c8274330
64 files changed
+1589 -621

No files matched your search

@@ -1973,6 +1973,16 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// Структура:
// * НеСоответствует - Булево
// * КлючОбъектаМетаданных - Произвольный
// * ОбъектМетаданных - ОбъектМетаданных
// - Неопределено
// * ОбъектМетаданныхУдаленного - ОбъектМетаданных
// - Неопределено
// * ПредставлениеУдаленного - Строка
//
Функция КлючОбъектаМетаданныхСоответствуетПолномуИмени(СвойстваИдентификатора) Функция КлючОбъектаМетаданныхСоответствуетПолномуИмени(СвойстваИдентификатора)
РезультатПроверки = Новый Структура; РезультатПроверки = Новый Структура;
@@ -447,7 +447,8 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
СертификатКриптографии = Новый СертификатКриптографии(ПолучитьИзВременногоХранилища(СертификатАдрес)); ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(СертификатАдрес);
СертификатКриптографии = Новый СертификатКриптографии(ДвоичныеДанныеСертификата);
ТестовыеДанные = ТестовыеДвоичныеДанные(); ТестовыеДанные = ТестовыеДвоичныеДанные();
ОписанияПрограмм = ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм; ОписанияПрограмм = ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм;
@@ -39,8 +39,13 @@
Ограничение.Текст = Ограничение.Текст =
"РазрешитьЧтение "РазрешитьЧтение
|ГДЕ |ГДЕ
| ЗначениеРазрешено(Ссылка) | ВЫБОР КОГДА ВладелецУчетнойЗаписи = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ТОГДА
| ИЛИ ЗначениеРазрешено(ВладелецУчетнойЗаписи, ПустаяСсылка КАК Ложь) | ЗначениеРазрешено(Ссылка)
| ИНАЧЕ
| ЗначениеРазрешено(Ссылка, Отключено КАК Ложь)
| ИЛИ ЗначениеРазрешено(ВладелецУчетнойЗаписи, Отключено КАК Ложь)
| ИЛИ ЭтоАвторизованныйПользователь(ВладелецУчетнойЗаписи)
| КОНЕЦ
|; |;
|РазрешитьИзменениеЕслиРазрешеноЧтение |РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ |ГДЕ
@@ -230,7 +230,7 @@
<enabled>true</enabled> <enabled>true</enabled>
<userVisible/> <userVisible/>
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>НаборыСвойств.Ref</segments> <segments>НаборыСвойств.Ссылка</segments>
</dataPath> </dataPath>
<extendedTooltip> <extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name> <name>СсылкаРасширеннаяПодсказка</name>
@@ -4830,31 +4830,35 @@
<common>true</common> <common>true</common>
</edit> </edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.IsFolder</segments> <segments>НаборыСвойств.Родитель</segments>
</notDefaultUseAlwaysAttributes> </notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.Parent</segments> <segments>НаборыСвойств.Ссылка</segments>
</notDefaultUseAlwaysAttributes> </notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath"> <notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.Ref</segments> <segments>НаборыСвойств.ЭтоГруппа</segments>
</notDefaultUseAlwaysAttributes> </notDefaultUseAlwaysAttributes>
<extInfo xsi:type="form:DynamicListExtInfo"> <extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ <queryText>ВЫБРАТЬ
Наборы.Ссылка, Наборы.Ссылка КАК Ссылка,
Наборы.ВерсияДанных, Наборы.ВерсияДанных КАК ВерсияДанных,
Наборы.ПометкаУдаления, Наборы.ПометкаУдаления КАК ПометкаУдаления,
Наборы.Предопределенный, Наборы.Предопределенный КАК Предопределенный,
Наборы.Родитель, Наборы.Родитель КАК Родитель,
Наборы.ЭтоГруппа, Наборы.ЭтоГруппа КАК ЭтоГруппа,
Наборы.Наименование, Наборы.Наименование КАК Наименование,
Наборы.Используется, Наборы.Используется КАК Используется,
ВЫБОР ВЫБОР
КОГДА Наборы.ЭтоГруппа КОГДА Наборы.ЭтоГруппа
ТОГДА Наборы.Наименование ТОГДА Наборы.Наименование
КОГДА &amp;ЭтоДополнительноеСведение КОГДА &amp;ЭтоДополнительноеСведение
ТОГДА ВЫБОР ТОГДА ВЫБОР
КОГДА Наборы.КоличествоСведений = &quot;&quot; КОГДА Наборы.КоличествоСведений = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка) ТОГДА ВЫБОР
КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))
КОНЕЦ
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot; КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоСведений + &quot;)&quot; ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоСведений + &quot;)&quot;
@@ -4862,7 +4866,11 @@
КОНЕЦ КОНЕЦ
ИНАЧЕ ВЫБОР ИНАЧЕ ВЫБОР
КОГДА Наборы.КоличествоРеквизитов = &quot;&quot; КОГДА Наборы.КоличествоРеквизитов = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка) ТОГДА ВЫБОР
КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))
КОНЕЦ
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot; КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоРеквизитов + &quot;)&quot; ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоРеквизитов + &quot;)&quot;
@@ -4880,7 +4888,7 @@
КОНЕЦ КАК НомерКартинки КОНЕЦ КАК НомерКартинки
ИЗ ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления
ПО (НаборыПредставления.Ссылка = Наборы.Ссылка) ПО (НаборыПредставления.Ссылка = Наборы.Ссылка)
И (НаборыПредставления.КодЯзыка = &amp;КодЯзыка) И (НаборыПредставления.КодЯзыка = &amp;КодЯзыка)
ГДЕ ГДЕ
@@ -4890,10 +4898,9 @@
ИНАЧЕ Наборы.Родитель В (&amp;Наборы) ИНАЧЕ Наборы.Родитель В (&amp;Наборы)
КОНЕЦ КОНЕЦ
И Наборы.Используется И Наборы.Используется
И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА) И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА)
И Наборы.Ссылка НЕ В (&amp;ИсключаемыеНаборы)</queryText> И НЕ Наборы.Ссылка В (&amp;ИсключаемыеНаборы)</queryText>
<mainTable>Catalog.НаборыДополнительныхРеквизитовИСведений</mainTable> <mainTable>Catalog.НаборыДополнительныхРеквизитовИСведений</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields> <autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery> <customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings> <autoSaveUserSettings>true</autoSaveUserSettings>
@@ -2535,7 +2535,7 @@
Процедура СоздатьСтруктуруПереданныхПараметров() Процедура СоздатьСтруктуруПереданныхПараметров()
ПереданныеПараметрыФормы = Новый Структура; ПереданныеПараметрыФормы = Новый Структура;
ПереданныеПараметрыФормы.Вставить("ВладелецДополнительныхЗначений"); ПереданныеПараметрыФормы.Вставить("ВладелецДополнительныхЗначений");
ПереданныеПараметрыФормы.Вставить("ПоказатьУточнениеНабора"); ПереданныеПараметрыФормы.Вставить("ПоказатьУточнениеНабора", Истина);
ПереданныеПараметрыФормы.Вставить("ТекущийНаборСвойств"); ПереданныеПараметрыФормы.Вставить("ТекущийНаборСвойств");
ПереданныеПараметрыФормы.Вставить("ЭтоДополнительноеСведение"); ПереданныеПараметрыФормы.Вставить("ЭтоДополнительноеСведение");
ПереданныеПараметрыФормы.Вставить("ВыборОбщегоСвойства"); ПереданныеПараметрыФормы.Вставить("ВыборОбщегоСвойства");
@@ -2545,7 +2545,7 @@
ПереданныеПараметрыФормы.Вставить("КопированиеСВопросом"); ПереданныеПараметрыФормы.Вставить("КопированиеСВопросом");
ПереданныеПараметрыФормы.Вставить("Перетаскивание", Ложь); ПереданныеПараметрыФормы.Вставить("Перетаскивание", Ложь);
ЗаполнитьЗначенияСвойств(ПереданныеПараметрыФормы, Параметры); ЗаполнитьЗначенияСвойств(ПереданныеПараметрыФормы, Параметры, , "ПоказатьУточнениеНабора");
ВладелецЗначений = ПереданныеПараметрыФормы.ВладелецДополнительныхЗначений; ВладелецЗначений = ПереданныеПараметрыФормы.ВладелецДополнительныхЗначений;
Если ЗначениеЗаполнено(ВладелецЗначений) Тогда Если ЗначениеЗаполнено(ВладелецЗначений) Тогда
@@ -112,8 +112,6 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка); ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка);
Если ОписаниеЯзыка <> Неопределено Тогда Если ОписаниеЯзыка <> Неопределено Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
@@ -121,6 +119,8 @@
Если МультиязычныеСтрокиВРеквизитах Тогда Если МультиязычныеСтрокиВРеквизитах Тогда
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить()); ОписаниеЯзыка = ОписаниеЯзыка(Константы.ОсновнойЯзык.Получить());
Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда Если ПустаяСтрока(СуффиксОсновногоЯзыка) Тогда
ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение; ЭтотОбъект[ОписаниеЯзыка.Имя] = Параметры.ТекущиеЗначение;
@@ -148,6 +148,8 @@
Иначе Иначе
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
Для каждого Представление Из Параметры.Представления Цикл Для каждого Представление Из Параметры.Представления Цикл
ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка); ОписаниеЯзыка = ОписаниеЯзыка(Представление.КодЯзыка);
@@ -40,7 +40,7 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo"> <extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef"> <picture xsi:type="core:PictureRef">
<picture>StdPicture.DialogInformation</picture> <picture>CommonPicture.Информация32</picture>
</picture> </picture>
<pictureSize>Proportionally</pictureSize> <pictureSize>Proportionally</pictureSize>
<fileDragMode>AsFileRef</fileDragMode> <fileDragMode>AsFileRef</fileDragMode>
@@ -53,9 +53,9 @@
&НаКлиенте &НаКлиенте
Процедура ДекорацияЖурналРегистрацииНажатие(Элемент) Процедура ДекорацияЖурналРегистрацииНажатие(Элемент)
МассивСобытий = Новый Массив; МассивСобытий = Новый Массив;
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Установка'")); МассивСобытий.Добавить(НСтр("ru = 'Исправления.Установка'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Изменение'")); МассивСобытий.Добавить(НСтр("ru = 'Исправления.Изменение'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Удаление'")); МассивСобытий.Добавить(НСтр("ru = 'Исправления.Удаление'"));
Отбор = Новый Структура("СобытиеЖурналаРегистрации", МассивСобытий); Отбор = Новый Структура("СобытиеЖурналаРегистрации", МассивСобытий);
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор); ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор);
КонецПроцедуры КонецПроцедуры
@@ -742,7 +742,9 @@
// Обработка строк. // Обработка строк.
СтрокаИсточник = ПараметрыГруппировки.Родитель; СтрокаИсточник = ПараметрыГруппировки.Родитель;
СтрокаПриемник = СтрокаИсточник.ПолучитьЭлементы().Вставить(ПараметрыГруппировки.Индекс); // см. ЭлементКоллекцииФормыНастроек ЭлементыИсточника = СтрокаИсточник.ПолучитьЭлементы();
СтрокаПриемник = ЭлементКоллекцииФормыНастроек(СтрокаИсточник);
СтрокаПриемник = ЭлементыИсточника.Вставить(ПараметрыГруппировки.Индекс); // см. ЭлементКоллекцииФормыНастроек
УстановитьДанныеСтрокиОтборов(СтрокаПриемник, СвойствоЭлементаСтруктуры, ЭлементНастройкиПриемник); УстановитьДанныеСтрокиОтборов(СтрокаПриемник, СвойствоЭлементаСтруктуры, ЭлементНастройкиПриемник);
СтрокаПриемник.Идентификатор = СвойствоЭлементаСтруктуры.ПолучитьИдентификаторПоОбъекту(ЭлементНастройкиПриемник); СтрокаПриемник.Идентификатор = СвойствоЭлементаСтруктуры.ПолучитьИдентификаторПоОбъекту(ЭлементНастройкиПриемник);
@@ -6976,6 +6978,10 @@
&НаКлиентеНаСервереБезКонтекста &НаКлиентеНаСервереБезКонтекста
Функция ЭлементКоллекцииФормыНастроек(Коллекция) Функция ЭлементКоллекцииФормыНастроек(Коллекция)
Если Коллекция.ПолучитьЭлементы().Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Коллекция.ПолучитьЭлементы()[0]; Возврат Коллекция.ПолучитьЭлементы()[0];
КонецФункции КонецФункции
@@ -458,7 +458,14 @@
КонецЕсли; КонецЕсли;
УзелОбмена = ПриложениеВСервисе();
Отказ = Ложь; Отказ = Ложь;
ОбменДаннымиСервер.ПроверитьВозможностьЗапускаОбмена(УзелОбмена, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена(); ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена();
ПараметрыОбмена.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS; ПараметрыОбмена.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS;
@@ -470,8 +477,7 @@
ПараметрыОбмена.ДлительнаяОперацияРазрешена = Истина; ПараметрыОбмена.ДлительнаяОперацияРазрешена = Истина;
КонецЕсли; КонецЕсли;
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелОбмена, ПараметрыОбмена, Отказ);
ПриложениеВСервисе(), ПараметрыОбмена, Отказ);
Если Отказ Тогда Если Отказ Тогда
ВызватьИсключение НСтр("ru = 'В процессе синхронизации данных с приложением в Интернете возникли ошибки (см. журнал регистрации).'"); ВызватьИсключение НСтр("ru = 'В процессе синхронизации данных с приложением в Интернете возникли ошибки (см. журнал регистрации).'");
@@ -1686,6 +1686,10 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Обработчики событий подсистем конфигурации. // Обработчики событий подсистем конфигурации.
Функция НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора() Экспорт
Возврат "e1cib/command/РегистрСведений.АдресныеОбъекты.Команда.ЗагрузитьАдресныйКлассификатор";
КонецФункции
// Параметры: // Параметры:
// НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей // НазначениеРолей - см. ПользователиПереопределяемый.ПриОпределенииНазначенияРолей.НазначениеРолей
// //
@@ -2788,8 +2788,8 @@
ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов(СписокРазделов); ВариантыОтчетовПереопределяемый.ОпределитьРазделыСВариантамиОтчетов(СписокРазделов);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкиПрограммы") Тогда
МодульОбработкиПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП"); МодульПанельАдминистрированияБСП = ОбщегоНазначения.ОбщийМодуль("Обработки.ПанельАдминистрированияБСП");
МодульОбработкиПанельАдминистрированияБСП.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов); МодульПанельАдминистрированияБСП.ПриОпределенииРазделовСВариантамиОтчетов(СписокРазделов);
КонецЕсли; КонецЕсли;
Возврат СписокРазделов; Возврат СписокРазделов;
@@ -226,10 +226,18 @@
КонецФункции КонецФункции
// Выполняет отправку и получение почты пользователя в фоновом режиме.
//
// Параметры:
// УникальныйИдентификатор - УникальныйИдентификатор - идентификатор фонового задания.
//
// Возвращаемое значение:
// см. ДлительныеОперации.ВыполнитьВФоне
//
Функция ОтправитьПолучитьПочтуПользователяВФоне(УникальныйИдентификатор) Экспорт Функция ОтправитьПолучитьПочтуПользователяВФоне(УникальныйИдентификатор) Экспорт
Если Взаимодействия.ФоновоеЗаданиеПолучениеОтправкаПочтыВыполняется() Тогда Если Взаимодействия.ФоновоеЗаданиеПолучениеОтправкаПочтыВыполняется() Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Подождите, пожалуйста, отправка и получение писем уже выполняется...'")); ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Отправка и получение почты уже выполняется. Пожалуйста, подождите...'"));
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
@@ -1650,8 +1650,7 @@
СтрокаОписанияОшибки.ДляВсехОбъектов = (Запрет.Раздел = Запрет.Объект); СтрокаОписанияОшибки.ДляВсехОбъектов = (Запрет.Раздел = Запрет.Объект);
СтрокаОписанияОшибки.Адресат = Запрет.Адресат; СтрокаОписанияОшибки.Адресат = Запрет.Адресат;
СтрокаОписанияОшибки.Описание = Текст; СтрокаОписанияОшибки.Описание = Текст;
КонецЕсли; ИначеЕсли ДобавленныеТексты.Получить(Текст) = Неопределено Тогда
Если ДобавленныеТексты.Получить(Текст) = Неопределено Тогда
ДобавленныеТексты.Вставить(Текст, Истина); ДобавленныеТексты.Вставить(Текст, Истина);
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС; ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС;
КонецЕсли; КонецЕсли;
@@ -110,7 +110,7 @@
// //
Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект, ИмяОбъекта = Неопределено) Экспорт Процедура ПриЧтенииНаСервере(Форма, ТекущийОбъект, ИмяОбъекта = Неопределено) Экспорт
Если ЭтоОсновнойЯзык() Тогда Если МультиязычныеСтрокиВРеквизитах(ТекущийОбъект.Метаданные()) И ЭтоОсновнойЯзык() Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -146,13 +146,13 @@
// //
Процедура ПередЗаписьюНаСервере(ТекущийОбъект) Экспорт Процедура ПередЗаписьюНаСервере(ТекущийОбъект) Экспорт
Если ТекущийЯзык().КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Возврат;
КонецЕсли;
ОбъектМетаданных = ОбъектМетаданных(ТекущийОбъект); ОбъектМетаданных = ОбъектМетаданных(ТекущийОбъект);
Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда
Если ТекущийЯзык().КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Возврат;
КонецЕсли;
СуффиксТекущегоЯзыка = ""; СуффиксТекущегоЯзыка = "";
Если СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) <> 0 Тогда Если СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) <> 0 Тогда
@@ -196,7 +196,7 @@
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита]; Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
КонецЦикла; КонецЦикла;
Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор); НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда Если НайденныеСтроки.Количество() > 0 Тогда
Для каждого ИмяРеквизита Из Реквизиты Цикл Для каждого ИмяРеквизита Из Реквизиты Цикл
@@ -224,16 +224,15 @@
// //
Процедура ПриЧтенииПредставленийНаСервере(Объект) Экспорт Процедура ПриЧтенииПредставленийНаСервере(Объект) Экспорт
Если ЭтоОсновнойЯзык() Тогда
Возврат;
КонецЕсли;
ОбъектМетаданных = ОбъектМетаданных(Объект); ОбъектМетаданных = ОбъектМетаданных(Объект);
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных); ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
Если ЭтоРегистр Или МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда Если ЭтоРегистр Или МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда
// Объект.Ссылка.Метаданные() Если ЭтоОсновнойЯзык() Тогда
Возврат;
КонецЕсли;
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных);
СуффиксТекущегоЯзыка = ""; СуффиксТекущегоЯзыка = "";
@@ -267,14 +266,14 @@
ИмяРеквизита = Реквизит.Имя; ИмяРеквизита = Реквизит.Имя;
Отбор = Новый Структура(); Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка()); Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор); НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда Если НайденныеСтроки.Количество() > 0 Тогда
Представление = НайденныеСтроки[0]; Представление = НайденныеСтроки[0];
Иначе Иначе
Представление = Объект.Представления.Добавить(); Представление = Объект.Представления.Добавить();
Представление.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка(); Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
КонецЕсли; КонецЕсли;
Представление[ИмяРеквизита] = Объект[ИмяРеквизита]; Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
@@ -631,10 +630,10 @@
Имя = ЛокализуемыйРеквизитОбъекта.Ключ; Имя = ЛокализуемыйРеквизитОбъекта.Ключ;
Объект[Имя] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.ОсновнойЯзык)]; Объект[Имя] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.ОсновнойЯзык)];
Если ИспользуетсяПервыйДополнительныйЯзык() Тогда Если ИспользуетсяПервыйДополнительныйЯзык() И ЗначениеЗаполнено(НастройкиОбновления.КодЯзыка1) Тогда
Объект[Имя + "Язык1"] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.КодЯзыка1)]; Объект[Имя + "Язык1"] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.КодЯзыка1)];
КонецЕсли; КонецЕсли;
Если ИспользуетсяВторойДополнительныйЯзык() Тогда Если ИспользуетсяВторойДополнительныйЯзык() И ЗначениеЗаполнено(НастройкиОбновления.КодЯзыка2) Тогда
Объект[Имя + "Язык2"] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.КодЯзыка2)]; Объект[Имя + "Язык2"] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.КодЯзыка2)];
КонецЕсли; КонецЕсли;
@@ -882,7 +881,14 @@
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
Возврат Константы.ДополнительныйЯзык1.Получить(); КодЯзыка = Константы.ДополнительныйЯзык1.Получить();
Для Каждого ЯзыкиИзМетаданных Из Метаданные.Языки Цикл
Если СтрСравнить(ЯзыкиИзМетаданных.КодЯзыка, КодЯзыка) = 0 Тогда
Возврат КодЯзыка;
КонецЕсли;
КонецЦикла;
Возврат "";
КонецФункции КонецФункции
@@ -892,7 +898,14 @@
Возврат ""; Возврат "";
КонецЕсли; КонецЕсли;
Возврат Константы.ДополнительныйЯзык2.Получить(); КодЯзыка = Константы.ДополнительныйЯзык2.Получить();
Для Каждого ЯзыкиИзМетаданных Из Метаданные.Языки Цикл
Если СтрСравнить(ЯзыкиИзМетаданных.КодЯзыка, КодЯзыка) = 0 Тогда
Возврат КодЯзыка;
КонецЕсли;
КонецЦикла;
Возврат "";
КонецФункции КонецФункции
@@ -831,6 +831,112 @@
КонецФункции КонецФункции
Процедура ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято)
| ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиЗагрузка
|ИЗ
| РегистрСведений.СостоянияОбменовДаннымиОбластейДанных КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиВыгрузка
|ИЗ
| РегистрСведений.СостоянияОбменовДаннымиОбластейДанных КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиЗагрузка
|ИЗ
| РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиВыгрузка
|ИЗ
| РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)");
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецПроцедуры
Процедура ПолучитьСообщенияДляСопоставленияДанных(МенеджерВременныхТаблиц) Экспорт
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| ВЫБОР
| КОГДА КОЛИЧЕСТВО(ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолученоСообщениеДляСопоставленияДанных,
| МАКСИМУМ(СообщенияОбменаДанными.ДатаЗакладкиСообщения) КАК ДатаЗакладкиПоследнегоСообщения
|ПОМЕСТИТЬ СообщенияДляСопоставленияДанных
|ИЗ
| РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СообщенияОбменаДаннымиОбластейДанных КАК СообщенияОбменаДанными
| ПО (СообщенияОбменаДанными.ИдентификаторСообщения = ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных)
|
|СГРУППИРОВАТЬ ПО
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы");
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -1945,66 +2051,6 @@
КонецПроцедуры КонецПроцедуры
// Выполняет вход в область и действие сценария обмена, заданное строкой таблицы значений, для первой из двух
// обменивающихся ИБ.
//
// Параметры:
// ИндексСтрокиСценария - Число - индекс строки в таблице СценарийОбменаДанными.
// СценарийОбменаДанными - ТаблицаЗначений.
//
Процедура ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса(
ИндексСтрокиСценария,
СценарийОбменаДанными,
ОбластьДанных) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда
Возврат;
КонецЕсли;
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
УстановитьПривилегированныйРежим(Ложь);
ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
// Выполняет вход в область и действие сценария обмена, заданное строкой таблицы значений, для второй из двух
// обменивающихся ИБ.
//
// Параметры:
// ИндексСтрокиСценария - Число - индекс строки в таблице СценарийОбменаДанными.
// СценарийОбменаДанными - ТаблицаЗначений.
//
Процедура ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса(
ИндексСтрокиСценария,
СценарийОбменаДанными,
ОбластьДанных) Экспорт
Если Не ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса") Тогда
Возврат;
КонецЕсли;
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
УстановитьПривилегированныйРежим(Ложь);
ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе(ИндексСтрокиСценария, СценарийОбменаДанными);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
// Возвращает минимально необходимую версию платформы // Возвращает минимально необходимую версию платформы
// //
Функция ТребуемаяВерсияПлатформы() Экспорт Функция ТребуемаяВерсияПлатформы() Экспорт
@@ -3084,6 +3084,29 @@
КонецФункции КонецФункции
Процедура ПроверитьВозможностьЗапускаОбмена(УзелОбмена, Отказ) Экспорт
Попытка
ЗаблокироватьДанныеДляРедактирования(УзелОбмена);
Исключение
Отказ = Истина;
СообщениеОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось выполнить обмен данными с %1.
|Обмен данными уже выполняется. Повторите попытку позже.'"),
УзелОбмена);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииОбменДанными(),
УровеньЖурналаРегистрации.Предупреждение,
,
,
СообщениеОбОшибке);
КонецПопытки;
РазблокироватьДанныеДляРедактирования(УзелОбмена);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОберткиДляРаботыСПрограммнымИнтерфейсомМенеджераПланаОбмена #Область ОберткиДляРаботыСПрограммнымИнтерфейсомМенеджераПланаОбмена
@@ -5219,6 +5242,12 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ОтказБлокировки = Ложь;
ПроверитьВозможностьЗапускаОбмена(Выборка.УзелИнформационнойБазы, ОтказБлокировки);
Если ОтказБлокировки Тогда
Продолжить;
КонецЕсли;
Если Выборка.ОбменЧерезВнешнееСоединение Тогда Если Выборка.ОбменЧерезВнешнееСоединение Тогда
ПроверитьВозможностьВнешнегоСоединения(); ПроверитьВозможностьВнешнегоСоединения();
@@ -8368,7 +8397,12 @@
ДополнительныеПараметры = Новый Структура("ПараметрыАутентификации", ПараметрыАутентификации); ДополнительныеПараметры = Новый Структура("ПараметрыАутентификации", ПараметрыАутентификации);
Прокси = WSПроксиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, , ДополнительныеПараметры); СообщениеОбОшибке = "";
Прокси = WSПроксиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, СообщениеОбОшибке, ДополнительныеПараметры);
Если Прокси = Неопределено Тогда
ВызватьИсключение СообщениеОбОшибке;
КонецЕсли;
ИдентификаторСессии = Неопределено; ИдентификаторСессии = Неопределено;
КоличествоЧастей = Неопределено; КоличествоЧастей = Неопределено;
@@ -8475,7 +8509,12 @@
ДополнительныеПараметры = Новый Структура("ПараметрыАутентификации", ПараметрыАутентификации); ДополнительныеПараметры = Новый Структура("ПараметрыАутентификации", ПараметрыАутентификации);
Прокси = WSПроксиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, , ДополнительныеПараметры); СообщениеОбОшибке = "";
Прокси = WSПроксиДляУзлаИнформационнойБазы(УзелИнформационнойБазы, СообщениеОбОшибке, ДополнительныеПараметры);
Если Прокси = Неопределено Тогда
ВызватьИсключение СообщениеОбОшибке;
КонецЕсли;
КаталогФайлов = ПолучитьИмяВременногоФайла(); КаталогФайлов = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогФайлов); СоздатьКаталог(КаталогФайлов);
@@ -11145,93 +11184,89 @@
Процедура ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц) Процедура ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц)
ТекстЗапросаРезультат =
"ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято)
| ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиЗагрузка
|ИЗ
| #ТаблицаСостоянияОбменовДанными КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиВыгрузка
|ИЗ
| #ТаблицаСостоянияОбменовДанными КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиЗагрузка
|ИЗ
| #ТаблицаСостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиВыгрузка
|ИЗ
| #ТаблицаСостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)";
Если ОбщегоНазначения.РазделениеВключено() Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСостоянияОбменовДанными", "РегистрСведений.СостоянияОбменовДаннымиОбластейДанных"); МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса");
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСостоянияУспешныхОбменовДанными", "РегистрСведений.СостоянияУспешныхОбменовДаннымиОбластейДанных"); МодульОбменДаннымиВМоделиСервиса.ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц);
Иначе Иначе
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСостоянияОбменовДанными", "РегистрСведений.СостоянияОбменовДанными"); Запрос = Новый Запрос(
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСостоянияУспешныхОбменовДанными", "РегистрСведений.СостоянияУспешныхОбменовДанными"); "ВЫБРАТЬ
КонецЕсли; | СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято)
| ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиЗагрузка
|ИЗ
| РегистрСведений.СостоянияОбменовДанными КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 2
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Выполнено)
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(КоличествоПроблем.Количество, 0) > 0
| ТОГДА 2
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 1
| КОНЕЦ КАК РезультатВыполненияОбмена
|ПОМЕСТИТЬ СостоянияОбменовДаннымиВыгрузка
|ИЗ
| РегистрСведений.СостоянияОбменовДанными КАК СостоянияОбменовДанными
| ЛЕВОЕ СОЕДИНЕНИЕ КоличествоПроблем КАК КоличествоПроблем
| ПО СостоянияОбменовДанными.УзелИнформационнойБазы = КоличествоПроблем.УзелИнформационнойБазы
| И СостоянияОбменовДанными.ДействиеПриОбмене = КоличествоПроблем.ДействиеПриОбмене
|ГДЕ
| СостоянияОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиЗагрузка
|ИЗ
| РегистрСведений.СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ЗагрузкаДанных)
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СостоянияУспешныхОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияУспешныхОбменовДанными.ДатаОкончания КАК ДатаОкончания
|ПОМЕСТИТЬ СостоянияУспешныхОбменовДаннымиВыгрузка
|ИЗ
| РегистрСведений.СостоянияУспешныхОбменовДанными КАК СостоянияУспешныхОбменовДанными
|ГДЕ
| СостоянияУспешныхОбменовДанными.ДействиеПриОбмене = ЗНАЧЕНИЕ(Перечисление.ДействияПриОбмене.ВыгрузкаДанных)");
Запрос = Новый Запрос(ТекстЗапросаРезультат); Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Запрос.Выполнить();
Запрос.Выполнить(); КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -11287,46 +11322,45 @@
Процедура ПолучитьСообщенияДляСопоставленияДанных(МенеджерВременныхТаблиц) Процедура ПолучитьСообщенияДляСопоставленияДанных(МенеджерВременныхТаблиц)
ТекстЗапросаРезультат =
"ВЫБРАТЬ
| NULL КАК УзелИнформационнойБазы,
| NULL КАК ПолученоСообщениеДляСопоставленияДанных,
| NULL КАК ДатаЗакладкиПоследнегоСообщения
|ПОМЕСТИТЬ СообщенияДляСопоставленияДанных";
Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда Если ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ТекстЗапросаРезультат =
"ВЫБРАТЬ
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| ВЫБОР
| КОГДА КОЛИЧЕСТВО(ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолученоСообщениеДляСопоставленияДанных,
| МАКСИМУМ(СообщенияОбменаДанными.ДатаЗакладкиСообщения) КАК ДатаЗакладкиПоследнегоСообщения
|ПОМЕСТИТЬ СообщенияДляСопоставленияДанных
|ИЗ
| РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ #ТаблицаСобщенияОбменаДанными КАК СообщенияОбменаДанными
| ПО (СообщенияОбменаДанными.ИдентификаторСообщения = ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных)
|
|СГРУППИРОВАТЬ ПО
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы";
Если ОбщегоНазначения.РазделениеВключено() Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСобщенияОбменаДанными", "РегистрСведений.СообщенияОбменаДаннымиОбластейДанных"); МодульОбменДаннымиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиВМоделиСервиса");
МодульОбменДаннымиВМоделиСервиса.ПолучитьСообщенияДляСопоставленияДанных(МенеджерВременныхТаблиц);
Иначе Иначе
ТекстЗапросаРезультат = СтрЗаменить(ТекстЗапросаРезультат, "#ТаблицаСобщенияОбменаДанными", "РегистрСведений.СообщенияОбменаДанными"); Запрос = Новый Запрос(
"ВЫБРАТЬ
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| ВЫБОР
| КОГДА КОЛИЧЕСТВО(ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных) > 0
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ПолученоСообщениеДляСопоставленияДанных,
| МАКСИМУМ(СообщенияОбменаДанными.ДатаЗакладкиСообщения) КАК ДатаЗакладкиПоследнегоСообщения
|ПОМЕСТИТЬ СообщенияДляСопоставленияДанных
|ИЗ
| РегистрСведений.ОбщиеНастройкиУзловИнформационныхБаз КАК ОбщиеНастройкиУзловИнформационныхБаз
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СообщенияОбменаДанными КАК СообщенияОбменаДанными
| ПО (СообщенияОбменаДанными.ИдентификаторСообщения = ОбщиеНастройкиУзловИнформационныхБаз.СообщениеДляСопоставленияДанных)
|
|СГРУППИРОВАТЬ ПО
| ОбщиеНастройкиУзловИнформационныхБаз.УзелИнформационнойБазы");
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецЕсли; КонецЕсли;
Иначе
Запрос = Новый Запрос(
"ВЫБРАТЬ
| NULL КАК УзелИнформационнойБазы,
| NULL КАК ПолученоСообщениеДляСопоставленияДанных,
| NULL КАК ДатаЗакладкиПоследнегоСообщения
|ПОМЕСТИТЬ СообщенияДляСопоставленияДанных");
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецЕсли; КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаРезультат);
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.Выполнить();
КонецПроцедуры КонецПроцедуры
Процедура ПолучитьОбщиеНастройкиУзловИнформационныхБаз(МенеджерВременныхТаблиц) Процедура ПолучитьОбщиеНастройкиУзловИнформационныхБаз(МенеджерВременныхТаблиц)
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.3.203"; Описание.Версия = "3.1.3.216";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2984,10 +2984,21 @@
Если ОбщегоНазначения.РазделениеВключено() Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса") И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса")
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность")
И Использование Тогда И Использование Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти(); МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки();
ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0;
Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти();
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
КонецЕсли;
КонецЕсли; КонецЕсли;
РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, ПараметрыЗадания); РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, ПараметрыЗадания);
@@ -5662,8 +5673,6 @@
ОбъектыКОбработке = Новый Массив; ОбъектыКОбработке = Новый Массив;
СведенияОбЯзыках = МультиязычностьСервер.СведенияОбЯзыках();
ШаблонаЗапроса = "ВЫБРАТЬ ШаблонаЗапроса = "ВЫБРАТЬ
| %1 | %1
|ИЗ |ИЗ
@@ -691,11 +691,6 @@
// и при необходимости формирует фоновые задания по обновлению // и при необходимости формирует фоновые задания по обновлению
// версии в них. // версии в них.
// //
// Параметры:
// БлокироватьОбласти - Булево - устанавливать блокировку сеансов областей данных
// на время обновления областей,
// СообщениеБлокировки - Строка - сообщение блокировки.
//
Процедура ЗапланироватьОбновлениеОбластейДанных() Процедура ЗапланироватьОбновлениеОбластейДанных()
Если НЕ ОбщегоНазначения.РазделениеВключено() Если НЕ ОбщегоНазначения.РазделениеВключено()
@@ -756,7 +751,21 @@
| И ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы"; | И ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы";
Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя); Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя);
ЗапланированныйМоментЗапуска = ТекущаяУниверсальнаяДатаВМиллисекундах(); ТребуетсяУстановитьЗапланированныйМоментЗапуска = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки();
ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0;
Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда
ЗапланированныйМоментЗапуска = ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
КонецЕсли;
Выборка = Результат.Выбрать(); Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
@@ -840,8 +849,13 @@
ПараметрыЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных); ПараметрыЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных);
ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Истина); ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Истина);
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3); ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 3);
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
ЗапланированныйМоментЗапуска = ЗапланированныйМоментЗапуска + 1; Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
ЗапланированныйМоментЗапуска = ЗапланированныйМоментЗапуска + 1;
КонецЕсли;
МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания); МодульОчередьЗаданий.ДобавитьЗадание(ПараметрыЗадания);
@@ -72,7 +72,7 @@
ИначеЕсли СвойстваИсправления = "ОшибкаЧтения" Тогда ИначеЕсли СвойстваИсправления = "ОшибкаЧтения" Тогда
УдалитьИсправление = Истина; УдалитьИсправление = Истина;
Иначе Иначе
ТекстСообщения = НСтр("ru = 'Проверка патча ""%1"".'"); ТекстСообщения = НСтр("ru = 'Проверка исправления ""%1"".'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Исправление.Имя); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Исправление.Имя);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,,, ТекстСообщения); ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
@@ -92,9 +92,10 @@
КонецЕсли; КонецЕсли;
Если УдалитьИсправление Тогда Если УдалитьИсправление Тогда
ТекстСообщения = НСтр("ru = 'Патч ""%1"" устарел и будет удален.'"); ТекстСообщения = НСтр("ru = 'Исправление ""%1"" устарело и будет удалено.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Исправление.Имя); ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Исправление.Имя);
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрации(), УровеньЖурналаРегистрации.Информация,,, ТекстСообщения); ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Удаление'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация, , , ТекстСообщения);
Попытка Попытка
Исправление.Удалить(); Исправление.Удалить();
@@ -150,6 +151,12 @@
Если ЭтоИсправление(Расширение) Тогда Если ЭтоИсправление(Расширение) Тогда
Попытка Попытка
Расширение.Удалить(); Расширение.Удалить();
ТекстСообщения = НСтр("ru = 'Удалено отключенное исправление: ""%1"".'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Расширение.Имя);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Удаление'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация, , , ТекстСообщения);
Изменения.НеактивныеИсправления.Добавить(Расширение.Имя); Изменения.НеактивныеИсправления.Добавить(Расширение.Имя);
ИсправленияИзменены = Истина; ИсправленияИзменены = Истина;
Исключение Исключение
@@ -368,6 +375,13 @@
Расширение.Удалить(); Расширение.Удалить();
ВызватьИсключение НСтр("ru = 'Расширение не является патчем.'"); ВызватьИсключение НСтр("ru = 'Расширение не является патчем.'");
КонецЕсли; КонецЕсли;
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Установлено исправление: %1'"),
УстановленноеИсправление.Имя);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Установка'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
РезультатВыполнения.Установленные.Добавить(УстановленноеИсправление.Имя); РезультатВыполнения.Установленные.Добавить(УстановленноеИсправление.Имя);
Исключение Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
@@ -407,6 +421,11 @@
Идентификатор = СвойстваИсправления.UUID; Идентификатор = СвойстваИсправления.UUID;
Если Удаляемые.Найти(Строка(Идентификатор)) <> Неопределено Тогда Если Удаляемые.Найти(Строка(Идентификатор)) <> Неопределено Тогда
Расширение.Удалить(); Расширение.Удалить();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Удалено исправление: %1'"),
Расширение.Имя);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Удаление'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
КонецЕсли; КонецЕсли;
Исключение Исключение
НеУдалено = НеУдалено + 1; НеУдалено = НеУдалено + 1;
@@ -122,7 +122,7 @@
ОтборОбсуждений.КонтекстноеОбсуждение = Истина; ОтборОбсуждений.КонтекстноеОбсуждение = Истина;
ОтборОбсуждений.КонтекстОбсуждения = КонтекстОбсуждения; ОтборОбсуждений.КонтекстОбсуждения = КонтекстОбсуждения;
НайденноеОбсуждения = СистемаВзаимодействия.ПолучитьОбсуждения(ОтборОбсуждений); НайденноеОбсуждения = Вычислить("СистемаВзаимодействия.ПолучитьОбсуждения(ОтборОбсуждений)");
Если НайденноеОбсуждения.Количество() > 0 Тогда Если НайденноеОбсуждения.Количество() > 0 Тогда
Возврат НайденноеОбсуждения[0]; Возврат НайденноеОбсуждения[0];
@@ -135,7 +135,7 @@
КонецЕсли; КонецЕсли;
Обсуждение = СистемаВзаимодействия.СоздатьОбсуждение(); Обсуждение = Вычислить("СистемаВзаимодействия.СоздатьОбсуждение()");
Обсуждение.Заголовок = Заголовок; Обсуждение.Заголовок = Заголовок;
Обсуждение.КонтекстОбсуждения = КонтекстОбсуждения; Обсуждение.КонтекстОбсуждения = КонтекстОбсуждения;
@@ -176,16 +176,16 @@
Идентификатор = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Идентификатор"); Идентификатор = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Параметры, "Идентификатор");
Если Идентификатор <> Неопределено Тогда Если Идентификатор <> Неопределено Тогда
НоваяИнтеграция = СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор); НоваяИнтеграция = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор)");
Иначе Иначе
НоваяИнтеграция = СистемаВзаимодействия.СоздатьИнтеграцию(); НоваяИнтеграция = Вычислить("СистемаВзаимодействия.СоздатьИнтеграцию()");
КонецЕсли; КонецЕсли;
НоваяИнтеграция.ТипВнешнейСистемы = Параметры.Тип; НоваяИнтеграция.ТипВнешнейСистемы = Параметры.Тип;
НоваяИнтеграция.Представление = Параметры.Ключ; НоваяИнтеграция.Представление = Параметры.Ключ;
НоваяИнтеграция.Ключ = Параметры.Ключ; НоваяИнтеграция.Ключ = Параметры.Ключ;
НоваяИнтеграция.Использование = Истина; НоваяИнтеграция.Использование = Истина;
ОписаниеВнешнейСистемы = СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(Параметры.Тип); ОписаниеВнешнейСистемы = Вычислить("СистемаВзаимодействия.ПолучитьОписаниеВнешнейСистемы(Параметры.Тип)");
НеУказанныеПараметры = Новый Массив; НеУказанныеПараметры = Новый Массив;
Для каждого ПараметрИнтеграции Из ОписаниеВнешнейСистемы.ОписанияПараметров Цикл Для каждого ПараметрИнтеграции Из ОписаниеВнешнейСистемы.ОписанияПараметров Цикл
@@ -215,7 +215,7 @@
Процедура ОтключитьИнтеграцию(Идентификатор) Экспорт Процедура ОтключитьИнтеграцию(Идентификатор) Экспорт
Интеграция = СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор); Интеграция = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Идентификатор)");
Интеграция.Использование = Ложь; Интеграция.Использование = Ложь;
Интеграция.Записать(); Интеграция.Записать();
@@ -23,7 +23,7 @@
Процедура ПоказатьОтключение() Экспорт Процедура ПоказатьОтключение() Экспорт
Если Не ОбсужденияСлужебныйВызовСервера.Подключены() Тогда Если Не ОбсужденияСлужебныйВызовСервера.Подключены() Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Подключение обсуждений не выполнено.'")); ПоказатьПредупреждение(, НСтр("ru = 'Обсуждения уже отключены ранее.'"));
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -101,6 +101,9 @@
КонецПроцедуры КонецПроцедуры
// Обработчик нажатия на кнопку выбора периода в отдельной форме. // Обработчик нажатия на кнопку выбора периода в отдельной форме.
// Если в конфигурации используется собственный диалог выбора периода,
// тогда параметр СтандартнаяОбработка следует установить в Ложь,
// а выбранный период следует вернуть в ОбработчикРезультата.
// //
// Параметры: // Параметры:
// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета. // ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета.
@@ -112,10 +115,6 @@
// Неопределено - пользователь отказался от ввода периода. // Неопределено - пользователь отказался от ввода периода.
// СтандартныйПериод - выбранный период. // СтандартныйПериод - выбранный период.
// //
// Если в конфигурации используется собственный диалог выбора периода,
// тогда параметр СтандартнаяОбработка следует установить в Ложь,
// а выбранный период следует вернуть в ОбработчикРезультата.
//
Процедура ПриНажатииКнопкиВыбораПериода(ФормаОтчета, Период, СтандартнаяОбработка, ОбработчикРезультата) Экспорт Процедура ПриНажатииКнопкиВыбораПериода(ФормаОтчета, Период, СтандартнаяОбработка, ОбработчикРезультата) Экспорт
@@ -874,8 +874,8 @@
// //
Процедура ПриОпределенииПроверок(ГруппыПроверок, Проверки) Экспорт Процедура ПриОпределенииПроверок(ГруппыПроверок, Проверки) Экспорт
ГруппаПроверок = ГруппыПроверок.Найти("КонтактнаяИнформация", "Идентификатор"); ГруппаПроверок = ГруппыПроверок.Найти("КонтактнаяИнформация", "Идентификатор");
Если ГруппаПроверок = Неопределено Тогда Если ГруппаПроверок = Неопределено Тогда
ГруппаПроверок = ГруппыПроверок.Добавить(); ГруппаПроверок = ГруппыПроверок.Добавить();
ГруппаПроверок.Наименование = НСтр("ru = 'Контактная информация'"); ГруппаПроверок.Наименование = НСтр("ru = 'Контактная информация'");
ГруппаПроверок.Идентификатор = "КонтактнаяИнформация"; ГруппаПроверок.Идентификатор = "КонтактнаяИнформация";
@@ -897,6 +897,13 @@
Проверка.КонтекстПроверокВеденияУчета = "_КонтактнаяИнформация"; Проверка.КонтекстПроверокВеденияУчета = "_КонтактнаяИнформация";
Проверка.Отключена = Истина; Проверка.Отключена = Истина;
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Возврат;
КонецЕсли;
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора = МодульАдресныйКлассификаторСлужебный.НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора();
Проверка = Проверки.Добавить(); Проверка = Проверки.Добавить();
Проверка.ИдентификаторГруппы = "КонтактнаяИнформация"; Проверка.ИдентификаторГруппы = "КонтактнаяИнформация";
Проверка.Наименование = НСтр("ru = 'Выявление устаревших адресов контактной информации'"); Проверка.Наименование = НСтр("ru = 'Выявление устаревших адресов контактной информации'");
@@ -917,7 +924,7 @@
Проверка.ИдентификаторГруппы = "КонтактнаяИнформация"; Проверка.ИдентификаторГруппы = "КонтактнаяИнформация";
Проверка.Наименование = НСтр("ru = 'Проверка адресов на соответствие ФИАС.'"); Проверка.Наименование = НСтр("ru = 'Проверка адресов на соответствие ФИАС.'");
Проверка.Причины = НСтр("ru = 'Адрес контактной информации введен некорректно, устарел, был некорректно загружен из других источников или еще не внесен в Федеральную информационную адресную систему.'"); Проверка.Причины = НСтр("ru = 'Адрес контактной информации введен некорректно, устарел, был некорректно загружен из других источников или еще не внесен в Федеральную информационную адресную систему.'");
Проверка.Рекомендация = НСтр("ru = 'В зависимости от ситуации следует выбрать один из вариантов: Рекомендация = НСтр("ru = 'В зависимости от ситуации следует выбрать один из вариантов:
|• Убедиться, что адрес введен корректно, проверив адрес на сайте ФИАС: https://fias.nalog.ru/ExtendedSearch |• Убедиться, что адрес введен корректно, проверив адрес на сайте ФИАС: https://fias.nalog.ru/ExtendedSearch
|О некорректных или неполных адресных сведениях на сайте ФИАС рекомендуется сообщать в органы местного самоуправления или в службу технической поддержки online-сервисов ФНС России. |О некорректных или неполных адресных сведениях на сайте ФИАС рекомендуется сообщать в органы местного самоуправления или в службу технической поддержки online-сервисов ФНС России.
|• Если адрес устарел вследствие переименования, переподчинения или упразднения адресных объектов (улиц, населенных пунктов), то введите актуальный адрес. |• Если адрес устарел вследствие переименования, переподчинения или упразднения адресных объектов (улиц, населенных пунктов), то введите актуальный адрес.
@@ -925,10 +932,12 @@
|Если адресный классификатор загружен в программу, то: |Если адресный классификатор загружен в программу, то:
|• предварительно следует его обновить до последней версии адресных сведений (Раздел Администрирование); |• предварительно следует его обновить до последней версии адресных сведений (Раздел Администрирование);
|• для выявления и автоматического исправления устаревших адресов загрузить историю изменения адресов объектов |• для выявления и автоматического исправления устаревших адресов загрузить историю изменения адресов объектов
|Ссылка для быстрого перехода e1cib/command/РегистрСведений.АдресныеОбъекты.Команда.ЗагрузитьАдресныйКлассификатор |Ссылка для быстрого перехода %1
| |
|Если работа ведется в распределенной информационной базе (РИБ), то исправления следует вносить только в главном узле. |Если работа ведется в распределенной информационной базе (РИБ), то исправления следует вносить только в главном узле.
|Затем выполнить синхронизацию с подчиненными узлами.'"); |Затем выполнить синхронизацию с подчиненными узлами.'");
Проверка.Рекомендация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Рекомендация,
НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора);
Проверка.Идентификатор = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС"; Проверка.Идентификатор = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС";
Проверка.ОбработчикПроверки = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС"; Проверка.ОбработчикПроверки = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС";
@@ -2908,7 +2917,14 @@
Чтение = Новый ЧтениеXML; Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(КлассификаторXML); Чтение.УстановитьСтроку(КлассификаторXML);
Возврат СериализаторXDTO.ПрочитатьXML(Чтение); ТаблицаСтран = СериализаторXDTO.ПрочитатьXML(Чтение); // ТаблицаЗначений
// Старые версии классификаторов не содержат колонку МеждународноеНаименование
Если ТаблицаСтран.Колонки.Найти("МеждународноеНаименование") = Неопределено Тогда
ТаблицаСтран.Колонки.Добавить("МеждународноеНаименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
КонецЕсли;
Возврат ТаблицаСтран;
КонецФункции КонецФункции
@@ -1624,7 +1624,7 @@
// //
Функция СоздатьПрисоединенныйФайлНаОснованииФайла(ВладелецФайлов, МенеджерПрисоединенныхФайлов, ТекущаяВерсияОбъект, ФайлИсточникОбъект) Функция СоздатьПрисоединенныйФайлНаОснованииФайла(ВладелецФайлов, МенеджерПрисоединенныхФайлов, ТекущаяВерсияОбъект, ФайлИсточникОбъект)
СсылкаНового = МенеджерПрисоединенныхФайлов.ПолучитьСсылку(); СсылкаНового = МенеджерПрисоединенныхФайлов.ПолучитьСсылку(); // СправочникСсылка
ПрисоединенныйФайл = МенеджерПрисоединенныхФайлов.СоздатьЭлемент(); //ОпределяемыйТип.ПрисоединенныйФайлОбъект ПрисоединенныйФайл = МенеджерПрисоединенныхФайлов.СоздатьЭлемент(); //ОпределяемыйТип.ПрисоединенныйФайлОбъект
ПрисоединенныйФайл.УстановитьСсылкуНового(СсылкаНового); ПрисоединенныйФайл.УстановитьСсылкуНового(СсылкаНового);
@@ -6950,6 +6950,12 @@
// Сравниваем с деревом файлов в системе, синхронизация идет по уникальному идентификатору. // Сравниваем с деревом файлов в системе, синхронизация идет по уникальному идентификатору.
ТаблицаФайлов = ВыбратьДанныеПоПравилам(ПараметрыСинхронизации.УчетнаяЗапись); ТаблицаФайлов = ВыбратьДанныеПоПравилам(ПараметрыСинхронизации.УчетнаяЗапись);
Если ТаблицаФайлов = Неопределено Тогда
ТекстСобытия = НСтр("ru = 'Не удалось получить таблицу файлов из информационной базы, синхронизация не выполнена.'");
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка);
Возврат;
КонецЕсли;
Для каждого СтрокаТаблицы Из ТаблицаФайлов Цикл Для каждого СтрокаТаблицы Из ТаблицаФайлов Цикл
СтрокаТаблицы.UID1C = Строка(СтрокаТаблицы.ФайлСсылка.УникальныйИдентификатор()); СтрокаТаблицы.UID1C = Строка(СтрокаТаблицы.ФайлСсылка.УникальныйИдентификатор());
КонецЦикла; КонецЦикла;
@@ -7369,6 +7375,10 @@
КонецЦикла; КонецЦикла;
Если ТаблицаФайлов = Неопределено Тогда
Возврат ТаблицаФайлов;
КонецЕсли;
ИменаКолонок = Новый Массив; ИменаКолонок = Новый Массив;
Для Каждого Колонка Из ТаблицаФайлов.Колонки Цикл Для Каждого Колонка Из ТаблицаФайлов.Колонки Цикл
Если Колонка.Имя <> "Синхронизировать" Тогда Если Колонка.Имя <> "Синхронизировать" Тогда
@@ -271,7 +271,7 @@
// * ИспользоватьЭлектроннуюПочту - Булево - доставлять отчеты по электронной почте. // * ИспользоватьЭлектроннуюПочту - Булево - доставлять отчеты по электронной почте.
// //
// Обязательные реквизиты когда { ИспользоватьПапку = Истина }: // Обязательные реквизиты когда { ИспользоватьПапку = Истина }:
// * Папка (СправочникСсылка.ПапкиФайлов) Папка подсистемы "Работа с файлами". // * Папка - СправочникСсылка.ПапкиФайлов - папка подсистемы "Работа с файлами".
// //
// Обязательные реквизиты когда { ИспользоватьСетевойКаталог = Истина }: // Обязательные реквизиты когда { ИспользоватьСетевойКаталог = Истина }:
// * СетевойКаталогWindows - Строка - каталог файловой системы (локальный на сервере или сетевой). // * СетевойКаталогWindows - Строка - каталог файловой системы (локальный на сервере или сетевой).
@@ -335,14 +335,14 @@
СтруктураСклонения["Именительный"] = Представление; СтруктураСклонения["Именительный"] = Представление;
Если ПараметрыСклонения.ЭтоФИО Тогда Если ПараметрыСклонения.ЭтоФИО Тогда
ВидПредставленияФИО = ВидПредставленияФИО(); ОписанияСловФИО = Новый Соответствие;
ПреобразоватьФИОДляСклонения(Представление, ВидПредставленияФИО); ПреобразоватьФИОДляСклонения(Представление, ОписанияСловФИО);
КонецЕсли; КонецЕсли;
Для Каждого ИмяПадежа Из ИменаПадежей Цикл Для Каждого ИмяПадежа Из ИменаПадежей Цикл
РезультатСклонения = ПолучитьСклоненияСтроки(Представление, ОписаниеСтроки, "ПД=" + ИмяПадежа)[0]; РезультатСклонения = ПолучитьСклоненияСтроки(Представление, ОписаниеСтроки, "ПД=" + ИмяПадежа)[0];
Если ПараметрыСклонения.ЭтоФИО Тогда Если ПараметрыСклонения.ЭтоФИО Тогда
ВосстановитьФИОПослеСклонения(РезультатСклонения, ВидПредставленияФИО); ВосстановитьФИОПослеСклонения(РезультатСклонения, ОписанияСловФИО);
КонецЕсли; КонецЕсли;
СтруктураСклонения[ИмяПадежа] = РезультатСклонения; СтруктураСклонения[ИмяПадежа] = РезультатСклонения;
КонецЦикла; КонецЦикла;
@@ -717,64 +717,89 @@
КонецПроцедуры КонецПроцедуры
Функция ВидПредставленияФИО() Функция ПредставлениеСлова()
Структура = Новый Структура("ВРег, НРег");
Структура.ВРег = Ложь;
Структура.НРег = Ложь;
Структура = Новый Структура;
Структура.Вставить("ВариантРегистра");
Структура.Вставить("Разделители", "");
Возврат Структура; Возврат Структура;
КонецФункции КонецФункции
Процедура ПреобразоватьФИОДляСклонения(ФИО, ВидПредставления) Функция ВидыРегистраСлова()
Возврат Новый Структура("ВРег, НРег", "ВРег", "НРег");
КонецФункции
ДенормализоватьФИО = Ложь; Функция ВидРегистраСлова(Слово)
Если ФИО = ВРег(ФИО) Тогда Если Слово = ВРег(Слово) Тогда
ДенормализоватьФИО = Истина; Возврат ВидыРегистраСлова().ВРег;
ВидПредставления.ВРег = Истина; ИначеЕсли Слово = НРег(Слово) Тогда
Возврат ВидыРегистраСлова().НРег;
Иначе
Возврат Неопределено;
КонецЕсли; КонецЕсли;
Если ФИО = НРег(ФИО) Тогда
ДенормализоватьФИО = Истина;
ВидПредставления.НРег = Истина;
КонецЕсли;
Если ДенормализоватьФИО Тогда
ФИО = ДенормализованноеФИО(ФИО);
КонецЕсли;
КонецПроцедуры
Процедура ВосстановитьФИОПослеСклонения(ФИО, ВидПредставления)
Если ВидПредставления.ВРег Тогда
ФИО = ВРег(ФИО);
КонецЕсли;
Если ВидПредставления.НРег Тогда
ФИО = НРег(ФИО);
КонецЕсли;
КонецПроцедуры
Функция ДенормализованноеФИО(ФИО)
НовоеФИО = "";
ВстретилсяРазделитель = Истина;
Для Позиция = 1 По СтрДлина(ФИО) Цикл
Если ВстретилсяРазделитель Тогда
НовоеФИО = НовоеФИО + ВРег(Сред(ФИО, Позиция, 1));
Иначе
НовоеФИО = НовоеФИО + НРег(Сред(ФИО, Позиция, 1));
КонецЕсли;
ВстретилсяРазделитель = СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(КодСимвола(ФИО, Позиция));
КонецЦикла;
Возврат НовоеФИО;
КонецФункции КонецФункции
Функция СловоПоВидуРегистра(Слово, ВидРегистра)
Если ВидРегистра = ВидыРегистраСлова().ВРег Тогда
Возврат ВРег(Слово);
ИначеЕсли ВидРегистра = ВидыРегистраСлова().НРег Тогда
Возврат НРег(Слово);
Иначе
Возврат Слово;
КонецЕсли;
КонецФункции
Процедура ПреобразоватьФИОДляСклонения(ФИО, ПредставленияСлов)
ЧастиФИО = Новый Массив;
НачалоСлова = 1;
Для Позиция = 1 По СтрДлина(ФИО) Цикл
КодСимвола = КодСимвола(ФИО, Позиция);
Если СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(КодСимвола) Тогда
Если Позиция <> НачалоСлова Тогда
Слово = Сред(ФИО, НачалоСлова, Позиция - НачалоСлова);
ЧастиФИО.Добавить(ТРег(Слово));
ОписаниеСлова = ПредставлениеСлова();
ОписаниеСлова.ВариантРегистра = ВидРегистраСлова(Слово);
ПредставленияСлов.Вставить(ЧастиФИО.ВГраница(), ОписаниеСлова);
КонецЕсли;
ОписаниеСлова.Разделители = ОписаниеСлова.Разделители + Символ(КодСимвола);
НачалоСлова = Позиция + 1;
КонецЕсли;
КонецЦикла;
Если Позиция <> НачалоСлова Тогда
Слово = Сред(ФИО, НачалоСлова, Позиция - НачалоСлова);
ЧастиФИО.Добавить(ТРег(Слово));
ОписаниеСлова = ПредставлениеСлова();
ОписаниеСлова.ВариантРегистра = ВидРегистраСлова(Слово);
ПредставленияСлов.Вставить(ЧастиФИО.ВГраница(), ОписаниеСлова);
КонецЕсли;
ФИО = СтрСоединить(ЧастиФИО, " ");
КонецПроцедуры
Процедура ВосстановитьФИОПослеСклонения(ФИО, ПредставленияСлов)
ЧастиФИО = СтрРазделить(ФИО, " ");
Индекс= 0;
Пока Индекс < ЧастиФИО.Количество() Цикл
ОписаниеСлова = ПредставленияСлов[Индекс];
Если ОписаниеСлова <> Неопределено Тогда
ЧастиФИО[Индекс] = СловоПоВидуРегистра(ЧастиФИО[Индекс], ОписаниеСлова.ВариантРегистра) + ОписаниеСлова.Разделители;
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
ФИО = СтрСоединить(ЧастиФИО);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -578,14 +578,11 @@
СтандартныеРеквизиты = Новый Массив; СтандартныеРеквизиты = Новый Массив;
СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Регистратор")); СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Регистратор"));
Если МетаданныеИсточника.ПланСчетов.МаксКоличествоСубконто Тогда СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетДт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетДт")); СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетКт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетКт")); Если МетаданныеИсточника.ПланСчетов.МаксКоличествоСубконто > 0 Тогда
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоДт")); СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоДт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоКт")); СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоКт"));
Иначе
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Счет"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Субконто"));
КонецЕсли; КонецЕсли;
Возврат СтандартныеРеквизиты; Возврат СтандартныеРеквизиты;
@@ -2452,8 +2452,12 @@
Объект = ОбъектВидаКонтактнойИнформации(Параметры.Имя, Истина); Объект = ОбъектВидаКонтактнойИнформации(Параметры.Имя, Истина);
Объект.ИмяПредопределенногоВида = Параметры.Имя; Объект.ИмяПредопределенногоВида = Параметры.Имя;
Объект.Родитель = Параметры.Группа; Объект.Родитель = Параметры.Группа;
Объект.Используется = Параметры.Используется; Объект.Используется = Параметры.Используется;
Если ПустаяСтрока(Объект.ИмяПредопределенногоВида) Тогда
Объект.ИмяПредопределенногоВида = Объект.ИмяПредопределенныхДанных;
КонецЕсли;
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование); УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
@@ -2558,8 +2562,6 @@
|ВидРедактирования, ОбязательноеЗаполнение, РазрешитьВводНесколькихЗначений, |ВидРедактирования, ОбязательноеЗаполнение, РазрешитьВводНесколькихЗначений,
|ЗапретитьРедактированиеПользователем, Используется, ХранитьИсториюИзменений ,МеждународныйФорматАдреса, ИсправлятьУстаревшиеАдреса"); |ЗапретитьРедактированиеПользователем, Используется, ХранитьИсториюИзменений ,МеждународныйФорматАдреса, ИсправлятьУстаревшиеАдреса");
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
Если ЗначениеЗаполнено(Параметры.Имя) Тогда Если ЗначениеЗаполнено(Параметры.Имя) Тогда
Объект.ИмяПредопределенногоВида = Параметры.Имя; Объект.ИмяПредопределенногоВида = Параметры.Имя;
КонецЕсли; КонецЕсли;
@@ -2568,6 +2570,8 @@
Объект.ИмяПредопределенногоВида = Объект.ИмяПредопределенныхДанных; Объект.ИмяПредопределенногоВида = Объект.ИмяПредопределенныхДанных;
КонецЕсли; КонецЕсли;
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
Если ПустаяСтрока(Объект.Родитель) Тогда Если ПустаяСтрока(Объект.Родитель) Тогда
Объект.Родитель = Параметры.Группа; Объект.Родитель = Параметры.Группа;
КонецЕсли; КонецЕсли;
@@ -524,6 +524,10 @@
ОписаниеЗависимогоРеквизита = Новый Структура; ОписаниеЗависимогоРеквизита = Новый Структура;
ОписаниеЗависимогоРеквизита.Вставить("УсловиеОбязательностиЗаполнения", Неопределено); ОписаниеЗависимогоРеквизита.Вставить("УсловиеОбязательностиЗаполнения", Неопределено);
Для Каждого СтрокаЗависимостей Из ЗависимостиОбязательностиЗаполнения Цикл Для Каждого СтрокаЗависимостей Из ЗависимостиОбязательностиЗаполнения Цикл
Если Наборы.Найти(СтрокаЗависимостей.НаборСвойств) = Неопределено Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(СтрокаЗависимостей.Реквизит) = Тип("Строка") Тогда Если ТипЗнч(СтрокаЗависимостей.Реквизит) = Тип("Строка") Тогда
ПутьКРеквизиту = "Параметры.ОписаниеОбъекта." + СтрокаЗависимостей.Реквизит; ПутьКРеквизиту = "Параметры.ОписаниеОбъекта." + СтрокаЗависимостей.Реквизит;
Иначе Иначе
@@ -126,7 +126,19 @@
| УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения | УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения
| И НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ) | И НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ)
| И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """" | И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """"
| И УчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты <> """""; | И УчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты <> """"
| И ВЫБОР
| КОГДА &РазделениеВключено
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.ДатаПоследнегоИспользования, ДАТАВРЕМЯ(1,1,1)) > &ДатаМесяцНазад
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ";
Запрос.УстановитьПараметр("ДатаМесяцНазад", ДобавитьМесяц(НачалоДня(ТекущаяДатаСеанса()), - 1));
Запрос.УстановитьПараметр("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
@@ -163,6 +175,8 @@
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка) | ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма КАК НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма КАК НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма
| ПО (НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.Письмо = ЭлектронноеПисьмоИсходящее.Ссылка) | ПО (НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.Письмо = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты
| ПО (НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты = УчетныеЗаписиЭлектроннойПочты.Ссылка)
|ГДЕ |ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления | НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """" | И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """"
@@ -180,10 +194,21 @@
| ИНАЧЕ ЭлектронноеПисьмоИсходящее.ДатаАктуальностиОтправки > &ТекущаяДата | ИНАЧЕ ЭлектронноеПисьмоИсходящее.ДатаАктуальностиОтправки > &ТекущаяДата
| КОНЕЦ | КОНЕЦ
| И ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0) < 5 | И ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0) < 5
| И ВЫБОР
| КОГДА &РазделениеВключено
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.ДатаПоследнегоИспользования, ДАТАВРЕМЯ(1,1,1)) > &ДатаМесяцНазад
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|ИТОГИ ПО |ИТОГИ ПО
| УчетнаяЗапись"; | УчетнаяЗапись";
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса()); Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДатаМесяцНазад", ДобавитьМесяц(НачалоДня(ТекущаяДатаСеанса()), - 1));
Запрос.УстановитьПараметр("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
ОтправитьПисьма(Запрос, ВсеПолученныеПисьма, ПисьмаДляОпределенияПапок); ОтправитьПисьма(Запрос, ВсеПолученныеПисьма, ПисьмаДляОпределенияПапок);
@@ -194,12 +219,18 @@
ВыборкаУчетныеЗаписи = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаУчетныеЗаписи = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Пока ВыборкаУчетныеЗаписи.Следующий() Цикл Пока ВыборкаУчетныеЗаписи.Следующий() Цикл
УчетнаяЗапись = ВыборкаУчетныеЗаписи.УчетнаяЗапись; УчетнаяЗапись = ВыборкаУчетныеЗаписи.УчетнаяЗапись;
Если Не ЗаблокироватьУчетнуюЗапись(УчетнаяЗапись) Тогда Если Не ЗаблокироватьУчетнуюЗапись(УчетнаяЗапись) Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Не РазделениеВключено Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
КонецЕсли;
Письма = Новый Массив; Письма = Новый Массив;
СсылкиПисем = Новый Соответствие; СсылкиПисем = Новый Соответствие;
@@ -547,8 +578,14 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
Если РазделениеВключено Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(Выборка.Ссылка);
КонецЕсли;
Получено = 0; Получено = 0;
ПолученныеПисьма = ПолученныеПисьма(); ПолученныеПисьма = ПолученныеПисьма();
@@ -69,16 +69,19 @@
// Параметры: // Параметры:
// ЭлементСписок - ЭлементФормы - элемент формы, который необходимо обновить, после получения писем. // ЭлементСписок - ЭлементФормы - элемент формы, который необходимо обновить, после получения писем.
// //
Процедура ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, Форма, ЭлементСписок = Неопределено) Экспорт Процедура ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, Форма, ЭлементСписок = Неопределено, ВыводитьПрогресс = Истина) Экспорт
ДлительнаяОперация = ВзаимодействияВызовСервера.ОтправитьПолучитьПочтуПользователяВФоне(УникальныйИдентификатор); ДлительнаяОперация = ВзаимодействияВызовСервера.ОтправитьПолучитьПочтуПользователяВФоне(УникальныйИдентификатор);
Если ДлительнаяОперация = Неопределено Тогда Если ДлительнаяОперация = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Форма.ОтправкаПолучениеПисемВыполняется = Истина;
ДополнительныеПараметры = Новый Структура; ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок); ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок);
ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Неопределено); ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Неопределено);
ДополнительныеПараметры.Вставить("Форма", Форма);
Если Форма.Окно <> Неопределено Тогда Если Форма.Окно <> Неопределено Тогда
ДополнительныеПараметры.НавигационнаяСсылка = Форма.Окно.ПолучитьНавигационнуюСсылку(); ДополнительныеПараметры.НавигационнаяСсылка = Форма.Окно.ПолучитьНавигационнуюСсылку();
КонецЕсли; КонецЕсли;
@@ -87,7 +90,11 @@
ОтправитьЗагрузитьПочтуПользователяЗавершение(ДлительнаяОперация, ДополнительныеПараметры); ОтправитьЗагрузитьПочтуПользователяЗавершение(ДлительнаяОперация, ДополнительныеПараметры);
ИначеЕсли ДлительнаяОперация.Статус = "Выполняется" Тогда ИначеЕсли ДлительнаяОперация.Статус = "Выполняется" Тогда
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма); ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина; Если ВыводитьПрогресс Тогда
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
Иначе
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
КонецЕсли;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОтправитьЗагрузитьПочтуПользователяЗавершение", ЭтотОбъект, ДополнительныеПараметры); ОповещениеОЗавершении = Новый ОписаниеОповещения("ОтправитьЗагрузитьПочтуПользователяЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания); ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецЕсли; КонецЕсли;
@@ -106,6 +113,8 @@
// //
Процедура ОтправитьЗагрузитьПочтуПользователяЗавершение(Результат, ДополнительныеПараметры) Экспорт Процедура ОтправитьЗагрузитьПочтуПользователяЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДополнительныеПараметры.Форма.ОтправкаПолучениеПисемВыполняется = Ложь;
Если Результат = Неопределено Тогда Если Результат = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -120,6 +129,8 @@
ДополнительныеПараметры.ЭлементСписок.Обновить(); ДополнительныеПараметры.ЭлементСписок.Обновить();
КонецЕсли; КонецЕсли;
ДополнительныеПараметры.Форма.ДатаПредыдущегоПолученияОтправкиПочты = ОбщегоНазначенияКлиент.ДатаСеанса();
Заголовок = НСтр("ru = 'Отправка и получение почты'"); Заголовок = НСтр("ru = 'Отправка и получение почты'");
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатВыполнения.ЕстьОшибки Тогда Если РезультатВыполнения.ЕстьОшибки Тогда
@@ -226,10 +226,17 @@
Процедура ОбработчикОповещенияФормаСписка(ИмяСобытия, Форма, Список) Экспорт Процедура ОбработчикОповещенияФормаСписка(ИмяСобытия, Форма, Список) Экспорт
Если ИмяСобытия = "ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента" Тогда Если ИмяСобытия = "ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента" Тогда
Форма.ОтключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала"); СтруктураПоиска = Новый Структура;
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала", 0.2, Истина); СтруктураПоиска.Вставить("СписокВыбораСостоянийОригинала", Неопределено);
УчетОригиналовПервичныхДокументовВызовСервера.ЗаполнитьСписокВыбораСостоянийОригинала(Форма.СписокВыбораСостоянийОригинала); ЗаполнитьЗначенияСвойств(СтруктураПоиска, Форма);
Форма.ОбновитьОтображениеДанных(); Если СтруктураПоиска.СписокВыбораСостоянийОригинала<> Неопределено Тогда
Форма.ОтключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала");
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала", 0.2, Истина);
УчетОригиналовПервичныхДокументовВызовСервера.ЗаполнитьСписокВыбораСостоянийОригинала(Форма.СписокВыбораСостоянийОригинала);
Форма.ОбновитьОтображениеДанных();
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ИмяСобытия = "ИзменениеСостоянияОригиналаПервичногоДокумента" Тогда ИначеЕсли ИмяСобытия = "ИзменениеСостоянияОригиналаПервичногоДокумента" Тогда
Список.Обновить(); Список.Обновить();
КонецЕсли; КонецЕсли;
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="05826299-d973-412f-950d-785ca5338f43"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6df8d808-7b91-49e3-9d92-c00b86a5e939">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="96d8de2b-2b19-4c2d-867d-8d9451defa67"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b5508eca-5174-4c13-86b6-53266297f0a6"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6be4e2ac-5b85-48db-8141-176ab141180e"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a042a05f-211b-4ff8-a6c3-dbb9fda9704b"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="44cb9621-dbaf-4a54-b72b-cbebd944fee3"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="51c015f7-de3c-4091-a99a-1df8eeafef81"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f15172f7-beaa-4807-9f4c-35a2e37af66e"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="9a202468-714b-4006-9ac3-c4561ccb8bcb"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="5fe994bb-b1a8-43b1-8d7b-d51de5d9cbe6"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="928dc5e3-9176-4fbf-add6-03fd3c7e4c07"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6b44f7e2-9ef0-459c-be33-a5aa50621201"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1ba54629-5681-44c3-b41c-20983794e47f"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="0b1552ab-be19-45e2-9b86-55efcacf5367"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="9def6189-35ed-4646-84e6-ca468c9d2661"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.3.203</version> <version>3.1.3.216</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,aec86db5-a5d4-4636-9854-700375748372,1,8b495a81-17af-45e6-806c-8d61f42a403c,"3.1.3.203","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6171,1,0,05826299-d973-412f-950d-785ca5338f43,05826299-d973-412f-950d-785ca5338f43,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated {6,1,1,c54aba57-4d74-4e2a-b267-7aaa81dd22cd,1,af2e1438-9fd4-4d12-ad02-69dc2a933a82,"3.1.3.216","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6172,1,0,6df8d808-7b91-49e3-9d92-c00b86a5e939,6df8d808-7b91-49e3-9d92-c00b86a5e939,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -3,6 +3,134 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ВыполнениеОбменаДанными</name> <name>ВыполнениеОбменаДанными</name>
<id>1</id> <id>1</id>
<items xsi:type="form:FormGroup">
<name>ОжиданиеЗапускаСинхронизации</name>
<id>192</id>
<items xsi:type="form:FormGroup">
<name>Группа1</name>
<id>200</id>
<items xsi:type="form:Decoration">
<name>ДлительнаяОперация1</name>
<id>194</id>
<title>
<key>ru</key>
<value>Длительная операция</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДлительнаяОперация1РасширеннаяПодсказка</name>
<id>196</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДлительнаяОперация1КонтекстноеМеню</name>
<id>195</id>
<autoFill>true</autoFill>
</contextMenu>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.СинхронизацияДанныхДлительнаяОперация48</picture>
</picture>
</extInfo>
</items>
<items xsi:type="form:Decoration">
<name>СтатусОжиданияЗапускаСинхронизации</name>
<id>197</id>
<title>
<key>ru</key>
<value>Ожидается возможность запуска синхронизации данных.
Пожалуйста, подождите...</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>СтатусОжиданияЗапускаСинхронизацииРасширеннаяПодсказка</name>
<id>199</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СтатусОжиданияЗапускаСинхронизацииКонтекстноеМеню</name>
<id>198</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<height>3</height>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<verticalAlign>Center</verticalAlign>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>Группа1РасширеннаяПодсказка</name>
<id>201</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group>
<behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Ожидание запуска синхронизации</value>
</title>
<extendedTooltip>
<name>ОжиданиеЗапускаСинхронизацииРасширеннаяПодсказка</name>
<id>193</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Page</type>
<extInfo xsi:type="form:PageGroupExtInfo">
<group>Vertical</group>
<showTitle>auto</showTitle>
<scrollOnCompress>false</scrollOnCompress>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ЗапросПароляПользователя</name> <name>ЗапросПароляПользователя</name>
<id>53</id> <id>53</id>
@@ -2861,6 +2989,19 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>БлокировкаУзлаУстановлена</name>
<id>47</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>ПерейтиВЖурналРегистрации</name> <name>ПерейтиВЖурналРегистрации</name>
<title> <title>
@@ -116,6 +116,8 @@
ЗаполнитьТаблицуПереходов(); ЗаполнитьТаблицуПереходов();
ПроверитьВозможностьЗапускаОбмена(УзелИнформационнойБазы, БлокировкаУзлаУстановлена);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -713,12 +715,48 @@
КонецФункции КонецФункции
&НаСервереБезКонтекста
Процедура ПроверитьВозможностьЗапускаОбмена(УзелОбмена, БлокировкаУстановлена)
Отказ = Ложь;
ОбменДаннымиСервер.ПроверитьВозможностьЗапускаОбмена(УзелОбмена, Отказ);
БлокировкаУстановлена = Не Отказ;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВозможностьЗапускаОбменаОбработкаОжидания()
ПроверитьВозможностьЗапускаОбмена(УзелИнформационнойБазы, БлокировкаУзлаУстановлена);
Если БлокировкаУзлаУстановлена Тогда
ИзменитьПорядковыйНомерПерехода(+1);
Иначе
ПодключитьОбработчикОжидания("ПроверитьВозможностьЗапускаОбменаОбработкаОжидания", 15, Истина);
КонецЕсли;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// РАЗДЕЛ ОБРАБОТЧИКОВ СОБЫТИЙ ПЕРЕХОДОВ // РАЗДЕЛ ОБРАБОТЧИКОВ СОБЫТИЙ ПЕРЕХОДОВ
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Общие страницы обмена // Общие страницы обмена
&НаКлиенте
Функция Подключаемый_ОжиданиеЗапускаСинхронизации_ОбработкаДлительнойОперации(Отказ, ПерейтиДалее)
Если Не БлокировкаУзлаУстановлена Тогда
ПерейтиДалее = Ложь;
ПодключитьОбработчикОжидания("ПроверитьВозможностьЗапускаОбменаОбработкаОжидания", 15, Истина);
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаКлиенте &НаКлиенте
Функция Подключаемый_ЗагрузкаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее) Функция Подключаемый_ЗагрузкаДанных_ПриОткрытии(Отказ, ПропуститьСтраницу, ЭтоПереходДалее)
@@ -1396,6 +1434,8 @@
ТаблицаПереходов.Очистить(); ТаблицаПереходов.Очистить();
ТаблицаПереходовНоваяСтрока("ОжиданиеЗапускаСинхронизации", "", Истина, "ОжиданиеЗапускаСинхронизации_ОбработкаДлительнойОперации");
// Инициализируем текущий сценарий работы обмена. // Инициализируем текущий сценарий работы обмена.
Если ЕстьОшибки Тогда Если ЕстьОшибки Тогда
@@ -31,23 +31,29 @@
ПараметрыОбмена.ПараметрыАутентификации = ПараметрыЗадания.ПараметрыАутентификации; ПараметрыОбмена.ПараметрыАутентификации = ПараметрыЗадания.ПараметрыАутентификации;
КонецЕсли; КонецЕсли;
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы( ОбменДаннымиСервер.ПроверитьВозможностьЗапускаОбмена(ПараметрыЗадания.УзелИнформационнойБазы, ПараметрыЗадания.Отказ);
ПараметрыЗадания.УзелИнформационнойБазы,
ПараметрыОбмена,
ПараметрыЗадания.Отказ);
Если ПараметрыЗадания.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS Тогда Если Не ПараметрыЗадания.Отказ Тогда
ПараметрыЗадания.ДлительнаяОперация = ПараметрыОбмена.ДлительнаяОперация; ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
ПараметрыЗадания.ИдентификаторДлительнойОперации = ПараметрыОбмена.ИдентификаторОперации; ПараметрыЗадания.УзелИнформационнойБазы,
ПараметрыЗадания.ПараметрыАутентификации = ПараметрыОбмена.ПараметрыАутентификации; ПараметрыОбмена,
ПараметрыЗадания.Отказ);
Если ПараметрыЗадания.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS Тогда
ПараметрыЗадания.ДлительнаяОперация = ПараметрыОбмена.ДлительнаяОперация;
ПараметрыЗадания.ИдентификаторДлительнойОперации = ПараметрыОбмена.ИдентификаторОперации;
ПараметрыЗадания.ПараметрыАутентификации = ПараметрыОбмена.ПараметрыАутентификации;
Если ЗначениеЗаполнено(ПараметрыЗадания.ИдентификаторДлительнойОперации) Тогда
// Если задание выполняется на корреспонденте, то необходимо будет загрузить полученный файл в базу позднее.
ПараметрыЗадания.ИдентификаторФайлаСообщенияВСервисе = ПараметрыОбмена.ИдентификаторФайла;
Иначе
// Файл с данными уже получен и загружен в базу, загружать его дополнительно нет необходимости.
ПараметрыЗадания.ИдентификаторФайлаСообщенияВСервисе = "";
КонецЕсли;
Если ЗначениеЗаполнено(ПараметрыЗадания.ИдентификаторДлительнойОперации) Тогда
// Если задание выполняется на корреспонденте, то необходимо будет загрузить полученный файл в базу позднее.
ПараметрыЗадания.ИдентификаторФайлаСообщенияВСервисе = ПараметрыОбмена.ИдентификаторФайла;
Иначе
// Файл с данными уже получен и загружен в базу, загружать его дополнительно нет необходимости.
ПараметрыЗадания.ИдентификаторФайлаСообщенияВСервисе = "";
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -186,6 +186,10 @@
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления</segments> <segments>Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления</segments>
</dataPath> </dataPath>
<handlers>
<event>OnChange</event>
<name>ПроцедураЗаполненияДанныхОбновленияПриИзменении</name>
</handlers>
<extendedTooltip> <extendedTooltip>
<name>ПроцедураЗаполненияДанныхОбновленияРасширеннаяПодсказка</name> <name>ПроцедураЗаполненияДанныхОбновленияРасширеннаяПодсказка</name>
<id>32</id> <id>32</id>
@@ -4964,6 +4968,35 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ОбщиеМодули</name>
<id>19</id>
<valueType>
<types>ValueTable</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<columns>
<name>Имя</name>
<id>1</id>
<valueType>
<types>String</types>
<stringQualifiers>
<length>500</length>
</stringQualifiers>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</columns>
</attributes>
<formCommands> <formCommands>
<name>ЗаписатьИЗакрыть</name> <name>ЗаписатьИЗакрыть</name>
<title> <title>
@@ -5040,7 +5073,7 @@
<id>4</id> <id>4</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Заполнить Кофликтующий</value> <value>Заполнить Конфликтующий</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
@@ -46,7 +46,7 @@
Заголовок = ПроцедураОбработки; Заголовок = ПроцедураОбработки;
АвтоЗаголовок = Ложь; АвтоЗаголовок = Ложь;
КонецЕсли; КонецЕсли;
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло); ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло, МножественноеЧисло);
Элементы.Обработчик1.РасширеннаяПодсказка.Заголовок = Объект.ОбработчикиОбновления[0].Комментарий; Элементы.Обработчик1.РасширеннаяПодсказка.Заголовок = Объект.ОбработчикиОбновления[0].Комментарий;
СодержитОбъектМетаданных = Новый Структура("ЧитаемыеОбъекты,ИзменяемыеОбъекты,БлокируемыеОбъекты"); СодержитОбъектМетаданных = Новый Структура("ЧитаемыеОбъекты,ИзменяемыеОбъекты,БлокируемыеОбъекты");
@@ -90,6 +90,8 @@
УстановитьОтметкуНезаполненногоМонопольногоОбработчика(); УстановитьОтметкуНезаполненногоМонопольногоОбработчика();
УстановитьОтметкуНезаполненногоПроцедураПроверки(); УстановитьОтметкуНезаполненногоПроцедураПроверки();
ЗаполнитьОбщиеМодули();
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -187,11 +189,19 @@
&НаКлиенте &НаКлиенте
Процедура ПроцедураПриИзменении(Элемент) Процедура ПроцедураПриИзменении(Элемент)
ПроцедураОбработки = Объект.ОбработчикиОбновления[0].Процедура; Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].Процедура) Тогда
Если НЕ ПустаяСтрока(ПроцедураОбработки) Тогда
Заголовок = ПроцедураОбработки;
АвтоЗаголовок = Ложь; АвтоЗаголовок = Ложь;
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(ПроцедураОбработки, ЕдинственноеЧисло); ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло, МножественноеЧисло);
Заголовок = Объект.ОбработчикиОбновления[0].Процедура;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроцедураЗаполненияДанныхОбновленияПриИзменении(Элемент)
Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления) Тогда
ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления, ЕдинственноеЧисло, МножественноеЧисло);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -200,6 +210,9 @@
Процедура ПроцедураПроверкиПриИзменении(Элемент) Процедура ПроцедураПроверкиПриИзменении(Элемент)
Элементы.ПроцедураПроверки.ОтметкаНезаполненного = Не ЗначениеЗаполнено(Объект.ОбработчикиОбновления[0].ПроцедураПроверки); Элементы.ПроцедураПроверки.ОтметкаНезаполненного = Не ЗначениеЗаполнено(Объект.ОбработчикиОбновления[0].ПроцедураПроверки);
Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].ПроцедураПроверки) Тогда
ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].ПроцедураПроверки, ЕдинственноеЧисло, МножественноеЧисло);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -606,15 +619,28 @@
КонецПроцедуры КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста &НаКлиентеНаСервереБезКонтекста
Функция ИмяОсновногоОбъектаМетаданных(ИмяПроцедуры, ЕдинственноеЧисло) Функция ИмяОсновногоОбъектаМетаданных(ИмяПроцедуры, ЕдинственноеЧисло, МножественноеЧисло)
ЧастиИмени = СтрРазделить(ИмяПроцедуры, "."); ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
ПолноеИмяОбъекта = ""; ПолноеИмяОбъекта = "";
Если ЧастиИмени.Количество() = 2 Тогда Если ЧастиИмени.Количество() = 2 Тогда
ПолноеИмяОбъекта = "ОбщийМодуль." + ЧастиИмени[0]; ПолноеИмяОбъекта = "ОбщийМодуль." + ЧастиИмени[0];
ИначеЕсли ЧастиИмени.Количество() = 3 Тогда ИначеЕсли ЧастиИмени.Количество() = 3 Тогда
Попытка
ЧастиИмени[0] = ЕдинственноеЧисло[ЧастиИмени[0]];
Исключение
#Если Клиент Тогда
КодОсновногоЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка();
#КонецЕсли
#Если Сервер Тогда
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
#КонецЕсли
ТекстСообщения = НСтр("ru = 'Не удалось распознать вид объекта метаданных ""%1""
|Вид объекта должен быть во множественном числе.'", КодОсновногоЯзыка);
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, ЧастиИмени[0]);
ВызватьИсключение ТекстСообщения;
КонецПопытки;
ЧастиИмени.Удалить(ЧастиИмени.ВГраница()); ЧастиИмени.Удалить(ЧастиИмени.ВГраница());
ЧастиИмени[0] = ЕдинственноеЧисло[ЧастиИмени[0]];
ПолноеИмяОбъекта = СтрСоединить(ЧастиИмени, "."); ПолноеИмяОбъекта = СтрСоединить(ЧастиИмени, ".");
КонецЕсли; КонецЕсли;
Возврат ПолноеИмяОбъекта; Возврат ПолноеИмяОбъекта;
@@ -694,7 +720,11 @@
Если ЗначениеЗаполнено(ПредставлениеОбъекта.ОбъектМетаданных) Тогда Если ЗначениеЗаполнено(ПредставлениеОбъекта.ОбъектМетаданных) Тогда
ЧастиИмени = СтрРазделить(ПредставлениеОбъекта.ОбъектМетаданных, "."); ЧастиИмени = СтрРазделить(ПредставлениеОбъекта.ОбъектМетаданных, ".");
Если ЧастиИмени.Количество() > 0 Тогда Если ЧастиИмени.Количество() > 0 Тогда
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]]; Если ЧастиИмени[0] = "ОбщийМодуль" Тогда
ЧастиИмени.Удалить(0);
Иначе
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]];
КонецЕсли;
ИмяОбъекта = СтрСоединить(ЧастиИмени, "."); ИмяОбъекта = СтрСоединить(ЧастиИмени, ".");
ОбновитьИмяПроцедуры("Процедура", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ОбработатьДанныеДляПереходаНаНовуюВерсию"); ОбновитьИмяПроцедуры("Процедура", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ОбработатьДанныеДляПереходаНаНовуюВерсию");
ОбновитьИмяПроцедуры("ПроцедураЗаполненияДанныхОбновления", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию"); ОбновитьИмяПроцедуры("ПроцедураЗаполненияДанныхОбновления", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию");
@@ -717,7 +747,11 @@
ИначеЕсли НЕ ПустаяСтрока(ПредыдущееИмяОбъекта) Тогда ИначеЕсли НЕ ПустаяСтрока(ПредыдущееИмяОбъекта) Тогда
ЧастиИмени = СтрРазделить(ПредыдущееИмяОбъекта, "."); ЧастиИмени = СтрРазделить(ПредыдущееИмяОбъекта, ".");
Если ЧастиИмени.Количество() > 0 Тогда Если ЧастиИмени.Количество() > 0 Тогда
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]]; Если ЧастиИмени[0] = "ОбщийМодуль" Тогда
ЧастиИмени.Удалить(0);
Иначе
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]];
КонецЕсли;
ПредыдущееИмяОбъекта = СтрСоединить(ЧастиИмени, "."); ПредыдущееИмяОбъекта = СтрСоединить(ЧастиИмени, ".");
КонецЕсли; КонецЕсли;
@@ -796,7 +830,7 @@
&НаСервере &НаСервере
Процедура ЗагрузитьПриоритетыОбработчика(НовыеПриоритеты) Процедура ЗагрузитьПриоритетыОбработчика(НовыеПриоритеты)
ИмяОсновногоОбъекта = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло); ИмяОсновногоОбъекта = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло, МножественноеЧисло);
Объект.ПриоритетыВыполнения.Очистить(); Объект.ПриоритетыВыполнения.Очистить();
Для Каждого Приоритет Из НовыеПриоритеты Цикл Для Каждого Приоритет Из НовыеПриоритеты Цикл
НоваяСтрока = Объект.ПриоритетыВыполнения.Добавить(); НоваяСтрока = Объект.ПриоритетыВыполнения.Добавить();
@@ -935,7 +969,7 @@
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ВключатьОбщиеМодули = Истина; ВключатьОбщиеМодули = Истина;
ОбъектыМетаданных = НайтиОбъектыМетаданных(Текст, ВключатьОбщиеМодули); ОбъектыМетаданных = НайтиОбъектыМетаданных(Текст, ВключатьОбщиеМодули, ОбщиеМодули);
ДанныеВыбора = Новый СписокЗначений; ДанныеВыбора = Новый СписокЗначений;
ДанныеВыбора.ЗагрузитьЗначения(ОбъектыМетаданных); ДанныеВыбора.ЗагрузитьЗначения(ОбъектыМетаданных);
@@ -943,11 +977,13 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция НайтиОбъектыМетаданных(ЧастьИмени, ВключатьОбщиеМодули) Функция НайтиОбъектыМетаданных(ЧастьИмени, ВключатьОбщиеМодули, Знач ВсеОбщиеМодули)
ТекстЗапроса = ТекстЗапросаИдентификаторовОбъектовМетаданных(); ТекстЗапроса = ТекстЗапросаИдентификаторовОбъектовМетаданных();
Запрос = Новый Запрос(ТекстЗапроса); Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ОбщиеМодули", ВсеОбщиеМодули.Выгрузить());
Запрос.УстановитьПараметр("ВключатьОбщиеМодули", ВключатьОбщиеМодули);
Запрос.УстановитьПараметр("ЧастьИмени", "%"+ЧастьИмени+"%"); Запрос.УстановитьПараметр("ЧастьИмени", "%"+ЧастьИмени+"%");
Запрос.УстановитьПараметр("МассивКлассов", ДоступныеКлассыОбъектовМетаданных(ВключатьОбщиеМодули)); Запрос.УстановитьПараметр("МассивКлассов", ДоступныеКлассыОбъектовМетаданных(ВключатьОбщиеМодули));
ОбъектыМетаданных = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"); ОбъектыМетаданных = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
@@ -960,7 +996,17 @@
Функция ТекстЗапросаИдентификаторовОбъектовМетаданных() Функция ТекстЗапросаИдентификаторовОбъектовМетаданных()
Возврат Возврат
"ВЫБРАТЬ ПЕРВЫЕ 50 "ВЫБРАТЬ
| Т.Имя КАК Имя
|ПОМЕСТИТЬ ОбщиеМодули
|ИЗ
| &ОбщиеМодули КАК Т
|ГДЕ
| &ВключатьОбщиеМодули
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ 50
| ОбъектыМетаданных.ПолноеИмя КАК Ссылка | ОбъектыМетаданных.ПолноеИмя КАК Ссылка
|ИЗ |ИЗ
| Справочник.ИдентификаторыОбъектовМетаданных КАК ОбъектыМетаданных | Справочник.ИдентификаторыОбъектовМетаданных КАК ОбъектыМетаданных
@@ -968,9 +1014,18 @@
| НЕ ОбъектыМетаданных.ПометкаУдаления | НЕ ОбъектыМетаданных.ПометкаУдаления
| И ОбъектыМетаданных.ПолноеИмя ПОДОБНО &ЧастьИмени | И ОбъектыМетаданных.ПолноеИмя ПОДОБНО &ЧастьИмени
| |
| И ОбъектыМетаданных.Родитель.Имя В (&МассивКлассов) | И ОбъектыМетаданных.Родитель.Имя В(&МассивКлассов)
| И НЕ ОбъектыМетаданных.Родитель.ПометкаУдаления | И НЕ ОбъектыМетаданных.Родитель.ПометкаУдаления
| |
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ ПЕРВЫЕ 50
| ОбщиеМодули.Имя
|ИЗ
| ОбщиеМодули КАК ОбщиеМодули
|ГДЕ
| ОбщиеМодули.Имя ПОДОБНО &ЧастьИмени
|
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Ссылка"; | Ссылка";
@@ -1010,12 +1065,12 @@
Если ПустаяСтрока(ИмяОбъекта) Тогда Если ПустаяСтрока(ИмяОбъекта) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Реквизиты = РеквизитыОбъектаМетаданных(ИмяОбъекта);
Имена = СтрРазделить(ИмяОбъекта, "."); Имена = СтрРазделить(ИмяОбъекта, ".");
Имена[0] = МножественноеЧисло[Имена[0]]; Имена[0] = МножественноеЧисло[Имена[0]];
ИмяОбъекта = СтрСоединить(Имена, "."); ИмяОбъекта = СтрСоединить(Имена, ".");
Реквизиты = РеквизитыОбъектаМетаданных(ИмяОбъекта);
ДополнительныеПараметры = Новый Структура("ИмяТаблицы, ИмяОбъекта", ИмяТаблицы, ИмяОбъекта); ДополнительныеПараметры = Новый Структура("ИмяТаблицы, ИмяОбъекта", ИмяТаблицы, ИмяОбъекта);
ОбработчикВыбора = Новый ОписаниеОповещения("ЗавершениеВыбораОбъектаМетаданных", ЭтотОбъект, ДополнительныеПараметры); ОбработчикВыбора = Новый ОписаниеОповещения("ЗавершениеВыбораОбъектаМетаданных", ЭтотОбъект, ДополнительныеПараметры);
Реквизиты.ПоказатьВыборЭлемента(ОбработчикВыбора, НСтр("ru = 'Выберите реквизит объекта'")); Реквизиты.ПоказатьВыборЭлемента(ОбработчикВыбора, НСтр("ru = 'Выберите реквизит объекта'"));
@@ -1041,6 +1096,12 @@
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта); МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ИмяОбъекта);
ПолноеИмяОбъекта = МетаданныеОбъекта.ПолноеИмя(); ПолноеИмяОбъекта = МетаданныеОбъекта.ПолноеИмя();
ЕщеРеквизитыОбъекта = Новый Структура("СтандартныеРеквизиты, Измерения, Ресурсы, Реквизиты"); ЕщеРеквизитыОбъекта = Новый Структура("СтандартныеРеквизиты, Измерения, Ресурсы, Реквизиты");
ЕдЧ = Новый Соответствие;
ЕдЧ.Вставить("СтандартныеРеквизиты", "СтандартныйРеквизит");
ЕдЧ.Вставить("Измерения", "Измерение");
ЕдЧ.Вставить("Ресурсы", "Ресурс");
ЕдЧ.Вставить("Реквизиты", "Реквизит");
ЗаполнитьЗначенияСвойств(ЕщеРеквизитыОбъекта, МетаданныеОбъекта); ЗаполнитьЗначенияСвойств(ЕщеРеквизитыОбъекта, МетаданныеОбъекта);
Для Каждого Коллекция Из ЕщеРеквизитыОбъекта Цикл Для Каждого Коллекция Из ЕщеРеквизитыОбъекта Цикл
@@ -1049,7 +1110,7 @@
КонецЕсли; КонецЕсли;
Для Каждого Реквизит Из Коллекция.Значение Цикл Для Каждого Реквизит Из Коллекция.Значение Цикл
ПолноеИмяРеквизита = ПолноеИмяОбъекта + "." + Коллекция.Ключ; ПолноеИмяРеквизита = ПолноеИмяОбъекта + "." + ЕдЧ[Коллекция.Ключ];
// переберем типы реквизита // переберем типы реквизита
Для Каждого Тип Из Реквизит.Тип.Типы() Цикл Для Каждого Тип Из Реквизит.Тип.Типы() Цикл
// если есть хоть один ссылочный // если есть хоть один ссылочный
@@ -1070,9 +1131,7 @@
&НаСервере &НаСервере
Процедура ДобавитьТипыРеквизитаВТаблицу(ИмяТаблицы, ПолноеИмяРеквизита) Процедура ДобавитьТипыРеквизитаВТаблицу(ИмяТаблицы, ПолноеИмяРеквизита)
ИменаРеквизита = СтрРазделить(ПолноеИмяРеквизита, "."); Реквизит = Метаданные.НайтиПоПолномуИмени(ПолноеИмяРеквизита);
ИменаРеквизита[0] = МножественноеЧисло[ИменаРеквизита[0]];
Реквизит = Метаданные.НайтиПоПолномуИмени(СтрСоединить(ИменаРеквизита, "."));
Для Каждого Тип Из Реквизит.Тип.Типы() Цикл Для Каждого Тип Из Реквизит.Тип.Типы() Цикл
ИмяОбъекта = СтрЗаменить(ОбщегоНазначения.СтроковоеПредставлениеТипа(Тип),"Ссылка",""); ИмяОбъекта = СтрЗаменить(ОбщегоНазначения.СтроковоеПредставлениеТипа(Тип),"Ссылка","");
ТабличнаяЧасть = Объект[ИмяТаблицы]; // ТабличнаяЧасть - ТабличнаяЧасть = Объект[ИмяТаблицы]; // ТабличнаяЧасть -
@@ -1209,4 +1268,16 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ЗаполнитьОбщиеМодули()
Таблица = РеквизитФормыВЗначение("ОбщиеМодули");
Для Каждого Модуль Из Метаданные.ОбщиеМодули Цикл
НоваяСтрока = Таблица.Добавить();
НоваяСтрока.Имя = Модуль.ПолноеИмя();
КонецЦикла;
ЗначениеВРеквизитФормы(Таблица, "ОбщиеМодули");
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -6,6 +6,13 @@
// https://creativecommons.org/licenses/by/4.0/legalcode // https://creativecommons.org/licenses/by/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОписаниеПеременных
&НаКлиенте
Перем ПростойЗаголовокПроцедурыОписания;
#КонецОбласти
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
&НаСервере &НаСервере
@@ -716,6 +723,7 @@
Процедура ЗаписатьДанныеНаДиск(ВсеОбработчики = Ложь) Процедура ЗаписатьДанныеНаДиск(ВсеОбработчики = Ложь)
ОчиститьСообщения(); ОчиститьСообщения();
ПростойЗаголовокПроцедурыОписания = "Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт";
ПараметрыГенерацииКода = НовыеПараметрыГенерацииКода(); ПараметрыГенерацииКода = НовыеПараметрыГенерацииКода();
ПараметрыГенерацииКода.ТолькоИзмененные = НЕ ВсеОбработчики; ПараметрыГенерацииКода.ТолькоИзмененные = НЕ ВсеОбработчики;
ТекстыМодулей = ПолучитьТекстыМодулей(ПараметрыГенерацииКода); ТекстыМодулей = ПолучитьТекстыМодулей(ПараметрыГенерацииКода);
@@ -766,26 +774,35 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
ЕстьПроцедураОписания = Ложь; ЕстьПроцедураОписания = СтрокиМодуля.Найти(ПростойЗаголовокПроцедурыОписания) <> Неопределено
ИЛИ СтрокиМодуля.Найти("Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт") <> Неопределено;
ЕстьБиблиотечнаяПроцедураОписания = Ложь;
Если Код.ЭтоПроцедураОписания Тогда Если Код.ЭтоПроцедураОписания Тогда
Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки); ШаблонЗаголовка = "Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт";
Если СтрокиМодуля.Найти(ЗаголовокПроцедуры) <> Неопределено Тогда НайденныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ИмяБиблиотеки);
ЕстьПроцедураОписания = Истина; Если СтрокиМодуля.Найти(НайденныйЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьБиблиотечнаяПроцедураОписания = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки); // "Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт"
Если СтрокиМодуля.Найти(ЗаголовокПроцедуры) <> Неопределено Тогда ШаблонЗаголовка = СтрЗаменить(ПростойЗаголовокПроцедурыОписания, "(", "%1(");
ЕстьПроцедураОписания = Истина; НайденныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ИмяБиблиотеки);
Если СтрокиМодуля.Найти(НайденныйЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьБиблиотечнаяПроцедураОписания = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
ЕстьПереданнаяПроцедура = СтрокиМодуля.Найти(Код.ЗаголовокПроцедуры) <> Неопределено;
ПереданаПростаяПроцедура = Код.ЗаголовокПроцедуры = ПростойЗаголовокПроцедурыОписания;
// Если процедура уже есть - уходим // Если процедура уже есть - уходим
Если СтрокиМодуля.Найти(Код.ЗаголовокПроцедуры) <> Неопределено Если ЕстьПереданнаяПроцедура
ИЛИ СтрокиМодуля.Найти("Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт") <> Неопределено ИЛИ ЕстьПроцедураОписания
ИЛИ ЕстьПроцедураОписания Тогда ИЛИ ЕстьБиблиотечнаяПроцедураОписания И ПереданаПростаяПроцедура Тогда
Возврат ДобавленаПроцедура; Возврат ДобавленаПроцедура;
КонецЕсли; КонецЕсли;
@@ -903,15 +920,13 @@
НовыйМодуль = Новый ТекстовыйДокумент; НовыйМодуль = Новый ТекстовыйДокумент;
НовыйТекстПроцедуры = СтрРазделить(Код.ТекстПроцедуры, Символы.ПС); НовыйТекстПроцедуры = СтрРазделить(Код.ТекстПроцедуры, Символы.ПС);
ЗаголовокПроцедуры = НовыйТекстПроцедуры[0];
ОкончаниеПроцедуры = НовыйТекстПроцедуры[НовыйТекстПроцедуры.ВГраница()]; ОкончаниеПроцедуры = НовыйТекстПроцедуры[НовыйТекстПроцедуры.ВГраница()];
УстановитьВерсию = ЗначениеЗаполнено(Код.Версия); УстановитьВерсию = ЗначениеЗаполнено(Код.Версия);
ВыполненаЗамена = Ложь; ВыполненаЗамена = Ложь;
УстановленаВерсия = Ложь; УстановленаВерсия = Ложь;
ЭтоТекстЗаменяемойПроцедуры = Ложь; ЭтоМодульОбновления = СтрНачинаетсяС(Код.ИмяМодуля, "ОбновлениеИнформационнойБазы");
ЭтоПроцедураВерсии = Ложь;
#Если НЕ ВебКлиент Тогда #Если НЕ ВебКлиент Тогда
Модуль = Новый ЧтениеТекста; Модуль = Новый ЧтениеТекста;
Модуль.Открыть(ПолноеИмяФайла, "UTF-8"); Модуль.Открыть(ПолноеИмяФайла, "UTF-8");
@@ -943,7 +958,7 @@
#КонецОбласти #КонецОбласти
#Область ЗаменитьКомментарий #Область ЗаменитьКомментарий
// АПК:1297-выкл строки для вставки в описание процедур. // АПК:1297-выкл комментарий в коде конфигурации
Если Код.ЭтоПроцедураОписания Если Код.ЭтоПроцедураОписания
И СтрНайти(СтрокаМодуля, "--// Добавляет в список процедуры-обработчики обновления данных ИБ") > 0 Тогда И СтрНайти(СтрокаМодуля, "--// Добавляет в список процедуры-обработчики обновления данных ИБ") > 0 Тогда
СтрокаМодуля = ПропуститьСтрокиДо(Модуль, "Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления"); СтрокаМодуля = ПропуститьСтрокиДо(Модуль, "Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления");
@@ -956,30 +971,36 @@
#КонецОбласти #КонецОбласти
#Область ПриДобавленииОбработчиковОбновления #Область ПриДобавленииОбработчиковОбновления
ЭтоПроцедураОписания = Ложь; ЭтоБиблиотечнаяПроцедураОписания = Ложь;
БиблиотечныйЗаголовокПроцедуры = Код.ЗаголовокПроцедуры;
Если НЕ ВыполненаЗамена Если НЕ ВыполненаЗамена
И Код.ЭтоПроцедураОписания И Код.ЭтоПроцедураОписания
И (СтрНайти(СтрокаМодуля, "Процедура ОписаниеОбработчиковОбновления") > 0 И (СтрНайти(СтрокаМодуля, "Процедура ОписаниеОбработчиковОбновления") > 0
ИЛИ СтрНайти(СтрокаМодуля, "Процедура ПриДобавленииОбработчиковОбновления") > 0) ИЛИ СтрНайти(СтрокаМодуля, "Процедура ПриДобавленииОбработчиковОбновления") > 0)
И СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) = 0 Тогда И СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) = 0 Тогда
Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки); БиблиотечныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) > 0 Тогда Если СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) > 0 Тогда
ЭтоПроцедураОписания = Истина; ЭтоБиблиотечнаяПроцедураОписания = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки); БиблиотечныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) > 0 Тогда Если СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) > 0 Тогда
ЭтоПроцедураОписания = Истина; ЭтоБиблиотечнаяПроцедураОписания = Истина;
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
Если СокрЛП(СтрокаМодуля) = ЗаголовокПроцедуры Если СокрЛП(СтрокаМодуля) = Код.ЗаголовокПроцедуры
ИЛИ (Код.ЭтоПроцедураОписания И СокрЛП(СтрокаМодуля) = "Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт") ИЛИ (НЕ ЭтоМодульОбновления
ИЛИ ЭтоПроцедураОписания Тогда И Код.ЭтоПроцедураОписания
ЭтоТекстЗаменяемойПроцедуры = Истина; И (СокрЛП(СтрокаМодуля) = ПростойЗаголовокПроцедурыОписания
ИЛИ СокрЛП(СтрокаМодуля) = "Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт"))
ИЛИ ЭтоБиблиотечнаяПроцедураОписания
И Код.ЭтоПроцедураОписания
И (Код.ЗаголовокПроцедуры = БиблиотечныйЗаголовокПроцедуры
ИЛИ Код.ЗаголовокПроцедуры = ПростойЗаголовокПроцедурыОписания) Тогда
ВыполненаЗамена = Истина; ВыполненаЗамена = Истина;
Для Каждого НоваяСтрока Из НовыйТекстПроцедуры Цикл Для Каждого НоваяСтрока Из НовыйТекстПроцедуры Цикл
НовыйМодуль.ДобавитьСтроку(НоваяСтрока); НовыйМодуль.ДобавитьСтроку(НоваяСтрока);
@@ -995,7 +1016,7 @@
Модуль.Закрыть(); Модуль.Закрыть();
#КонецЕсли #КонецЕсли
ИмяПроцедуры = ИмяПроцедуры(ЗаголовокПроцедуры); ИмяПроцедуры = ИмяПроцедуры(Код.ЗаголовокПроцедуры);
Если УстановленаВерсия Тогда Если УстановленаВерсия Тогда
Шаблон = НСтр("ru = 'В модуле ""%1"" установлена новая версия ""%2""'"); Шаблон = НСтр("ru = 'В модуле ""%1"" установлена новая версия ""%2""'");
ОбщегоНазначенияКлиент.СообщитьПользователю(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Код.ИмяМодуля, Код.Версия)); ОбщегоНазначенияКлиент.СообщитьПользователю(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Код.ИмяМодуля, Код.Версия));
@@ -3834,11 +3855,12 @@
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
Процедура УстановитьНомерСборкиОбработчикамНаСервере(НомерСборки) Процедура УстановитьНомерСборкиОбработчикамНаСервере(НовыйНомерСборки)
Обработка = ОбъектОбработки(); Обработка = ОбъектОбработки();
МаксНомерРедакции = 0; НомераВерсииКонфигурации = СтрРазделить(ВерсияКонфигурации, ".");
МаксНомерПодРедакции = 0; МаксНомерРедакции = Число(НомераВерсииКонфигурации[1]);
МаксНомерПодРедакции = Число(НомераВерсииКонфигурации[2]);
ОбработчикиОднойБиблиотеки = Истина; ОбработчикиОднойБиблиотеки = Истина;
УстановленаВерсия = Новый Массив; УстановленаВерсия = Новый Массив;
ПодсистемаПредыдущего = Неопределено; ПодсистемаПредыдущего = Неопределено;
@@ -3850,7 +3872,9 @@
Если СтрЧислоВхождений(Обработчик.Версия, ".") = 3 Тогда Если СтрЧислоВхождений(Обработчик.Версия, ".") = 3 Тогда
НомераВерсии = СтрРазделить(Обработчик.Версия, "."); НомераВерсии = СтрРазделить(Обработчик.Версия, ".");
НомераВерсии[3] = Формат(НомерСборки, "ЧН=0; ЧГ=0"); ТекущийНомерСборки = Формат(НомераВерсии[3], "ЧН=0; ЧГ=0");
НомераВерсии[3] = Формат(НовыйНомерСборки, "ЧН=0; ЧГ=0");
Обработчик.Версия = СтрСоединить(НомераВерсии, "."); Обработчик.Версия = СтрСоединить(НомераВерсии, ".");
Обработчик.ВерсияЧислом = Обработка.ВерсияЧислом(Обработчик.Версия); Обработчик.ВерсияЧислом = Обработка.ВерсияЧислом(Обработчик.Версия);
Обработчик.Изменен = Истина; Обработчик.Изменен = Истина;
@@ -1486,7 +1486,7 @@
КонецЦикла; КонецЦикла;
ВызватьИсключение НСтр("ru = 'При построении очереди отложенных обработчиков обнаружены ошибки. ВызватьИсключение НСтр("ru = 'При построении очереди отложенных обработчиков обнаружены ошибки.
|Необходимо их исправить с помощью встроенной обработки ""Описание обработчиков обновления"". |Необходимо их исправить с помощью встроенной обработки ""Описание обработчиков обновления"".
|Для этого требуется сохранить и запустить обработку как внешнюю. |Для этого требуется запустить конфигурацию с параметром запуска ""ОтключитьЛогикуНачалаРаботыСистемы"".
|Ошибки перечислены в журнале регистрации.'"); |Ошибки перечислены в журнале регистрации.'");
Иначе Иначе
Для Каждого Ошибка Из Ошибки Цикл Для Каждого Ошибка Из Ошибки Цикл
@@ -1605,7 +1605,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Строка // Строка
// //
Функция РазностьВремени(ВремяКон, ВремяНач = 0, СтруктураВремени = Неопределено) Экспорт Функция РазностьВремени(ВремяКон, ВремяНач = 0, СтруктураВремени = Неопределено)
Разность = ВремяКон - ВремяНач; Разность = ВремяКон - ВремяНач;
РазностьВремениСек = Макс(-Разность,Разность); РазностьВремениСек = Макс(-Разность,Разность);
Часы = Цел(РазностьВремениСек/3600); Часы = Цел(РазностьВремениСек/3600);
@@ -71,7 +71,7 @@
ТипыИнтеграции.Вставить(ТипИнтеграции.Тип, ТипИнтеграции); ТипыИнтеграции.Вставить(ТипИнтеграции.Тип, ТипИнтеграции);
КонецЦикла; КонецЦикла;
Для каждого Интеграция Из СистемаВзаимодействия.ПолучитьИнтеграции() Цикл Для каждого Интеграция Из Вычислить("СистемаВзаимодействия.ПолучитьИнтеграции()") Цикл
Категория = ТипыИнтеграции[Интеграция.ТипВнешнейСистемы]; Категория = ТипыИнтеграции[Интеграция.ТипВнешнейСистемы];
Если Категория <> Неопределено Тогда Если Категория <> Неопределено Тогда
@@ -12,7 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Идентификатор <> Неопределено Тогда Если Параметры.Идентификатор <> Неопределено Тогда
ОписаниеИнтеграции = СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор); ОписаниеИнтеграции = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор)");
Если ОписаниеИнтеграции <> Неопределено Тогда Если ОписаниеИнтеграции <> Неопределено Тогда
Наименование = ОписаниеИнтеграции.Представление; Наименование = ОписаниеИнтеграции.Представление;
Токен = ОписаниеИнтеграции.ПараметрыВнешнейСистемы.Получить("token"); Токен = ОписаниеИнтеграции.ПараметрыВнешнейСистемы.Получить("token");
@@ -12,7 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Идентификатор <> Неопределено Тогда Если Параметры.Идентификатор <> Неопределено Тогда
ОписаниеИнтеграции = СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор); ОписаниеИнтеграции = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор)");
Если ОписаниеИнтеграции <> Неопределено Тогда Если ОписаниеИнтеграции <> Неопределено Тогда
Наименование = ОписаниеИнтеграции.Представление; Наименование = ОписаниеИнтеграции.Представление;
@@ -150,18 +150,16 @@
ОбъектыСЗапретомУдаления = ПакетУдаляемыхОбъектов(); ОбъектыСЗапретомУдаления = ПакетУдаляемыхОбъектов();
Для Каждого ЭлементОчереди Из УдаляемыеОбъекты Цикл Для Каждого ЭлементОчереди Из УдаляемыеОбъекты Цикл
Если Пакет.Найти(ЭлементОчереди.УдаляемыйСсылка,"УдаляемыйСсылка") <> Неопределено Тогда Если НЕ Пакет.Найти(ЭлементОчереди.УдаляемыйСсылка,"УдаляемыйСсылка") <> Неопределено Тогда
Продолжить; ЭлементОчередиВПакете = ЭлементОчередиВПакет(ЭлементОчереди, СведенияОМетаданных, Пакет);
КонецЕсли;
ЭлементОчередиВПакете = ЭлементОчередиВПакет(ЭлементОчереди, СведенияОМетаданных, Пакет); Если ЗапрещенаОбработкаЭлемента(ЭлементОчередиВПакете) Тогда
ОбъектыСЗапретомУдаления = ОбъединениеТаблиц(
Если ЗапрещенаОбработкаЭлемента(ЭлементОчередиВПакете) Тогда
ОбъектыСЗапретомУдаления = ОбъединениеТаблиц(
ОбъектыСЗапретомУдаления, ОбъектыСЗапретомУдаления,
ЭлементОчередиВПакете); ЭлементОчередиВПакете);
Иначе Иначе
Пакет = ОбъединениеТаблиц(Пакет, ЭлементОчередиВПакете, Истина); Пакет = ОбъединениеТаблиц(Пакет, ЭлементОчередиВПакете, Истина);
КонецЕсли;
КонецЕсли; КонецЕсли;
Если Пакет.Количество() >= ПараметрыУдаления.РазмерПакета Если Пакет.Количество() >= ПараметрыУдаления.РазмерПакета
@@ -833,8 +833,8 @@
ТекстПредупреждения = НСтр("ru = 'Для установки обновления необходимо ввести параметры администрирования.'"); ТекстПредупреждения = НСтр("ru = 'Для установки обновления необходимо ввести параметры администрирования.'");
ПоказатьПредупреждение(, ТекстПредупреждения); ПоказатьПредупреждение(, ТекстПредупреждения);
ТекстСообщения = НСтр("ru = 'Не удалось установить обновление программы, т.к. не были введены ТекстСообщения = НСтр("ru = 'Не удалось установить обновление программы, т.к. введены неправильные имя или пароль администратора
|корректные параметры администрирования информационной базы.'"); |(или другие параметры администрирования клиент-серверной информационной базы).'");
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ОбновлениеКонфигурацииКлиент.СобытиеЖурналаРегистрации(), "Ошибка", ТекстСообщения); ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ОбновлениеКонфигурацииКлиент.СобытиеЖурналаРегистрации(), "Ошибка", ТекстСообщения);
КонецЕсли; КонецЕсли;
@@ -7091,6 +7091,10 @@
<event>OnOpen</event> <event>OnOpen</event>
<name>ПриОткрытии</name> <name>ПриОткрытии</name>
</handlers> </handlers>
<handlers>
<event>BeforeClose</event>
<name>ПередЗакрытием</name>
</handlers>
<handlers> <handlers>
<event>OnLoadDataFromSettingsAtServer</event> <event>OnLoadDataFromSettingsAtServer</event>
<name>ПриЗагрузкеДанныхИзНастроекНаСервере</name> <name>ПриЗагрузкеДанныхИзНастроекНаСервере</name>
@@ -8472,6 +8476,60 @@
<common>true</common> <common>true</common>
</edit> </edit>
</attributes> </attributes>
<attributes>
<name>ДатаПредыдущегоВыполненияКомандыОтправкиПолученияПочты</name>
<id>45</id>
<valueType>
<types>Date</types>
<dateQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ДатаПредыдущегоПолученияОтправкиПочты</name>
<id>46</id>
<valueType>
<types>Date</types>
<dateQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОтправкаПолучениеПисемВыполняется</name>
<id>47</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>РазделениеВключено</name>
<id>48</id>
<valueType>
<types>Boolean</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands> <formCommands>
<name>УстановитьВариантНавигацииПоПредмету</name> <name>УстановитьВариантНавигацииПоПредмету</name>
<title> <title>
@@ -26,6 +26,7 @@
КонецЕсли; КонецЕсли;
ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая(); ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
ГиперссылкаЦвет = ЦветаСтиля.ГиперссылкаЦвет; ГиперссылкаЦвет = ЦветаСтиля.ГиперссылкаЦвет;
@@ -72,6 +73,19 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ЗавершениеРаботы Тогда
Возврат;
КонецЕсли;
Если РазделениеВключено Тогда
ОтправитьПолучитьПочтуПользователяКлиент();
КонецЕсли;
КонецПроцедуры
&НаСервере &НаСервере
Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки) Процедура ПередЗагрузкойДанныхИзНастроекНаСервере(Настройки)
Если Параметры.Свойство("ИмяТекущейПанелиНавигации") Тогда Если Параметры.Свойство("ИмяТекущейПанелиНавигации") Тогда
@@ -128,10 +142,20 @@
ИначеЕсли ВРег(ИмяСобытия) = ВРег("Запись_ПапкиЭлектронныхПисем") ИначеЕсли ВРег(ИмяСобытия) = ВРег("Запись_ПапкиЭлектронныхПисем")
Или ВРег(ИмяСобытия) = ВРег("ПримененыПравилаОбработкиПисем") Или ВРег(ИмяСобытия) = ВРег("ПримененыПравилаОбработкиПисем")
Или ВРег(ИмяСобытия) = ВРег("ВыполненаОтправкаПолучениеПисем") Тогда Или ВРег(ИмяСобытия) = ВРег("ВыполненаОтправкаПолучениеПисем") Тогда
Если Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаПапки Тогда Если Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаПапки Тогда
ОбновитьПанельНавигации(); ОбновитьПанельНавигации();
ВосстановитьРаскрытыеУзлыДерева(); ВосстановитьРаскрытыеУзлыДерева();
КонецЕсли; КонецЕсли;
Если ВРег(ИмяСобытия) = ВРег("ВыполненаОтправкаПолучениеПисем") Тогда
Если РазделениеВключено Тогда
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьОтправкиПолученияПочты", 150, Истина);
КонецЕсли;
КонецЕсли;
ИначеЕсли ВРег(ИмяСобытия) = ВРег("ИзменениеПредметаВзаимодействий") Тогда ИначеЕсли ВРег(ИмяСобытия) = ВРег("ИзменениеПредметаВзаимодействий") Тогда
Если Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаПредмет Тогда Если Элементы.СтраницыПанелиНавигации.ТекущаяСтраница = Элементы.СтраницаПредмет Тогда
ОбновитьПанельНавигации(); ОбновитьПанельНавигации();
@@ -153,7 +177,15 @@
ВосстановитьРаскрытыеУзлыДерева(); ВосстановитьРаскрытыеУзлыДерева();
ПодключитьОбработчикОжидания("ПроверитьСостояниеОтправкиПисем", 60, Истина); Если РазделениеВключено Тогда
ОтправитьПолучитьПочтуПользователяКлиент();
Иначе
ПодключитьОбработчикОжидания("ПроверитьСостояниеОтправкиПисем", 60, Истина);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -832,13 +864,34 @@
&НаКлиенте &НаКлиенте
Процедура ОтправитьПолучитьПочтуВыполнить(Команда) Процедура ОтправитьПолучитьПочтуВыполнить(Команда)
Если НЕ ИнформационнаяБазаФайловая Тогда ОчиститьСообщения();
Если (Не РазделениеВключено)
И (Не ИнформационнаяБазаФайловая) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ОчиститьСообщения(); Если ОтправкаПолучениеПисемВыполняется Тогда
ТекстСообщения = НСтр("ru = 'В настоящий момент отправка и получение почты уже выполняется.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
Возврат;
КонецЕсли;
УправлениеЭлектроннойПочтойКлиент.ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, ЭтотОбъект, Элементы.Список); Если ДатаПредыдущегоПолученияОтправкиПочты + 15 > ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
ТекстСообщения = НСтр("ru = 'С момента завершения предыдущей отправки и получения почты прошло менее 15 секунд. Повторите позже.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
Возврат;
КонецЕсли;
Если ДатаПредыдущегоВыполненияКомандыОтправкиПолученияПочты + 15 > ОбщегоНазначенияКлиент.ДатаСеанса() Тогда
ТекстСообщения = НСтр("ru = 'С момента предыдущего выполнения команды отправки и получения почты прошло менее 15 секунд. Повторите позже.'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения);
Возврат;
КонецЕсли;
ДатаПредыдущегоВыполненияКомандыОтправкиПолученияПочты = ОбщегоНазначенияКлиент.ДатаСеанса();
ОтправитьПолучитьПочтуПользователяКлиент(Истина);
КонецПроцедуры КонецПроцедуры
@@ -1951,11 +2004,12 @@
Элементы.СписокКонтекстноеМенюПеренестиВПапку.Видимость = ЭтоПапки; Элементы.СписокКонтекстноеМенюПеренестиВПапку.Видимость = ЭтоПапки;
Элементы.ПолученоОтправлено.Видимость = ЭтоПапки; Элементы.ПолученоОтправлено.Видимость = ЭтоПапки;
Элементы.Размер.Видимость = ЭтоПапки; Элементы.Размер.Видимость = ЭтоПапки;
Элементы.СписокСоздатьЭлектронноеПисьмоОтдельнаяКнопка.Видимость = ЭтоПапки ИЛИ ТолькоПочта; Элементы.СписокСоздатьЭлектронноеПисьмоОтдельнаяКнопка.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтветить.Видимость = ЭтоПапки ИЛИ ТолькоПочта; Элементы.СписокОтветить.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтветитьВсем.Видимость = ЭтоПапки ИЛИ ТолькоПочта; Элементы.СписокОтветитьВсем.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокПереслать.Видимость = ЭтоПапки ИЛИ ТолькоПочта; Элементы.СписокПереслать.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтправитьПолучитьПочту.Видимость = (ЭтоПапки ИЛИ ТолькоПочта) И ИнформационнаяБазаФайловая; Элементы.СписокОтправитьПолучитьПочту.Видимость = (ЭтоПапки Или ТолькоПочта)
И (ИнформационнаяБазаФайловая Или РазделениеВключено);
Элементы.Дата.Видимость = НЕ ЭтоПапки; Элементы.Дата.Видимость = НЕ ЭтоПапки;
Элементы.ГруппаСоздать.Видимость = НЕ ЭтоПапки И НЕ ТолькоПочта; Элементы.ГруппаСоздать.Видимость = НЕ ЭтоПапки И НЕ ТолькоПочта;
@@ -2764,10 +2818,18 @@
| ПО (НеРассмотреноПапки.Папка = ПапкиЭлектронныхПисем.Ссылка) | ПО (НеРассмотреноПапки.Папка = ПапкиЭлектронныхПисем.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты
| ПО (ПапкиЭлектронныхПисем.Владелец = НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты) | ПО (ПапкиЭлектронныхПисем.Владелец = НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты)
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
| ПО УчетныеЗаписиЭлектроннойПочты.ВладелецУчетнойЗаписи = Пользователи.Ссылка
| И (ПапкиЭлектронныхПисем.Владелец = УчетныеЗаписиЭлектроннойПочты.Ссылка)
|ГДЕ |ГДЕ
| НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ) | НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ)
| И НЕ ПапкиЭлектронныхПисем.ПометкаУдаления | И НЕ ПапкиЭлектронныхПисем.ПометкаУдаления
| И НЕ УчетныеЗаписиЭлектроннойПочты.ПометкаУдаления | И НЕ УчетныеЗаписиЭлектроннойПочты.ПометкаУдаления
| И ВЫБОР
| КОГДА &РольПолныеПравДоступна
| ТОГДА ИСТИНА
| ИНАЧЕ (НЕ ЕСТЬNULL(Пользователи.Недействителен, ЛОЖЬ)) ИЛИ УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляОтправки ИЛИ УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения
| КОНЕЦ
| |
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| ЗначениеУпорядочивания, | ЗначениеУпорядочивания,
@@ -4182,4 +4244,29 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОтправитьПолучитьПочтуПользователяКлиент(ВыводитьПрогресс = Ложь)
ОчиститьСообщения();
УправлениеЭлектроннойПочтойКлиент.ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, ЭтотОбъект, Элементы.Список, ВыводитьПрогресс);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНеобходимостьОтправкиПолученияПочты()
Если Не РазделениеВключено Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаПолучениеПисемВыполняется
И (ОбщегоНазначенияКлиент.ДатаСеанса() > ДатаПредыдущегоПолученияОтправкиПочты + 300) Тогда
ОтправитьПолучитьПочтуПользователяКлиент();
КонецЕсли;
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьОтправкиПолученияПочты", 30, Истина);
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -106,15 +106,14 @@
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект); ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ПредыдущаяПометкаУдаления = Ложь; ДанныеОбъектаДоЗаписи = ДанныеОбъектаДоЗаписи();
Если Не ЭтоНовый() Тогда
ПредыдущаяПометкаУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления");
КонецЕсли;
ДополнительныеСвойства.Вставить("ПометкаУдаления", ПредыдущаяПометкаУдаления);
Если ПометкаУдаления <> ПредыдущаяПометкаУдаления Тогда ДополнительныеСвойства.Вставить("ПометкаУдаления", ДанныеОбъектаДоЗаписи.ПометкаУдаления);
ДополнительныеСвойства.Вставить("СтатусПисьма", ДанныеОбъектаДоЗаписи.СтатусПисьма);
Если ПометкаУдаления <> ДанныеОбъектаДоЗаписи.ПометкаУдаления Тогда
ЕстьВложения = ?(ПометкаУдаления, Ложь, РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(Ссылка) > 0); ЕстьВложения = ?(ПометкаУдаления, Ложь, РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(Ссылка) > 0);
КонецЕсли; КонецЕсли;;
КонецПроцедуры КонецПроцедуры
@@ -127,6 +126,18 @@
Взаимодействия.ПриЗаписиДокумента(ЭтотОбъект); Взаимодействия.ПриЗаписиДокумента(ЭтотОбъект);
Взаимодействия.ОтработатьПризнакИзмененияПометкиУдаленияПриЗаписиПисьма(ЭтотОбъект); Взаимодействия.ОтработатьПризнакИзмененияПометкиУдаленияПриЗаписиПисьма(ЭтотОбъект);
ПредыдущийСтатус = ДополнительныеСвойства.СтатусПисьма;
Если ЗначениеЗаполнено(УчетнаяЗапись)
И (СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее
Или СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
И (ПредыдущийСтатус <> Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее
И ПредыдущийСтатус <> Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено) Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
Процедура ПередУдалением(Отказ) Процедура ПередУдалением(Отказ)
@@ -435,6 +446,43 @@
КонецПроцедуры КонецПроцедуры
Функция ДанныеОбъектаДоЗаписи()
ДанныеОбъекта = Новый Структура;
ДанныеОбъекта.Вставить("ПометкаУдаления", Ложь);
ДанныеОбъекта.Вставить("СтатусПисьма", Перечисления.СтатусыИсходящегоЭлектронногоПисьма.ПустаяСсылка());
Если Не ЭтоНовый() Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.ПометкаУдаления КАК ПометкаУдаления,
| ЭлектронноеПисьмоИсходящее.СтатусПисьма КАК СтатусПисьма
|ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
|ГДЕ
| ЭлектронноеПисьмоИсходящее.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Выборка);
КонецЕсли;
КонецЕсли;
Возврат ДанныеОбъекта;
КонецФункции
#КонецОбласти #КонецОбласти
#Иначе #Иначе
@@ -314,22 +314,8 @@
И ОбщегоНазначения.РазделениеВключено() И ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
Запрос = Новый Запрос( МодульНастройкиТранспортаОбмена = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных");
"ВЫБРАТЬ ВидТранспортаСообщений = МодульНастройкиТранспортаОбмена.ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент);
| НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию КАК ВидТранспортаСообщенийОбменаПоУмолчанию
|ИЗ
| РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспортаОбластейДанных
| ПО (НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента)
|ГДЕ
| НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент");
Запрос.УстановитьПараметр("Корреспондент", Корреспондент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВидТранспортаСообщений = Выборка.ВидТранспортаСообщенийОбменаПоУмолчанию;
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат ВидТранспортаСообщений; Возврат ВидТранспортаСообщений;
@@ -71,6 +71,29 @@
КонецФункции КонецФункции
Функция ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент) Экспорт
ВидТранспортаСообщений = Неопределено;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию КАК ВидТранспортаСообщенийОбменаПоУмолчанию
|ИЗ
| РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспортаОбластейДанных
| ПО (НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента)
|ГДЕ
| НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент");
Запрос.УстановитьПараметр("Корреспондент", Корреспондент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВидТранспортаСообщений = Выборка.ВидТранспортаСообщенийОбменаПоУмолчанию;
КонецЕсли;
Возврат ВидТранспортаСообщений;
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -64,6 +64,10 @@
ТекущийОбъект.ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = ?(ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = 1, Истина, Ложь); ТекущийОбъект.ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = ?(ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = 1, Истина, Ложь);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ТекущийОбъект.ДатаПоследнегоИспользования = ТекущаяДатаСеанса();
КонецЕсли;
ПриСозданииЧтенииНаСервере(); ПриСозданииЧтенииНаСервере();
КонецПроцедуры КонецПроцедуры
@@ -31,4 +31,70 @@
#КонецОбласти #КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Обновляет дату использования учетной записи в регистре.
//
// Параметры:
// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, для которой выполняется обновление.
// ДатаИспользования - Дата - дата использования учетной записи. Если не передана, то устанавливается текущая дата.
//
Процедура ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись, ДатаИспользования = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
ЭлементБлокировки.УстановитьЗначение("УчетнаяЗаписьЭлектроннойПочты", УчетнаяЗапись);
НаборЗаписей = РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.УчетнаяЗаписьЭлектроннойПочты.Установить(УчетнаяЗапись);
Если ДатаИспользования = Неопределено Тогда
ДатаИспользования = НачалоДня(ТекущаяДатаСеанса());
КонецЕсли;
ТребуетсяЗапись = Ложь;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
Если НаборЗаписей[0].ДатаПоследнегоИспользования <> ДатаИспользования Тогда
НаборЗаписей[0].ДатаПоследнегоИспользования = ДатаИспользования;
ТребуетсяЗапись = Истина;
КонецЕсли;
Иначе
ЗаписьНабора = НаборЗаписей.Добавить();
ЗаписьНабора.ДатаПоследнегоИспользования = ДатаИспользования;
ЗаписьНабора.УчетнаяЗаписьЭлектроннойПочты = УчетнаяЗапись;
ТребуетсяЗапись = Истина;
КонецЕсли;
Если ТребуетсяЗапись Тогда
НаборЗаписей.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#КонецЕсли #КонецЕсли
@@ -372,6 +372,24 @@
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/> <fillValue xsi:type="core:UndefinedValue"/>
</resources> </resources>
<attributes uuid="d4eb3e9a-feb5-42d9-841b-ff20288228b6">
<name>ДатаПоследнегоИспользования</name>
<synonym>
<key>ru</key>
<value>Дата последнего использования</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<dimensions uuid="49d713b8-6a61-4bd1-9650-0de1869967d2"> <dimensions uuid="49d713b8-6a61-4bd1-9650-0de1869967d2">
<name>УчетнаяЗаписьЭлектроннойПочты</name> <name>УчетнаяЗаписьЭлектроннойПочты</name>
<synonym> <synonym>
@@ -224,6 +224,11 @@
ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ПередЗагрузкойВариантаНаСервере(Контекст, Настройки); ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ИначеЕсли ТипЗнч(Контекст) = Тип("Структура") Тогда
АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АдресСхемы");
Если Не ЭтоАдресВременногоХранилища(АдресСхемы) Тогда
Контекст.Вставить("АдресСхемы", ПоместитьВоВременноеХранилище(Схема, Новый УникальныйИдентификатор));
КонецЕсли;
КонецЕсли; КонецЕсли;
Иначе Иначе
Отчеты.УниверсальныйОтчет.УстановитьФиксированныеПараметры( Отчеты.УниверсальныйОтчет.УстановитьФиксированныеПараметры(
@@ -3,93 +3,6 @@
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ПараметрыАдминистрированияИБ</name> <name>Constant.ПараметрыАдминистрированияИБ</name>
<right> <right>
@@ -2352,6 +2265,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name> <name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name>
<right> <right>
@@ -3947,6 +3947,17 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Report.ИспользуемыеВнешниеРесурсы</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.БуферОперацийСтатистики</name> <name>InformationRegister.БуферОперацийСтатистики</name>
<right> <right>
@@ -14,6 +14,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -45,13 +52,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name> <name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right> <right>
@@ -33,45 +33,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Catalog.ШаблоныАнкет</name> <name>Catalog.ШаблоныАнкет</name>
<right> <right>
@@ -3211,6 +3172,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name> <name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name>
<right> <right>
@@ -5439,6 +5439,17 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Report.ИспользуемыеВнешниеРесурсы</name>
<right>
<name>Use</name>
<value>false</value>
</right>
<right>
<name>View</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Document.СогласиеНаОбработкуПерсональныхДанных</name> <name>Document.СогласиеНаОбработкуПерсональныхДанных</name>
<right> <right>
@@ -5695,18 +5706,10 @@
</object> </object>
<object> <object>
<name>InformationRegister.ОбщиеПоставляемыеМакетыПечати</name> <name>InformationRegister.ОбщиеПоставляемыеМакетыПечати</name>
<right>
<name>Read</name>
<value>false</value>
</right>
<right> <right>
<name>Update</name> <name>Update</name>
<value>false</value> <value>false</value>
</right> </right>
<right>
<name>View</name>
<value>false</value>
</right>
<right> <right>
<name>Edit</name> <name>Edit</name>
<value>false</value> <value>false</value>
@@ -79,11 +79,20 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Параметры,
Ключ); УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка Попытка
@@ -136,11 +145,19 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Параметры,
Ключ); УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
@@ -101,11 +101,20 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Параметры,
Ключ); УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка Попытка
@@ -158,11 +167,19 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Параметры,
Ключ); УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
@@ -131,10 +131,20 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ); Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка Попытка
@@ -187,11 +197,20 @@
Параметры = Новый Массив; Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария); Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными); Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса", МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ); Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка Попытка