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
+1595 -627

No files matched your search

@@ -1973,6 +1973,16 @@
КонецФункции
// Возвращаемое значение:
// Структура:
// * НеСоответствует - Булево
// * КлючОбъектаМетаданных - Произвольный
// * ОбъектМетаданных - ОбъектМетаданных
// - Неопределено
// * ОбъектМетаданныхУдаленного - ОбъектМетаданных
// - Неопределено
// * ПредставлениеУдаленного - Строка
//
Функция КлючОбъектаМетаданныхСоответствуетПолномуИмени(СвойстваИдентификатора)
РезультатПроверки = Новый Структура;
@@ -447,7 +447,8 @@
Возврат;
КонецЕсли;
СертификатКриптографии = Новый СертификатКриптографии(ПолучитьИзВременногоХранилища(СертификатАдрес));
ДвоичныеДанныеСертификата = ПолучитьИзВременногоХранилища(СертификатАдрес);
СертификатКриптографии = Новый СертификатКриптографии(ДвоичныеДанныеСертификата);
ТестовыеДанные = ТестовыеДвоичныеДанные();
ОписанияПрограмм = ЭлектроннаяПодпись.ОбщиеНастройки().ОписанияПрограмм;
@@ -39,8 +39,13 @@
Ограничение.Текст =
"РазрешитьЧтение
|ГДЕ
| ЗначениеРазрешено(Ссылка)
| ИЛИ ЗначениеРазрешено(ВладелецУчетнойЗаписи, ПустаяСсылка КАК Ложь)
| ВЫБОР КОГДА ВладелецУчетнойЗаписи = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ТОГДА
| ЗначениеРазрешено(Ссылка)
| ИНАЧЕ
| ЗначениеРазрешено(Ссылка, Отключено КАК Ложь)
| ИЛИ ЗначениеРазрешено(ВладелецУчетнойЗаписи, Отключено КАК Ложь)
| ИЛИ ЭтоАвторизованныйПользователь(ВладелецУчетнойЗаписи)
| КОНЕЦ
|;
|РазрешитьИзменениеЕслиРазрешеноЧтение
|ГДЕ
@@ -230,7 +230,7 @@
<enabled>true</enabled>
<userVisible/>
<dataPath xsi:type="form:DataPath">
<segments>НаборыСвойств.Ref</segments>
<segments>НаборыСвойств.Ссылка</segments>
</dataPath>
<extendedTooltip>
<name>СсылкаРасширеннаяПодсказка</name>
@@ -4830,31 +4830,35 @@
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.IsFolder</segments>
<segments>НаборыСвойств.Родитель</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.Parent</segments>
<segments>НаборыСвойств.Ссылка</segments>
</notDefaultUseAlwaysAttributes>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>НаборыСвойств.Ref</segments>
<segments>НаборыСвойств.ЭтоГруппа</segments>
</notDefaultUseAlwaysAttributes>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
Наборы.Ссылка,
Наборы.ВерсияДанных,
Наборы.ПометкаУдаления,
Наборы.Предопределенный,
Наборы.Родитель,
Наборы.ЭтоГруппа,
Наборы.Наименование,
Наборы.Используется,
Наборы.Ссылка КАК Ссылка,
Наборы.ВерсияДанных КАК ВерсияДанных,
Наборы.ПометкаУдаления КАК ПометкаУдаления,
Наборы.Предопределенный КАК Предопределенный,
Наборы.Родитель КАК Родитель,
Наборы.ЭтоГруппа КАК ЭтоГруппа,
Наборы.Наименование КАК Наименование,
Наборы.Используется КАК Используется,
ВЫБОР
КОГДА Наборы.ЭтоГруппа
ТОГДА Наборы.Наименование
КОГДА &amp;ЭтоДополнительноеСведение
ТОГДА ВЫБОР
КОГДА Наборы.КоличествоСведений = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка)
ТОГДА ВЫБОР
КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))
КОНЕЦ
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоСведений + &quot;)&quot;
@@ -4862,7 +4866,11 @@
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА Наборы.КоличествоРеквизитов = &quot;&quot;
ТОГДА ПРЕДСТАВЛЕНИЕ(Наборы.Ссылка)
ТОГДА ВЫБОР
КОГДА &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование
ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(НаборыПредставления.Наименование, Наборы.Наименование) КАК СТРОКА(150))
КОНЕЦ
КОГДА Наборы.КоличествоСведений &lt;> &quot;&quot;
И &amp;ЭтоОсновнойЯзык
ТОГДА Наборы.Наименование + &quot; (&quot; + Наборы.КоличествоРеквизитов + &quot;)&quot;
@@ -4880,7 +4888,7 @@
КОНЕЦ КАК НомерКартинки
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений КАК Наборы
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыДополнительныхРеквизитовИСведений.Представления КАК НаборыПредставления
ПО (НаборыПредставления.Ссылка = Наборы.Ссылка)
И (НаборыПредставления.КодЯзыка = &amp;КодЯзыка)
ГДЕ
@@ -4890,10 +4898,9 @@
ИНАЧЕ Наборы.Родитель В (&amp;Наборы)
КОНЕЦ
И Наборы.Используется
И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА)
И Наборы.Ссылка НЕ В (&amp;ИсключаемыеНаборы)</queryText>
И ЕСТЬNULL(Наборы.Родитель.Используется, ИСТИНА)
И НЕ Наборы.Ссылка В (&amp;ИсключаемыеНаборы)</queryText>
<mainTable>Catalog.НаборыДополнительныхРеквизитовИСведений</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<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>
<extInfo xsi:type="form:PictureDecorationExtInfo">
<picture xsi:type="core:PictureRef">
<picture>StdPicture.DialogInformation</picture>
<picture>CommonPicture.Информация32</picture>
</picture>
<pictureSize>Proportionally</pictureSize>
<fileDragMode>AsFileRef</fileDragMode>
@@ -53,9 +53,9 @@
&НаКлиенте
Процедура ДекорацияЖурналРегистрацииНажатие(Элемент)
МассивСобытий = Новый Массив;
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Установка'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Изменение'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления. Удаление'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления.Установка'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления.Изменение'"));
МассивСобытий.Добавить(НСтр("ru = 'Исправления.Удаление'"));
Отбор = Новый Структура("СобытиеЖурналаРегистрации", МассивСобытий);
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор);
КонецПроцедуры
@@ -742,7 +742,9 @@
// Обработка строк.
СтрокаИсточник = ПараметрыГруппировки.Родитель;
СтрокаПриемник = СтрокаИсточник.ПолучитьЭлементы().Вставить(ПараметрыГруппировки.Индекс); // см. ЭлементКоллекцииФормыНастроек
ЭлементыИсточника = СтрокаИсточник.ПолучитьЭлементы();
СтрокаПриемник = ЭлементКоллекцииФормыНастроек(СтрокаИсточник);
СтрокаПриемник = ЭлементыИсточника.Вставить(ПараметрыГруппировки.Индекс); // см. ЭлементКоллекцииФормыНастроек
УстановитьДанныеСтрокиОтборов(СтрокаПриемник, СвойствоЭлементаСтруктуры, ЭлементНастройкиПриемник);
СтрокаПриемник.Идентификатор = СвойствоЭлементаСтруктуры.ПолучитьИдентификаторПоОбъекту(ЭлементНастройкиПриемник);
@@ -6976,6 +6978,10 @@
&НаКлиентеНаСервереБезКонтекста
Функция ЭлементКоллекцииФормыНастроек(Коллекция)
Если Коллекция.ПолучитьЭлементы().Количество() = 0 Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Коллекция.ПолучитьЭлементы()[0];
КонецФункции
@@ -458,7 +458,14 @@
КонецЕсли;
УзелОбмена = ПриложениеВСервисе();
Отказ = Ложь;
ОбменДаннымиСервер.ПроверитьВозможностьЗапускаОбмена(УзелОбмена, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыОбмена = ОбменДаннымиСервер.ПараметрыОбмена();
ПараметрыОбмена.ВидТранспортаСообщенийОбмена = Перечисления.ВидыТранспортаСообщенийОбмена.WS;
@@ -470,8 +477,7 @@
ПараметрыОбмена.ДлительнаяОперацияРазрешена = Истина;
КонецЕсли;
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(
ПриложениеВСервисе(), ПараметрыОбмена, Отказ);
ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(УзелОбмена, ПараметрыОбмена, Отказ);
Если Отказ Тогда
ВызватьИсключение НСтр("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 Тогда
@@ -196,7 +196,7 @@
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
КонецЦикла;
Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Для каждого ИмяРеквизита Из Реквизиты Цикл
@@ -224,16 +224,15 @@
//
Процедура ПриЧтенииПредставленийНаСервере(Объект) Экспорт
Если ЭтоОсновнойЯзык() Тогда
Возврат;
КонецЕсли;
ОбъектМетаданных = ОбъектМетаданных(Объект);
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
Если ЭтоРегистр Или МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда
// Объект.Ссылка.Метаданные()
Если ЭтоОсновнойЯзык() Тогда
Возврат;
КонецЕсли;
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных);
СуффиксТекущегоЯзыка = "";
@@ -267,14 +266,14 @@
ИмяРеквизита = Реквизит.Имя;
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Представление = НайденныеСтроки[0];
Иначе
Представление = Объект.Представления.Добавить();
Представление.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
КонецЕсли;
Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
@@ -631,10 +630,10 @@
Имя = ЛокализуемыйРеквизитОбъекта.Ключ;
Объект[Имя] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.ОсновнойЯзык)];
Если ИспользуетсяПервыйДополнительныйЯзык() Тогда
Если ИспользуетсяПервыйДополнительныйЯзык() И ЗначениеЗаполнено(НастройкиОбновления.КодЯзыка1) Тогда
Объект[Имя + "Язык1"] = Элемент[ИмяЛокализуемогоРеквизита(Имя, НастройкиОбновления.КодЯзыка1)];
КонецЕсли;
Если ИспользуетсяВторойДополнительныйЯзык() Тогда
Если ИспользуетсяВторойДополнительныйЯзык() И ЗначениеЗаполнено(НастройкиОбновления.КодЯзыка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,94 +11184,90 @@
Процедура ПолучитьСостоянияОбменовДанными(МенеджерВременныхТаблиц)
ТекстЗапросаРезультат =
"ВЫБРАТЬ
| СостоянияОбменовДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
| СостоянияОбменовДанными.ДатаНачала КАК ДатаНачала,
| СостоянияОбменовДанными.ДатаОкончания КАК ДатаОкончания,
| ВЫБОР
| КОГДА СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято)
| ИЛИ СостоянияОбменовДанными.РезультатВыполненияОбмена = ЗНАЧЕНИЕ(Перечисление.РезультатыВыполненияОбмена.ВыполненоСПредупреждениями)
| ТОГДА 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";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2984,10 +2984,21 @@
Если ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбновлениеВерсииИБВМоделиСервиса")
И ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность")
И Использование Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти();
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки();
ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0;
Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда
МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса");
ЗапланированныйМоментЗапуска = МодульОбновлениеИнформационнойБазыСлужебныйВМоделиСервиса.ЗапланированныйМоментЗапускаОбновленияОбласти();
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
КонецЕсли;
КонецЕсли;
РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, ПараметрыЗадания);
@@ -5662,8 +5673,6 @@
ОбъектыКОбработке = Новый Массив;
СведенияОбЯзыках = МультиязычностьСервер.СведенияОбЯзыках();
ШаблонаЗапроса = "ВЫБРАТЬ
| %1
|ИЗ
@@ -691,11 +691,6 @@
// и при необходимости формирует фоновые задания по обновлению
// версии в них.
//
// Параметры:
// БлокироватьОбласти - Булево - устанавливать блокировку сеансов областей данных
// на время обновления областей,
// СообщениеБлокировки - Строка - сообщение блокировки.
//
Процедура ЗапланироватьОбновлениеОбластейДанных()
Если НЕ ОбщегоНазначения.РазделениеВключено()
@@ -756,7 +751,21 @@
| И ВерсииПодсистемОбластейДанных.ИмяПодсистемы = &ИмяПодсистемы";
Запрос.УстановитьПараметр("ИмяПодсистемы", Метаданные.Имя);
ЗапланированныйМоментЗапуска = ТекущаяУниверсальнаяДатаВМиллисекундах();
ТребуетсяУстановитьЗапланированныйМоментЗапуска = Ложь;
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.БазоваяФункциональность") Тогда
МодульТехнологияСервиса = ОбщегоНазначения.ОбщийМодуль("ТехнологияСервиса");
ВерсияБиблиотекиБТС = МодульТехнологияСервиса.ВерсияБиблиотеки();
ТребуетсяУстановитьЗапланированныйМоментЗапуска = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияБиблиотекиБТС, "2.0.1.0") > 0;
Если ТребуетсяУстановитьЗапланированныйМоментЗапуска Тогда
ЗапланированныйМоментЗапуска = ТекущаяУниверсальнаяДатаВМиллисекундах();
КонецЕсли;
КонецЕсли;
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
@@ -840,8 +849,13 @@
ПараметрыЗадания.Вставить("ОбластьДанных", Выборка.ОбластьДанных);
ПараметрыЗадания.Вставить("ЭксклюзивноеВыполнение", Истина);
ПараметрыЗадания.Вставить("КоличествоПовторовПриАварийномЗавершении", 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 = 'Установлено исправление: %1'"),
УстановленноеИсправление.Имя);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Установка'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
РезультатВыполнения.Установленные.Добавить(УстановленноеИсправление.Имя);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
@@ -407,6 +421,11 @@
Идентификатор = СвойстваИсправления.UUID;
Если Удаляемые.Найти(Строка(Идентификатор)) <> Неопределено Тогда
Расширение.Удалить();
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Удалено исправление: %1'"),
Расширение.Имя);
ЗаписьЖурналаРегистрации(НСтр("ru = 'Исправления.Удаление'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,, ТекстСообщения);
КонецЕсли;
Исключение
НеУдалено = НеУдалено + 1;
@@ -122,7 +122,7 @@
ОтборОбсуждений.КонтекстноеОбсуждение = Истина;
ОтборОбсуждений.КонтекстОбсуждения = КонтекстОбсуждения;
НайденноеОбсуждения = СистемаВзаимодействия.ПолучитьОбсуждения(ОтборОбсуждений);
НайденноеОбсуждения = Вычислить("СистемаВзаимодействия.ПолучитьОбсуждения(ОтборОбсуждений)");
Если НайденноеОбсуждения.Количество() > 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 = 'Контактная информация'");
ГруппаПроверок.Идентификатор = "КонтактнаяИнформация";
@@ -897,6 +897,13 @@
Проверка.КонтекстПроверокВеденияУчета = "_КонтактнаяИнформация";
Проверка.Отключена = Истина;
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Возврат;
КонецЕсли;
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора = МодульАдресныйКлассификаторСлужебный.НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора();
Проверка = Проверки.Добавить();
Проверка.ИдентификаторГруппы = "КонтактнаяИнформация";
Проверка.Наименование = НСтр("ru = 'Выявление устаревших адресов контактной информации'");
@@ -917,7 +924,7 @@
Проверка.ИдентификаторГруппы = "КонтактнаяИнформация";
Проверка.Наименование = НСтр("ru = 'Проверка адресов на соответствие ФИАС.'");
Проверка.Причины = НСтр("ru = 'Адрес контактной информации введен некорректно, устарел, был некорректно загружен из других источников или еще не внесен в Федеральную информационную адресную систему.'");
Проверка.Рекомендация = НСтр("ru = 'В зависимости от ситуации следует выбрать один из вариантов:
Рекомендация = НСтр("ru = 'В зависимости от ситуации следует выбрать один из вариантов:
|• Убедиться, что адрес введен корректно, проверив адрес на сайте ФИАС: https://fias.nalog.ru/ExtendedSearch
|О некорректных или неполных адресных сведениях на сайте ФИАС рекомендуется сообщать в органы местного самоуправления или в службу технической поддержки online-сервисов ФНС России.
|• Если адрес устарел вследствие переименования, переподчинения или упразднения адресных объектов (улиц, населенных пунктов), то введите актуальный адрес.
@@ -925,10 +932,12 @@
|Если адресный классификатор загружен в программу, то:
|• предварительно следует его обновить до последней версии адресных сведений (Раздел Администрирование);
|• для выявления и автоматического исправления устаревших адресов загрузить историю изменения адресов объектов
|Ссылка для быстрого перехода e1cib/command/РегистрСведений.АдресныеОбъекты.Команда.ЗагрузитьАдресныйКлассификатор
|Ссылка для быстрого перехода %1
|
|Если работа ведется в распределенной информационной базе (РИБ), то исправления следует вносить только в главном узле.
|Затем выполнить синхронизацию с подчиненными узлами.'");
Проверка.Рекомендация = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Рекомендация,
НавигационнаяСсылкаЗагрузкиАдресногоКлассификатора);
Проверка.Идентификатор = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС";
Проверка.ОбработчикПроверки = "РаботаСАдресами.ПроверитьАдресаНаСоответствиеФИАС";
@@ -2908,7 +2917,14 @@
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(КлассификаторXML);
Возврат СериализаторXDTO.ПрочитатьXML(Чтение);
ТаблицаСтран = СериализаторXDTO.ПрочитатьXML(Чтение); // ТаблицаЗначений
// Старые версии классификаторов не содержат колонку МеждународноеНаименование
Если ТаблицаСтран.Колонки.Найти("МеждународноеНаименование") = Неопределено Тогда
ТаблицаСтран.Колонки.Добавить("МеждународноеНаименование", ОбщегоНазначения.ОписаниеТипаСтрока(100));
КонецЕсли;
Возврат ТаблицаСтран;
КонецФункции
@@ -1624,7 +1624,7 @@
//
Функция СоздатьПрисоединенныйФайлНаОснованииФайла(ВладелецФайлов, МенеджерПрисоединенныхФайлов, ТекущаяВерсияОбъект, ФайлИсточникОбъект)
СсылкаНового = МенеджерПрисоединенныхФайлов.ПолучитьСсылку();
СсылкаНового = МенеджерПрисоединенныхФайлов.ПолучитьСсылку(); // СправочникСсылка
ПрисоединенныйФайл = МенеджерПрисоединенныхФайлов.СоздатьЭлемент(); //ОпределяемыйТип.ПрисоединенныйФайлОбъект
ПрисоединенныйФайл.УстановитьСсылкуНового(СсылкаНового);
@@ -6950,6 +6950,12 @@
// Сравниваем с деревом файлов в системе, синхронизация идет по уникальному идентификатору.
ТаблицаФайлов = ВыбратьДанныеПоПравилам(ПараметрыСинхронизации.УчетнаяЗапись);
Если ТаблицаФайлов = Неопределено Тогда
ТекстСобытия = НСтр("ru = 'Не удалось получить таблицу файлов из информационной базы, синхронизация не выполнена.'");
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка);
Возврат;
КонецЕсли;
Для каждого СтрокаТаблицы Из ТаблицаФайлов Цикл
СтрокаТаблицы.UID1C = Строка(СтрокаТаблицы.ФайлСсылка.УникальныйИдентификатор());
КонецЦикла;
@@ -7369,6 +7375,10 @@
КонецЦикла;
Если ТаблицаФайлов = Неопределено Тогда
Возврат ТаблицаФайлов;
КонецЕсли;
ИменаКолонок = Новый Массив;
Для Каждого Колонка Из ТаблицаФайлов.Колонки Цикл
Если Колонка.Имя <> "Синхронизировать" Тогда
@@ -271,7 +271,7 @@
// * ИспользоватьЭлектроннуюПочту - Булево - доставлять отчеты по электронной почте.
//
// Обязательные реквизиты когда { ИспользоватьПапку = Истина }:
// * Папка (СправочникСсылка.ПапкиФайлов) Папка подсистемы "Работа с файлами".
// * Папка - СправочникСсылка.ПапкиФайлов - папка подсистемы "Работа с файлами".
//
// Обязательные реквизиты когда { ИспользоватьСетевойКаталог = Истина }:
// * СетевойКаталогWindows - Строка - каталог файловой системы (локальный на сервере или сетевой).
@@ -335,14 +335,14 @@
СтруктураСклонения["Именительный"] = Представление;
Если ПараметрыСклонения.ЭтоФИО Тогда
ВидПредставленияФИО = ВидПредставленияФИО();
ПреобразоватьФИОДляСклонения(Представление, ВидПредставленияФИО);
ОписанияСловФИО = Новый Соответствие;
ПреобразоватьФИОДляСклонения(Представление, ОписанияСловФИО);
КонецЕсли;
Для Каждого ИмяПадежа Из ИменаПадежей Цикл
РезультатСклонения = ПолучитьСклоненияСтроки(Представление, ОписаниеСтроки, "ПД=" + ИмяПадежа)[0];
Если ПараметрыСклонения.ЭтоФИО Тогда
ВосстановитьФИОПослеСклонения(РезультатСклонения, ВидПредставленияФИО);
ВосстановитьФИОПослеСклонения(РезультатСклонения, ОписанияСловФИО);
КонецЕсли;
СтруктураСклонения[ИмяПадежа] = РезультатСклонения;
КонецЦикла;
@@ -717,64 +717,89 @@
КонецПроцедуры
Функция ВидПредставленияФИО()
Структура = Новый Структура("ВРег, НРег");
Структура.ВРег = Ложь;
Структура.НРег = Ложь;
Функция ПредставлениеСлова()
Структура = Новый Структура;
Структура.Вставить("ВариантРегистра");
Структура.Вставить("Разделители", "");
Возврат Структура;
КонецФункции
Процедура ПреобразоватьФИОДляСклонения(ФИО, ВидПредставления)
ДенормализоватьФИО = Ложь;
Если ФИО = ВРег(ФИО) Тогда
ДенормализоватьФИО = Истина;
ВидПредставления.ВРег = Истина;
КонецЕсли;
Если ФИО = НРег(ФИО) Тогда
ДенормализоватьФИО = Истина;
ВидПредставления.НРег = Истина;
КонецЕсли;
Если ДенормализоватьФИО Тогда
ФИО = ДенормализованноеФИО(ФИО);
КонецЕсли;
КонецПроцедуры
Функция ВидыРегистраСлова()
Возврат Новый Структура("ВРег, НРег", "ВРег", "НРег");
КонецФункции
Процедура ВосстановитьФИОПослеСклонения(ФИО, ВидПредставления)
Если ВидПредставления.ВРег Тогда
ФИО = ВРег(ФИО);
КонецЕсли;
Если ВидПредставления.НРег Тогда
ФИО = НРег(ФИО);
КонецЕсли;
КонецПроцедуры
Функция ВидРегистраСлова(Слово)
Функция ДенормализованноеФИО(ФИО)
НовоеФИО = "";
ВстретилсяРазделитель = Истина;
Для Позиция = 1 По СтрДлина(ФИО) Цикл
Если ВстретилсяРазделитель Тогда
НовоеФИО = НовоеФИО + ВРег(Сред(ФИО, Позиция, 1));
Иначе
НовоеФИО = НовоеФИО + НРег(Сред(ФИО, Позиция, 1));
КонецЕсли;
ВстретилсяРазделитель = СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(КодСимвола(ФИО, Позиция));
КонецЦикла;
Возврат НовоеФИО;
Если Слово = ВРег(Слово) Тогда
Возврат ВидыРегистраСлова().ВРег;
ИначеЕсли Слово = НРег(Слово) Тогда
Возврат ВидыРегистраСлова().НРег;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция СловоПоВидуРегистра(Слово, ВидРегистра)
Если ВидРегистра = ВидыРегистраСлова().ВРег Тогда
Возврат ВРег(Слово);
ИначеЕсли ВидРегистра = ВидыРегистраСлова().НРег Тогда
Возврат НРег(Слово);
Иначе
Возврат Слово;
КонецЕсли;
КонецФункции
Процедура ПреобразоватьФИОДляСклонения(ФИО, ПредставленияСлов)
ЧастиФИО = Новый Массив;
НачалоСлова = 1;
Для Позиция = 1 По СтрДлина(ФИО) Цикл
КодСимвола = КодСимвола(ФИО, Позиция);
Если СтроковыеФункцииКлиентСервер.ЭтоРазделительСлов(КодСимвола) Тогда
Если Позиция <> НачалоСлова Тогда
Слово = Сред(ФИО, НачалоСлова, Позиция - НачалоСлова);
ЧастиФИО.Добавить(ТРег(Слово));
ОписаниеСлова = ПредставлениеСлова();
ОписаниеСлова.ВариантРегистра = ВидРегистраСлова(Слово);
ПредставленияСлов.Вставить(ЧастиФИО.ВГраница(), ОписаниеСлова);
КонецЕсли;
ОписаниеСлова.Разделители = ОписаниеСлова.Разделители + Символ(КодСимвола);
НачалоСлова = Позиция + 1;
КонецЕсли;
КонецЦикла;
Если Позиция <> НачалоСлова Тогда
Слово = Сред(ФИО, НачалоСлова, Позиция - НачалоСлова);
ЧастиФИО.Добавить(ТРег(Слово));
ОписаниеСлова = ПредставлениеСлова();
ОписаниеСлова.ВариантРегистра = ВидРегистраСлова(Слово);
ПредставленияСлов.Вставить(ЧастиФИО.ВГраница(), ОписаниеСлова);
КонецЕсли;
ФИО = СтрСоединить(ЧастиФИО, " ");
КонецПроцедуры
Процедура ВосстановитьФИОПослеСклонения(ФИО, ПредставленияСлов)
ЧастиФИО = СтрРазделить(ФИО, " ");
Индекс= 0;
Пока Индекс < ЧастиФИО.Количество() Цикл
ОписаниеСлова = ПредставленияСлов[Индекс];
Если ОписаниеСлова <> Неопределено Тогда
ЧастиФИО[Индекс] = СловоПоВидуРегистра(ЧастиФИО[Индекс], ОписаниеСлова.ВариантРегистра) + ОписаниеСлова.Разделители;
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
ФИО = СтрСоединить(ЧастиФИО);
КонецПроцедуры
#КонецОбласти
@@ -578,16 +578,13 @@
СтандартныеРеквизиты = Новый Массив;
СтандартныеРеквизиты.Добавить(Новый Структура("Имя", "Регистратор"));
Если МетаданныеИсточника.ПланСчетов.МаксКоличествоСубконто Тогда
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетДт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетКт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетДт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СчетКт"));
Если МетаданныеИсточника.ПланСчетов.МаксКоличествоСубконто > 0 Тогда
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоДт"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","СубконтоКт"));
Иначе
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Счет"));
СтандартныеРеквизиты.Добавить(Новый Структура("Имя","Субконто"));
КонецЕсли;
Возврат СтандартныеРеквизиты;
КонецФункции
@@ -2452,8 +2452,12 @@
Объект = ОбъектВидаКонтактнойИнформации(Параметры.Имя, Истина);
Объект.ИмяПредопределенногоВида = Параметры.Имя;
Объект.Родитель = Параметры.Группа;
Объект.Используется = Параметры.Используется;
Объект.Родитель = Параметры.Группа;
Объект.Используется = Параметры.Используется;
Если ПустаяСтрока(Объект.ИмяПредопределенногоВида) Тогда
Объект.ИмяПредопределенногоВида = Объект.ИмяПредопределенныхДанных;
КонецЕсли;
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
@@ -2558,8 +2562,6 @@
|ВидРедактирования, ОбязательноеЗаполнение, РазрешитьВводНесколькихЗначений,
|ЗапретитьРедактированиеПользователем, Используется, ХранитьИсториюИзменений ,МеждународныйФорматАдреса, ИсправлятьУстаревшиеАдреса");
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
Если ЗначениеЗаполнено(Параметры.Имя) Тогда
Объект.ИмяПредопределенногоВида = Параметры.Имя;
КонецЕсли;
@@ -2568,6 +2570,8 @@
Объект.ИмяПредопределенногоВида = Объект.ИмяПредопределенныхДанных;
КонецЕсли;
УстановитьНаименованиеВидаКонтактнойИнформации(Объект, Параметры.Наименование);
Если ПустаяСтрока(Объект.Родитель) Тогда
Объект.Родитель = Параметры.Группа;
КонецЕсли;
@@ -524,6 +524,10 @@
ОписаниеЗависимогоРеквизита = Новый Структура;
ОписаниеЗависимогоРеквизита.Вставить("УсловиеОбязательностиЗаполнения", Неопределено);
Для Каждого СтрокаЗависимостей Из ЗависимостиОбязательностиЗаполнения Цикл
Если Наборы.Найти(СтрокаЗависимостей.НаборСвойств) = Неопределено Тогда
Продолжить;
КонецЕсли;
Если ТипЗнч(СтрокаЗависимостей.Реквизит) = Тип("Строка") Тогда
ПутьКРеквизиту = "Параметры.ОписаниеОбъекта." + СтрокаЗависимостей.Реквизит;
Иначе
@@ -126,7 +126,19 @@
| УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения
| И НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ)
| И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """"
| И УчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты <> """"";
| И УчетныеЗаписиЭлектроннойПочты.СерверВходящейПочты <> """"
| И ВЫБОР
| КОГДА &РазделениеВключено
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.ДатаПоследнегоИспользования, ДАТАВРЕМЯ(1,1,1)) > &ДатаМесяцНазад
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ";
Запрос.УстановитьПараметр("ДатаМесяцНазад", ДобавитьМесяц(НачалоДня(ТекущаяДатаСеанса()), - 1));
Запрос.УстановитьПараметр("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
@@ -163,6 +175,8 @@
| ПО (ПредметыПапкиВзаимодействий.Взаимодействие = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма КАК НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма
| ПО (НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.Письмо = ЭлектронноеПисьмоИсходящее.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты
| ПО (НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты = УчетныеЗаписиЭлектроннойПочты.Ссылка)
|ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """"
@@ -180,10 +194,21 @@
| ИНАЧЕ ЭлектронноеПисьмоИсходящее.ДатаАктуальностиОтправки > &ТекущаяДата
| КОНЕЦ
| И ЕСТЬNULL(НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.КоличествоПопыток, 0) < 5
| И ВЫБОР
| КОГДА &РазделениеВключено
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.ДатаПоследнегоИспользования, ДАТАВРЕМЯ(1,1,1)) > &ДатаМесяцНазад
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|ИТОГИ ПО
| УчетнаяЗапись";
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("ДатаМесяцНазад", ДобавитьМесяц(НачалоДня(ТекущаяДатаСеанса()), - 1));
Запрос.УстановитьПараметр("РазделениеВключено", ОбщегоНазначения.РазделениеВключено());
ОтправитьПисьма(Запрос, ВсеПолученныеПисьма, ПисьмаДляОпределенияПапок);
@@ -194,12 +219,18 @@
ВыборкаУчетныеЗаписи = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
УстановитьПривилегированныйРежим(Истина);
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Пока ВыборкаУчетныеЗаписи.Следующий() Цикл
УчетнаяЗапись = ВыборкаУчетныеЗаписи.УчетнаяЗапись;
Если Не ЗаблокироватьУчетнуюЗапись(УчетнаяЗапись) Тогда
Продолжить;
КонецЕсли;
Если Не РазделениеВключено Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
КонецЕсли;
Письма = Новый Массив;
СсылкиПисем = Новый Соответствие;
@@ -547,8 +578,14 @@
УстановитьПривилегированныйРежим(Истина);
РазделениеВключено = ОбщегоНазначения.РазделениеВключено();
Пока Выборка.Следующий() Цикл
Если РазделениеВключено Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(Выборка.Ссылка);
КонецЕсли;
Получено = 0;
ПолученныеПисьма = ПолученныеПисьма();
@@ -69,16 +69,19 @@
// Параметры:
// ЭлементСписок - ЭлементФормы - элемент формы, который необходимо обновить, после получения писем.
//
Процедура ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, Форма, ЭлементСписок = Неопределено) Экспорт
Процедура ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, Форма, ЭлементСписок = Неопределено, ВыводитьПрогресс = Истина) Экспорт
ДлительнаяОперация = ВзаимодействияВызовСервера.ОтправитьПолучитьПочтуПользователяВФоне(УникальныйИдентификатор);
Если ДлительнаяОперация = Неопределено Тогда
Возврат;
КонецЕсли;
Форма.ОтправкаПолучениеПисемВыполняется = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок);
ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок);
ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Неопределено);
ДополнительныеПараметры.Вставить("Форма", Форма);
Если Форма.Окно <> Неопределено Тогда
ДополнительныеПараметры.НавигационнаяСсылка = Форма.Окно.ПолучитьНавигационнуюСсылку();
КонецЕсли;
@@ -87,7 +90,11 @@
ОтправитьЗагрузитьПочтуПользователяЗавершение(ДлительнаяОперация, ДополнительныеПараметры);
ИначеЕсли ДлительнаяОперация.Статус = "Выполняется" Тогда
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
Если ВыводитьПрогресс Тогда
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
Иначе
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
КонецЕсли;
ОповещениеОЗавершении = Новый ОписаниеОповещения("ОтправитьЗагрузитьПочтуПользователяЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
КонецЕсли;
@@ -106,6 +113,8 @@
//
Процедура ОтправитьЗагрузитьПочтуПользователяЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДополнительныеПараметры.Форма.ОтправкаПолучениеПисемВыполняется = Ложь;
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -120,6 +129,8 @@
ДополнительныеПараметры.ЭлементСписок.Обновить();
КонецЕсли;
ДополнительныеПараметры.Форма.ДатаПредыдущегоПолученияОтправкиПочты = ОбщегоНазначенияКлиент.ДатаСеанса();
Заголовок = НСтр("ru = 'Отправка и получение почты'");
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатВыполнения.ЕстьОшибки Тогда
@@ -226,10 +226,17 @@
Процедура ОбработчикОповещенияФормаСписка(ИмяСобытия, Форма, Список) Экспорт
Если ИмяСобытия = "ДобавлениеУдалениеСостоянияОригиналаПервичногоДокумента" Тогда
Форма.ОтключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала");
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала", 0.2, Истина);
УчетОригиналовПервичныхДокументовВызовСервера.ЗаполнитьСписокВыбораСостоянийОригинала(Форма.СписокВыбораСостоянийОригинала);
Форма.ОбновитьОтображениеДанных();
СтруктураПоиска = Новый Структура;
СтруктураПоиска.Вставить("СписокВыбораСостоянийОригинала", Неопределено);
ЗаполнитьЗначенияСвойств(СтруктураПоиска, Форма);
Если СтруктураПоиска.СписокВыбораСостоянийОригинала<> Неопределено Тогда
Форма.ОтключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала");
Форма.ПодключитьОбработчикОжидания("Подключаемый_ОбновитьКомандыСостоянияОригинала", 0.2, Истина);
УчетОригиналовПервичныхДокументовВызовСервера.ЗаполнитьСписокВыбораСостоянийОригинала(Форма.СписокВыбораСостоянийОригинала);
Форма.ОбновитьОтображениеДанных();
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ИмяСобытия = "ИзменениеСостоянияОригиналаПервичногоДокумента" Тогда
Список.Обновить();
КонецЕсли;
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="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>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="96d8de2b-2b19-4c2d-867d-8d9451defa67"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="6be4e2ac-5b85-48db-8141-176ab141180e"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="44cb9621-dbaf-4a54-b72b-cbebd944fee3"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="f15172f7-beaa-4807-9f4c-35a2e37af66e"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="5fe994bb-b1a8-43b1-8d7b-d51de5d9cbe6"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6b44f7e2-9ef0-459c-be33-a5aa50621201"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="0b1552ab-be19-45e2-9b86-55efcacf5367"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b5508eca-5174-4c13-86b6-53266297f0a6"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a042a05f-211b-4ff8-a6c3-dbb9fda9704b"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="51c015f7-de3c-4091-a99a-1df8eeafef81"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="9a202468-714b-4006-9ac3-c4561ccb8bcb"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="928dc5e3-9176-4fbf-add6-03fd3c7e4c07"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="1ba54629-5681-44c3-b41c-20983794e47f"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="9def6189-35ed-4646-84e6-ca468c9d2661"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.3.203</version>
<version>3.1.3.216</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<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">
<name>ВыполнениеОбменаДанными</name>
<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">
<name>ЗапросПароляПользователя</name>
<id>53</id>
@@ -2861,6 +2989,19 @@
<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>
<formCommands>
<name>ПерейтиВЖурналРегистрации</name>
<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">
<segments>Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ПроцедураЗаполненияДанныхОбновленияПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ПроцедураЗаполненияДанныхОбновленияРасширеннаяПодсказка</name>
<id>32</id>
@@ -4964,6 +4968,35 @@
<common>true</common>
</edit>
</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>
<name>ЗаписатьИЗакрыть</name>
<title>
@@ -5040,7 +5073,7 @@
<id>4</id>
<toolTip>
<key>ru</key>
<value>Заполнить Кофликтующий</value>
<value>Заполнить Конфликтующий</value>
</toolTip>
<use>
<common>true</common>
@@ -46,7 +46,7 @@
Заголовок = ПроцедураОбработки;
АвтоЗаголовок = Ложь;
КонецЕсли;
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло);
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло, МножественноеЧисло);
Элементы.Обработчик1.РасширеннаяПодсказка.Заголовок = Объект.ОбработчикиОбновления[0].Комментарий;
СодержитОбъектМетаданных = Новый Структура("ЧитаемыеОбъекты,ИзменяемыеОбъекты,БлокируемыеОбъекты");
@@ -90,6 +90,8 @@
УстановитьОтметкуНезаполненногоМонопольногоОбработчика();
УстановитьОтметкуНезаполненногоПроцедураПроверки();
ЗаполнитьОбщиеМодули();
КонецПроцедуры
&НаКлиенте
@@ -187,11 +189,19 @@
&НаКлиенте
Процедура ПроцедураПриИзменении(Элемент)
ПроцедураОбработки = Объект.ОбработчикиОбновления[0].Процедура;
Если НЕ ПустаяСтрока(ПроцедураОбработки) Тогда
Заголовок = ПроцедураОбработки;
Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].Процедура) Тогда
АвтоЗаголовок = Ложь;
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(ПроцедураОбработки, ЕдинственноеЧисло);
ОсновнойОбъектМетаданных = ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].Процедура, ЕдинственноеЧисло, МножественноеЧисло);
Заголовок = Объект.ОбработчикиОбновления[0].Процедура;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроцедураЗаполненияДанныхОбновленияПриИзменении(Элемент)
Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления) Тогда
ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].ПроцедураЗаполненияДанныхОбновления, ЕдинственноеЧисло, МножественноеЧисло);
КонецЕсли;
КонецПроцедуры
@@ -200,6 +210,9 @@
Процедура ПроцедураПроверкиПриИзменении(Элемент)
Элементы.ПроцедураПроверки.ОтметкаНезаполненного = Не ЗначениеЗаполнено(Объект.ОбработчикиОбновления[0].ПроцедураПроверки);
Если НЕ ПустаяСтрока(Объект.ОбработчикиОбновления[0].ПроцедураПроверки) Тогда
ИмяОсновногоОбъектаМетаданных(Объект.ОбработчикиОбновления[0].ПроцедураПроверки, ЕдинственноеЧисло, МножественноеЧисло);
КонецЕсли;
КонецПроцедуры
@@ -606,15 +619,28 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ИмяОсновногоОбъектаМетаданных(ИмяПроцедуры, ЕдинственноеЧисло)
Функция ИмяОсновногоОбъектаМетаданных(ИмяПроцедуры, ЕдинственноеЧисло, МножественноеЧисло)
ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
ПолноеИмяОбъекта = "";
Если ЧастиИмени.Количество() = 2 Тогда
ПолноеИмяОбъекта = "ОбщийМодуль." + ЧастиИмени[0];
ИначеЕсли ЧастиИмени.Количество() = 3 Тогда
Попытка
ЧастиИмени[0] = ЕдинственноеЧисло[ЧастиИмени[0]];
Исключение
#Если Клиент Тогда
КодОсновногоЯзыка = ОбщегоНазначенияКлиент.КодОсновногоЯзыка();
#КонецЕсли
#Если Сервер Тогда
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
#КонецЕсли
ТекстСообщения = НСтр("ru = 'Не удалось распознать вид объекта метаданных ""%1""
|Вид объекта должен быть во множественном числе.'", КодОсновногоЯзыка);
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, ЧастиИмени[0]);
ВызватьИсключение ТекстСообщения;
КонецПопытки;
ЧастиИмени.Удалить(ЧастиИмени.ВГраница());
ЧастиИмени[0] = ЕдинственноеЧисло[ЧастиИмени[0]];
ПолноеИмяОбъекта = СтрСоединить(ЧастиИмени, ".");
КонецЕсли;
Возврат ПолноеИмяОбъекта;
@@ -694,7 +720,11 @@
Если ЗначениеЗаполнено(ПредставлениеОбъекта.ОбъектМетаданных) Тогда
ЧастиИмени = СтрРазделить(ПредставлениеОбъекта.ОбъектМетаданных, ".");
Если ЧастиИмени.Количество() > 0 Тогда
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]];
Если ЧастиИмени[0] = "ОбщийМодуль" Тогда
ЧастиИмени.Удалить(0);
Иначе
ЧастиИмени[0] = МножественноеЧисло[ЧастиИмени[0]];
КонецЕсли;
ИмяОбъекта = СтрСоединить(ЧастиИмени, ".");
ОбновитьИмяПроцедуры("Процедура", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ОбработатьДанныеДляПереходаНаНовуюВерсию");
ОбновитьИмяПроцедуры("ПроцедураЗаполненияДанныхОбновления", ИмяОбъекта, ДополнительныеПараметры.ПредыдущееЗначение, "ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию");
@@ -717,7 +747,11 @@
ИначеЕсли НЕ ПустаяСтрока(ПредыдущееИмяОбъекта) Тогда
ЧастиИмени = СтрРазделить(ПредыдущееИмяОбъекта, ".");
Если ЧастиИмени.Количество() > 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]];
ИмяОбъекта = СтрСоединить(Имена, ".");
Реквизиты = РеквизитыОбъектаМетаданных(ИмяОбъекта);
ДополнительныеПараметры = Новый Структура("ИмяТаблицы, ИмяОбъекта", ИмяТаблицы, ИмяОбъекта);
ОбработчикВыбора = Новый ОписаниеОповещения("ЗавершениеВыбораОбъектаМетаданных", ЭтотОбъект, ДополнительныеПараметры);
Реквизиты.ПоказатьВыборЭлемента(ОбработчикВыбора, НСтр("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
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область ОписаниеПеременных
&НаКлиенте
Перем ПростойЗаголовокПроцедурыОписания;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
@@ -716,6 +723,7 @@
Процедура ЗаписатьДанныеНаДиск(ВсеОбработчики = Ложь)
ОчиститьСообщения();
ПростойЗаголовокПроцедурыОписания = "Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт";
ПараметрыГенерацииКода = НовыеПараметрыГенерацииКода();
ПараметрыГенерацииКода.ТолькоИзмененные = НЕ ВсеОбработчики;
ТекстыМодулей = ПолучитьТекстыМодулей(ПараметрыГенерацииКода);
@@ -766,26 +774,35 @@
Возврат Истина;
КонецЕсли;
ЕстьПроцедураОписания = Ложь;
ЕстьПроцедураОписания = СтрокиМодуля.Найти(ПростойЗаголовокПроцедурыОписания) <> Неопределено
ИЛИ СтрокиМодуля.Найти("Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт") <> Неопределено;
ЕстьБиблиотечнаяПроцедураОписания = Ложь;
Если Код.ЭтоПроцедураОписания Тогда
Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрокиМодуля.Найти(ЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьПроцедураОписания = Истина;
ШаблонЗаголовка = "Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт";
НайденныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ИмяБиблиотеки);
Если СтрокиМодуля.Найти(НайденныйЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьБиблиотечнаяПроцедураОписания = Истина;
Прервать;
КонецЕсли;
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрокиМодуля.Найти(ЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьПроцедураОписания = Истина;
// "Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт"
ШаблонЗаголовка = СтрЗаменить(ПростойЗаголовокПроцедурыОписания, "(", "%1(");
НайденныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонЗаголовка, ИмяБиблиотеки);
Если СтрокиМодуля.Найти(НайденныйЗаголовокПроцедуры) <> Неопределено Тогда
ЕстьБиблиотечнаяПроцедураОписания = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ЕстьПереданнаяПроцедура = СтрокиМодуля.Найти(Код.ЗаголовокПроцедуры) <> Неопределено;
ПереданаПростаяПроцедура = Код.ЗаголовокПроцедуры = ПростойЗаголовокПроцедурыОписания;
// Если процедура уже есть - уходим
Если СтрокиМодуля.Найти(Код.ЗаголовокПроцедуры) <> Неопределено
ИЛИ СтрокиМодуля.Найти("Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт") <> Неопределено
ИЛИ ЕстьПроцедураОписания Тогда
Если ЕстьПереданнаяПроцедура
ИЛИ ЕстьПроцедураОписания
ИЛИ ЕстьБиблиотечнаяПроцедураОписания И ПереданаПростаяПроцедура Тогда
Возврат ДобавленаПроцедура;
КонецЕсли;
@@ -903,15 +920,13 @@
НовыйМодуль = Новый ТекстовыйДокумент;
НовыйТекстПроцедуры = СтрРазделить(Код.ТекстПроцедуры, Символы.ПС);
ЗаголовокПроцедуры = НовыйТекстПроцедуры[0];
ОкончаниеПроцедуры = НовыйТекстПроцедуры[НовыйТекстПроцедуры.ВГраница()];
УстановитьВерсию = ЗначениеЗаполнено(Код.Версия);
ВыполненаЗамена = Ложь;
УстановленаВерсия = Ложь;
ЭтоТекстЗаменяемойПроцедуры = Ложь;
ЭтоПроцедураВерсии = Ложь;
ЭтоМодульОбновления = СтрНачинаетсяС(Код.ИмяМодуля, "ОбновлениеИнформационнойБазы");
#Если НЕ ВебКлиент Тогда
Модуль = Новый ЧтениеТекста;
Модуль.Открыть(ПолноеИмяФайла, "UTF-8");
@@ -943,7 +958,7 @@
#КонецОбласти
#Область ЗаменитьКомментарий
// АПК:1297-выкл строки для вставки в описание процедур.
// АПК:1297-выкл комментарий в коде конфигурации
Если Код.ЭтоПроцедураОписания
И СтрНайти(СтрокаМодуля, "--// Добавляет в список процедуры-обработчики обновления данных ИБ") > 0 Тогда
СтрокаМодуля = ПропуститьСтрокиДо(Модуль, "Обработчики - см. ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления");
@@ -956,30 +971,36 @@
#КонецОбласти
#Область ПриДобавленииОбработчиковОбновления
ЭтоПроцедураОписания = Ложь;
ЭтоБиблиотечнаяПроцедураОписания = Ложь;
БиблиотечныйЗаголовокПроцедуры = Код.ЗаголовокПроцедуры;
Если НЕ ВыполненаЗамена
И Код.ЭтоПроцедураОписания
И (СтрНайти(СтрокаМодуля, "Процедура ОписаниеОбработчиковОбновления") > 0
ИЛИ СтрНайти(СтрокаМодуля, "Процедура ПриДобавленииОбработчиковОбновления") > 0)
И СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) = 0 Тогда
И СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) = 0 Тогда
Для Каждого ИмяБиблиотеки Из Код.ИменаБиблиотек Цикл
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) > 0 Тогда
ЭтоПроцедураОписания = Истина;
БиблиотечныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ОписаниеОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) > 0 Тогда
ЭтоБиблиотечнаяПроцедураОписания = Истина;
Прервать;
КонецЕсли;
ЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, ЗаголовокПроцедуры) > 0 Тогда
ЭтоПроцедураОписания = Истина;
БиблиотечныйЗаголовокПроцедуры = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("Процедура ПриДобавленииОбработчиковОбновления%1(Обработчики) Экспорт", ИмяБиблиотеки);
Если СтрНайти(СтрокаМодуля, БиблиотечныйЗаголовокПроцедуры) > 0 Тогда
ЭтоБиблиотечнаяПроцедураОписания = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СокрЛП(СтрокаМодуля) = ЗаголовокПроцедуры
ИЛИ (Код.ЭтоПроцедураОписания И СокрЛП(СтрокаМодуля) = "Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт")
ИЛИ ЭтоПроцедураОписания Тогда
ЭтоТекстЗаменяемойПроцедуры = Истина;
Если СокрЛП(СтрокаМодуля) = Код.ЗаголовокПроцедуры
ИЛИ (НЕ ЭтоМодульОбновления
И Код.ЭтоПроцедураОписания
И (СокрЛП(СтрокаМодуля) = ПростойЗаголовокПроцедурыОписания
ИЛИ СокрЛП(СтрокаМодуля) = "Процедура ОписаниеОбработчиковОбновления(Обработчики) Экспорт"))
ИЛИ ЭтоБиблиотечнаяПроцедураОписания
И Код.ЭтоПроцедураОписания
И (Код.ЗаголовокПроцедуры = БиблиотечныйЗаголовокПроцедуры
ИЛИ Код.ЗаголовокПроцедуры = ПростойЗаголовокПроцедурыОписания) Тогда
ВыполненаЗамена = Истина;
Для Каждого НоваяСтрока Из НовыйТекстПроцедуры Цикл
НовыйМодуль.ДобавитьСтроку(НоваяСтрока);
@@ -995,7 +1016,7 @@
Модуль.Закрыть();
#КонецЕсли
ИмяПроцедуры = ИмяПроцедуры(ЗаголовокПроцедуры);
ИмяПроцедуры = ИмяПроцедуры(Код.ЗаголовокПроцедуры);
Если УстановленаВерсия Тогда
Шаблон = НСтр("ru = 'В модуле ""%1"" установлена новая версия ""%2""'");
ОбщегоНазначенияКлиент.СообщитьПользователю(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Код.ИмяМодуля, Код.Версия));
@@ -3834,11 +3855,12 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьНомерСборкиОбработчикамНаСервере(НомерСборки)
Процедура УстановитьНомерСборкиОбработчикамНаСервере(НовыйНомерСборки)
Обработка = ОбъектОбработки();
МаксНомерРедакции = 0;
МаксНомерПодРедакции = 0;
НомераВерсииКонфигурации = СтрРазделить(ВерсияКонфигурации, ".");
МаксНомерРедакции = Число(НомераВерсииКонфигурации[1]);
МаксНомерПодРедакции = Число(НомераВерсииКонфигурации[2]);
ОбработчикиОднойБиблиотеки = Истина;
УстановленаВерсия = Новый Массив;
ПодсистемаПредыдущего = Неопределено;
@@ -3850,7 +3872,9 @@
Если СтрЧислоВхождений(Обработчик.Версия, ".") = 3 Тогда
НомераВерсии = СтрРазделить(Обработчик.Версия, ".");
НомераВерсии[3] = Формат(НомерСборки, "ЧН=0; ЧГ=0");
ТекущийНомерСборки = Формат(НомераВерсии[3], "ЧН=0; ЧГ=0");
НомераВерсии[3] = Формат(НовыйНомерСборки, "ЧН=0; ЧГ=0");
Обработчик.Версия = СтрСоединить(НомераВерсии, ".");
Обработчик.ВерсияЧислом = Обработка.ВерсияЧислом(Обработчик.Версия);
Обработчик.Изменен = Истина;
@@ -1486,7 +1486,7 @@
КонецЦикла;
ВызватьИсключение НСтр("ru = 'При построении очереди отложенных обработчиков обнаружены ошибки.
|Необходимо их исправить с помощью встроенной обработки ""Описание обработчиков обновления"".
|Для этого требуется сохранить и запустить обработку как внешнюю.
|Для этого требуется запустить конфигурацию с параметром запуска ""ОтключитьЛогикуНачалаРаботыСистемы"".
|Ошибки перечислены в журнале регистрации.'");
Иначе
Для Каждого Ошибка Из Ошибки Цикл
@@ -1605,7 +1605,7 @@
// Возвращаемое значение:
// Строка
//
Функция РазностьВремени(ВремяКон, ВремяНач = 0, СтруктураВремени = Неопределено) Экспорт
Функция РазностьВремени(ВремяКон, ВремяНач = 0, СтруктураВремени = Неопределено)
Разность = ВремяКон - ВремяНач;
РазностьВремениСек = Макс(-Разность,Разность);
Часы = Цел(РазностьВремениСек/3600);
@@ -71,7 +71,7 @@
ТипыИнтеграции.Вставить(ТипИнтеграции.Тип, ТипИнтеграции);
КонецЦикла;
Для каждого Интеграция Из СистемаВзаимодействия.ПолучитьИнтеграции() Цикл
Для каждого Интеграция Из Вычислить("СистемаВзаимодействия.ПолучитьИнтеграции()") Цикл
Категория = ТипыИнтеграции[Интеграция.ТипВнешнейСистемы];
Если Категория <> Неопределено Тогда
@@ -12,7 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Идентификатор <> Неопределено Тогда
ОписаниеИнтеграции = СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор);
ОписаниеИнтеграции = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор)");
Если ОписаниеИнтеграции <> Неопределено Тогда
Наименование = ОписаниеИнтеграции.Представление;
Токен = ОписаниеИнтеграции.ПараметрыВнешнейСистемы.Получить("token");
@@ -12,7 +12,7 @@
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Идентификатор <> Неопределено Тогда
ОписаниеИнтеграции = СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор);
ОписаниеИнтеграции = Вычислить("СистемаВзаимодействия.ПолучитьИнтеграцию(Параметры.Идентификатор)");
Если ОписаниеИнтеграции <> Неопределено Тогда
Наименование = ОписаниеИнтеграции.Представление;
@@ -150,18 +150,16 @@
ОбъектыСЗапретомУдаления = ПакетУдаляемыхОбъектов();
Для Каждого ЭлементОчереди Из УдаляемыеОбъекты Цикл
Если Пакет.Найти(ЭлементОчереди.УдаляемыйСсылка,"УдаляемыйСсылка") <> Неопределено Тогда
Продолжить;
КонецЕсли;
ЭлементОчередиВПакете = ЭлементОчередиВПакет(ЭлементОчереди, СведенияОМетаданных, Пакет);
Если ЗапрещенаОбработкаЭлемента(ЭлементОчередиВПакете) Тогда
ОбъектыСЗапретомУдаления = ОбъединениеТаблиц(
Если НЕ Пакет.Найти(ЭлементОчереди.УдаляемыйСсылка,"УдаляемыйСсылка") <> Неопределено Тогда
ЭлементОчередиВПакете = ЭлементОчередиВПакет(ЭлементОчереди, СведенияОМетаданных, Пакет);
Если ЗапрещенаОбработкаЭлемента(ЭлементОчередиВПакете) Тогда
ОбъектыСЗапретомУдаления = ОбъединениеТаблиц(
ОбъектыСЗапретомУдаления,
ЭлементОчередиВПакете);
Иначе
Пакет = ОбъединениеТаблиц(Пакет, ЭлементОчередиВПакете, Истина);
Иначе
Пакет = ОбъединениеТаблиц(Пакет, ЭлементОчередиВПакете, Истина);
КонецЕсли;
КонецЕсли;
Если Пакет.Количество() >= ПараметрыУдаления.РазмерПакета
@@ -833,8 +833,8 @@
ТекстПредупреждения = НСтр("ru = 'Для установки обновления необходимо ввести параметры администрирования.'");
ПоказатьПредупреждение(, ТекстПредупреждения);
ТекстСообщения = НСтр("ru = 'Не удалось установить обновление программы, т.к. не были введены
|корректные параметры администрирования информационной базы.'");
ТекстСообщения = НСтр("ru = 'Не удалось установить обновление программы, т.к. введены неправильные имя или пароль администратора
|(или другие параметры администрирования клиент-серверной информационной базы).'");
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ОбновлениеКонфигурацииКлиент.СобытиеЖурналаРегистрации(), "Ошибка", ТекстСообщения);
КонецЕсли;
@@ -7091,6 +7091,10 @@
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>BeforeClose</event>
<name>ПередЗакрытием</name>
</handlers>
<handlers>
<event>OnLoadDataFromSettingsAtServer</event>
<name>ПриЗагрузкеДанныхИзНастроекНаСервере</name>
@@ -8472,6 +8476,60 @@
<common>true</common>
</edit>
</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>
<name>УстановитьВариантНавигацииПоПредмету</name>
<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,12 +2004,13 @@
Элементы.СписокКонтекстноеМенюПеренестиВПапку.Видимость = ЭтоПапки;
Элементы.ПолученоОтправлено.Видимость = ЭтоПапки;
Элементы.Размер.Видимость = ЭтоПапки;
Элементы.СписокСоздатьЭлектронноеПисьмоОтдельнаяКнопка.Видимость = ЭтоПапки ИЛИ ТолькоПочта;
Элементы.СписокОтветить.Видимость = ЭтоПапки ИЛИ ТолькоПочта;
Элементы.СписокОтветитьВсем.Видимость = ЭтоПапки ИЛИ ТолькоПочта;
Элементы.СписокПереслать.Видимость = ЭтоПапки ИЛИ ТолькоПочта;
Элементы.СписокОтправитьПолучитьПочту.Видимость = (ЭтоПапки ИЛИ ТолькоПочта) И ИнформационнаяБазаФайловая;
Элементы.СписокСоздатьЭлектронноеПисьмоОтдельнаяКнопка.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтветить.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтветитьВсем.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокПереслать.Видимость = ЭтоПапки Или ТолькоПочта;
Элементы.СписокОтправитьПолучитьПочту.Видимость = (ЭтоПапки Или ТолькоПочта)
И (ИнформационнаяБазаФайловая Или РазделениеВключено);
Элементы.Дата.Видимость = НЕ ЭтоПапки;
Элементы.ГруппаСоздать.Видимость = НЕ ЭтоПапки И НЕ ТолькоПочта;
Элементы.СписокКонтекстноеМенюСкопировать.Видимость = Не ЭтоПапки И Не ТолькоПочта;
@@ -2764,10 +2818,18 @@
| ПО (НеРассмотреноПапки.Папка = ПапкиЭлектронныхПисем.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты КАК НастройкиУчетныхЗаписейЭлектроннойПочты
| ПО (ПапкиЭлектронныхПисем.Владелец = НастройкиУчетныхЗаписейЭлектроннойПочты.УчетнаяЗаписьЭлектроннойПочты)
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Пользователи КАК Пользователи
| ПО УчетныеЗаписиЭлектроннойПочты.ВладелецУчетнойЗаписи = Пользователи.Ссылка
| И (ПапкиЭлектронныхПисем.Владелец = УчетныеЗаписиЭлектроннойПочты.Ссылка)
|ГДЕ
| НЕ ЕСТЬNULL(НастройкиУчетныхЗаписейЭлектроннойПочты.НеИспользоватьВоВстроенномПочтовомКлиенте, ЛОЖЬ)
| И НЕ ПапкиЭлектронныхПисем.ПометкаУдаления
| И НЕ УчетныеЗаписиЭлектроннойПочты.ПометкаУдаления
| И ВЫБОР
| КОГДА &РольПолныеПравДоступна
| ТОГДА ИСТИНА
| ИНАЧЕ (НЕ ЕСТЬNULL(Пользователи.Недействителен, ЛОЖЬ)) ИЛИ УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляОтправки ИЛИ УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляПолучения
| КОНЕЦ
|
|УПОРЯДОЧИТЬ ПО
| ЗначениеУпорядочивания,
@@ -4182,4 +4244,29 @@
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьПолучитьПочтуПользователяКлиент(ВыводитьПрогресс = Ложь)
ОчиститьСообщения();
УправлениеЭлектроннойПочтойКлиент.ОтправитьЗагрузитьПочтуПользователя(УникальныйИдентификатор, ЭтотОбъект, Элементы.Список, ВыводитьПрогресс);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНеобходимостьОтправкиПолученияПочты()
Если Не РазделениеВключено Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаПолучениеПисемВыполняется
И (ОбщегоНазначенияКлиент.ДатаСеанса() > ДатаПредыдущегоПолученияОтправкиПочты + 300) Тогда
ОтправитьПолучитьПочтуПользователяКлиент();
КонецЕсли;
ПодключитьОбработчикОжидания("ПроверитьНеобходимостьОтправкиПолученияПочты", 30, Истина);
КонецПроцедуры
#КонецОбласти
@@ -106,15 +106,14 @@
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ПредыдущаяПометкаУдаления = Ложь;
Если Не ЭтоНовый() Тогда
ПредыдущаяПометкаУдаления = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ПометкаУдаления");
КонецЕсли;
ДополнительныеСвойства.Вставить("ПометкаУдаления", ПредыдущаяПометкаУдаления);
ДанныеОбъектаДоЗаписи = ДанныеОбъектаДоЗаписи();
Если ПометкаУдаления <> ПредыдущаяПометкаУдаления Тогда
ДополнительныеСвойства.Вставить("ПометкаУдаления", ДанныеОбъектаДоЗаписи.ПометкаУдаления);
ДополнительныеСвойства.Вставить("СтатусПисьма", ДанныеОбъектаДоЗаписи.СтатусПисьма);
Если ПометкаУдаления <> ДанныеОбъектаДоЗаписи.ПометкаУдаления Тогда
ЕстьВложения = ?(ПометкаУдаления, Ложь, РаботаСФайламиСлужебныйВызовСервера.КоличествоПрисоединенныхФайлов(Ссылка) > 0);
КонецЕсли;
КонецЕсли;;
КонецПроцедуры
@@ -127,6 +126,18 @@
Взаимодействия.ПриЗаписиДокумента(ЭтотОбъект);
Взаимодействия.ОтработатьПризнакИзмененияПометкиУдаленияПриЗаписиПисьма(ЭтотОбъект);
ПредыдущийСтатус = ДополнительныеСвойства.СтатусПисьма;
Если ЗначениеЗаполнено(УчетнаяЗапись)
И (СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее
Или СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено)
И (ПредыдущийСтатус <> Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Исходящее
И ПредыдущийСтатус <> Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено) Тогда
РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись);
КонецЕсли;
КонецПроцедуры
Процедура ПередУдалением(Отказ)
@@ -435,6 +446,43 @@
КонецПроцедуры
Функция ДанныеОбъектаДоЗаписи()
ДанныеОбъекта = Новый Структура;
ДанныеОбъекта.Вставить("ПометкаУдаления", Ложь);
ДанныеОбъекта.Вставить("СтатусПисьма", Перечисления.СтатусыИсходящегоЭлектронногоПисьма.ПустаяСсылка());
Если Не ЭтоНовый() Тогда
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.ПометкаУдаления КАК ПометкаУдаления,
| ЭлектронноеПисьмоИсходящее.СтатусПисьма КАК СтатусПисьма
|ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
|ГДЕ
| ЭлектронноеПисьмоИсходящее.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
ЗаполнитьЗначенияСвойств(ДанныеОбъекта, Выборка);
КонецЕсли;
КонецЕсли;
Возврат ДанныеОбъекта;
КонецФункции
#КонецОбласти
#Иначе
@@ -314,22 +314,8 @@
И ОбщегоНазначения.РазделениеВключено()
И ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных()
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОбменДаннымиВМоделиСервиса") Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ
| НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию КАК ВидТранспортаСообщенийОбменаПоУмолчанию
|ИЗ
| РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспортаОбластейДанных
| ПО (НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента)
|ГДЕ
| НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент");
Запрос.УстановитьПараметр("Корреспондент", Корреспондент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВидТранспортаСообщений = Выборка.ВидТранспортаСообщенийОбменаПоУмолчанию;
КонецЕсли;
МодульНастройкиТранспортаОбмена = ОбщегоНазначения.ОбщийМодуль("РегистрыСведений.НастройкиТранспортаОбменаОбластейДанных");
ВидТранспортаСообщений = МодульНастройкиТранспортаОбмена.ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент);
КонецЕсли;
Возврат ВидТранспортаСообщений;
@@ -71,6 +71,29 @@
КонецФункции
Функция ВидТранспортаСообщенийОбменаПоУмолчанию(Корреспондент) Экспорт
ВидТранспортаСообщений = Неопределено;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| НастройкиТранспортаОбластейДанных.ВидТранспортаСообщенийОбменаПоУмолчанию КАК ВидТранспортаСообщенийОбменаПоУмолчанию
|ИЗ
| РегистрСведений.НастройкиТранспортаОбменаОбластиДанных КАК НастройкиТранспортаОбластиДанных
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиТранспортаОбменаОбластейДанных КАК НастройкиТранспортаОбластейДанных
| ПО (НастройкиТранспортаОбластейДанных.КонечнаяТочкаКорреспондента = НастройкиТранспортаОбластиДанных.КонечнаяТочкаКорреспондента)
|ГДЕ
| НастройкиТранспортаОбластиДанных.Корреспондент = &Корреспондент");
Запрос.УстановитьПараметр("Корреспондент", Корреспондент);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ВидТранспортаСообщений = Выборка.ВидТранспортаСообщенийОбменаПоУмолчанию;
КонецЕсли;
Возврат ВидТранспортаСообщений;
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -64,6 +64,10 @@
ТекущийОбъект.ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = ?(ОбработкаПисемВыполняетсяВДругомПочтовомКлиенте = 1, Истина, Ложь);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ТекущийОбъект.ДатаПоследнегоИспользования = ТекущаяДатаСеанса();
КонецЕсли;
ПриСозданииЧтенииНаСервере();
КонецПроцедуры
@@ -31,4 +31,70 @@
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
// Обновляет дату использования учетной записи в регистре.
//
// Параметры:
// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, для которой выполняется обновление.
// ДатаИспользования - Дата - дата использования учетной записи. Если не передана, то устанавливается текущая дата.
//
Процедура ОбновитьДатуИспользованияУчетнойЗаписи(УчетнаяЗапись, ДатаИспользования = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НастройкиУчетныхЗаписейЭлектроннойПочты");
ЭлементБлокировки.УстановитьЗначение("УчетнаяЗаписьЭлектроннойПочты", УчетнаяЗапись);
НаборЗаписей = РегистрыСведений.НастройкиУчетныхЗаписейЭлектроннойПочты.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.УчетнаяЗаписьЭлектроннойПочты.Установить(УчетнаяЗапись);
Если ДатаИспользования = Неопределено Тогда
ДатаИспользования = НачалоДня(ТекущаяДатаСеанса());
КонецЕсли;
ТребуетсяЗапись = Ложь;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
НаборЗаписей.Прочитать();
Если НаборЗаписей.Количество() > 0 Тогда
Если НаборЗаписей[0].ДатаПоследнегоИспользования <> ДатаИспользования Тогда
НаборЗаписей[0].ДатаПоследнегоИспользования = ДатаИспользования;
ТребуетсяЗапись = Истина;
КонецЕсли;
Иначе
ЗаписьНабора = НаборЗаписей.Добавить();
ЗаписьНабора.ДатаПоследнегоИспользования = ДатаИспользования;
ЗаписьНабора.УчетнаяЗаписьЭлектроннойПочты = УчетнаяЗапись;
ТребуетсяЗапись = Истина;
КонецЕсли;
Если ТребуетсяЗапись Тогда
НаборЗаписей.Записать();
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -372,6 +372,24 @@
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</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">
<name>УчетнаяЗаписьЭлектроннойПочты</name>
<synonym>
@@ -224,6 +224,11 @@
ИнтеграцияПодсистемБСП.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ПередЗагрузкойВариантаНаСервере(Контекст, Настройки);
ИначеЕсли ТипЗнч(Контекст) = Тип("Структура") Тогда
АдресСхемы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(Контекст, "АдресСхемы");
Если Не ЭтоАдресВременногоХранилища(АдресСхемы) Тогда
Контекст.Вставить("АдресСхемы", ПоместитьВоВременноеХранилище(Схема, Новый УникальныйИдентификатор));
КонецЕсли;
КонецЕсли;
Иначе
Отчеты.УниверсальныйОтчет.УстановитьФиксированныеПараметры(
@@ -3,93 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<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>
<name>Constant.ПараметрыАдминистрированияИБ</name>
<right>
@@ -2352,6 +2265,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name>
<right>
@@ -3947,6 +3947,17 @@
<value>true</value>
</right>
</object>
<object>
<name>Report.ИспользуемыеВнешниеРесурсы</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.БуферОперацийСтатистики</name>
<right>
@@ -14,6 +14,13 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -45,13 +52,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -33,45 +33,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ШаблоныАнкет</name>
<right>
@@ -3211,6 +3172,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.ИмпортЗамеровПроизводительности</name>
<right>
@@ -5439,6 +5439,17 @@
<value>false</value>
</right>
</object>
<object>
<name>Report.ИспользуемыеВнешниеРесурсы</name>
<right>
<name>Use</name>
<value>false</value>
</right>
<right>
<name>View</name>
<value>false</value>
</right>
</object>
<object>
<name>Document.СогласиеНаОбработкуПерсональныхДанных</name>
<right>
@@ -5695,18 +5706,10 @@
</object>
<object>
<name>InformationRegister.ОбщиеПоставляемыеМакетыПечати</name>
<right>
<name>Read</name>
<value>false</value>
</right>
<right>
<name>Update</name>
<value>false</value>
</right>
<right>
<name>View</name>
<value>false</value>
</right>
<right>
<name>Edit</name>
<value>false</value>
@@ -79,11 +79,20 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса",
Параметры,
Ключ);
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка
@@ -136,11 +145,19 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса",
Параметры,
Ключ);
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда
@@ -101,11 +101,20 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса",
Параметры,
Ключ);
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка
@@ -158,11 +167,19 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса",
Параметры,
Ключ);
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда
@@ -131,10 +131,20 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазеИзНеразделенногоСеанса",
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяПервойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВПервойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда
Попытка
@@ -187,10 +197,19 @@
Параметры = Новый Массив;
Параметры.Добавить(ИндексСтрокиСценария);
Параметры.Добавить(СценарийОбменаДанными);
Параметры.Добавить(СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазеИзНеразделенногоСеанса",
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, СтрокаСценария.ЗначениеРазделителяВторойИнформационнойБазы);
УстановитьПривилегированныйРежим(Ложь);
ФоновыеЗадания.Выполнить("ОбменДаннымиВМоделиСервиса.ВыполнитьДействиеСценарияОбменаДаннымиВоВторойИнформационнойБазе",
Параметры, Ключ);
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
ИначеЕсли РежимОбмена = "Автоматический" Тогда