2_3_6_121

This commit is contained in:
Компания 1С committed 2017-11-09 23:20:00 +03:00
1 parent c3f46a0b7f
commit 9fc95bafc5
114 files changed
+3469 -763

No files matched your search

@@ -70,7 +70,6 @@
Возврат;
КонецЕсли;
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка);
Если ДополнительныеСвойства.Свойство("ОбновитьКурсы") Тогда
ПараметрыВалюты = Новый Структура;
@@ -89,12 +88,6 @@
ПараметрыВыполнения.ОжидатьЗавершение = 0;
ПараметрыВыполнения.ЗапуститьНеВФоне = ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.Валюты");
ЭлементБлокировки.УстановитьЗначение("Ссылка", Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Результат = ДлительныеОперации.ВыполнитьВФоне("РаботаСКурсамиВалют.ОбновитьКурсВалюты", ПараметрыЗадания, ПараметрыВыполнения);
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
@@ -104,6 +97,8 @@
КонецЕсли;
КонецЕсли;
РаботаСКурсамиВалют.ПроверитьКорректностьКурсаНа01_01_1980(Ссылка);
КонецПроцедуры
Процедура ПередЗаписью(Отказ)
@@ -165,8 +165,7 @@
&НаКлиенте
Процедура ПослеПодключенияИнтернетПоддержки(Результат, ДополнительныеПараметры) Экспорт
Если Не (ТипЗнч(Результат) = Тип("Структура")
И ЗначениеЗаполнено(Результат.Логин)
И ЗначениеЗаполнено(Результат.Пароль)) Тогда
И ЗначениеЗаполнено(Результат.Логин)) Тогда
Возврат;
КонецЕсли;
ЗагрузитьКлассификатор();
@@ -181,7 +180,9 @@
Если Не ИспользоватьАльтернативныйСервер Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
УстановитьПривилегированныйРежим(Истина);
ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки();
УстановитьПривилегированныйРежим(Ложь);
Возврат Не (ДанныеАутентификации <> Неопределено
И ЗначениеЗаполнено(ДанныеАутентификации.Логин)
И ЗначениеЗаполнено(ДанныеАутентификации.Пароль));
@@ -874,14 +874,14 @@
ОбновитьДоступностьРеквизитовПартнера();
Если Не ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
Возврат;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
УстановитьПривилегированныйРежим(Истина);
ИнтернетПоддержкаПользователейПодключена =
МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки() <> Неопределено;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
ИнтернетПоддержкаПользователейПодключена =
МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки() <> Неопределено;
КонецПроцедуры
&НаСервере
@@ -2401,7 +2401,9 @@
КонецЕсли;
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
УстановитьПривилегированныйРежим(Истина);
Результат = МодульИнтернетПоддержкаПользователей.ТикетАутентификацииНаПорталеПоддержки("http://regservice.1c.ru");
УстановитьПривилегированныйРежим(Ложь);
ИнтернетПоддержкаПользователейПодключена = Истина;
Если ЗначениеЗаполнено(Результат.КодОшибки) Тогда
@@ -664,6 +664,10 @@
<metadata>Constant.ПредставлениеОбластиДанных</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>InformationRegister.ЗамерыСтатистики</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>InformationRegister.КомментарииСтатистики</metadata>
<use>DontUse</use>
@@ -170,6 +170,7 @@
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПроверитьЗаполнениеНаСервере()
Возврат ПроверитьЗаполнение();
@@ -32,8 +32,11 @@
// WSПрокси - объект для вызовов сервиса.
//
Функция СервисКлассификатора1С() Экспорт
УстановитьПривилегированныйРежим(Истина);
Авторизация = АдресныйКлассификаторСлужебный.ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
Если Авторизация = Неопределено Тогда
Логин = Неопределено;
Пароль = Неопределено;
@@ -7453,11 +7453,9 @@
//
Процедура ЗагрузитьКлассификаторАдресовССайта(КодыСубъектовРФ = Неопределено, ИсходнаяАвторизация = Неопределено)
Если ИсходнаяАвторизация = Неопределено Тогда
Авторизация = ПараметрыАутентификацииНаСайте();
Иначе
Авторизация = ИсходнаяАвторизация;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Авторизация = ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
Если КодыСубъектовРФ = Неопределено Тогда
ВсеРегионы = СведенияОЗагрузкеСубъектовРФ();
@@ -177,7 +177,14 @@
//
Процедура НастроитьОтчетВМодулеМенеджера(Настройки, ОтчетМетаданные) Экспорт
НастройкиОтчета = ОписаниеОтчета(Настройки, ОтчетМетаданные);
Отчеты[ОтчетМетаданные.Имя].НастроитьВариантыОтчета(Настройки, НастройкиОтчета);
Попытка
Отчеты[ОтчетМетаданные.Имя].НастроитьВариантыОтчета(Настройки, НастройкиОтчета);
Исключение
ТекстОшибки = НСтр("ru = 'Не удалось настроить варианты отчета из модуля менеджера:'");
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(ВариантыОтчетовКлиентСервер.НаименованиеПодсистемы(Неопределено),
УровеньЖурналаРегистрации.Ошибка, ОтчетМетаданные, Неопределено, ТекстОшибки);
КонецПопытки;
КонецПроцедуры
// Находит настройки указанного отчета. Используется для настройки размещения и общих параметров отчета.
@@ -1470,8 +1477,16 @@
КонецЕсли;
КонецЕсли;
Результат.Объект = Отчеты[Результат.Имя].Создать();
Результат.Успех = Истина;
Попытка
Результат.Объект = Отчеты[Результат.Имя].Создать();
Результат.Успех = Истина;
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Не удалось подключить отчет %1:'"),
Результат.Метаданные);
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(ВариантыОтчетовКлиентСервер.НаименованиеПодсистемы(Неопределено),
УровеньЖурналаРегистрации.Ошибка, Результат.Метаданные, Неопределено, ТекстОшибки);
КонецПопытки;
Иначе
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
@@ -2671,6 +2671,9 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "До";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для входящих писем, у которых письмо основание в ИБ есть, но оно не указано.'");
Обработчик = Обработчики.Добавить();
@@ -2689,6 +2692,9 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "До";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик.Комментарий = НСтр("ru = 'Выполняет дозаполнение реквизита ВзаимодействиеОснование для исходящее писем, у которых письмо основание в ИБ есть, но оно не указано.'");
Обработчик = Обработчики.Добавить();
@@ -2708,6 +2714,34 @@
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "После";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Приоритет.Порядок = "Любой";
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.3.6.76";
Обработчик.Идентификатор = Новый УникальныйИдентификатор("35e85660-7125-4079-b5df-5a71dbb43a48");
Обработчик.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ОбработатьДанныеДляПереходаНаНовуюВерсию";
Обработчик.Комментарий =
НСтр("ru = 'Перенос данных из реквизита одного ИдентификаторСообщенияОтправкаIMAP в другой для предотвращения потери данных.
|при переходе на последующие релизы.'");
Обработчик.РежимВыполнения = "Отложенно";
Обработчик.ОчередьОтложеннойОбработки = 3;
Обработчик.ПроцедураЗаполненияДанныхОбновления = "Документы.ЭлектронноеПисьмоИсходящее.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
Обработчик.ЧитаемыеОбъекты = "Документ.ЭлектронноеПисьмоИсходящее";
Обработчик.ИзменяемыеОбъекты = "Документ.ЭлектронноеПисьмоИсходящее";
Обработчик.ПриоритетыВыполнения = ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика();
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьСписокКонтактовИсходящихЭлектронныхПисем";
Приоритет.Порядок = "Любой";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоВходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "Любой";
Приоритет = Обработчик.ПриоритетыВыполнения.Добавить();
Приоритет.Процедура = "Документы.ЭлектронноеПисьмоИсходящее.ЗаполнитьВзаимодействияОснованияУПодчиненныхПисем";
Приоритет.Порядок = "Любой";
Обработчик.ПроцедураПроверки = "ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена";
КонецПроцедуры
@@ -3893,6 +3927,8 @@
ТекстHTML = "<html>" + ТекстHTML + "</html>"
КонецЕсли;
ТекстHTML = СодержимоеТегаHTML(ТекстHTML, "html", Истина);
ТаблицаФайлов = ПолучитьВложенияПисьмаСНеПустымИД(Письмо);
Если ТаблицаФайлов.Количество() Тогда
@@ -3915,6 +3951,49 @@
КонецФункции
// Находит в HTML содержимое находящееся в теге.
//
// Параметры:
// Текст - Строка - текст XML, в котором выполняется поиск.
// ИмяТега - Строка - тег, содержимое которого необходимо найти.
// ВключатьОткрывающийЗакрывающийТег - Булево - признак того, что найденное включает открывающий и закрывающий тег, по умолчанию Ложь.
// НомерПоПорядку - Число - позиция, с которой начинается поиск, по умолчанию 1.
//
// Возвращаемое значение:
// Строка - строка, из которой удалены символы перевода строки и возврата каретки.
//
Функция СодержимоеТегаHTML(Текст, ИмяТега, ВключатьОткрывающийЗакрывающийТег = Ложь, НомерПоПорядку = 1)
Результат = Неопределено;
Начало = "<" + ИмяТега;
Окончание = "</" + ИмяТега + ">";
Содержимое = Сред(
Текст,
СтрНайти(Текст, Начало, НаправлениеПоиска.СНачала, 1, НомерПоПорядку),
СтрНайти(Текст, Окончание, НаправлениеПоиска.СНачала, 1, НомерПоПорядку) + СтрДлина(Окончание) - СтрНайти(Текст, Начало, НаправлениеПоиска.СНачала, 1, НомерПоПорядку));
Если ВключатьОткрывающийЗакрывающийТег Тогда
Результат = СокрЛП(Содержимое);
Иначе
ОткрывающийТег = Лев(Содержимое, СтрНайти(Содержимое, ">"));
Содержимое = СтрЗаменить(Содержимое, ОткрывающийТег, "");
ЗакрывающийТег = Прав(Содержимое, СтрДлина(Содержимое) - СтрНайти(Содержимое, "<", НаправлениеПоиска.СКонца) + 1);
Содержимое = СтрЗаменить(Содержимое, ЗакрывающийТег, "");
Результат = СокрЛП(Содержимое);
КонецЕсли;
Возврат Результат;
КонецФункции
// Возвращает формат исходящих писем по умолчанию для пользователя,
// исходя из настроек системы и формата последнего письма, отправленного пользователем.
//
@@ -4832,28 +4911,8 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОтправкаSMS);
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьПочтовыйКлиент") Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начата регламентная отправка сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Не выполнены настройки отправки SMS.'"),,"Объект");
Возврат;
КонецЕсли;
ТаблицаАдресатовСообщения = Новый ТаблицаЗначений;
ТаблицаАдресатовСообщения.Колонки.Добавить("НомерСтроки");
ТаблицаАдресатовСообщения.Колонки.Добавить("НомерДляОтправки");
@@ -4890,8 +4949,21 @@
| Ссылка";
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
ВыборкаДокументы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументы.Следующий() Цикл
ТаблицаАдресатовСообщения.Очистить();
@@ -4924,10 +4996,6 @@
ДокументОбъект.Записать();
КонецЦикла;
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Закончена регламентная отправка сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
КонецПроцедуры
@@ -4938,23 +5006,8 @@
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОбновлениеСтатусовДоставкиSMS);
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьПочтовыйКлиент") Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Начато регламентное обновление состояний сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
ТаблицаИзменившихсяСтатусов = Новый ТаблицаЗначений;
ТаблицаИзменившихсяСтатусов.Колонки.Добавить("НомерСтроки");
ТаблицаИзменившихсяСтатусов.Колонки.Добавить("СостояниеСообщения");
@@ -4977,7 +5030,19 @@
|ИТОГИ ПО
| Ссылка";
ВыборкаДокументы = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат;
КонецЕсли;
Если Не ОтправкаSMS.НастройкаОтправкиSMSВыполнена() Тогда
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Ошибка, , ,
НСтр("ru = 'Не выполнены настройки отправки SMS.'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
Возврат;
КонецЕсли;
ВыборкаДокументы = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаДокументы.Следующий() Цикл
@@ -5011,10 +5076,6 @@
КонецЦикла;
ЗаписьЖурналаРегистрации(УправлениеЭлектроннойПочтой.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Информация, , ,
НСтр("ru = 'Закончено регламентное обновление состояний сообщений SMS'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()));
КонецПроцедуры
// Устанавливает состояние документа "Сообщение SMS" в зависимости от состояний отдельных сообщений различным контактам.
@@ -1858,7 +1858,9 @@
Функция ПроксиСервиса(ОписаниеОшибки)
Прокси = Неопределено;
УстановитьПривилегированныйРежим(Истина);
ПараметрыАутентификации = ПараметрыАутентификацииВСервисе();
УстановитьПривилегированныйРежим(Ложь);
Если ПараметрыАутентификации = Неопределено Тогда
@@ -416,7 +416,7 @@
// Выполняется при условии:
// НЕ ИсточникРегистр И Источник.ЭтоНовый()
// ИЛИ ИсточникРегистр И НЕ Замещение
// ИЛИ НЕ ИсточникРегистр И Удаление
// ИЛИ НЕ ИсточникРегистр И Удаление.
Если ВерсияОбъекта <> "СтараяВерсия"
И ИзменениеЗапрещено(
Источник,
@@ -489,6 +489,42 @@
Возврат "СтандартныеПодсистемы.ДлительныеОперации";
КонецФункции
// Получает сообщения пользователю, отфильтровывает служебные сообщения о состоянии длительной операции.
//
// Параметры:
// УдалятьПолученные - Булево - Признак необходимости удаления полученных сообщений.
// ИдентификаторЗадания - УникальныйИдентификатор - идентификатор фонового задания.
//
// Возвращаемое значение:
//  Массив - ФиксированныйМассив - Массив объектов СообщениеПользователю, которые были сформированы в
// фоновом задании.
Функция СообщенияПользователю(УдалятьПолученные = Ложь, ИдентификаторЗадания = Неопределено) Экспорт
Если ЗначениеЗаполнено(ИдентификаторЗадания) Тогда
ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если ФоновоеЗадание <> Неопределено Тогда
ВсеСообщения = ФоновоеЗадание.ПолучитьСообщенияПользователю(УдалятьПолученные);
КонецЕсли;
Иначе
ВсеСообщения = ПолучитьСообщенияПользователю(УдалятьПолученные);
КонецЕсли;
Результат = Новый Массив;
Для Каждого Сообщение Из ВсеСообщения Цикл
Если СтрНачинаетсяС(Сообщение.Текст, "{" + СообщениеПрогресса() + "}") Тогда
Если УдалятьПолученные Тогда
Сообщение.Сообщить();
КонецЕсли;
Иначе
Результат.Добавить(Сообщение);
КонецЕсли;
КонецЦикла;
Возврат Новый ФиксированныйМассив(Результат);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -709,7 +709,7 @@
Обработчик.ОбщиеДанные = Истина;
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "2.3.4.7";
Обработчик.Версия = "2.3.6.86";
Обработчик.Процедура = "КалендарныеГрафики.ОбновитьДанныеПроизводственныхКалендарей";
Обработчик.РежимВыполнения = "Монопольно";
Обработчик.ОбщиеДанные = Истина;
@@ -661,7 +661,13 @@
ТипСвойства = "КлючевыеСвойства";
Иначе
Если СвойствоНайдено Тогда
ТипСвойства = "СвойствоСоставногоТипа";
Если ТипЗнч(ЗначениеСвойства) = Тип("Структура")
И (ЗначениеСвойства.Свойство("Значение")
Или СтрНайти(СокрЛП(Свойство.Тип), "ОбщиеСвойства") > 0) Тогда
ТипСвойства = "ОбщееСоставноеСвойство";
Иначе
ТипСвойства = "СвойствоСоставногоТипа";
КонецЕсли;
Иначе
ТипСвойства = "ОбщееСоставноеСвойство";
КонецЕсли;
@@ -676,7 +682,15 @@
Если ТипСвойства = "ОбщееСоставноеСвойство" Тогда
ПроведеноЗаполнениеВложенныхСвойств = Ложь;
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, Источник, Свойство.Тип,, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств);
Если ТипЗнч(Источник) = Тип("Структура") И СвойствоНайдено Тогда
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, ЗначениеСвойства,
Свойство.Тип,, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств);
Иначе
ЗначениеXDTO = ОбъектXDTOИзДанныхXDTO(КомпонентыОбмена, Источник,
Свойство.Тип,, СсылкиИзОбъекта, ПроведеноЗаполнениеВложенныхСвойств);
КонецЕсли;
Если Не ПроведеноЗаполнениеВложенныхСвойств Тогда
Продолжить;
КонецЕсли;
@@ -3470,11 +3484,33 @@
ИначеЕсли СтрНайти(ЗначениеXDTO.Тип().Имя, "ОбщиеСвойства") > 0 Тогда
Для Каждого ПодСвойство Из ЗначениеXDTO.Свойства() Цикл
Если ТипЗнч(Приемник) = Тип("Структура") Тогда
ПриемникГруппыСвойств = Новый Структура;
Для Каждого ПодСвойство Из ЗначениеXDTO.Свойства() Цикл
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, ПодСвойство, ПриемникГруппыСвойств);
КонецЦикла;
Приемник.Вставить(ИмяСвойства, ПриемникГруппыСвойств);
// По возможности свойства из группы свойств надо продублировать в приемнике,
// Для совместимости с существующими правилами и алгоритмами.
ЕстьКлючевыеСвойства = Приемник.Свойство("КлючевыеСвойства");
Для Каждого СвойствоГруппы Из ПриемникГруппыСвойств Цикл
ИмяПодСвойства = СвойствоГруппы.Ключ;
Если НЕ Приемник.Свойство(ИмяПодСвойства)
И НЕ (ЕстьКлючевыеСвойства И Приемник.КлючевыеСвойства.Свойство(ИмяПодСвойства)) Тогда
Приемник.Вставить(ИмяПодСвойства, СвойствоГруппы.Значение);
КонецЕсли;
КонецЦикла;
Иначе
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, ПодСвойство, Приемник);
Для Каждого ПодСвойство Из ЗначениеXDTO.Свойства() Цикл
КонвертацияСвойстваXDTOВЭлементСтруктуры(ЗначениеXDTO, ПодСвойство, Приемник);
КонецЦикла;
КонецЦикла;
КонецЕсли;
Иначе
@@ -1687,15 +1687,12 @@
//
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Если ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных")
Или ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "*";
Обработчик.Приоритет = 1;
Обработчик.ОбщиеДанные = Истина;
Обработчик.МонопольныйРежим = Ложь;
Обработчик.Процедура = "ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными";
КонецЕсли;
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "*";
Обработчик.Приоритет = 1;
Обработчик.ОбщиеДанные = Истина;
Обработчик.МонопольныйРежим = Ложь;
Обработчик.Процедура = "ОбменДаннымиСервер.ВыполнитьОбновлениеПравилДляОбменаДанными";
Обработчик = Обработчики.Добавить();
Обработчик.Версия = "1.1.1.2";
@@ -1747,14 +1744,14 @@
//
Процедура ВыполнитьОбновлениеПравилДляОбменаДанными() Экспорт
Если Не Константы.ИспользоватьСинхронизациюДанных.Получить()
// Для сценария, когда в конфигурации был удален или переименован план обмена.
УдалитьНеактуальныеЗаписиВРегистреПравилДляОбменаДанными();
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьСинхронизациюДанных")
И Не ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
Возврат;
КонецЕсли;
// Для сценария, когда в конфигурации был удален или переименован план обмена.
УдалитьНеактуальныеЗаписиВРегистреПравилДляОбменаДанными();
ПравилаОбменаЗагруженныеИзФайла = Новый Массив;
ПравилаРегистрацииЗагруженныеИзФайла = Новый Массив;
@@ -3671,7 +3668,7 @@
И ОбменДаннымиВызовСервера.ТребуетсяУстановкаОбновления();
Пока Выборка.Следующий() Цикл
ОтказПоСтрокеСценария = Ложь;
Если ЭтоПодчиненныйУзелРИБТребующийУстановкиОбновления
И ОбменДаннымиПовтИсп.ЭтоУзелРаспределеннойИнформационнойБазы(Выборка.УзелИнформационнойБазы) Тогда
// Обмен по расписанию не выполняется.
@@ -3684,13 +3681,13 @@
КоличествоЭлементовВТранзакции = КоличествоЭлементовВТранзакцииВыполняемогоДействия(Выборка.ВыполняемоеДействие);
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(Отказ, Выборка.УзелИнформационнойБазы, Выборка.ВыполняемоеДействие, КоличествоЭлементовВТранзакции);
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыПоВнешнемуСоединению(ОтказПоСтрокеСценария, Выборка.УзелИнформационнойБазы, Выборка.ВыполняемоеДействие, КоличествоЭлементовВТранзакции);
ИначеЕсли Выборка.ОбменЧерезВебСервис Тогда
ПараметрыОбмена = ПараметрыОбмена();
ВыполнитьДействиеОбменаДляУзлаИнформационнойБазыЧерезWebСервис(Выборка.УзелИнформационнойБазы,
Выборка.ВыполняемоеДействие, ПараметрыОбмена, Отказ);
Выборка.ВыполняемоеДействие, ПараметрыОбмена, ОтказПоСтрокеСценария);
Иначе
@@ -3700,7 +3697,7 @@
// Если настройка содержит ошибки, то обмен не производим; статус "Отменено".
Если СтруктураНастроекОбмена.Отказ Тогда
Отказ = Истина;
ОтказПоСтрокеСценария = Истина;
// Фиксируем в ЖР лог по обмену данными.
ЗафиксироватьЗавершениеОбмена(СтруктураНастроекОбмена);
@@ -3723,12 +3720,14 @@
Если Не РезультатВыполненияОбменаВыполнено(СтруктураНастроекОбмена.РезультатВыполненияОбмена) Тогда
Отказ = Истина;
ОтказПоСтрокеСценария = Истина;
КонецЕсли;
КонецЕсли;
Если ОтказПоСтрокеСценария Тогда
Отказ = Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
@@ -6300,7 +6299,11 @@
Файл = Новый Файл(ИмяФайла);
ИмяФайлаРезультата = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(КаталогВременныхФайлов(), Файл.Имя);
ВременныйКаталог = ПолучитьИмяВременногоФайла();
СоздатьКаталог(ВременныйКаталог);
ИмяФайлаРезультата = ОбщегоНазначенияКлиентСервер.ПолучитьПолноеИмяФайла(ВременныйКаталог, Файл.Имя);
ПереместитьФайл(ИмяФайла, ИмяФайлаРезультата);
Попытка
@@ -8496,7 +8499,7 @@
Функция КоличествоПроблемОбменаДанными(УзлыОбмена = Неопределено)
Возврат РегистрыСведений.РезультатыОбменаДанными.КоличествоПроблем(УзлыОбмена);
Возврат РегистрыСведений.РезультатыОбменаДанными.КоличествоПроблем(УзлыОбмена, Неопределено);
КонецФункции
@@ -12413,11 +12416,11 @@
КонецЕсли;
Для Каждого Движение Из МетаданныеДокумента.Движения Цикл
// В запросе получаем имена регистров, по которым есть хотя бы одно движение
// например,
// ВЫБРАТЬ Первые 1 «РегистрНакопления.ТоварыНаСкладах»
// В запросе получаем имена регистров, по которым есть хотя бы одно движение.
// Например,
// ВЫБРАТЬ Первые 1 "РегистрНакопления.ТоварыНаСкладах"
// ИЗ РегистрНакопления.ТоварыНаСкладах
// ГДЕ Регистратор = &Регистратор
// ГДЕ Регистратор = &Регистратор.
// Имя регистра приводим к Строка(200), см. ниже.
ТекстЗапроса = ТекстЗапроса + "
@@ -967,7 +967,12 @@
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными.Правила регистрации объектов'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ОбработатьОшибкуПравилРегистрации(ИмяПланаОбмена);
ТекстСообщенияДляПользователя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка в правилах регистрации объекта: %1. Подробнее см. в журнале регистрации.'"),
ИмяПланаОбмена);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщенияДляПользователя);
Отказ = Истина;
КонецПопытки;
@@ -2836,16 +2841,6 @@
КонецФункции
Процедура ОбработатьОшибкуПравилРегистрации(ИмяПланаОбмена)
Если ОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформационнойБазы()
И РегистрыСведений.ПравилаДляОбменаДанными.ИспользуютсяПравилаИзФайла(ИмяПланаОбмена) Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("ОбменДанными=%1", ИмяПланаОбмена);
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
КонецЕсли;
КонецПроцедуры
// Создает новый экземпляр объекта Структура, заполняет объект данными указанной структуры.
//
// Параметры:
@@ -1462,17 +1462,11 @@
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|ВЫБРАТЬ ПЕРВЫЕ 500
| &ТекстВыборкиИзмерений
|ПОМЕСТИТЬ #ВТДляОбработкиИзмерения
|ИЗ
| ВТДляОбработкиИзмеренияПолная КАК ТаблицаИзменений
|ГДЕ
| &ТекстУсловияОтбораПорции В
| (ВЫБРАТЬ ПЕРВЫЕ 500
| &ТекстВыборкиИзмерений
| ИЗ
| ВТДляОбработкиИзмеренияПолная КАК ТаблицаИзменений)
|;
|
|////////////////////////////////////////////////////////////////////////////////
@@ -1501,7 +1495,6 @@
КонецЕсли;
ТекстВыборкиИзмерений = "";
ТекстУсловияСоединенияИзмерений = "ИСТИНА";
ТекстУсловияОтбораПорции = "";
ПервоеИзмерение = Истина;
РегистрПериодический =
@@ -1515,9 +1508,6 @@
ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + "
| ТаблицаИзменений." + Измерение.Имя + " КАК " + Измерение.Имя + ",";
ТекстУсловияОтбораПорции = ТекстУсловияОтбораПорции + "
| ТаблицаИзменений." + Измерение.Имя + ",";
ТекстУсловияСоединенияИзмерений = ТекстУсловияСоединенияИзмерений + "
| И ТаблицаИзменений." + Измерение.Имя + " = ВТЗаблокированоИзмерения." + Измерение.Имя + "
| ИЛИ ТаблицаИзменений." + Измерение.Имя + " = &ПустоеЗначениеИзмерения"+ Измерение.Имя + "
@@ -1530,8 +1520,6 @@
Если РегистрПериодический Тогда
ТекстВыборкиИзмерений = ТекстВыборкиИзмерений + "
| ТаблицаИзменений.Период КАК Период,";
ТекстУсловияОтбораПорции = ТекстУсловияОтбораПорции + "
| ТаблицаИзменений.Период,";
КонецЕсли;
ПервоеИзмерение = Ложь;
@@ -1539,8 +1527,6 @@
КонецЦикла;
ТекстВыборкиИзмерений = Лев(ТекстВыборкиИзмерений, СтрДлина(ТекстВыборкиИзмерений) - 1);
ТекстУсловияОтбораПорции = Лев(ТекстУсловияОтбораПорции, СтрДлина(ТекстУсловияОтбораПорции) - 1);
ТекстУсловияОтбораПорции = "("+ТекстУсловияОтбораПорции+")";
Если ПустаяСтрока(ДополнительныеПараметры.ИмяВременнойТаблицы) Тогда
ИмяВременнойТаблицы = "ВТДляОбработки" + ИмяОбъекта;
@@ -1554,7 +1540,6 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"#ТаблицаОбъектаИзменения", ПолноеИмяОбъекта + ".Изменения");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТЗаблокированоИзмерения","ВТЗаблокировано" + ИмяОбъекта);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ВТДляОбработкиИзмерения",ИмяВременнойТаблицы);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ТекстУсловияОтбораПорции",ТекстУсловияОтбораПорции);
СоздатьВременнуюТаблицуЗаблокированныхДляЧтенияИИзмененияДанных(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц);
ДобавитьПроверкуБлокировкиДополнительныхИсточниковДляНезависимогоРегистра(Очередь,
@@ -33,7 +33,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "2.3.5.81";
Описание.Версия = "2.3.6.121";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -277,8 +277,22 @@
СтрокаПутиКИнформационнойБазе = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(СтрЗаменить(СтрокаПутиКИнформационнойБазе, """", "")) + "1Cv8.1CD";
АдресЭлектроннойПочты = ?(Параметры.РежимОбновления = 2 И Параметры.ВыслатьОтчетНаПочту, Параметры.АдресЭлектроннойПочты, "");
КаталогРезервнойКопии = ?(Параметры.СоздаватьРезервнуюКопию = 2, ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Параметры.ИмяКаталогаРезервнойКопииИБ), "");
СоздаватьРезервнуюКопию = ЭтоФайловаяБаза И Параметры.СоздаватьРезервнуюКопию <> 0;
// Вызов КаталогВременныхФайлов вместо ПолучитьИмяВременногоФайла, так как каталог не должен удаляться
// автоматически при завершении клиентского приложения.
// В него сохраняются исполняемые файлы, лог выполнения и резервная копия, при определенной настройке.
КаталогВременныхФайловОбновления = КаталогВременныхФайлов() + "1Cv8Update." + Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=ггММддЧЧммсс") + "\";
Если Параметры.СоздаватьРезервнуюКопию = 1 Тогда
КаталогРезервнойКопии = КаталогВременныхФайловОбновления;
ИначеЕсли Параметры.СоздаватьРезервнуюКопию = 2 Тогда
КаталогРезервнойКопии = ОбщегоНазначенияКлиентСервер.ДобавитьКонечныйРазделительПути(Параметры.ИмяКаталогаРезервнойКопииИБ);
Иначе
КаталогРезервнойКопии = "";
КонецЕсли;
СоздаватьРезервнуюКопию = ЭтоФайловаяБаза И (Параметры.СоздаватьРезервнуюКопию = 1 Или Параметры.СоздаватьРезервнуюКопию = 2);
ВыполнитьОтложенныеОбработчики = Ложь;
ТекстыМакетов = ОбновлениеКонфигурацииВызовСервера.ТекстыМакетов(ИнтерактивныйРежим,
@@ -308,7 +322,7 @@
ТекстыМакетов.МакетФайлаОбновленияКонфигурации = ОбластьПараметров + ТекстыМакетов.МакетФайлаОбновленияКонфигурации;
ТекстыМакетов.Удалить("ОбластьПараметров");
Возврат СоздатьФайлыСкрипта(ТекстыМакетов, ИнтерактивныйРежим);
Возврат СоздатьФайлыСкрипта(КаталогВременныхФайловОбновления, ТекстыМакетов, ИнтерактивныйРежим);
#КонецЕсли
КонецФункции
@@ -355,9 +369,8 @@
Возврат "'" + Текст + "'";
КонецФункции
Функция СоздатьФайлыСкрипта(ТекстыМакетов, ИнтерактивныйРежим)
Функция СоздатьФайлыСкрипта(КаталогВременныхФайловОбновления, ТекстыМакетов, ИнтерактивныйРежим)
КаталогВременныхФайловОбновления = КаталогВременныхФайлов() + "1Cv8Update." + Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=ггММддЧЧммсс") + "\";
СоздатьКаталог(КаталогВременныхФайловОбновления);
ФайлСкрипта = Новый ТекстовыйДокумент;
@@ -594,6 +594,7 @@
УстановитьПривилегированныйРежим(Истина);
МестаИспользования = НайтиПоСсылкам(НаборСсылок);
УстановитьПривилегированныйРежим(Ложь);
МестаИспользования.Колонки.Добавить("ПредставлениеДанных", Новый ОписаниеТипов("Строка"));
МестаИспользования.Колонки.Добавить("ТипСсылки");
@@ -5270,12 +5271,12 @@
//
Функция ЗаписьКэшаВерсийУстарела(Знач Запись) Экспорт
Если Запись.ТипДанных = Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ОписаниеWebСервиса Тогда
Возврат НЕ ЗначениеЗаполнено(Запись.ДатаОбновления)
Иначе
Если ЗначениеЗаполнено(Запись.ДатаОбновления) Тогда
Возврат Запись.ДатаОбновления + 86400 < ТекущаяУниверсальнаяДата();
КонецЕсли;
Возврат Истина;
КонецФункции
// Формирует идентификатор записи кэша версий из адреса сервера и имени ресурса.
@@ -2775,7 +2775,7 @@
//
// Параметры:
// РаспределяемаяСумма - Число - сумма, которую надо распределить;
// МассивКоэффициентов - Массив - коэффициенты распределения;
// Коэффициенты - Массив - коэффициенты распределения;
// Точность - Число - точность округления при распределении. Необязателен.
//
// Возвращаемое значение:
@@ -2784,7 +2784,7 @@
// В случае если распределить не удалось (сумма = 0, кол-во коэффициентов = 0,
// или суммарный вес коэффициентов = 0), тогда возвращается значение Неопределено.
//
Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Коэффициенты, Знач Точность = 2) Экспорт
Функция РаспределитьСуммуПропорциональноКоэффициентам(Знач РаспределяемаяСумма, Знач Коэффициенты, Знач Точность = 2) Экспорт
Если Коэффициенты.Количество() = 0 Или Не ЗначениеЗаполнено(РаспределяемаяСумма) Тогда
Возврат Неопределено;
@@ -2833,11 +2833,13 @@
ЗначениеПогрешности = 1 / Pow(10, Точность);
КоличествоЭлементовПогрешности = -Дельта / ЗначениеПогрешности;
КоэффициентыРешето = Новый Массив(Новый ФиксированныйМассив(Коэффициенты));
Для Сч = 1 По КоличествоЭлементовПогрешности Цикл
МаксимальныйКоэффициент = МаксимальноеЗначениеВМассиве(Коэффициенты);
Индекс = Коэффициенты.Найти(МаксимальныйКоэффициент);
МаксимальныйКоэффициент = МаксимальноеЗначениеВМассиве(КоэффициентыРешето);
Индекс = КоэффициентыРешето.Найти(МаксимальныйКоэффициент);
Результат[Индекс] = Результат[Индекс] - ЗначениеПогрешности;
Коэффициенты[Индекс] = 0;
КоэффициентыРешето[Индекс] = 0;
КонецЦикла;
Иначе
@@ -281,7 +281,21 @@
КонецЦикла;
Менеджер = Узел[Имя];
Менеджер.ПриОпределенииНастроек(Настройки);
Попытка
Менеджер.ПриОпределенииНастроек(Настройки);
Исключение
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось прочитать настройки объекта %1 из модуля менеджера:'"), ПолноеИмя);
ТекстОшибки = ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Подключаемые команды'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,
Метаданные.НайтиПоПолномуИмени(ПолноеИмя),
ПолноеИмя,
ТекстОшибки);
Возврат Неопределено;
КонецПопытки;
Настройки.Вставить("ПолноеИмя", ПолноеИмя);
Настройки.Вставить("Менеджер", Менеджер);
@@ -4767,7 +4767,16 @@
Возврат Результат;
КонецЕсли;
РазделениеВключено = ОбщегоНазначенияПовтИсп.РазделениеВключено();
Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
И ЗначениеЗаполнено(ПользователиИнформационнойБазы.ТекущийПользователь().Имя)
И ПользователиИнформационнойБазы.ТекущийПользователь().РазделениеДанных.Количество() = 0 Тогда
Результат.ИдентификаторПользователяИБ = ТекущийПользовательИБ.УникальныйИдентификатор;
Результат.ПолноеИмяПользователя = ТекущийПользовательИБ.ПолноеИмя;
Результат.ПользовательНайден = Ложь;
Результат.СоздатьПользователя = Истина;
Возврат Результат;
КонецЕсли;
Если Не РолиАдминистратораДоступны() Тогда
Результат.ПользовательНайден = Ложь;
@@ -45,8 +45,8 @@
ПрефиксИнформационнойБазы = Лев(НомерОбъекта, 2);
КонецЕсли;
ПрефиксОрганизации = СтрЗаменить(ПрефиксОрганизации, "0", "");
ПрефиксИнформационнойБазы = СтрЗаменить(ПрефиксИнформационнойБазы, "0", "");
ПрефиксОрганизации = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ПрефиксОрганизации, "0");
ПрефиксИнформационнойБазы = СтроковыеФункцииКлиентСервер.УдалитьПовторяющиесяСимволы(ПрефиксИнформационнойБазы, "0");
// Добавляем префикс организации.
Если Не УдалитьПрефиксОрганизации Тогда
@@ -2138,7 +2138,7 @@
Прокси,
ДанныеКонтрагента);
NdsResponse = ОтветСервисаФНС(Прокси, WSЗапрос);
NdsResponse = ОтветСервисаФНС(Прокси, WSЗапрос, Истина);
Если NdsResponse = Неопределено Тогда
Возврат Ложь;
@@ -2315,12 +2315,18 @@
Исключение
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка контрагентов.Ошибка доступа к веб-сервису'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
ИнформацияОбОшибке = ИнформацияОбОшибке();
Комментарий = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Проверка контрагентов.Ошибка доступа к веб-сервису'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Предупреждение,
,
,
Комментарий);
КонецПопытки;
КонецПопытки;
Возврат WSПрокси;
@@ -2382,16 +2388,31 @@
КонецПроцедуры
Функция ОтветСервисаФНС(Прокси, WSЗапрос)
Функция ОтветСервисаФНС(Прокси, WSЗапрос, ПроверкаДоступностиСервиса = Ложь)
// Получаем результат проверки от сервиса.
Попытка
NdsResponse = Прокси.NdsRequest2(WSЗапрос);
Исключение
Если ПроверкаДоступностиСервиса Тогда
ШаблонОшибки = НСтр("ru = 'Веб-сервис %1 недоступен по причине:'");
Иначе
ШаблонОшибки = НСтр("ru = 'Веб-сервис %1 не вернул результат проверки данных по причине:'")
КонецЕсли;
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
Прокси.ТочкаПодключения.Местоположение);
ТекстОшибки = ТекстОшибки + Символы.ПС + КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
// Страхуемся от ошибки "Timeout was reached".
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка контрагентов.NdsRequest2'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Проверка контрагентов.NdsRequest2'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Предупреждение,
,
,
ТекстОшибки);
NdsResponse = Неопределено;
@@ -2431,9 +2452,16 @@
ДанныеКонтрагента.Состояние = Перечисления.СостоянияСуществованияКонтрагента.КонтрагентСодержитОшибкиВДанных;
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
ЗаписьЖурналаРегистрации(НСтр("ru = 'Проверка контрагентов.Формирование данных для обращения к сервису ФНС'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
Комментарий = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Проверка контрагентов.Формирование данных для обращения к сервису ФНС'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Предупреждение,
,
,
Комментарий);
КонецПопытки;
КонецПроцедуры
@@ -2460,11 +2488,15 @@
ИнформацияОбОшибке = ИнформацияОбОшибке();
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
КодОсновногоЯзыка = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка(); // Для записи события в журнал регистрации.
Комментарий = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Проверка контрагентов.Обработка ответа от веб-сервиса'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
НСтр("ru = 'Проверка контрагентов.Обработка ответа от веб-сервиса'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Предупреждение,
,
,
Комментарий);
КонецПопытки;
@@ -4235,6 +4235,7 @@
Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыОбластиСтатистики"));
Исключения.Добавить(Метаданные.РегистрыСведений.Найти("СтатистикаКонфигурации"));
Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ПакетыДляОтправки"));
Исключения.Добавить(Метаданные.РегистрыСведений.Найти("ЗамерыСтатистики"));
КонецЕсли;
ОбработчикиСобытия = ОбщегоНазначения.ОбработчикиСлужебногоСобытия(
@@ -638,6 +638,7 @@
Процедура ПолучитьДанныеРБКИзИнтернета(ПараметрыПолученияФайловРБК)
УстановитьПривилегированныйРежим(Истина);
ИспользоватьАльтернативныйСервер = Константы.ИспользоватьАльтернативныйСерверДляЗагрузкиКлассификатораБанков.Получить();
ПараметрыПолучения = ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
Если ИспользоватьАльтернативныйСервер Тогда
@@ -647,8 +648,6 @@
КонецЕсли;
ВременныйФайлРБК = ПараметрыПолученияФайловРБК["ВременныйКаталог"]+ "\bnk.zip";
ПараметрыПолучения = ПараметрыАутентификацииНаСайте();
ПараметрыПолучения.Вставить("ПутьДляСохранения", ВременныйФайлРБК);
ДатаПоследнегоОбновления = ПараметрыПолученияФайловРБК["ВерсияКлассификатора"];
@@ -576,19 +576,6 @@
ПодчиненнаяВалюта = Параметры.ПодчиненнаяВалюта;
СпособУстановкиКурса = Параметры.СпособУстановкиКурса;
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.Валюты");
ЭлементБлокировки.УстановитьЗначение("Ссылка", ПодчиненнаяВалюта.Ссылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
Если СпособУстановкиКурса = Перечисления.СпособыУстановкиКурсаВалюты.НаценкаНаКурсДругойВалюты Тогда
Запрос = Новый Запрос;
Запрос.Текст =
@@ -915,7 +902,9 @@
ШаблонИмениФайла = СерверИсточник + "/%1.tsv";
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ПараметрыПолучения = ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
ВалютыЗагружаемыеИзИнтернета = ВалютыЗагружаемыеИзИнтернета();
@@ -7302,13 +7302,14 @@
Если СпособСравненияВерсийФайлов = "MicrosoftOfficeWord" Тогда
ОбъектWord = Новый COMОбъект("Word.Application");
ОбъектWord.Visible = 0;
ОбъектWord.WordBasic.DisableAutoMacros(1);
Документ = ОбъектWord.Documents.Open(ПутьКФайлу1);
Документ.Merge(ПутьКФайлу2, 0, 0, 0); // MergeTarget:=wdMergeTargetSelected, DetectFormatChanges:=False, UseFormattingFrom:=wdFormattingFromCurrent
ОбъектWord.Visible = 1;
ОбъектWord.Activate();
ОбъектWord.Activate();
Документ.Close();
ИначеЕсли СпособСравненияВерсийФайлов = "OpenOfficeOrgWriter" Тогда
@@ -7326,9 +7327,15 @@
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
Dispatcher = ServiceManager.createInstance("com.sun.star.frame.DispatchHelper");
// Параметры открытия: отключение исполнения макросов.
ПараметрыДокумента = Новый COMSafeArray("VT_VARIANT", 1);
РежимЗапуска = ПрисвоитьЗначениеСвойству(ServiceManager,
"MacroExecutionMode",
0); // const short NEVER_EXECUTE = 0
ПараметрыДокумента.SetValue(0, РежимЗапуска);
// Открыть документ OpenOffice.
Args = Новый COMSafeArray("VT_DISPATCH", 1);
OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу2), "_blank", 0, Args);
OOДокумент = Desktop.loadComponentFromURL(ПреобразоватьВURL(ПутьКФайлу2), "_blank", 0, ПараметрыДокумента);
frame = Desktop.getCurrentFrame();
@@ -46,13 +46,14 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
Если Отбор.Свойство("УникальныйИдентификатор") И НЕ Отбор.Свойство("Идентификатор") Тогда
Отбор.Вставить("Идентификатор", Отбор.УникальныйИдентификатор);
КонецЕсли;
Отбор.Вставить("ОбластьДанных", ОбластьДанных);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
Отбор.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
@@ -142,10 +143,12 @@
Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
@@ -223,9 +226,11 @@
Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
МетаданныеЗадания = ПараметрыЗадания.Метаданные;
ИмяМетода = МетаданныеЗадания.ИмяМетода;
ПараметрыЗадания.Вставить("ИмяМетода", ИмяМетода);
@@ -323,10 +328,12 @@
Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда
ИмяМетода = Идентификатор.ИмяМетода;
@@ -418,10 +425,12 @@
ПараметрыЗадания.Удалить("Наименование");
Если ПараметрыЗадания.Количество() = 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыПоиска.Вставить("ОбластьДанных", ОбластьДанных);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыПоиска.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
Если ТипЗнч(Идентификатор) = Тип("ОбъектМетаданных") Тогда
ИмяМетода = Идентификатор.ИмяМетода;
@@ -591,8 +600,10 @@
Возврат Неопределено;
КонецЕсли;
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанных = ОбщегоНазначения.ЗначениеРазделителяСеанса();
ПараметрыЗадания.Вставить("ОбластьДанных", ОбластьДанных);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ОчередьЗаданий") Тогда
МодульОчередьЗаданий = ОбщегоНазначения.ОбщийМодуль("ОчередьЗаданий");
@@ -231,7 +231,7 @@
// Дополнительная обработка исключения не требуется
// ожидаемое исключение - дублирование задания с таким же ключом.
ЗаписьЖурналаРегистрации(НСтр("ru = 'Доставка быстрых сообщений'",
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка, , ,
ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Предупреждение, , ,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
@@ -232,6 +232,13 @@
ПользователиСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры);
// Конец СтандартныеПодсистемы.Пользователи
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
МодульЦентрМониторингаСлужебный = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный");
МодульЦентрМониторингаСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры.ЦентрМониторинга);
КонецЕсли;
КонецПроцедуры
// Возвращает полное имя объекта метаданных по его типу.
@@ -1836,7 +1836,20 @@
Процедура ПриВыполненииСтандартныхПериодическихПроверок() Экспорт
Параметры = Новый Структура;
ПодсистемаЦентрМониторингаСуществует = Ложь;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ПодсистемаЦентрМониторингаСуществует = Истина;
МодульЦентрМониторингаКлиентСлужебный = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиентСлужебный");
МодульЦентрМониторингаКлиентСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаКлиенте(Параметры);
КонецЕсли;
СтандартныеПодсистемыВызовСервера.ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры);
Если ПодсистемаЦентрМониторингаСуществует Тогда
МодульЦентрМониторингаКлиентСлужебный.ПослеВыполненияСтандартныхПериодическихПроверокНаКлиенте(Параметры);
КонецЕсли;
Контекст = Новый Структура("Параметры", Параметры);
// СтандартныеПодсистемы.БазоваяФункциональность
@@ -90,6 +90,9 @@
ПараметрыКлиента = СтандартныеПодсистемыВызовСервера.ПараметрыРаботыКлиентаПриЗапуске(Параметры);
СтандартныеПодсистемыКлиент.ЗаполнитьПараметрыКлиента(ПараметрыКлиента);
Если ПараметрыКлиента.Свойство("ЦентрМониторинга") Тогда
ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"].Вставить("ЦентрМониторинга", ПараметрыКлиента.ЦентрМониторинга);
КонецЕсли;
// Обновление состояния скрытия рабочего стола на клиенте по состоянию на сервере.
СтандартныеПодсистемыКлиент.СкрытьРабочийСтолПриНачалеРаботыСистемы(
@@ -3041,6 +3041,11 @@
Возврат Ложь;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
МодульЦентрМониторингаСлужебный = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный");
МодульЦентрМониторингаСлужебный.ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры);
КонецЕсли;
Возврат Истина;
КонецФункции
@@ -57,6 +57,8 @@
// Копирование стилей из макета.
Макет.COMСоединение.ActiveDocument.Close();
Handler.COMСоединение.ActiveDocument.CopyStylesFromTemplate(Макет.ИмяФайла);
Макет.COMСоединение.WordBasic.DisableAutoMacros(1);
Макет.COMСоединение.Documents.Open(Макет.ИмяФайла);
КонецЕсли;
@@ -110,6 +112,7 @@
#КонецЕсли
Попытка
COMОбъект.WordBasic.DisableAutoMacros(1);
COMОбъект.Documents.Open(ИмяВременногоФайла);
Исключение
COMОбъект.Quit(0);
@@ -116,12 +116,18 @@
ДвоичныеДанныеШаблона.Записать(ИмяВременногоФайла);
#КонецЕсли
Параметры = ПолучитьComSafeArray();
ПараметрыДокумента = ПолучитьComSafeArray();
#Если Не ВебКлиент Тогда
Параметры.SetValue(0, СвойствоЗначение(ServiceManager, "Hidden", Истина));
ПараметрыДокумента.SetValue(0, СвойствоЗначение(ServiceManager, "Hidden", Истина));
#КонецЕсли
Document = Desktop.LoadComponentFromURL("file:///" + СтрЗаменить(ИмяВременногоФайла, "\", "/"), "_blank", 0, Параметры);
// Параметры открытия: отключение исполнения макросов.
РежимЗапуска = СвойствоЗначение(ServiceManager,
"MacroExecutionMode",
0); // const short NEVER_EXECUTE = 0
ПараметрыДокумента.SetValue(0, РежимЗапуска);
Document = Desktop.LoadComponentFromURL("file:///" + СтрЗаменить(ИмяВременногоФайла, "\", "/"), "_blank", 0, ПараметрыДокумента);
#Если ВебКлиент Тогда
Document.getCurrentController().getFrame().getContainerWindow().setVisible(Ложь);
@@ -113,6 +113,9 @@
| ПО (НепринятыеКОбработкеПочтовымСерверомИсходящиеПисьма.Письмо = ЭлектронноеПисьмоИсходящее.Ссылка)
|ГДЕ
| НЕ ЭлектронноеПисьмоИсходящее.ПометкаУдаления
| И УчетныеЗаписиЭлектроннойПочты.АдресЭлектроннойПочты <> """"
| И УчетныеЗаписиЭлектроннойПочты.СерверИсходящейПочты <> """"
| И УчетныеЗаписиЭлектроннойПочты.ИспользоватьДляОтправки
| И ЭлектронноеПисьмоИсходящее.СтатусПисьма = ЗНАЧЕНИЕ(Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Исходящее)
| И ВЫБОР
| КОГДА ЭлектронноеПисьмоИсходящее.ДатаКогдаОтправить = ДАТАВРЕМЯ(1, 1, 1)
@@ -1442,13 +1445,13 @@
Если Не ЭтоИсходящееПисьмо Тогда
Письмо.ДатаПолучения = Сообщение.ДатаОтправления;
Письмо.ДатаПолучения = Сообщение.ДатаПолучения;
Письмо.ОтправительАдрес = ОтправительАдрес;
Иначе
Письмо.СтатусПисьма = Перечисления.СтатусыИсходящегоЭлектронногоПисьма.Отправлено;
Письмо.ДатаОтправления = Сообщение.ДатаПолучения;
Письмо.ДатаОтправления = Сообщение.ДатаОтправления;
КонецЕсли;
@@ -1,17 +1,44 @@
////////////////////////////////////////////////////////////////////////////////
// Подсистема "Центр Мониторинга"
//
////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейсОбщий
// Включает подсистему ЦентрМониторинга.
//
Процедура ВключитьПодсистему() Экспорт
ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга();
ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Истина;
ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме = Ложь;
ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга);
КонецПроцедуры
// Отключает подсистему ЦентрМониторинга.
//
Процедура ОтключитьПодсистему() Экспорт
ПараметрыЦентраМониторинга = ЦентрМониторингаСлужебный.ПолучитьПараметрыЦентраМониторинга();
ПараметрыЦентраМониторинга.ВключитьЦентрМониторинга = Ложь;
ПараметрыЦентраМониторинга.ЦентрОбработкиИнформацииОПрограмме = Ложь;
ЦентрМониторингаСлужебный.УстановитьПараметрыЦентраМониторингаВнешнийВызов(ПараметрыЦентраМониторинга);
КонецПроцедуры
#КонецОбласти
#Область ПрограммныйИнтерфейсБизнесСтатистики
// Записывает операцию бизнес статистики.
//
// Параметры:
// ИмяОперации - Строка(1000) - имя операции статистики, в случае отсутствия - создается новое;
// Значение - Число(15,3) - количественное значение операции статистики;
// Комментарий - Строка(1000) - произвольный комментарий.
// Разделитель - Строка - разделитель значений в <ИмяОперации>, если разделитель не точка.
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// Значение - Число - количественное значение операции статистики.
// Комментарий - Строка - произвольный комментарий.
// Разделитель - Строка - разделитель значений в ИмяОперации, если разделитель не точка.
//
Процедура ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий = Неопределено, Разделитель = ".") Экспорт
Если ЦентрМониторингаВызовСервераПовтИсп.ЗаписыватьОперацииБизнесСтатистики() Тогда
@@ -19,15 +46,70 @@
КонецЕсли;
КонецПроцедуры
// Записывает уникальную операцию бизнес статистики в разрезе часа.
// При записи проверяет уникальность.
//
// Параметры:
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// КлючУникальности - Строка - ключ для контроля уникальности записи, максимальная длина 100.
// Значение - Число - количественное значение операции статистики.
// Замещать - Булево - определяет режим замещения существующей записи.
// Истина - перед записью существующая запись будет удалена.
// Ложь - если запись уже существует, новые данные игнорируются.
// Значение по умолчанию: Ложь.
//
Процедура ЗаписатьОперациюБизнесСтатистикиЧас(ИмяОперации, КлючУникальности, Значение, Замещать = Ложь) Экспорт
ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи");
ПараметрыЗаписи.ИмяОперации = ИмяОперации;
ПараметрыЗаписи.КлючУникальности = КлючУникальности;
ПараметрыЗаписи.Значение = Значение;
ПараметрыЗаписи.Замещать = Замещать;
ПараметрыЗаписи.ТипЗаписи = 1;
ПараметрыЗаписи.ПериодЗаписи = НачалоЧаса(ТекущаяУниверсальнаяДата());
ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецПроцедуры
// Записывает уникальную операцию бизнес статистики в разрезе суток.
// При записи проверяет уникальность.
//
// Параметры:
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// КлючУникальности - Строка - ключ для контроля уникальности записи, максимальная длина 100.
// Значение - Число - количественное значение операции статистики.
// Замещать - Булево - определяет режим замещения существующей записи.
// Истина - перед записью существующая запись будет удалена.
// Ложь - если запись уже существует, новые данные игнорируются.
// Значение по умолчанию: Ложь.
//
Процедура ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперации, КлючУникальности, Значение, Замещать = Ложь) Экспорт
ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи");
ПараметрыЗаписи.ИмяОперации = ИмяОперации;
ПараметрыЗаписи.КлючУникальности = КлючУникальности;
ПараметрыЗаписи.Значение = Значение;
ПараметрыЗаписи.Замещать = Замещать;
ПараметрыЗаписи.ТипЗаписи = 2;
ПараметрыЗаписи.ПериодЗаписи = НачалоДня(ТекущаяУниверсальнаяДата());
ЦентрМониторингаСлужебный.ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ПрограммныйИнтерфейсСтатистикиКонфигурации
// Записывает статистику по объектам конфигурации.
//
// Параметры:
// СоответствиеИменМетаданных - Структура;
// * Ключ - Строка - Имя объекта метаданных;
// * Значение - Строка - Текст запроса выборки данных, обязательно должно
// присутствовать поле <Количество>.
// Ограничения
// можно вызывать только из ЦентрМониторингаПереопределяемый.ПриСбореПоказателейСтатистикиКонфигурации.
// СоответствиеИменМетаданных - Структура - структура со свойствами:
// * Ключ - Строка - имя объекта метаданных.
// * Значение - Строка - текст запроса выборки данных, обязательно должно
// присутствовать поле Количество. Если Количество равно нулю,
// то запись не происходит.
//
Процедура ЗаписатьСтатистикуКонфигурации(СоответствиеИменМетаданных) Экспорт
Параметры = Новый Соответствие;
@@ -35,11 +117,12 @@
Параметры.Вставить(ТекМетаданные.Ключ, Новый Структура("Запрос, ОперацииСтатистики, ВидСтатистики", ТекМетаданные.Значение,,0));
КонецЦикла;
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанныхСтрока = Строка(ОбщегоНазначения.ЗначениеРазделителяСеанса());
Иначе
ОбластьДанныхСтрока = "0";
КонецЕсли;
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0");
Иначе
ОбластьДанныхСтрока = "0";
КонецЕсли;
ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока);
РегистрыСведений.СтатистикаКонфигурации.Записать(Параметры, ОбластьДанныхСсылка);
@@ -48,19 +131,18 @@
// Записывает статистику по объекту конфигурации.
//
// Параметры:
// ИмяОбъекта - Строка(1000) - имя операции статистики, в случае отсутствия - создается новое;
// Значение - Число(15,3) - количественное значение операции статистики;
// Ограничения
// можно вызывать только из ЦентрМониторингаПереопределяемый.ПриСбореПоказателейСтатистикиКонфигурации,
// значение равное нулю не записывается.
// ИмяОбъекта - Строка - имя операции статистики, в случае отсутствия создается новое.
// Значение - Число - количественное значение операции статистики. Если значение
// равно нулю, то запись не происходит.
//
Процедура ЗаписатьСтатистикуОбъектаКонфигурации(ИмяОбъекта, Значение) Экспорт
Если Значение <> 0 Тогда
ОперацияСтатистики = РегистрыСведений.ОперацииСтатистики.ПолучитьСсылку(ИмяОбъекта);
Если Значение <> 0 Тогда
ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ИмяОбъекта);
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
ОбластьДанныхСтрока = Строка(ОбщегоНазначения.ЗначениеРазделителяСеанса());
Если ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
ОбластьДанныхСтрока = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧГ=0");
Иначе
ОбластьДанныхСтрока = "0";
КонецЕсли;
@@ -78,4 +160,6 @@
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -1,8 +1,3 @@
////////////////////////////////////////////////////////////////////////////////
// Подсистема "Центр мониторинга".
//
////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
#Область РаботаСПараметрамиЦентраМониторинга
@@ -0,0 +1,141 @@
#Область ПрограммныйИнтерфейс
#Область ПрограммныйИнтерфейсБизнесСтатистики
// Записывает операцию бизнес статистики в кэш на клиенте.
// Запись в информационную базу происходит по обработчику ОбработчикОжиданияСтандартныхПериодическихПроверок
// глобального модуля СтандартныеПодсистемыГлобальный.
// При закрытии приложения данные не записываются.
//
// Параметры:
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// Значение - Число - количественное значение операции статистики.
//
Процедура ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение) Экспорт
Если РегистрироватьБизнесСтатистику() Тогда
ПараметрыЗаписи = Новый Структура("ИмяОперации,Значение, ТипЗаписи");
ПараметрыЗаписи.ИмяОперации = ИмяОперации;
ПараметрыЗаписи.Значение = Значение;
ПараметрыЗаписи.ТипЗаписи = 0;
ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
// Записывает уникальную операцию бизнес статистики в разрезе часа в кэш на клиенте.
// При записи проверяет уникальность.
// Запись в информационную базу происходит по обработчику ОбработчикОжиданияСтандартныхПериодическихПроверок
// глобального модуля СтандартныеПодсистемыГлобальный.
// При закрытии приложения данные не записываются.
//
// Параметры:
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// Значение - Число - количественное значение операции статистики.
// Замещать - Булево - определяет режим замещения существующей записи.
// Истина - перед записью существующая запись будет удалена.
// Ложь - если запись уже существует, новые данные игнорируются.
// Значение по умолчанию: Ложь.
// КлючУникальности - Строка - ключ для контроля уникальности записи, максимальная длина 100. Если не задан,
// используется хеш MD5 уникального идентификатора пользователя и номера сеанса.
// Значение по умолчанию: Неопределено.
//
Процедура ЗаписатьОперациюБизнесСтатистикиЧас(ИмяОперации, Значение, Замещать = Ложь, КлючУникальности = Неопределено) Экспорт
Если РегистрироватьБизнесСтатистику() Тогда
ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи");
ПараметрыЗаписи.ИмяОперации = ИмяОперации;
ПараметрыЗаписи.КлючУникальности = КлючУникальности;
ПараметрыЗаписи.Значение = Значение;
ПараметрыЗаписи.Замещать = Замещать;
ПараметрыЗаписи.ТипЗаписи = 1;
ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
// Записывает уникальную операцию бизнес статистики в разрезе суток в кэш на клиенте.
// При записи проверяет уникальность.
// Запись в информационную базу происходит по обработчику ОбработчикОжиданияСтандартныхПериодическихПроверок
// глобального модуля СтандартныеПодсистемыГлобальный.
// При закрытии приложения данные не записываются.
//
// Параметры:
// ИмяОперации - Строка - имя операции статистики, в случае отсутствия создается новое.
// Значение - Число - количественное значение операции статистики.
// Замещать - Булево - определяет режим замещения существующей записи.
// Истина - перед записью существующая запись будет удалена.
// Ложь - если запись уже существует, новые данные игнорируются.
// Значение по умолчанию: Ложь.
// КлючУникальности - Строка - ключ для контроля уникальности записи, максимальная длина 100. Если не задан,
// используется хеш MD5 уникального идентификатора пользователя и номера сеанса.
// Значение по умолчанию: Неопределено.
//
Процедура ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперации, Значение, Замещать = Ложь, КлючУникальности = Неопределено) Экспорт
Если РегистрироватьБизнесСтатистику() Тогда
ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи");
ПараметрыЗаписи.ИмяОперации = ИмяОперации;
ПараметрыЗаписи.КлючУникальности = КлючУникальности;
ПараметрыЗаписи.Значение = Значение;
ПараметрыЗаписи.Замещать = Замещать;
ПараметрыЗаписи.ТипЗаписи = 2;
ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи)
ЦентрМониторингаПараметрыПриложения = ЦентрМониторингаКлиентСлужебный.ПолучитьПараметрыПриложения();
Замеры = ЦентрМониторингаПараметрыПриложения["Замеры"][ПараметрыЗаписи.ТипЗаписи];
Замер = Новый Структура("ТипЗаписи, Ключ, ОперацияСтатистики, Значение, Замещать");
Замер.ТипЗаписи = ПараметрыЗаписи.ТипЗаписи;
Замер.ОперацияСтатистики = ПараметрыЗаписи.ИмяОперации;
Замер.Значение = ПараметрыЗаписи.Значение;
Если Замер.ТипЗаписи = 0 Тогда
Замеры.Добавить(Замер);
Иначе
Если ПараметрыЗаписи.КлючУникальности = Неопределено Тогда
Замер.Ключ = ЦентрМониторингаПараметрыПриложения["ИнформацияКлиента"]["ПараметрыКлиента"]["ХешПользователя"];
Иначе
Замер.Ключ = ПараметрыЗаписи.КлючУникальности;
КонецЕсли;
Замер.Замещать = ПараметрыЗаписи.Замещать;
Если НЕ (Замеры[Замер.Ключ] <> Неопределено И НЕ Замер.Замещать) Тогда
Замеры.Вставить(Замер.Ключ, Замер);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция РегистрироватьБизнесСтатистику()
ИмяПараметра = "СтандартныеПодсистемы.ЦентрМониторинга";
Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
ПараметрыПриложения.Вставить(ИмяПараметра, ЦентрМониторингаКлиентСлужебный.ПолучитьПараметрыПриложения());
КонецЕсли;
Возврат ПараметрыПриложения[ИмяПараметра]["РегистрироватьБизнесСтатистику"];
КонецФункции
#КонецОбласти
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1df47f0c-7935-481b-9dfb-1f660ea81a2b">
<name>ЦентрМониторингаКлиент</name>
<synonym>
<key>ru</key>
<value>Центр мониторинга клиент</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -0,0 +1,149 @@
#Область СлужебныйПрограммныйИнтерфейс
Процедура ПриВыполненииСтандартныхПериодическихПроверокНаКлиенте(Параметры) Экспорт
Окна = ПолучитьОкна();
АктивныхОкон = 0;
Если Окна <> Неопределено Тогда
Для Каждого ТекОкно Из Окна Цикл
Если Не ТекОкно.Основное Тогда
АктивныхОкон = АктивныхОкон + 1;
КонецЕсли;
КонецЦикла;
КонецЕсли;
ПараметрыПриложенияЦентрМониторинга = ПолучитьПараметрыПриложения();
ПараметрыПриложенияЦентрМониторинга["ИнформацияКлиента"].Вставить("АктивныхОкон", АктивныхОкон);
Параметры.Вставить("ЦентрМониторинга", Новый ФиксированноеСоответствие(ПараметрыПриложенияЦентрМониторинга));
Замеры = Новый Соответствие;
Замеры.Вставить(0, Новый Массив);
Замеры.Вставить(1, Новый Соответствие);
Замеры.Вставить(2, Новый Соответствие);
ПараметрыПриложенияЦентрМониторинга.Вставить("Замеры", Замеры);
КонецПроцедуры
Процедура ПослеВыполненияСтандартныхПериодическихПроверокНаКлиенте(Параметры) Экспорт
ПараметрыПриложенияЦентрМониторинга = ПолучитьПараметрыПриложения();
ПараметрыПриложенияЦентрМониторинга.Вставить("РегистрироватьБизнесСтатистику", Параметры.ЦентрМониторинга["РегистрироватьБизнесСтатистику"]);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// См. описание этой же процедуры в общем модуле
// ОбщегоНазначенияКлиентПереопределяемый.
//
Процедура ПриНачалеРаботыСистемы(Параметры) Экспорт
ЦентрМониторингаПараметрыПриложения = ПолучитьПараметрыПриложения();
КонецПроцедуры
Функция ПолучитьПараметрыПриложения() Экспорт
Если ПараметрыПриложения = Неопределено Тогда
ПараметрыПриложения = Новый Соответствие;
КонецЕсли;
ИмяПараметра = "СтандартныеПодсистемы.ЦентрМониторинга";
Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
ПараметрыКлиента = ПараметрыКлиента();
ПараметрыПриложения.Вставить(ИмяПараметра, Новый Соответствие);
ЦентрМониторингаПараметрыПриложения = ПараметрыПриложения[ИмяПараметра];
ЦентрМониторингаПараметрыПриложения.Вставить("РегистрироватьБизнесСтатистику", ПараметрыКлиента["РегистрироватьБизнесСтатистику"]);
Замеры = Новый Соответствие;
Замеры.Вставить(0, Новый Массив);
Замеры.Вставить(1, Новый Соответствие);
Замеры.Вставить(2, Новый Соответствие);
ЦентрМониторингаПараметрыПриложения.Вставить("Замеры", Замеры);
ЦентрМониторингаПараметрыПриложения.Вставить("ИнформацияКлиента", ПолучитьИнформациюКлиента());
Иначе
ЦентрМониторингаПараметрыПриложения = ПараметрыПриложения["СтандартныеПодсистемы.ЦентрМониторинга"];
КонецЕсли;
Возврат ЦентрМониторингаПараметрыПриложения;
КонецФункции
Функция ПолучитьИнформациюКлиента()
ИнформацияКлиента = Новый Соответствие;
ИнформацияЭкраны = Новый Массив;
ЭкраныКлиента = ПолучитьИнформациюЭкрановКлиента();
Для Каждого ТекЭкран Из ЭкраныКлиента Цикл
ИнформацияЭкраны.Добавить(РазрешениеЭкранаВСтроку(ТекЭкран));
КонецЦикла;
ИнформацияКлиента.Вставить("ЭкраныКлиента", ИнформацияЭкраны);
ИнформацияКлиента.Вставить("ПараметрыКлиента", ПараметрыКлиента());
ИнформацияКлиента.Вставить("ИнформацияОСистеме", ПолучитьИнформациюОСистеме());
ИнформацияКлиента.Вставить("АктивныхОкон", 0);
Возврат ИнформацияКлиента;
КонецФункции
Функция РазрешениеЭкранаВСтроку(Экран)
Возврат Формат(Экран.Ширина, "ЧГ=0") + "x" + Формат(Экран.Высота, "ЧГ=0");
КонецФункции
Функция ПараметрыКлиента()
ПараметрыКлиента = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"],"ЦентрМониторинга");
Если ПараметрыКлиента = Неопределено Тогда
ПараметрыКлиента = Новый Структура("ЧасовойПоясСеанса, ХешПользователя, РегистрироватьБизнесСтатистику", Неопределено, Неопределено, Ложь);
КонецЕсли;
ПараметрыКлиентаИнформация = Новый Соответствие;
Для Каждого ТекПараметр Из ПараметрыКлиента Цикл
ПараметрыКлиентаИнформация.Вставить(ТекПараметр.Ключ, ТекПараметр.Значение);
КонецЦикла;
Возврат ПараметрыКлиентаИнформация;
КонецФункции
Функция ПолучитьИнформациюОСистеме()
СисИнфо = Новый СистемнаяИнформация();
СисИнфоИнформация = Новый Соответствие;
СисИнфоИнформация.Вставить("ВерсияОС", СтрЗаменить(СисИнфо.ВерсияОС, ".", "☺"));
СисИнфоИнформация.Вставить("ОперативнаяПамять", Формат((ЦЕЛ(СисИнфо.ОперативнаяПамять/512) + 1) * 512, "ЧГ=0"));
СисИнфоИнформация.Вставить("Процессор", СтрЗаменить(СисИнфо.Процессор, ".", "☺"));
СисИнфоИнформация.Вставить("ТипПлатформы", СтрЗаменить(Строка(СисИнфо.ТипПлатформы), ".", "☺"));
ИнформацияПрограммыПросмотра = "";
#Если ТолстыйКлиентУправляемоеПриложение Тогда
ИнформацияПрограммыПросмотра = "ТолстыйКлиентУправляемоеПриложение";
#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда
ИнформацияПрограммыПросмотра = "ТолстыйКлиент";
#ИначеЕсли ТонкийКлиент Тогда
ИнформацияПрограммыПросмотра = "ТонкийКлиент";
#ИначеЕсли ВебКлиент Тогда
ИнформацияПрограммыПросмотра = "ВебКлиент";
#КонецЕсли
СисИнфоИнформация.Вставить("ИнформацияПрограммыПросмотра", ИнформацияПрограммыПросмотра);
Возврат СисИнфоИнформация;
КонецФункции
#КонецОбласти
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="258736e4-93c0-4a46-8caa-75be42c9f006">
<name>ЦентрМониторингаКлиентСлужебный</name>
<synonym>
<key>ru</key>
<value>Центр мониторинга клиент служебный</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>
@@ -1,8 +1,3 @@
////////////////////////////////////////////////////////////////////////////////
// Подсистема "Центр Мониторинга"
//
////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс
// Выполняется при запуске регламентного задания.
@@ -0,0 +1,9 @@
#Область СлужебныеПроцедурыИФункции
Функция ПолучитьСсылкуОперацииСтатистики(ИмяОперацииСтатистики) Экспорт
Возврат РегистрыСведений.ОперацииСтатистики.ПолучитьСсылку(ИмяОперацииСтатистики)
КонецФункции
#КонецОбласти
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="56d0acf3-c888-4824-a6e4-27d61fa35415">
<name>ЦентрМониторингаПовтИсп</name>
<synonym>
<key>ru</key>
<value>Центр мониторинга повт исп</value>
</synonym>
<server>true</server>
<externalConnection>true</externalConnection>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
<returnValuesReuse>DuringSession</returnValuesReuse>
</mdclass:CommonModule>
@@ -1,34 +1,6 @@
////////////////////////////////////////////////////////////////////////////////
// Подсистема "Центр Мониторинга"
//
////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
// См. описание этой же процедуры в модуле СтандартныеПодсистемыСервер.
//
Процедура ПриДобавленииОбработчиковСлужебныхСобытий(КлиентскиеОбработчики, СерверныеОбработчики) Экспорт
// СЕРВЕРНЫЕ ОБРАБОТЧИКИ.
СерверныеОбработчики["СтандартныеПодсистемы.ОбновлениеВерсииИБ\ПриДобавленииОбработчиковОбновления"].Добавить(
"ЦентрМониторингаСлужебный");
КонецПроцедуры
// Добавляет процедуры-обработчики обновления, необходимые данной подсистеме.
//
// Параметры:
// Обработчики - ТаблицаЗначений - см. описание функции НоваяТаблицаОбработчиковОбновления
// общего модуля ОбновлениеИнформационнойБазы.
//
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "ЦентрМониторингаСлужебный.ПервоначальноеЗаполнение";
КонецПроцедуры
// Получает регламентное задание по имени.
//
// Параметры:
@@ -95,16 +67,105 @@
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Обработчики условных вызовов из других подсистем.
// Обработчики событий подсистем конфигурации.
// См. описание одноименной процедуры в общем модуле РегламентныеЗаданияПереопределяемый.
//
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт
Зависимость = Зависимости.Добавить();
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.СборИОтправкаСтатистики;
Зависимость.РаботаетСВнешнимиРесурсами = Истина;
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
Обработчик.НачальноеЗаполнение = Истина;
Обработчик.Процедура = "ЦентрМониторингаСлужебный.ПервоначальноеЗаполнение";
Обработчик = Обработчики.Добавить();
Обработчик.РежимВыполнения = "Оперативно";
Обработчик.ОбщиеДанные = Истина;
Обработчик.Версия = "2.3.6.3";
Обработчик.Процедура = "ЦентрМониторингаСлужебный.ДобавитьИдентификаторИнформационнойБазыПостоянный";
КонецПроцедуры
// См. ОбщегоНазначенияПереопределяемый.ПараметрыРаботыКлиентаПриЗапуске.
Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт
ПараметрыРаботыКлиента = Новый Структура("ЧасовойПоясСеанса, ХешПользователя, РегистрироватьБизнесСтатистику");
УникальныйИдентификаторПользователя = Строка(ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор);
НомерСеанса = Формат(НомерСеансаИнформационнойБазы(), "ЧГ=0");
ХешПользователя = ХешMD5(УникальныйИдентификаторПользователя + НомерСеанса);
РегистрироватьБизнесСтатистику = ПолучитьПараметрыЦентраМониторинга("РегистрироватьБизнесСтатистику");
ПараметрыРаботыКлиента.ЧасовойПоясСеанса = ЧасовойПоясСеанса();
ПараметрыРаботыКлиента.ХешПользователя = ХешПользователя;
ПараметрыРаботыКлиента.РегистрироватьБизнесСтатистику = РегистрироватьБизнесСтатистику;
Параметры.Вставить("ЦентрМониторинга", Новый ФиксированнаяСтруктура(ПараметрыРаботыКлиента));
КонецПроцедуры
Процедура ПриВыполненииСтандартныхПериодическихПроверокНаСервере(Параметры) Экспорт
Если Параметры["ИнформацияКлиента"]["ПараметрыКлиента"]["РегистрироватьБизнесСтатистику"] Тогда
РегистрироватьБизнесСтатистику = ПолучитьПараметрыЦентраМониторинга("РегистрироватьБизнесСтатистику");
ПараметрыНовые = Новый Соответствие(Параметры);
ПараметрыНовые.Вставить("РегистрироватьБизнесСтатистику", РегистрироватьБизнесСтатистику);
КлючФоновогоЗадания = "ПриВыполненииСтандартныхПериодическихПроверокНаСервереВФоне" + Параметры["ИнформацияКлиента"]["ПараметрыКлиента"]["ХешПользователя"];
Отбор = Новый Структура;
Отбор.Вставить("Ключ", КлючФоновогоЗадания);
Отбор.Вставить("Состояние", СостояниеФоновогоЗадания.Активно);
АктивныеФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания(Отбор);
Если АктивныеФоновыеЗадания.Количество() = 0 Тогда
ПараметрыФоновогоЗадания = Новый Массив;
ПараметрыФоновогоЗадания.Добавить(Параметры);
ФоновыеЗадания.Выполнить("ЦентрМониторингаСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервереВФоне",
ПараметрыФоновогоЗадания,
КлючФоновогоЗадания,
"ЦентрМониторингаСлужебный.ПриВыполненииСтандартныхПериодическихПроверокНаСервере");
КонецЕсли;
Параметры = Новый ФиксированноеСоответствие(ПараметрыНовые);
КонецЕсли;
КонецПроцедуры
Процедура ПриВыполненииСтандартныхПериодическихПроверокНаСервереВФоне(Параметры) Экспорт
ЗаписатьСтатистикуЭкрановКлиента(Параметры);
ЗаписатьИнформациюОСистеме(Параметры);
ЗаписатьИнформацияКлиента(Параметры);
ЗаписатьДанныеСКлиента(Параметры);
КонецПроцедуры
// См. описание этой же процедуры в модуле СтандартныеПодсистемыСервер.
//
Процедура ПриДобавленииОбработчиковСлужебныхСобытий(КлиентскиеОбработчики, СерверныеОбработчики) Экспорт
// КЛИЕНТСКИЕ ОБРАБОТЧИКИ.
КлиентскиеОбработчики[
"СтандартныеПодсистемы.БазоваяФункциональность\ПриНачалеРаботыСистемы"].Добавить(
"ЦентрМониторингаКлиентСлужебный");
// СЕРВЕРНЫЕ ОБРАБОТЧИКИ.
СерверныеОбработчики["СтандартныеПодсистемы.ОбновлениеВерсииИБ\ПриДобавленииОбработчиковОбновления"].Добавить(
"ЦентрМониторингаСлужебный");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -534,6 +595,7 @@
ПараметрыЦентраМониторинга = Новый Структура();
ПараметрыЦентраМониторинга.Вставить("ИдентификаторИнформационнойБазы");
ПараметрыЦентраМониторинга.Вставить("ИдентификаторИнформационнойБазыПостоянный");
ПараметрыЦентраМониторинга.Вставить("РегистрироватьИнформациюОСистеме");
ПараметрыЦентраМониторинга.Вставить("РегистрироватьВерсииПодсистем");
ПараметрыЦентраМониторинга.Вставить("РегистрироватьДампы");
@@ -563,7 +625,8 @@
КонецЕсли;
Если ПараметрыЦентраМониторинга.РегистрироватьБизнесСтатистику Тогда
РезультатЗапроса = РегистрыСведений.ЗамерыОперацииСтатистики.ПолучитьЗамеры(ДатаНачала, ДатаОкончания, ПериодУдаления);
РезультатЗапроса = РегистрыСведений.ЗамерыОперацииСтатистики.ПолучитьЗамеры(ДатаНачала, ДатаОкончания, ПериодУдаления);
КолонкиИндекса = Новый Соответствие;
КолонкиИндекса.Вставить("ОперацияСтатистики", Новый Соответствие);
КолонкиИндекса.Вставить("Период", Новый Соответствие);
@@ -605,6 +668,25 @@
СекцияОбластиСтатистики["StatisticalAreas"]["columnsValueIndex"].Удалить("ОперацияСтатистики");
СекцияОбластиСтатистики["StatisticalAreas"]["columnsValueIndex"].Удалить("Период");
СекцияОбластиСтатистики["StatisticalAreas"].Вставить("AggregationPeriod", ПериодУдаления);
РезультатЗапроса = РегистрыСведений.ЗамерыСтатистики.ПолучитьЗамерыЧаса(ДатаНачала, ДатаОкончания);
КолонкиИндекса = Новый Соответствие;
КолонкиИндекса.Вставить("ОперацияСтатистики", Новый Соответствие);
КолонкиИндекса.Вставить("Период", Новый Соответствие);
ДополнительныеПараметры = Новый Соответствие;
ДополнительныеПараметры.Вставить("КолонкиИндекса", КолонкиИндекса);
СекцияОперацииСтатистикиКлиентЧас = СформироватьJSONСтруктуру("OperationStatisticsClientHour", РезультатЗапроса, ДополнительныеПараметры);
РезультатЗапроса = РегистрыСведений.ЗамерыСтатистики.ПолучитьЗамерыСутки(ДатаНачала, ДатаОкончания);
КолонкиИндекса = Новый Соответствие;
КолонкиИндекса.Вставить("ОперацияСтатистики", Новый Соответствие);
КолонкиИндекса.Вставить("Период", Новый Соответствие);
ДополнительныеПараметры = Новый Соответствие;
ДополнительныеПараметры.Вставить("КолонкиИндекса", КолонкиИндекса);
СекцияОперацииСтатистикиКлиентСутки = СформироватьJSONСтруктуру("OperationStatisticsClientDay", РезультатЗапроса, ДополнительныеПараметры);
КонецЕсли;
РазделениеПоОбластямДанныхВключено = РазделениеПоОбластямДанныхВключено();
@@ -650,11 +732,17 @@
СекцияСтатистикаКонфигурации.StatisticsConfiguration.StatisticsConfigurationByRegions.Вставить(ОбластьДанныхСтрока, СтатистикаКонфигурацииОбласти[ОбластьДанныхСтрока]);
КонецЕсли;
КонецЦикла;
ДанныеОбИспользуемыхРасширениях = Новый Структура;
Иначе
РезультатЗапроса = РегистрыСведений.СтатистикаКонфигурации.ПолучитьСтатистику(0);
ДопПараметры = Новый Структура("MetadataName", Метаданные.Имя);
ДопПараметры.Вставить("WorkingMode", ?(ОбщегоНазначения.ИнформационнаяБазаФайловая(), "F", "S"));
ДопПараметры.Вставить("DivisionByRegions", РазделениеПоОбластямДанныхВключено);
ДопПараметры.Вставить("CompatibilityMode", Строка(Метаданные.РежимСовместимости));
ДопПараметры.Вставить("InterfaceCompatibilityMode", Строка(Метаданные.РежимСовместимостиИнтерфейса));
ДопПараметры.Вставить("ModalityUseMode", Строка(Метаданные.РежимИспользованияМодальности));
ДанныеОбИспользуемыхРасширениях = ДанныеОбИспользуемыхРасширениях();
ДопПараметры.Вставить("UsingExtensions", ДанныеОбИспользуемыхРасширениях.ИспользованиеРасширений);
ДополнительныеПараметры = Новый Соответствие;
ДополнительныеПараметры.Вставить("ДатаНачала", ДатаНачала);
@@ -752,9 +840,11 @@
КонецЕсли;
ИдентификаторИнформационнойБазы = Строка(ПараметрыЦентраМониторинга.ИдентификаторИнформационнойБазы);
ИдентификаторИнформационнойБазыПостоянный = Строка(ПараметрыЦентраМониторинга.ИдентификаторИнформационнойБазыПостоянный);
JSONСтруктура = Новый Структура;
JSONСтруктура.Вставить("ib", ИдентификаторИнформационнойБазы);
JSONСтруктура.Вставить("versionPacket", "1.0.2.0");
JSONСтруктура.Вставить("ibConst", ИдентификаторИнформационнойБазыПостоянный);
JSONСтруктура.Вставить("versionPacket", "1.0.3.0");
JSONСтруктура.Вставить("datePacket", ТекущаяУниверсальнаяДата());
Если ПараметрыЦентраМониторинга.РегистрироватьИнформациюОСистеме Тогда
@@ -774,11 +864,14 @@
БизнесСтатистика.Вставить("OperationStatistics", СекцияОперацииСтатистики["OperationStatistics"]);
БизнесСтатистика.Вставить("CommentsStatistics", СекцияКомментарииСтатистики["CommentsStatistics"]);
БизнесСтатистика.Вставить("StatisticalAreas", СекцияОбластиСтатистики["StatisticalAreas"]);
БизнесСтатистика.Вставить("OperationStatisticsClientHour", СекцияОперацииСтатистикиКлиентЧас["OperationStatisticsClientHour"]);
БизнесСтатистика.Вставить("OperationStatisticsClientDay", СекцияОперацииСтатистикиКлиентСутки["OperationStatisticsClientDay"]);
JSONСтруктура.Вставить("business", БизнесСтатистика);
КонецЕсли;
Если ПараметрыЦентраМониторинга.РегистрироватьСтатистикуКонфигурации Тогда
JSONСтруктура.Вставить("config", СекцияСтатистикаКонфигурации["StatisticsConfiguration"]);
JSONСтруктура.Вставить("extensionsInfo", ДанныеОбИспользуемыхРасширениях);
КонецЕсли;
Если ПараметрыЦентраМониторинга.РегистрироватьНастройкуКонфигурации Тогда
@@ -871,11 +964,8 @@
КонецФункции
Функция ЗаписатьДанныеВАрхив(Данные)
ВременныйКаталог = КаталогВременныхФайлов();
ИдентификаторФайла = Строка(Новый УникальныйИдентификатор());
ИмяФайлаДанных = ВременныйКаталог + ИдентификаторФайла + ".txt";
ИмяФайлаАрхива = ВременныйКаталог + ИдентификаторФайла + ".zip";
ИмяФайлаДанных = ПолучитьИмяВременногоФайла("txt");
ИмяФайлаАрхива = ПолучитьИмяВременногоФайла("zip");
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайлаДанных);
ЗаписьТекста.Записать(Данные);
@@ -965,7 +1055,7 @@
Для Каждого ФайлДампа Из ФайлыДампов Цикл
Если ФайлыДамповЗарегистрированные[ФайлДампа.ПолноеИмя] = Неопределено Тогда
ДампНовый = Новый Структура;
СтруктураДампа = ОписаниеДампа(ФайлДампа.Имя);
СтруктураДампа = ОписаниеДампа(ФайлДампа.ИмяБезРасширения);
ДампНовый.Вставить("ДатаРегистрации", ТекущаяУниверсальнаяДатаВМиллисекундах());
ДампНовый.Вставить("ВариантДампа", СтруктураДампа.Процесс + "_" + СтруктураДампа.ВерсияПлатформы + "_" + СтруктураДампа.Смещение);
@@ -1001,7 +1091,10 @@
//
#Область СтатистикаКонфигурацииБазовая
Если ПараметрыЦентраМониторинга.РегистрироватьСтатистикуКонфигурации ИЛИ ПараметрыЦентраМониторинга.РегистрироватьНастройкуКонфигурации Тогда
Если ПараметрыЦентраМониторинга.РегистрироватьСтатистикуКонфигурации ИЛИ ПараметрыЦентраМониторинга.РегистрироватьНастройкуКонфигурации Тогда
НеобходимаЗаписьОценкиПроизводительности = Ложь;
РегистрыСведений.СтатистикаКонфигурации.ОчиститьСтатистикуКонфигурации();
ОценкаПроизводительностиСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности");
@@ -1013,13 +1106,15 @@
СтатистикаКонфигурации = Неопределено;
Если ПараметрыЦентраМониторинга.РегистрироватьСтатистикуКонфигурации Тогда
РегистрыСведений.СтатистикаКонфигурации.ЗаписатьСтатистикуКонфигурации();
НеобходимаЗаписьОценкиПроизводительности = Истина;
КонецЕсли;
Если ПараметрыЦентраМониторинга.РегистрироватьНастройкуКонфигурации Тогда
СтатистикаКонфигурации = РегистрыСведений.СтатистикаКонфигурации.ЗаписатьНастройкиКонфигурации();
СтатистикаКонфигурации = РегистрыСведений.СтатистикаКонфигурации.ЗаписатьНастройкиКонфигурации();
НеобходимаЗаписьОценкиПроизводительности = Истина;
КонецЕсли;
Если ОценкаПроизводительностиСуществует Тогда
Если ОценкаПроизводительностиСуществует И НеобходимаЗаписьОценкиПроизводительности Тогда
МодульОценкаПроизводительности.ЗакончитьЗамерВремени("ЦентрМониторингаСобратьСтатистикуКонфигурацииБазовая", ВремяНачала);
КонецЕсли;
КонецЕсли;
@@ -1046,7 +1141,7 @@
ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока);
Если РегистрыСведений.ОбластиСтатистики.СобиратьСтатистикуКонфигурации(ОбластьДанныхСтрока) Тогда
Попытка
ОбщегоНазначения.УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных);
УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных);
Исключение
Инфо = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Центр мониторинга.Статистика конфигурации переопределяемая'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
@@ -1055,11 +1150,11 @@
НСтр("ru = 'Не удалось установить разделение сеанса.Область данных'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()) + " = " + Формат(Выборка.ОбластьДанных, "ЧГ=0")
+Символы.ПС + ПодробноеПредставлениеОшибки(Инфо));
ОбщегоНазначения.УстановитьРазделениеСеанса(Ложь);
УстановитьРазделениеСеанса(Ложь);
Продолжить;
КонецПопытки;
СтандартныеПодсистемыСервер.СобратьСтатистикуКонфигурации();
ОбщегоНазначения.УстановитьРазделениеСеанса(Ложь);
УстановитьРазделениеСеанса(Ложь);
КонецЕсли;
КонецЦикла;
Иначе
@@ -1093,7 +1188,7 @@
ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанныхСтрока);
Если РегистрыСведений.ОбластиСтатистики.СобиратьСтатистикуКонфигурации(ОбластьДанныхСтрока) Тогда
Попытка
ОбщегоНазначения.УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных);
УстановитьРазделениеСеанса(Истина, Выборка.ОбластьДанных);
Исключение
Инфо = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Центр мониторинга.Статистика конфигурации переопределяемая'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
@@ -1102,11 +1197,11 @@
НСтр("ru = 'Не удалось установить разделение сеанса.Область данных'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()) + " = " + Формат(Выборка.ОбластьДанных, "ЧГ=0")
+Символы.ПС + ПодробноеПредставлениеОшибки(Инфо));
ОбщегоНазначения.УстановитьРазделениеСеанса(Ложь);
УстановитьРазделениеСеанса(Ложь);
Продолжить;
КонецПопытки;
ЦентрМониторингаПереопределяемый.ПриСбореПоказателейСтатистикиКонфигурации();
ОбщегоНазначения.УстановитьРазделениеСеанса(Ложь);
УстановитьРазделениеСеанса(Ложь);
КонецЕсли;
КонецЦикла;
Иначе
@@ -1250,7 +1345,9 @@
// Идентификатор информационной базы.
//
ПараметрыКонстанты.Вставить("ИдентификаторИнформационнойБазы", Новый УникальныйИдентификатор());
ИдентификаторИнформационнойБазы = Новый УникальныйИдентификатор();
ПараметрыКонстанты.Вставить("ИдентификаторИнформационнойБазы", ИдентификаторИнформационнойБазы);
ПараметрыКонстанты.Вставить("ИдентификаторИнформационнойБазыПостоянный", ИдентификаторИнформационнойБазы);
// Параметры сбора информации о системе.
//
@@ -1457,8 +1554,12 @@
ИначеЕсли ПараметрыОтправки.ОценкаПроизводительностиВключена = 2 И ПараметрыОтправки.ВыполнятьЗамерыПроизводительности Тогда
ПараметрыОтправки.ОценкаПроизводительностиВключена = 2;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Параметры.Свойство("foundCopy") И Параметры.foundCopy Тогда
ВыполнитьДействияПриОбнаруженииКопии();
КонецЕсли;
НачатьТранзакцию();
Попытка
Если ПараметрыОтправки.ОценкаПроизводительностиВключена = 0 И НЕ ПараметрыОтправки.ВыполнятьЗамерыПроизводительности = Неопределено Тогда
@@ -1485,8 +1586,7 @@
Функция УстановитьПараметрыЦентраМониторинга(НовыеПараметры)
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Константа.ПараметрыЦентраМониторинга");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -1521,8 +1621,7 @@
Функция УдалитьПараметрыЦентраМониторинга()
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Константа.ПараметрыЦентраМониторинга");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
@@ -1546,8 +1645,7 @@
Функция УстановитьПараметрЦентраМониторинга(Параметр, Значение)
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Константа.ПараметрыЦентраМониторинга");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
@@ -1604,7 +1702,11 @@
#Область РаботаСФайломНастроек
Функция ПолучитьКаталогДампов()
// Получает каталог сбора дампов на сервере. Экспортная для проведения тестирования обработкой.
// Возвращаемое значение
// Структура
//
Функция ПолучитьКаталогДампов() Экспорт
КаталогНастроек = ПолучитьКаталогНастроекТехнологическогоЖурнала();
КаталогДампов = НайтиКаталогДампов(КаталогНастроек);
@@ -1744,6 +1846,13 @@
КонецЕсли;
КонецФункции
// Генерирует путь к каталогу дампов.
// Каталог дампов очищается автоматически методом РегистрацияДампов.
// Параметры:
// ПутьКаталога - Строка - путь к каталогу, в котором хранится файл настроек технологического журнала.
// Возвращаемое значение:
// КаталогДампов - Строка - путь к каталогу, в котором будут храниться минидампы.
//
Функция СоздатьФайлНастроекСбораДампов(ПутьКаталога)
ИмяФайлаНастроек = "logcfg.xml";
@@ -1877,7 +1986,7 @@
ИмяФайла = СтрЗаменить(ИмяФайла, "_", Символы.ПС);
СтруктураДампа = Новый Структура;
Если СтрЧислоСтрок(ИмяФайла) = 3 Тогда
Если СтрЧислоСтрок(ИмяФайла) >= 3 Тогда
СтруктураДампа.Вставить("Процесс", СтрПолучитьСтроку(ИмяФайла, 1));
СтруктураДампа.Вставить("ВерсияПлатформы", СтрПолучитьСтроку(ИмяФайла, 2));
СтруктураДампа.Вставить("Смещение", СтрПолучитьСтроку(ИмяФайла, 3));
@@ -1906,8 +2015,8 @@
#Область РаботаССистемнойИнформацией
Функция ПолучитьСистемнуюИнформацию()
СисИнфо = Новый СистемнаяИнформация;
Результат = Новый Структура;
Результат = Новый Структура;
Результат.Вставить("ИмяКомпьютера", ХешMD5(ИмяКомпьютера()));
Результат.Вставить("ВерсияОС", Строка(СисИнфо.ВерсияОС));
Результат.Вставить("ВерсияПриложения", Строка(СисИнфо.ВерсияПриложения));
@@ -1947,6 +2056,139 @@
#КонецОбласти
#Область РаботаСРасширениямиКонфигурации
Функция ДанныеОбИспользуемыхРасширениях()
СтруктураРасширения = Новый Структура;
МассивРасширений = РасширенияКонфигурации.Получить();
ИспользуютсяРасширения = МассивРасширений.Количество()>0;
СтруктураРасширения.Вставить("ИспользованиеРасширений", ИспользуютсяРасширения);
Если Не ИспользуютсяРасширения Тогда
Возврат СтруктураРасширения;
КонецЕсли;
МассивОписанийРасширений = Новый Массив;
Для Каждого Расширение Из МассивРасширений Цикл
ОписаниеРасширения = Новый Структура("Имя, Версия, Назначение, БезопасныйРежим, ЗащитаОтОпасныхДействий, Синоним");
ЗаполнитьЗначенияСвойств(ОписаниеРасширения, Расширение);
ОписаниеРасширения.Вставить("ЗащитаОтОпасныхДействий", ?(ОписаниеРасширения.ЗащитаОтОпасныхДействий = Неопределено, Ложь, ОписаниеРасширения.ЗащитаОтОпасныхДействий.ПредупреждатьОбОпасныхДействиях));
ОписаниеРасширения.Вставить("Назначение", Строка(ОписаниеРасширения.Назначение));
МассивОписанийРасширений.Добавить(ОписаниеРасширения);
КонецЦикла;
СтруктураРасширения.Вставить("ОписанияРасширений", МассивОписанийРасширений);
МетаданныеРасширений = Новый Соответствие;
ОписаниеМетаданных = ОписаниеМетаданных();
Для Каждого СтрЗапись Из ОписаниеМетаданных Цикл
ДобавитьИнформациюОРасширениях(СтрЗапись.Ключ, СтрЗапись.Значение, МетаданныеРасширений);
КонецЦикла;
СтруктураРасширения.Вставить("МетаданныеРасширений", МетаданныеРасширений);
Возврат СтруктураРасширения;
КонецФункции
Процедура ДобавитьИнформациюОРасширениях(КлассОбъекта, АрхитектураОбъекта, МетаданныеРасширений)
Для Каждого ОбъектМетаданных Из Метаданные[КлассОбъекта] Цикл
// Сначала обходим подчиненные.
Для Каждого ЭлементСтруктуры Из АрхитектураОбъекта Цикл
Если ЭлементСтруктуры.Значение = "Рекурсивно" Тогда
ДобавитьИнформациюОРасширенияхРекурсивно(ОбъектМетаданных, ЭлементСтруктуры.Ключ, АрхитектураОбъекта, МетаданныеРасширений);
КонецЕсли;
Для Каждого ПодчиненныйОбъект Из ОбъектМетаданных[ЭлементСтруктуры.Ключ] Цикл
РасширениеОбъекта = ПодчиненныйОбъект.РасширениеКонфигурации();
Если РасширениеОбъекта = Неопределено Тогда
Продолжить;
КонецЕсли;
МетаданныеРасширений.Вставить(ПодчиненныйОбъект.ПолноеИмя(), РасширениеОбъекта.Имя);
КонецЦикла;
КонецЦикла;
РасширениеОбъекта = ОбъектМетаданных.РасширениеКонфигурации();
Если РасширениеОбъекта = Неопределено Тогда
Продолжить;
КонецЕсли;
МетаданныеРасширений.Вставить(ОбъектМетаданных.ПолноеИмя(), РасширениеОбъекта.Имя);
КонецЦикла;
КонецПроцедуры
Процедура ДобавитьИнформациюОРасширенияхРекурсивно(Объект, ИмяРекурсивногоАтрибута, АрхитектураОбъекта, МетаданныеРасширений)
Для Каждого РекурсивныйОбъект Из Объект[ИмяРекурсивногоАтрибута] Цикл
Для Каждого ЭлементСтруктуры Из АрхитектураОбъекта Цикл
Если ЭлементСтруктуры.Значение = "Рекурсивно" Тогда
ДобавитьИнформациюОРасширенияхРекурсивно(РекурсивныйОбъект, ЭлементСтруктуры.Ключ, АрхитектураОбъекта, МетаданныеРасширений);
КонецЕсли;
Для Каждого ПодчиненныйОбъект Из РекурсивныйОбъект[ЭлементСтруктуры.Ключ] Цикл
РасширениеОбъекта = ПодчиненныйОбъект.РасширениеКонфигурации();
Если РасширениеОбъекта = Неопределено Тогда
Продолжить;
КонецЕсли;
МетаданныеРасширений.Вставить(ПодчиненныйОбъект.ПолноеИмя(), РасширениеОбъекта.Имя);
КонецЦикла;
КонецЦикла;
РасширениеОбъекта = РекурсивныйОбъект.РасширениеКонфигурации();
Если РасширениеОбъекта = Неопределено Тогда
Продолжить;
КонецЕсли;
МетаданныеРасширений.Вставить(РекурсивныйОбъект.ПолноеИмя(), РасширениеОбъекта.Имя);
КонецЦикла;
КонецПроцедуры
Функция ОписаниеМетаданных()
ОписаниеМетаданных = Новый Соответствие;
ОписаниеМетаданных.Вставить("Подсистемы", Новый Структура("Подсистемы", "Рекурсивно"));
ОписаниеМетаданных.Вставить("ОбщиеМодули", Новый Структура);
ОписаниеМетаданных.Вставить("ПараметрыСеанса", Новый Структура);
ОписаниеМетаданных.Вставить("ОбщиеРеквизиты", Новый Структура);
ОписаниеМетаданных.Вставить("ОбщиеРеквизиты", Новый Структура);
ОписаниеМетаданных.Вставить("ПланыОбмена", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("КритерииОтбора", Новый Структура("Формы, Команды"));
ОписаниеМетаданных.Вставить("ПодпискиНаСобытия", Новый Структура);
ОписаниеМетаданных.Вставить("РегламентныеЗадания", Новый Структура);
ОписаниеМетаданных.Вставить("ФункциональныеОпции", Новый Структура);
ОписаниеМетаданных.Вставить("ПараметрыФункциональныхОпций", Новый Структура);
ОписаниеМетаданных.Вставить("ОпределяемыеТипы", Новый Структура);
ОписаниеМетаданных.Вставить("ХранилищаНастроек", Новый Структура("Формы, Макеты"));
ОписаниеМетаданных.Вставить("ОбщиеФормы", Новый Структура);
ОписаниеМетаданных.Вставить("ОбщиеКоманды", Новый Структура);
ОписаниеМетаданных.Вставить("ГруппыКоманд", Новый Структура);
ОписаниеМетаданных.Вставить("ОбщиеМакеты", Новый Структура);
ОписаниеМетаданных.Вставить("ОбщиеКартинки", Новый Структура);
ОписаниеМетаданных.Вставить("ПакетыXDTO", Новый Структура);
ОписаниеМетаданных.Вставить("WebСервисы", Новый Структура);
ОписаниеМетаданных.Вставить("HTTPСервисы", Новый Структура);
ОписаниеМетаданных.Вставить("WSСсылки", Новый Структура);
ОписаниеМетаданных.Вставить("ЭлементыСтиля", Новый Структура);
ОписаниеМетаданных.Вставить("Языки", Новый Структура);
ОписаниеМетаданных.Вставить("Константы", Новый Структура);
ОписаниеМетаданных.Вставить("Справочники", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("Документы", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("ЖурналыДокументов", Новый Структура("Графы, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("Перечисления", Новый Структура("ЗначенияПеречисления, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("Отчеты", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("Обработки", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("ПланыВидовХарактеристик", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("ПланыСчетов", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("ПланыВидовРасчета", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("РегистрыСведений", Новый Структура("Измерения, Ресурсы, Реквизиты, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("РегистрыНакопления", Новый Структура("Измерения, Ресурсы, Реквизиты, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("РегистрыБухгалтерии", Новый Структура("Измерения, Ресурсы, Реквизиты, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("РегистрыРасчета", Новый Структура("Измерения, Ресурсы, Реквизиты, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("БизнесПроцессы", Новый Структура("Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
ОписаниеМетаданных.Вставить("Задачи", Новый Структура("РеквизитыАдресации, Реквизиты, ТабличныеЧасти, Формы, Команды, Макеты"));
Возврат ОписаниеМетаданных;
КонецФункции
#КонецОбласти
#Область РаботаВРежимеРазделенияПоОбластямДанных
Функция РазделениеПоОбластямДанныхВключено() Экспорт
@@ -1969,14 +2211,6 @@
#Область ОбщиеФункции
Функция ХешMD5(Данные)
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
Хеш.Добавить(Данные);
ХешСумма = СтрЗаменить(Строка(Хеш.ХешСумма), " ", "");
Возврат ХешСумма;
КонецФункции
Функция СобытиеЖурналаРегистрацииЦентрМониторингаУдалениеДампа()
Возврат НСтр("ru = 'Центр мониторинга.Удаление дампа'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка());
КонецФункции
@@ -1984,6 +2218,111 @@
Функция СобытиеЖурналаРегистрацииЦентрМониторингаРазобратьБуферОперацийСтатистики()
Возврат НСтр("ru = 'Центр мониторинга.Разобрать буфер операций статистики'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка());
КонецФункции
Функция ХешMD5(Данные)
Хеш = Новый ХешированиеДанных(ХешФункция.MD5);
Хеш.Добавить(Данные);
ХешСумма = СтрЗаменить(Строка(Хеш.ХешСумма), " ", "");
Возврат ХешСумма;
КонецФункции
#КонецОбласти
#Область ИнформацияКлиента
Процедура ЗаписатьСтатистикуЭкрановКлиента(Параметры)
Экраны = Параметры["ИнформацияКлиента"]["ЭкраныКлиента"];
ХешПользователя = Параметры["ИнформацияКлиента"]["ПараметрыКлиента"]["ХешПользователя"];
Для Каждого ТекЭкран Из Экраны Цикл
ИмяОперацииСтатистики = "СтатистикаКлиента.ИнформацияОСистеме.РазрешениеМонитора." + ТекЭкран;
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперацииСтатистики, ХешПользователя, 1);
ИмяОперацииСтатистики = ИмяОперацииСтатистики + "." + Параметры["ИнформацияКлиента"]["ИнформацияОСистеме"]["ИнформацияПрограммыПросмотра"];
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперацииСтатистики, ХешПользователя, 1);
КонецЦикла;
КоличествоМониторовСтрока = Формат(Экраны.Количество(), "ЧГ=0");
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиСутки("СтатистикаКлиента.ИнформацияОСистеме.КоличествоМониторов." + КоличествоМониторовСтрока, ХешПользователя, 1);
КонецПроцедуры
Процедура ЗаписатьИнформациюОСистеме(Параметры)
ХешПользователя = Параметры["ИнформацияКлиента"]["ПараметрыКлиента"]["ХешПользователя"];
Для Каждого ТекИнфоОСистеме Из Параметры["ИнформацияКлиента"]["ИнформацияОСистеме"] Цикл
ИмяОперацииСтатистики = "СтатистикаКлиента.ИнформацияОСистеме." + ТекИнфоОСистеме.Ключ + "." + ТекИнфоОСистеме.Значение;
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиСутки(ИмяОперацииСтатистики, ХешПользователя, 1);
КонецЦикла;
КонецПроцедуры
Процедура ЗаписатьИнформацияКлиента(Параметры)
ХешПользователя = Параметры["ИнформацияКлиента"]["ПараметрыКлиента"]["ХешПользователя"];
ИмяОперацииСтатистики = "СтатистикаКлиента.АктивныхПользователей";
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиЧас(ИмяОперацииСтатистики, ХешПользователя, 1);
ИмяОперацииСтатистики = "СтатистикаКлиента.АктивныхОкон";
Значение = Параметры["ИнформацияКлиента"]["АктивныхОкон"];
ЦентрМониторинга.ЗаписатьОперациюБизнесСтатистикиЧас(ИмяОперацииСтатистики, ХешПользователя, Значение);
КонецПроцедуры
Процедура ЗаписатьДанныеСКлиента(Параметры)
ТекДата = ТекущаяУниверсальнаяДата();
Замеры = Параметры["Замеры"];
Для Каждого ЗамерыТипа Из Замеры Цикл
ТипЗаписи = ЗамерыТипа.Ключ;
Если ТипЗаписи = 0 Тогда
ЗаписатьДанныеСКлиентаТочные(ЗамерыТипа.Значение);
Иначе
ЗаписатьДанныеСКлиентаУникальные(ЗамерыТипа.Значение, ТипЗаписи, ТекДата);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаписатьДанныеСКлиентаТочные(Замеры)
РегистрыСведений.БуферОперацийСтатистики.ЗаписатьОперацииБизнесСтатистики(Замеры);
КонецПроцедуры
Процедура ЗаписатьДанныеСКлиентаУникальные(Замеры, ТипЗаписи, ТекДата)
Если ТипЗаписи = 1 Тогда
ПериодЗаписи = НачалоЧаса(ТекДата);
ИначеЕсли ТипЗаписи = 2 Тогда
ПериодЗаписи = НачалоДня(ТекДата);
КонецЕсли;
ПараметрыЗаписи = Новый Структура("ИмяОперации, КлючУникальности, Значение, Замещать, ТипЗаписи, ПериодЗаписи");
Для Каждого ТекЗамер Из Замеры Цикл
ПараметрыЗаписи.ИмяОперации = ТекЗамер.Значение.ОперацияСтатистики;
ПараметрыЗаписи.КлючУникальности = ТекЗамер.Значение.Ключ;
ПараметрыЗаписи.Значение = ТекЗамер.Значение.Значение;
ПараметрыЗаписи.Замещать = ТекЗамер.Значение.Замещать;
ПараметрыЗаписи.ТипЗаписи = ТипЗаписи;
ПараметрыЗаписи.ПериодЗаписи = ПериодЗаписи;
ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
Процедура ПервоначальноеЗаполнение() Экспорт
@@ -2015,6 +2354,49 @@
УстановитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга);
КонецПроцедуры
Процедура ДобавитьИдентификаторИнформационнойБазыПостоянный() Экспорт
ПараметрыЦентраМониторинга = ПолучитьПараметрыЦентраМониторинга();
ПараметрыЦентраМониторинга.Вставить("ИдентификаторИнформационнойБазыПостоянный", ПараметрыЦентраМониторинга.ИдентификаторИнформационнойБазы);
УстановитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга);
КонецПроцедуры
Процедура ЗаписатьОперациюБизнесСтатистикиСлужебная(ПараметрыЗаписи) Экспорт
ПериодЗаписи = ПараметрыЗаписи.ПериодЗаписи;
ТипЗаписи = ПараметрыЗаписи.ТипЗаписи;
Ключ = ПараметрыЗаписи.КлючУникальности;
ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ПараметрыЗаписи.ИмяОперации);
Значение = ПараметрыЗаписи.Значение;
Замещать = ПараметрыЗаписи.Замещать;
РегистрыСведений.ЗамерыСтатистики.ЗаписатьОперациюБизнесСтатистики(ПериодЗаписи, ТипЗаписи, Ключ, ОперацияСтатистики, Значение, Замещать);
КонецПроцедуры
Процедура ВыполнитьДействияПриОбнаруженииКопии()
ПараметрыЦентраМониторинга = ПолучитьПараметрыЦентраМониторинга();
ПараметрыЦентраМониторинга.ИдентификаторИнформационнойБазы = Новый УникальныйИдентификатор();
ПараметрыЦентраМониторинга.НомерКрайнегоПакета = 0;
УстановитьПараметрыЦентраМониторинга(ПараметрыЦентраМониторинга);
РегистрыСведений.ПакетыДляОтправки.Очистить();
КонецПроцедуры
Процедура УстановитьРазделениеСеанса(Использование, ОбластьДанных = Неопределено)
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Использование, ОбластьДанных);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -563,13 +563,14 @@
И НЕ Вложение.СкрытаФункциональнымиОпциями
И ПроверкаНаДубли[Вложение.УникальныйИдентификатор] = Неопределено Тогда
НоваяСтрока = ПараметрыШаблона.Вложения.Добавить();
НоваяСтрока.Имя = Вложение.Идентификатор;
НоваяСтрока.Идентификатор = Вложение.УникальныйИдентификатор;
НоваяСтрока.Представление = Вложение.Представление;
НоваяСтрока.МенеджерПечати = Вложение.МенеджерПечати;
НоваяСтрока.ТипФайла = "MXL";
НоваяСтрока.Статус = "ПечатнаяФорма";
НоваяСтрока.ИмяПараметра = ИмяПараметра;
НоваяСтрока.Имя = Вложение.Идентификатор;
НоваяСтрока.Идентификатор = Вложение.УникальныйИдентификатор;
НоваяСтрока.Представление = Вложение.Представление;
НоваяСтрока.МенеджерПечати = Вложение.МенеджерПечати;
НоваяСтрока.ТипФайла = "MXL";
НоваяСтрока.Статус = "ПечатнаяФорма";
НоваяСтрока.ИмяПараметра = ИмяПараметра;
НоваяСтрока.ПараметрыПечати = Вложение.ДополнительныеПараметры;
ПроверкаНаДубли.Вставить(Вложение.УникальныйИдентификатор, Истина);
КонецЕсли;
КонецЦикла;
+15 -11
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="ced55667-4ee0-4ec2-9322-76f08931de73">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ef99f613-6c8c-4b7e-9a2f-9de3f597369b">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 2.3</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0ce197c4-5e3f-43d7-b3c9-dda10c2f8b4d"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="de939365-4bd0-4a15-9afe-c5fec2936697"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="74e675b2-faaa-4920-b600-4d682c199705"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="e801f758-973c-47ab-b71c-dcfbaa43fd46"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="aa6f95e7-307a-453f-94cf-7a4e68ab5bcb"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="a5725440-f97f-46c2-8c50-0884c685b56c"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="7429ac3a-c2ea-4f4f-9b87-03ffda0bf382"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="d37808f4-bff1-46b9-8187-c08f7a27d56f"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="f2d8c8a6-1a75-4873-aa3a-89bc1e2a212e"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="d9bdc18a-47b6-40ce-8df2-6edbf5e811e0"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="714c7b8e-43a6-48aa-9f4e-0a94a41be3de"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="68221bf9-77c6-4e8c-a3b5-cd02520168a6"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="7cb4be5b-3b49-4542-8f48-016f7adc1807"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="a669b484-7b21-49e4-a530-c80740346739"/>
<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>2.3.5.81</version>
<version>2.3.6.121</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -923,7 +923,10 @@
<commonModules>CommonModule.ФизическиеЛицаКлиентСервер</commonModules>
<commonModules>CommonModule.ЦентрМониторинга</commonModules>
<commonModules>CommonModule.ЦентрМониторингаВызовСервераПовтИсп</commonModules>
<commonModules>CommonModule.ЦентрМониторингаКлиент</commonModules>
<commonModules>CommonModule.ЦентрМониторингаКлиентСлужебный</commonModules>
<commonModules>CommonModule.ЦентрМониторингаПереопределяемый</commonModules>
<commonModules>CommonModule.ЦентрМониторингаПовтИсп</commonModules>
<commonModules>CommonModule.ЦентрМониторингаСлужебный</commonModules>
<commonModules>CommonModule.ШаблоныСообщений</commonModules>
<commonModules>CommonModule.ШаблоныСообщенийКлиент</commonModules>
@@ -957,8 +960,8 @@
<xDTOPackages>XDTOPackage.EnterpriseData_1_0_beta</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_1_4</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_2_3</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_7</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_3</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_3_8</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseData_1_4_4</xDTOPackages>
<xDTOPackages>XDTOPackage.EnterpriseDataExchange_1_0_1_1</xDTOPackages>
<xDTOPackages>XDTOPackage.ExchangeMessage</xDTOPackages>
<xDTOPackages>XDTOPackage.SuppliedData</xDTOPackages>
@@ -1717,6 +1720,7 @@
<informationRegisters>InformationRegister.ЗамерыКомментарииСтатистики</informationRegisters>
<informationRegisters>InformationRegister.ЗамерыОбластиСтатистики</informationRegisters>
<informationRegisters>InformationRegister.ЗамерыОперацииСтатистики</informationRegisters>
<informationRegisters>InformationRegister.ЗамерыСтатистики</informationRegisters>
<informationRegisters>InformationRegister.ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов</informationRegisters>
<informationRegisters>InformationRegister.ЗначенияГруппДоступа</informationRegisters>
<informationRegisters>InformationRegister.ЗначенияГруппДоступаПоУмолчанию</informationRegisters>
@@ -1 +1 @@
{6,1,1,95dc6bd5-29ab-4b45-b703-7e47501d553f,1,d95ab1dc-bae0-47e0-9cb6-9c9f6914db0a,"2.3.5.81","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5379,1,0,ced55667-4ee0-4ec2-9322-76f08931de73,ced55667-4ee0-4ec2-9322-76f08931de73,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,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,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,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,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,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,c53df2d1-4564-47a7-b66e-6a23ba28270e,c53df2d1-4564-47a7-b66e-6a23ba28270e,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-4a1c-9fdb-a26293d4f713,1,0,a952960b-be1b-4ec4-bd76-80915065a60b,a952960b-be1b-4ec4-bd76-80915065a60b,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,ede5b7c8-42cd-4f79-90d2-b518e96d6b26,ede5b7c8-42cd-4f79-90d2-b518e96d6b26,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-Line truncated
{6,1,1,e47fd364-fc12-46c7-a281-5b2f7ab8a74b,1,98d150af-74ec-47db-b8be-3a5782a5748e,"2.3.6.121","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5391,1,0,ef99f613-6c8c-4b7e-9a2f-9de3f597369b,ef99f613-6c8c-4b7e-9a2f-9de3f597369b,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,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,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,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,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,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,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,c53df2d1-4564-47a7-b66e-6a23ba28270e,c53df2d1-4564-47a7-b66e-6a23ba28270e,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,060b6f18-538c-4ea1-9748-00efe0b1ab57,060b6f18-538c-4ea1-9748-00efe0b1ab57,1,0,307b6821-fd82-4a1c-9fdb-a26293d4f713,307b6821-fd82-4a1c-9fdb-a26293d4f713,1,0,a952960b-be1b-4ec4-bd76-80915065a60b,a952960b-be1b-4ec4-bd76-80915065a60b,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,ede5b7c8-42cd-4f79-90d2-b518e96d6b26,ede5b7c8-42cd-4f79-90d2-b518e96d6b26,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184Line truncated
@@ -44,7 +44,8 @@
ПутьКМенеджеруОбменаЗагрузки = "";
МенеджерОбменаВнутренний = Истина;
КонецПопытки;
ИначеЕсли ЗначениеЗаполнено(УзелОбмена) Тогда
ИначеЕсли ЗначениеЗаполнено(УзелОбмена)
И ОбщегоНазначения.ЕстьРеквизитОбъекта("ПутьКМенеджеруОбмена", УзелОбмена.Метаданные()) Тогда
ПутьКМенеджеруОбмена = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УзелОбмена, "ПутьКМенеджеруОбмена");
Если ЗначениеЗаполнено(ПутьКМенеджеруОбмена) Тогда
КомпонентыОбмена.МенеджерОбмена = ВнешниеОбработки.Создать(ПутьКМенеджеруОбмена);
@@ -107,7 +107,13 @@
ПолеВыбора.Поле = Новый ПолеКомпоновкиДанных("Ссылка");
ПолеВыбора.Использование = Истина;
Элементы.ГруппаВыбранныеОбъекты.Заголовок = ПодставитьПараметрыВСтроку(НСтр("ru = 'Выбранные элементы (%1)'"), ВыбранныеОбъекты().Строки.Количество());
КоличествоВыбранных = ВыбранныеОбъекты().Строки.Количество();
Если КоличествоВыбранных > 1000 Тогда
КоличествоВыбранных = НСтр("ru = '> 1000'");
ИначеЕсли КоличествоВыбранных = 0 Тогда
Список.КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);
КонецЕсли;
Элементы.ГруппаВыбранныеОбъекты.Заголовок = ПодставитьПараметрыВСтроку(НСтр("ru = 'Выбранные элементы (%1)'"), КоличествоВыбранных);
КонецПроцедуры
@@ -346,8 +346,7 @@
&НаКлиенте
Процедура ПослеПодключенияИнтернетПоддержки(Результат, ДополнительныеПараметры) Экспорт
Если Не (ТипЗнч(Результат) = Тип("Структура")
И ЗначениеЗаполнено(Результат.Логин)
И ЗначениеЗаполнено(Результат.Пароль)) Тогда
И ЗначениеЗаполнено(Результат.Логин)) Тогда
Возврат;
КонецЕсли;
ПродолжитьЗагрузкуКурсовВалют();
@@ -362,7 +361,9 @@
Если Не ИспользоватьАльтернативныйСервер Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей") Тогда
МодульИнтернетПоддержкаПользователей = ОбщегоНазначения.ОбщийМодуль("ИнтернетПоддержкаПользователей");
УстановитьПривилегированныйРежим(Истина);
ДанныеАутентификации = МодульИнтернетПоддержкаПользователей.ДанныеАутентификацииПользователяИнтернетПоддержки();
УстановитьПривилегированныйРежим(Ложь);
Возврат Не (ДанныеАутентификации <> Неопределено
И ЗначениеЗаполнено(ДанныеАутентификации.Логин)
И ЗначениеЗаполнено(ДанныеАутентификации.Пароль));
@@ -315,8 +315,8 @@
ТекущаяСтрокаИндекс = НоваяСтрокаИндекс;
// Видимость / Доступность
Элементы.ФормаНазад.Доступность = (ТекущаяСтрокаИндекс > 0);
// Видимость и доступность.
Элементы.ФормаНазад.Доступность = (ТекущаяСтрокаИндекс > 0);
Элементы.ФормаВперед.Доступность = (ТекущаяСтрокаИндекс < ИсторияПросмотра.Количество() - 1);
// Установка веб содержимого и заголовка формы.
@@ -362,11 +362,23 @@
КлючВыгружаемыхДанных = ИмяПКО;
ЭтоНеСсылочныйТип = ИмяТипа = "Константы"
ИЛИ ИмяТипа = "РегистрСведений"
ИЛИ ИмяТипа = "РегистрНакопления"
ИЛИ ИмяТипа = "РегистрБухгалтерии"
ИЛИ ИмяТипа = "РегистрРасчета";
Если ЗначениеЗаполнено(ИмяТипа) Тогда
ЭтоНеСсылочныйТип = ИмяТипа = "Константы"
Или ИмяТипа = "РегистрСведений"
Или ИмяТипа = "РегистрНакопления"
Или ИмяТипа = "РегистрБухгалтерии"
Или ИмяТипа = "РегистрРасчета";
Иначе
Если ТипЗнч(Источник) = Тип("Структура") Тогда
ЭтоНеСсылочныйТип = Не Источник.Свойство("Ссылка");
Иначе
ЭтоНеСсылочныйТип = Истина;
КонецЕсли;
КонецЕсли;
Если ЭтоНеСсылочныйТип
ИЛИ ПустаяСтрока(ИмяТипа) Тогда
@@ -6719,6 +6731,7 @@
Иначе
Объект.УстановитьСсылкуНового(Менеджер.ПолучитьСсылку(Новый УникальныйИдентификатор));
НоваяСсылка = Неопределено;
КонецЕсли;
@@ -15201,7 +15214,7 @@
ИначеЕсли ИмяУзла = "ПравилаРегистрацииОбъектов" Тогда
одПропустить(ПравилаОбмена);
// Алгоритмы / Запросы / Обработки
// Алгоритмы, Запросы, Обработки.
ИначеЕсли ИмяУзла = "Алгоритмы" Тогда
ЗагрузитьАлгоритмы(ПравилаОбмена, ЗаписьXML);
@@ -49,6 +49,73 @@
&НаКлиенте
Процедура ВыполнитьЭкспорт(Команда)
ЕстьОшибки = Ложь;
Если НЕ ЗначениеЗаполнено(ДатаНачалаПериодаЭкспорта) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Поле = "ДатаНачалаПериодаЭкспорта";
СообщениеПользователю.Текст = НСтр("ru = 'Значение параметра ""Дата начала"" не заполнено.
|Экспорт невозможен.'");
СообщениеПользователю.Сообщить();
ЕстьОшибки = Истина;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДатаОкончанияПериодаЭкспорта) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Поле = "ДатаОкончанияПериодаЭкспорта";
СообщениеПользователю.Текст = НСтр("ru = 'Значение параметра ""Дата окончания"" не заполнено.
|Экспорт невозможен.'");
СообщениеПользователю.Сообщить();
ЕстьОшибки = Истина;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(КаталогЭкспорта) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Поле = "КаталогЭкспорта";
СообщениеПользователю.Текст = НСтр("ru = 'Значение параметра ""Каталог экспорта"" не заполнено.
|Экспорт невозможен.'");
СообщениеПользователю.Сообщить();
ЕстьОшибки = Истина;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ИмяАрхива) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Поле = "ИмяАрхива";
СообщениеПользователю.Текст = НСтр("ru = 'Значение параметра ""Имя архива"" не заполнено.
|Экспорт невозможен.'");
СообщениеПользователю.Сообщить();
ЕстьОшибки = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ДатаНачалаПериодаЭкспорта) И ЗначениеЗаполнено(ДатаОкончанияПериодаЭкспорта) И ДатаНачалаПериодаЭкспорта >= ДатаОкончанияПериодаЭкспорта Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Поле = "ДатаНачалаПериодаЭкспорта";
СообщениеПользователю.Текст = НСтр("ru = 'Значение параметра ""Дата начала"" больше или равно значения параметры ""Дата окончания"".
|Экспорт невозможен.'");
СообщениеПользователю.Сообщить();
ЕстьОшибки = Истина;
КонецЕсли;
Если ЕстьОшибки Тогда
Возврат;
КонецЕсли;
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, ЭтаФорма.УникальныйИдентификатор);
ПараметрыЭкспорта = Новый Структура;
ПараметрыЭкспорта.Вставить("ДатаНачала", ЭтаФорма.ДатаНачалаПериодаЭкспорта);
@@ -1172,12 +1172,14 @@
СтрокиТаблицы = Объект.ИнформацияСтатистики.НайтиСтроки(Новый Структура("Ключ", ПараметрыОповещения.КлючУникальности));
ЗаполнитьЗначенияСвойств(СтрокиТаблицы[0], ПараметрыОповещения, "ДанныеУспешноЗагружены");
КлючиСтрок = Новый Массив;
КлючиСтрок.Добавить(ПараметрыОповещения.КлючУникальности);
ОбновитьИнформациюСопоставленияПоСтрокеНаСервере(Отказ, КлючиСтрок);
Если СтрокиТаблицы.Количество() > 0 Тогда
ЗаполнитьЗначенияСвойств(СтрокиТаблицы[0], ПараметрыОповещения, "ДанныеУспешноЗагружены");
КлючиСтрок = Новый Массив;
КлючиСтрок.Добавить(ПараметрыОповещения.КлючУникальности);
ОбновитьИнформациюСопоставленияПоСтрокеНаСервере(Отказ, КлючиСтрок);
КонецЕсли;
КонецПроцедуры
@@ -330,7 +330,7 @@
ОбработкаОбменаДанными.ВыполнитьЗагрузкуДанныхВТаблицуЗначений(ТаблицыДляЗагрузки);
Если ОбработкаОбменаДанными.ФлагОшибки() Тогда
Отказ = Истина;
НСтрока = НСтр("ru = 'При загрузке сообщения обмена возникли ошибки: %1'");
НСтрока = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтрока, ОбработкаОбменаДанными.СтрокаСообщенияОбОшибке());
ОбменДаннымиСервер.ЗафиксироватьЗавершениеОбменаСОшибкой(СтруктураНастроекОбмена.УзелИнформационнойБазы,
@@ -1288,8 +1288,15 @@
ЗапросыРазрешений = Новый Массив;
ПараметрыЗапроса = РегистрыСведений.НастройкиТранспортаОбмена.ПараметрыЗапросаНаИспользованиеВнешнихРесурсов();
ПараметрыЗапроса.ЗапрашиватьCOM = ЗапрашиватьCOM;
ПараметрыЗапроса.ЗапрашиватьFILE = ЗапрашиватьFILE;
ПараметрыЗапроса.ЗапрашиватьWS = ЗапрашиватьWS;
ПараметрыЗапроса.ЗапрашиватьFTP = ЗапрашиватьFTP;
РегистрыСведений.НастройкиТранспортаОбмена.ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений,
Запись, ЗапрашиватьCOM, ЗапрашиватьFILE, ЗапрашиватьWS, ЗапрашиватьFTP);
Запись, ПараметрыЗапроса);
Возврат ЗапросыРазрешений;
КонецФункции
@@ -156,6 +156,7 @@
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ЭтотОбъект(ТекущийОбъект = Неопределено)
Если ТекущийОбъект = Неопределено Тогда
Возврат РеквизитФормыВЗначение("Объект");
@@ -48,7 +48,7 @@
РеквизитОбъектаМетаданных = ТипОбъектаМетаданных.Реквизиты.Найти(Элемент.Значение);
Если РеквизитОбъектаМетаданных <> Неопределено
И РеквизитОбъектаМетаданных.Тип = Новый ОписаниеТипов("Строка",,,, Новый КвалификаторыСтроки(0)) Тогда
И РеквизитОбъектаМетаданных.Тип = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)) Тогда
Объект.СписокПолейТаблицы.Удалить(Элемент);
Продолжить;
КонецЕсли;
@@ -166,12 +166,9 @@
Если ВыдаватьПредупреждениеПриЗакрытииФормы = Истина Тогда
Оповещение = Новый ОписаниеОповещения("ПередЗакрытиемЗавершение", ЭтотОбъект);
СтарыйФлаг = Модифицированность;
Модифицированность = Истина;
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
Модифицированность = СтарыйФлаг;
Возврат;
КонецЕсли;
@@ -186,17 +183,9 @@
&НаКлиенте
Процедура ПередЗакрытиемЗавершение(Знач РезультатВопроса = Неопределено, Знач ДополнительныеПараметры = Неопределено) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
// Закрываем форму с сохранением данных.
ПередЗакрытиемПродолжение();
Закрыть();
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Нет Тогда
// Закрываем без продолжения
ВыдаватьПредупреждениеПриЗакрытииФормы = Ложь;
Закрыть();
КонецЕсли;
// Процедура вызывается при положительном ответе на вопрос.
// Закрываем форму с сохранением данных.
ЗаписатьИЗакрыть(Неопределено);
КонецПроцедуры
@@ -1330,7 +1319,11 @@
ДлительнаяОперация = Ложь;
ДлительнаяОперацияЗавершена = Истина;
Если Результат.Статус = "Ошибка" Или Результат.Статус = "Отменено" Тогда
Если Результат = Неопределено Тогда
// Фоновое задание аварийно отменилось.
ЗафиксироватьОшибку(НСтр("ru = 'Фоновое задание аварийно отменилось.'"));
ПерейтиНазад();
ИначеЕсли Результат.Статус = "Ошибка" Или Результат.Статус = "Отменено" Тогда
ЗафиксироватьОшибку(Результат.ПодробноеПредставлениеОшибки);
ПерейтиНазад();
Иначе
@@ -120,10 +120,10 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Обмен данными'", ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
Отказ = Истина;
ОтменитьТранзакцию();
Возврат;
КонецПопытки;
@@ -1069,51 +1069,73 @@
|ПОМЕСТИТЬ ТаблицаНеСопоставленныхОбъектовИсточника
|ИЗ
| (ВЫБРАТЬ
| Количество(*),
| ЭтоГруппаИсточник,
| ЭтоГруппаПриемник,
| Ссылка,
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#
| УникальныйИдентификаторПриемника,
| УникальныйИдентификаторИсточника,
| ТипИсточника,
| ТипПриемника
| ИЗ
| (ВЫБРАТЬ
|
| #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник,
| NULL КАК ЭтоГруппаПриемник,
| #ТаблицаИсточникаЭтоГруппа# КАК ЭтоГруппаИсточник,
| NULL КАК ЭтоГруппаПриемник,
|
| ТаблицаИсточника.Ссылка КАК Ссылка,
| ТаблицаИсточника.Ссылка КАК Ссылка,
|
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос#
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос#
|
| // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ}
| NULL КАК УникальныйИдентификаторПриемника,
| ТаблицаИсточника.УникальныйИдентификатор КАК УникальныйИдентификаторИсточника,
| &ТипИсточника КАК ТипИсточника,
| &ТипПриемника КАК ТипПриемника
| ИЗ
| ТаблицаИсточника КАК ТаблицаИсточника
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаСопоставленныхОбъектов КАК ТаблицаСопоставленныхОбъектов
| ПО
| ТаблицаИсточника.Ссылка = ТаблицаСопоставленныхОбъектов.Ссылка
| ГДЕ
| ТаблицаСопоставленныхОбъектов.Ссылка ЕСТЬ NULL
| // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ}
| NULL КАК УникальныйИдентификаторПриемника,
| ТаблицаИсточника.УникальныйИдентификатор КАК УникальныйИдентификаторИсточника,
| &ТипИсточника КАК ТипИсточника,
| &ТипПриемника КАК ТипПриемника
| ИЗ
| ТаблицаИсточника КАК ТаблицаИсточника
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаСопоставленныхОбъектов КАК ТаблицаСопоставленныхОбъектов
| ПО
| ТаблицаИсточника.Ссылка = ТаблицаСопоставленныхОбъектов.Ссылка
| ГДЕ
| ТаблицаСопоставленныхОбъектов.УникальныйИдентификаторИсточника ЕСТЬ NULL
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| #ТаблицаИсточникаЭтоГруппа#,
| NULL,
|
| ОБЪЕДИНИТЬ
| ТаблицаИсточника.Ссылка,
|
| ВЫБРАТЬ
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1#
|
| #ТаблицаИсточникаЭтоГруппа#,
| NULL,
| ТаблицаИсточника.Ссылка,
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1#
|
| // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ}
| NULL,
| ТаблицаИсточника.УникальныйИдентификатор,
| &ТипИсточника,
| &ТипПриемника
| ИЗ
| ТаблицаИсточника КАК ТаблицаИсточника
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаСопоставленныхОбъектов КАК ТаблицаСопоставленныхОбъектов
| ПО
| ТаблицаИсточника.УникальныйИдентификатор = ТаблицаСопоставленныхОбъектов.УникальныйИдентификаторИсточника
| ГДЕ
| ТаблицаСопоставленныхОбъектов.Ссылка ЕСТЬ NULL
| ) КАК ВложенныйЗапрос
| // {ДАННЫЕ РЕГИСТРА СОПОСТАВЛЕНИЯ}
| NULL,
| ТаблицаИсточника.УникальныйИдентификатор,
| &ТипИсточника,
| &ТипПриемника
| ИЗ
| ТаблицаИсточника КАК ТаблицаИсточника
| ЛЕВОЕ СОЕДИНЕНИЕ
| ТаблицаСопоставленныхОбъектов КАК ТаблицаСопоставленныхОбъектов
| ПО
| ТаблицаИсточника.УникальныйИдентификатор = ТаблицаСопоставленныхОбъектов.УникальныйИдентификаторИсточника
| ГДЕ
| ТаблицаСопоставленныхОбъектов.Ссылка ЕСТЬ NULL
| ) КАК ВложенныйЗапросПредварительный
| СГРУППИРОВАТЬ ПО
| ЭтоГруппаИсточник,
| ЭтоГруппаПриемник,
| Ссылка,
| #ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставления#
| УникальныйИдентификаторПриемника,
| УникальныйИдентификаторИсточника,
| ТипИсточника,
| ТипПриемника
| ИМЕЮЩИЕ Количество(*) > 1) КАК ВложенныйЗапрос
|;
|
|//////////////////////////////////////////////////////////////////////////////// {ТаблицаНеСопоставленныхОбъектовПриемника}
@@ -1175,7 +1197,7 @@
| ПО
| ТаблицаПриемника.Ссылка = ТаблицаСопоставленныхОбъектов.Ссылка
| ГДЕ
| ТаблицаСопоставленныхОбъектов.Ссылка ЕСТЬ NULL
| ТаблицаСопоставленныхОбъектов.УникальныйИдентификаторПриемника ЕСТЬ NULL
| ) КАК ВложенныйЗапрос
|;
|
@@ -1195,6 +1217,7 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаСопоставленныхОбъектовПоНеутвержденнымСвязям_ВложенныйЗапрос#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ВЫРАЗИТЬ(ТаблицаНеутвержденныхСвязей.УникальныйИдентификаторИсточника КАК [ИмяТаблицыПриемника]).# КАК ПриемникПолеNN, ТаблицаИсточника.# КАК ИсточникПолеNN,"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаИсточника.# КАК ИсточникПолеNN, NULL КАК ПриемникПолеNN,"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовИсточника_ВложенныйЗапрос1#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ТаблицаИсточника.#, NULL,"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЬЗОВАТЕЛЬСКИЕ_ПОЛЯ_ТаблицаНеСопоставленныхОбъектовПриемника_ВложенныйЗапрос#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "NULL КАК ИсточникПолеNN, ТаблицаПриемника.Ссылка.# КАК ПриемникПолеNN,"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПОЛЕ_СОРТИРОВКИ_Источник#", ПолучитьПользовательскиеПоля(ПользовательскиеПоля, "ИсточникПолеNN КАК ПолеСортировкиNN,"));
@@ -1233,7 +1256,7 @@
Запрос.УстановитьПараметр("УзелИнформационнойБазы", УзелИнформационнойБазы);
Запрос.Выполнить();
КонецПроцедуры
Процедура ДанныеАвтоматическогоСопоставления(ТаблицаИсточника, СписокПолейСопоставления, ПользовательскиеПоля, МенеджерВременныхТаблиц)
@@ -54,7 +54,7 @@
Если ПараметрыВыполнения.Монопольно Тогда
УдалитьПомеченныеОбъектыМонопольно(ПараметрыВыполнения);
Иначе // Не монопольно.
Иначе
УдалитьПомеченныеОбъектыКонкурентно(ПараметрыВыполнения);
КонецЕсли;
@@ -118,7 +118,6 @@
Информация = СформироватьИнформациюОТипах(ПараметрыВыполнения, ТипЗнч(Ссылка));
ИсходныеСообщения = ПолучитьСообщенияПользователю(Истина);
НачатьТранзакцию();
Попытка
ПопробоватьУдалитьСсылку(ПараметрыВыполнения, Ссылка, Информация, Результат);
@@ -129,10 +128,8 @@
Результат.Успех = Ложь;
Результат.ИнформацияОбОшибке = ИнформацияОбОшибке();
КонецПопытки;
Результат.Сообщения = ПолучитьСообщенияПользователю(Истина);
Для Каждого Сообщение Из ИсходныеСообщения Цикл
Сообщение.Сообщить();
КонецЦикла;
Результат.Сообщения = ДлительныеОперации.СообщенияПользователю(Истина);
Если Не Результат.Успех Тогда
ОтменитьТранзакцию();
ЗаписатьПредупреждение(Ссылка, Результат.ИнформацияОбОшибке);
@@ -1669,6 +1669,7 @@
КонецПроцедуры
&НаКлиенте
Процедура ТипИнформационнойБазыДляПодключенияПриИзмененииЗначения()
ТипБазы = Элементы.ТипБазы;
@@ -2889,8 +2889,7 @@
Процедура ИнициализироватьВедениеПротоколаОбменаДляЭкспортаОбработчиков()
// Получаем уникальное имя файла.
ИмяВременногоФайлаПротоколаОбмена = ПолучитьНовоеУникальноеИмяВременногоФайла("ПротоколОбмена", "txt", ИмяВременногоФайлаПротоколаОбмена);
ИмяВременногоФайлаПротоколаОбмена = ПолучитьНовоеУникальноеИмяВременногоФайла(ИмяВременногоФайлаПротоколаОбмена);
мФайлПротоколаДанных = Новый ЗаписьТекста(ИмяВременногоФайлаПротоколаОбмена, КодировкаТекста.ANSI);
@@ -4444,8 +4443,7 @@
КонецЕсли;
// Получаем уникальное имя файла.
ИмяВременногоФайлаОбработчиковСобытий = ПолучитьНовоеУникальноеИмяВременногоФайла("ОбработчикиСобытий", "txt", ИмяВременногоФайлаОбработчиковСобытий);
ИмяВременногоФайлаОбработчиковСобытий = ПолучитьНовоеУникальноеИмяВременногоФайла(ИмяВременногоФайлаОбработчиковСобытий);
Результат = Новый ЗаписьТекста(ИмяВременногоФайлаОбработчиковСобытий, КодировкаТекста.ANSI);
@@ -11843,8 +11841,7 @@
КонецЕсли;
КонецЦикла;
МакетПравилОбмена = ПолучитьМакет(Источник);
УникальныйИдентификатор = Новый УникальныйИдентификатор();
ИмяВременногоФайлаПравилОбмена = КаталогВременныхФайлов() + УникальныйИдентификатор + ".xml";
ИмяВременногоФайлаПравилОбмена = ПолучитьИмяВременногоФайла("xml");
МакетПравилОбмена.Записать(ИмяВременногоФайлаПравилОбмена);
Источник = ИмяВременногоФайлаПравилОбмена;
КонецЕсли;
@@ -12092,7 +12089,7 @@
ИначеЕсли ИмяУзла = "ПравилаРегистрацииОбъектов" Тогда
одПропустить(ПравилаОбмена); // Правила регистрации объектов загружаем другой обработкой.
// Алгоритмы / Запросы / Обработки
// Алгоритмы, Запросы, Обработки.
ИначеЕсли ИмяУзла = "Алгоритмы" Тогда
ЗагрузитьАлгоритмы(ПравилаОбмена, ЗаписьXML);
@@ -12633,7 +12630,8 @@
Функция РаспаковатьZipФайл(ИмяФайлаДляРаспаковки)
КаталогДляРаспаковки = КаталогВременныхФайлов();
КаталогДляРаспаковки = ПолучитьИмяВременногоФайла();
СоздатьКаталог(КаталогДляРаспаковки);
ИмяРаспакованногоФайла = "";
@@ -13893,18 +13891,12 @@
КонецПроцедуры
Функция ПолучитьНовоеУникальноеИмяВременногоФайла(Префикс, Расширение, СтароеИмяВременногоФайла)
Функция ПолучитьНовоеУникальноеИмяВременногоФайла(СтароеИмяВременногоФайла, Расширение = "txt")
// Удаляем предыдущий временный файл.
УдалитьВременныеФайлы(СтароеИмяВременногоФайла);
УникальныйИдентификатор = Новый УникальныйИдентификатор();
Возврат ПолучитьИмяВременногоФайла(Расширение);
Префикс = ?(ПустаяСтрока(Префикс), "", Префикс + "_");
Расширение = ?(ПустаяСтрока(Расширение), "", "." + Расширение);
Возврат КаталогВременныхФайлов() + Префикс + УникальныйИдентификатор + Расширение;
КонецФункции
Процедура ИнициализацияСтруктурыИменОбработчиков()
@@ -330,7 +330,7 @@ function backupDB() {
if (!createBackup)
return 0;
try {
var newpath = oFileSystemObject.CopyFile(BaseFileName, backupFileName, true);
oFileSystemObject.CopyFile(BaseFileName, backupFileName, true);
ret = 0;
log(format("Резервная копия базы создана", ret), ret != 0);
}
@@ -339,6 +339,7 @@ function backupDB() {
log(format("Исключение при создании резервной копии базы: {0}, {1}.", e.name, e.message), true);
log(format("Трассировка:\nКопировали из: {0}\nКопировали в:{1}", BaseFileName, backupFileName), true);
ret = 1;
UseRestore = false;
}
if (ret == 0)
backupCreated = true;
@@ -151,6 +151,84 @@
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаПеречитать</name>
<id>215</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПеречитатьРасширеннаяПодсказка</name>
<id>216</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.Reread</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаУстановитьПометкуУдаления</name>
<id>217</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаУстановитьПометкуУдаленияРасширеннаяПодсказка</name>
<id>218</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.SetDeletionMark</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаОтменаПроведения</name>
<id>219</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаОтменаПроведенияРасширеннаяПодсказка</name>
<id>220</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.StandardCommand.UndoPosting</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>ФормаКоманднаяПанельЗаписать</name>
<id>87</id>
@@ -1389,14 +1389,18 @@
ТекстHTMLВходящее = Взаимодействия.СформироватьТекстHTMLДляИсходящегоПисьма(ВзаимодействиеОснование, Истина, Истина);
КонецЕсли;
ВременныйКаталог = КаталогВременныхФайлов();
ИмяФайла = ВременныйКаталог + НСтр("ru = 'Пересылаемое сообщение'") + ".htm";
ИмяФайла = ПолучитьИмяВременногоФайла("html");
ФайлИсходноеСообщение = Новый ЗаписьТекста(ИмяФайла,КодировкаТекста.UTF16);
ФайлИсходноеСообщение.Записать(ТекстHTMLВходящее);
ФайлИсходноеСообщение.Закрыть();
ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
АдресФайлаВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ФайлНаДиске = Новый Файл(ИмяФайла);
Если ФайлНаДиске.Существует() Тогда
УдалитьФайлы(ИмяФайла);
КонецЕсли;
ПараметрыФайла = Новый Структура;
ПараметрыФайла.Вставить("ВладелецФайлов", ТекущийОбъект.Ссылка);
ПараметрыФайла.Вставить("Автор", Неопределено);
@@ -87,6 +87,7 @@
Результат.Добавить("ПолучателиОтвета.Контакт");
Результат.Добавить("ПолучателиСкрытыхКопий.Представление");
Результат.Добавить("ПолучателиСкрытыхКопий.Контакт");
Возврат Результат;
КонецФункции
@@ -115,6 +116,90 @@
#Область ОбработчикиОбновления
// Регистрирует на плане обмена ОбновлениеИнформационнойБазы объекты,
// которые необходимо обновить на новую версию.
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ТекстЗапроса =
"ВЫБРАТЬ
| ЭлектронноеПисьмоИсходящее.Ссылка
|ИЗ
| Документ.ЭлектронноеПисьмоИсходящее КАК ЭлектронноеПисьмоИсходящее
|ГДЕ
| ЭлектронноеПисьмоИсходящее.УдалитьИдентификаторСообщенияОтправкаIMAP <> """"";
Запрос = Новый Запрос(ТекстЗапроса);
ОбновлениеИнформационнойБазы.ОтметитьКОбработке(Параметры, Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
КонецПроцедуры
// Обработчик обновления на версию 2.3.6.69:
// - переносит данные о идентификаторе письма IMAP из одного реквизита в другой для
// - предотвращения потери информации при обновлении на последующие релизы.
//
Процедура ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры) Экспорт
ПолноеИмяОбъекта = "Документ.ЭлектронноеПисьмоИсходящее";
ОбъектыДляОбработки = ОбновлениеИнформационнойБазы.ВыбратьСсылкиДляОбработки(Параметры.Очередь, ПолноеИмяОбъекта);
Пока ОбъектыДляОбработки.Следующий() Цикл
НачатьТранзакцию();
Попытка
// Устанавливаем управляемую блокировку, чтобы провести ответственное чтение объекта.
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ПолноеИмяОбъекта);
ЭлементБлокировки.УстановитьЗначение("Ссылка", ОбъектыДляОбработки.Ссылка);
Блокировка.Заблокировать();
Объект = ОбъектыДляОбработки.Ссылка.ПолучитьОбъект();
Если Объект = Неопределено Тогда
ОтменитьТранзакцию();
ОбновлениеИнформационнойБазы.ОтметитьВыполнениеОбработки(ОбъектыДляОбработки.Ссылка);
Продолжить;
КонецЕсли;
Объект.ИдентификаторСообщенияОтправкаIMAP = Объект.УдалитьИдентификаторСообщенияОтправкаIMAP;
Объект.УдалитьИдентификаторСообщенияОтправкаIMAP = "";
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
МетаданныеОбъекта = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъекта);
ТекстСообщения = НСтр("ru = 'Не удалось обработать %ИмяОбъекта%: %Ссылка% по причине: %Причина%'");
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ИмяОбъекта%", ПолноеИмяОбъекта);
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Ссылка%", ОбъектыДляОбработки.Ссылка);
ТекстСообщения = СтрЗаменить(ТекстСообщения, "%Причина%", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(ОбновлениеИнформационнойБазы.СобытиеЖурналаРегистрации(),
УровеньЖурналаРегистрации.Предупреждение,
МетаданныеОбъекта,
ОбъектыДляОбработки.Ссылка,
ТекстСообщения);
КонецПопытки;
КонецЦикла;
Параметры.ОбработкаЗавершена = ОбновлениеИнформационнойБазы.ОбработкаДанныхЗавершена(Параметры.Очередь, ПолноеИмяОбъекта);
КонецПроцедуры
// Регистрирует к обработке электронные письма у которых возможно заполнить ВзаимодействиеОснование.
//
Процедура ЗаполнитьВзаимодействияОснованияУПодчиненныхПисемКОбработке(Параметры) Экспорт
@@ -289,10 +289,10 @@
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="03f32b08-1b71-47cb-ba1d-965037df4d64">
<name>ИдентификаторСообщенияОтправкаIMAP</name>
<name>УдалитьИдентификаторСообщенияОтправкаIMAP</name>
<synonym>
<key>ru</key>
<value>Идентификатор сообщения отправка IMAP</value>
<value>(не используется) Идентификатор сообщения отправка IMAP</value>
</synonym>
<type>
<types>String</types>
@@ -846,6 +846,29 @@
<indexing>Index</indexing>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="1f8cb390-2cbb-4a88-96ee-b31695b73d78">
<name>ИдентификаторСообщенияОтправкаIMAP</name>
<synonym>
<key>ru</key>
<value>Идентификатор сообщения отправка IMAP</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<toolTip>
<key>ru</key>
<value>Идентификатор письма полученный при отправке письма на сервер по протоколу IMAP. Скрытый реквизит.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:StringValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<forms uuid="ce2a8ff8-94fd-4ce2-9caa-4711e9b79ee9">
<name>ФормаДокумента</name>
<synonym>
@@ -622,6 +622,9 @@
<content>
<mdObject>Catalog.Файлы</mdObject>
</content>
<content>
<mdObject>InformationRegister.ЗамерыСтатистики</mdObject>
</content>
<content>
<mdObject>InformationRegister.КомментарииСтатистики</mdObject>
</content>
@@ -568,7 +568,7 @@
Аутентификация = СохраненныеДанныеАутентификацииСайта();
КонецЕсли;
Если ПустаяСтрока(Аутентификация.Пароль) Тогда
Если ПустаяСтрока(Аутентификация.Логин) Тогда
// Проходим через форму авторизации принудительно.
Оповещение = Новый ОписаниеОповещения("ЗагрузитьКлассификаторССайтаЗапросАутентификации", ЭтотОбъект, Новый Структура);
Оповещение.ДополнительныеПараметры.Вставить("КодыРегионов", КодыРегионов);
@@ -587,7 +587,7 @@
Если ТипЗнч(Аутентификация) <> Тип("Структура") Тогда
// Возвращаемся на страницу выбора.
Элементы.ШагиЗагрузки.ТекущаяСтраница = Элементы.ВыборРегионовЗагрузки;
ИначеЕсли ПустаяСтрока(Аутентификация.Логин) Или ПустаяСтрока(Аутентификация.Пароль) Тогда
ИначеЕсли ПустаяСтрока(Аутентификация.Логин) Тогда
// На повторный ввод пароля
ЗагрузитьКлассификаторССайта(Аутентификация);
Иначе
@@ -871,7 +871,9 @@
&НаСервереБезКонтекста
Функция СохраненныеДанныеАутентификацииСайта()
УстановитьПривилегированныйРежим(Истина);
Результат = АдресныйКлассификаторСлужебный.ПараметрыАутентификацииНаСайте();
УстановитьПривилегированныйРежим(Ложь);
Возврат ?(Результат <> Неопределено, Результат, Новый Структура("Логин,Пароль"));
КонецФункции
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -53,6 +57,10 @@
<items xsi:type="form:FormField">
<name>Период</name>
<id>84</id>
<title>
<key>ru</key>
<value>Период</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -133,12 +141,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа период</value>
<value>Период</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа период</value>
</toolTip>
<extendedTooltip>
<name>ГруппаПериодРасширеннаяПодсказка</name>
<id>83</id>
@@ -246,12 +250,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа операция</value>
<value>Операция</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа операция</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОперацияРасширеннаяПодсказка</name>
<id>47</id>
@@ -359,12 +359,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа комментарий</value>
<value>Комментарий</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа комментарий</value>
</toolTip>
<extendedTooltip>
<name>ГруппаКомментарийРасширеннаяПодсказка</name>
<id>49</id>
@@ -472,12 +468,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа области</value>
<value>Области</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа области</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОбластиРасширеннаяПодсказка</name>
<id>51</id>
@@ -717,8 +709,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -3,16 +3,22 @@
#Область СлужебныеПроцедурыИФункции
Процедура ЗаписатьОперациюБизнесСтатистики(ИмяОперации, Значение, Комментарий = Неопределено, Разделитель = ".") Экспорт
УстановитьПривилегированныйРежим(Истина);
УстановитьПривилегированныйРежим(Истина);
ПериодИдентификатораУдаления = ЦентрМониторингаВызовСервераПовтИсп.ПолучитьПараметрыЦентраМониторинга("ПериодАгрегацииМалый");
Если ОбщегоНазначения.ИспользованиеРазделителяСеанса() Тогда
ОбластьДанных = Формат(ОбщегоНазначения.ЗначениеРазделителяСеанса(), "ЧН=0; ЧГ=0");
Иначе
ОбластьДанных = Формат(0, "ЧН=0; ЧГ=0");
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
Если МодульРаботаВМоделиСервиса.ИспользованиеРазделителяСеанса() Тогда
ОбластьДанных = Формат(МодульРаботаВМоделиСервиса.ЗначениеРазделителяСеанса(), "ЧН=0; ЧГ=0");
Иначе
ОбластьДанных = Формат(0, "ЧН=0; ЧГ=0");
КонецЕсли;
Иначе
ОбластьДанных = Формат(0, "ЧН=0; ЧГ=0");
КонецЕсли;
ТекДата = ТекущаяУниверсальнаяДатаВМиллисекундах();
Если Разделитель <> "." Тогда
@@ -20,22 +26,60 @@
ИмяОперации = СтрЗаменить(ИмяОперации, Разделитель, ".");
КонецЕсли;
ОперацияСсылка = РегистрыСведений.ОперацииСтатистики.ПолучитьСсылку(ИмяОперации);
ОперацияСсылка = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(ИмяОперации);
КомментарийСсылка = РегистрыСведений.КомментарииСтатистики.ПолучитьСсылку(Комментарий, ОперацияСсылка);
ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку(ОбластьДанных);
НаборЗаписей = РегистрыСведений.БуферОперацийСтатистики.СоздатьНаборЗаписей();
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ДатаЗаписи = ТекДата;
НовЗапись.ИдентификаторУдаления = Цел(Цел(ТекДата/1000)/ПериодИдентификатораУдаления)*ПериодИдентификатораУдаления;
НовЗапись.ИдентификаторЗаписи = Новый УникальныйИдентификатор();
НовЗапись.ОперацияСтатистики = ОперацияСсылка;
НовЗапись.КомментарийСтатистики = КомментарийСсылка;
НовЗапись.ОбластьСтатистики = ОбластьДанныхСсылка;
НовЗапись.Значение = Значение;
МенеджерЗаписи = СоздатьМенеджерЗаписи();
МенеджерЗаписи.ДатаЗаписи = ТекДата;
МенеджерЗаписи.ИдентификаторУдаления = Цел(Цел(ТекДата/1000)/ПериодИдентификатораУдаления)*ПериодИдентификатораУдаления;
МенеджерЗаписи.ИдентификаторЗаписи = Новый УникальныйИдентификатор();
МенеджерЗаписи.ОперацияСтатистики = ОперацияСсылка;
МенеджерЗаписи.КомментарийСтатистики = КомментарийСсылка;
МенеджерЗаписи.ОбластьСтатистики = ОбластьДанныхСсылка;
МенеджерЗаписи.Значение = Значение;
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НаборЗаписей.Записать(Ложь);
МенеджерЗаписи.Записать(Ложь);
КонецПроцедуры
Процедура ЗаписатьОперацииБизнесСтатистики(Операции) Экспорт
УстановитьПривилегированныйРежим(Истина);
ПериодИдентификатораУдаления = ЦентрМониторингаВызовСервераПовтИсп.ПолучитьПараметрыЦентраМониторинга("ПериодАгрегацииМалый");
ТекДата = ТекущаяУниверсальнаяДатаВМиллисекундах();
ИдентификаторУдаления = Цел(Цел(ТекДата/1000)/ПериодИдентификатораУдаления)*ПериодИдентификатораУдаления;
КомментарийСсылка = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
ОбластьДанныхСсылка = РегистрыСведений.ОбластиСтатистики.ПолучитьСсылку("0");
НаборЗаписей = СоздатьНаборЗаписей();
МаксимальноеКоличествоЗаписей = 1000;
Для Каждого Операция Из Операции Цикл
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ДатаЗаписи = ТекДата;
НовЗапись.ИдентификаторУдаления = ИдентификаторУдаления;
НовЗапись.ИдентификаторЗаписи = Новый УникальныйИдентификатор();
НовЗапись.ОперацияСтатистики = ЦентрМониторингаПовтИсп.ПолучитьСсылкуОперацииСтатистики(Операция.ОперацияСтатистики);
НовЗапись.КомментарийСтатистики = КомментарийСсылка;
НовЗапись.ОбластьСтатистики = ОбластьДанныхСсылка;
НовЗапись.Значение = Операция.Значение;
Если НаборЗаписей.Количество() >= МаксимальноеКоличествоЗаписей Тогда
НаборЗаписей.Записать(Ложь);
НаборЗаписей.Очистить();
КонецЕсли;
КонецЦикла;
Если НаборЗаписей.Количество() > 0 Тогда
НаборЗаписей.Записать(Ложь);
НаборЗаписей.Очистить();
КонецЕсли;
КонецПроцедуры
Функция ПолучитьАгрегированныеЗаписиОпераций(ДатаЗаписи, ПериодАгрегации, ПериодУдаления) Экспорт
@@ -239,7 +283,7 @@
РезультатЗапроса = Запрос.Выполнить();
НаборЗаписей = РегистрыСведений.БуферОперацийСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.ИдентификаторУдаления.Установить(Выборка.ИдентификаторУдаления);
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -309,8 +313,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -36,7 +36,7 @@
КонецФункции
Процедура ИзменитьЗапись(Запись) Экспорт
МенеджерЗаписи = РегистрыСведений.ДампыПлатформы.СоздатьМенеджерЗаписи();
МенеджерЗаписи = СоздатьМенеджерЗаписи();
МенеджерЗаписи.ДатаРегистрации = Запись.ДатаРегистрации;
МенеджерЗаписи.ВариантДампа = Запись.ВариантДампа;
МенеджерЗаписи.ВерсияПлатформы = Запись.ВерсияПлатформы;
@@ -60,7 +60,7 @@
<type>
<types>String</types>
<stringQualifiers>
<length>500</length>
<length>392</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
@@ -79,7 +79,7 @@
<type>
<types>Number</types>
<numberQualifiers>
<precision>15</precision>
<precision>14</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
@@ -99,14 +99,16 @@
<type>
<types>String</types>
<stringQualifiers>
<length>100</length>
<length>45</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:StringValue"/>
<fillValue xsi:type="core:StringValue">
<value> </value>
</fillValue>
<mainFilter>true</mainFilter>
</dimensions>
<dimensions uuid="de4815c8-0853-47e0-862b-b60119c674f6">
@@ -86,6 +86,11 @@
НаборДанных.Записать();
НаборДанных = РегистрыСведений.ДанныеОбработанныеВЦентральномУзлеРИБ.СоздатьНаборЗаписей();
Если ЗначениеЗаполнено(ИдентификаторОбъектаМетаданных) Тогда
НаборДанных.Отбор.ОбъектМетаданных.Установить(ИдентификаторОбъектаМетаданных);
КонецЕсли;
НаборДанных.Отбор.Очередь.Установить(Очередь);
КонецЦикла;
Иначе
@@ -6208,4 +6208,369 @@
<Item Calendar="РФ" Year="2017" DayType="Рабочий" Date="20171229" SwapDate=""/>
<Item Calendar="РФ" Year="2017" DayType="Суббота" Date="20171230" SwapDate=""/>
<Item Calendar="РФ" Year="2017" DayType="Воскресенье" Date="20171231" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180101" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180102" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180103" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180104" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180105" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180106" SwapDate="20180309"/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180107" SwapDate="20180502"/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180108" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180109" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180110" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180111" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180112" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180113" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180114" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180115" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180116" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180117" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180118" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180119" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180120" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180121" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180122" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180123" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180124" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180125" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180126" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180127" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180128" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180129" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180130" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180131" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180201" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180202" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180203" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180204" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180205" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180206" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180207" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180208" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180209" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180210" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180211" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180212" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180213" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180214" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180215" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180216" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180217" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180218" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180219" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180220" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180221" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20180222" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180223" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180224" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180225" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180226" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180227" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180228" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180301" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180302" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180303" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180304" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180305" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180306" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20180307" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180308" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180309" SwapDate="20180106"/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180310" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180311" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180312" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180313" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180314" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180315" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180316" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180317" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180318" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180319" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180320" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180321" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180322" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180323" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180324" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180325" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180326" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180327" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180328" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180329" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180330" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180331" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180401" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180402" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180403" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180404" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180405" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180406" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180407" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180408" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180409" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180410" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180411" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180412" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180413" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180414" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180415" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180416" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180417" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180418" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180419" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180420" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180421" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180422" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180423" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180424" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180425" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180426" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180427" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20180428" SwapDate="20180430"/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180429" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180430" SwapDate="20180428"/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180501" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180502" SwapDate="20180107"/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180503" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180504" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180505" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180506" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180507" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20180508" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180509" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180510" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180511" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180512" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180513" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180514" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180515" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180516" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180517" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180518" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180519" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180520" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180521" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180522" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180523" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180524" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180525" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180526" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180527" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180528" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180529" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180530" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180531" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180601" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180602" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180603" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180604" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180605" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180606" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180607" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180608" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20180609" SwapDate="20180611"/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180610" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180611" SwapDate="20180609"/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20180612" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180613" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180614" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180615" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180616" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180617" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180618" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180619" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180620" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180621" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180622" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180623" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180624" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180625" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180626" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180627" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180628" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180629" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180630" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180701" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180702" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180703" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180704" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180705" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180706" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180707" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180708" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180709" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180710" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180711" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180712" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180713" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180714" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180715" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180716" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180717" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180718" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180719" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180720" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180721" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180722" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180723" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180724" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180725" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180726" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180727" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180728" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180729" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180730" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180731" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180801" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180802" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180803" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180804" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180805" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180806" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180807" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180808" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180809" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180810" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180811" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180812" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180813" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180814" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180815" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180816" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180817" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180818" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180819" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180820" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180821" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180822" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180823" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180824" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180825" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180826" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180827" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180828" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180829" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180830" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180831" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180901" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180902" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180903" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180904" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180905" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180906" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180907" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180908" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180909" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180910" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180911" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180912" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180913" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180914" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180915" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180916" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180917" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180918" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180919" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180920" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180921" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180922" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180923" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180924" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180925" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180926" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180927" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20180928" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20180929" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20180930" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181001" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181002" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181003" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181004" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181005" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181006" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181007" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181008" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181009" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181010" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181011" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181012" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181013" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181014" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181015" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181016" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181017" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181018" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181019" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181020" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181021" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181022" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181023" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181024" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181025" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181026" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181027" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181028" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181029" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181030" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181031" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181101" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181102" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181103" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Праздник" Date="20181104" SwapDate="20181105"/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181105" SwapDate="20181104"/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181106" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181107" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181108" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181109" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181110" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181111" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181112" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181113" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181114" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181115" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181116" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181117" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181118" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181119" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181120" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181121" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181122" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181123" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181124" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181125" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181126" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181127" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181128" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181129" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181130" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181201" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181202" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181203" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181204" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181205" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181206" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181207" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181208" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181209" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181210" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181211" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181212" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181213" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181214" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181215" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181216" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181217" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181218" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181219" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181220" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181221" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181222" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181223" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181224" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181225" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181226" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181227" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Рабочий" Date="20181228" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Предпраздничный" Date="20181229" SwapDate="20181231"/>
<Item Calendar="РФ" Year="2018" DayType="Воскресенье" Date="20181230" SwapDate=""/>
<Item Calendar="РФ" Year="2018" DayType="Суббота" Date="20181231" SwapDate="20181229"/>
</Items>
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -137,12 +141,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа период</value>
<value>Период</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа период</value>
</toolTip>
<extendedTooltip>
<name>ГруппаПериодРасширеннаяПодсказка</name>
<id>42</id>
@@ -250,12 +250,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа операция</value>
<value>Операция</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа операция</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОперацияРасширеннаяПодсказка</name>
<id>38</id>
@@ -363,12 +359,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа комментарий</value>
<value>Комментарий</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа комментарий</value>
</toolTip>
<extendedTooltip>
<name>ГруппаКомментарийРасширеннаяПодсказка</name>
<id>40</id>
@@ -572,8 +564,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -12,7 +12,7 @@
Если НЕ Замеры.Пустой() Тогда
НулевойИдентификатор = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
НаборЗаписей = РегистрыСведений.ЗамерыКомментарииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Выборка = Замеры.Выбрать();
Пока Выборка.Следующий() Цикл
@@ -82,7 +82,7 @@
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
НаборЗаписей = РегистрыСведений.ЗамерыКомментарииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.ИдентификаторУдаления.Установить(Выборка.ИдентификаторУдаления);
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -137,12 +141,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа период</value>
<value>Период</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа период</value>
</toolTip>
<extendedTooltip>
<name>ГруппаПериодРасширеннаяПодсказка</name>
<id>42</id>
@@ -250,12 +250,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа операция</value>
<value>Операция</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа операция</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОперацияРасширеннаяПодсказка</name>
<id>38</id>
@@ -363,12 +359,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа область</value>
<value>Область</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа область</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОбластьРасширеннаяПодсказка</name>
<id>40</id>
@@ -572,8 +564,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -10,7 +10,7 @@
Процедура ЗаписатьРезультатЗапроса(Замеры)
Если НЕ Замеры.Пустой() Тогда
НаборЗаписей = РегистрыСведений.ЗамерыОбластиСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Выборка = Замеры.Выбрать();
Пока Выборка.Следующий() Цикл
@@ -78,7 +78,7 @@
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
НаборЗаписей = РегистрыСведений.ЗамерыОбластиСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.ИдентификаторУдаления.Установить(Выборка.ИдентификаторУдаления);
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -129,12 +133,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа период</value>
<value>Период</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа период</value>
</toolTip>
<extendedTooltip>
<name>ГруппаПериодРасширеннаяПодсказка</name>
<id>23</id>
@@ -234,12 +234,8 @@
</userVisible>
<title>
<key>ru</key>
<value>Группа операция</value>
<value>Операция</value>
</title>
<toolTip>
<key>ru</key>
<value>Группа операция</value>
</toolTip>
<extendedTooltip>
<name>ГруппаОперацияРасширеннаяПодсказка</name>
<id>25</id>
@@ -443,8 +439,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -10,7 +10,7 @@
Процедура ЗаписатьРезультатЗапроса(Замеры)
Если НЕ Замеры.Пустой() Тогда
НаборЗаписей = РегистрыСведений.ЗамерыОперацииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Выборка = Замеры.Выбрать();
Пока Выборка.Следующий() Цикл
@@ -78,7 +78,7 @@
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
НаборЗаписей = РегистрыСведений.ЗамерыОперацииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.ИдентификаторУдаления.Установить(Выборка.ИдентификаторУдаления);
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
<itemsViewMode>Normal</itemsViewMode>
<itemsUserSettingID>911b6018-f537-43e8-a417-da56b22f9aec</itemsUserSettingID>
</Settings>
@@ -0,0 +1,498 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<title>
<key>ru</key>
<value>Замеры статистики</value>
</title>
<items xsi:type="form:FormGroup">
<name>СписокКомпоновщикНастроекПользовательскиеНастройки</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<title>
<key>ru</key>
<value>Группа пользовательских настроек</value>
</title>
<verticalStretch>false</verticalStretch>
<extendedTooltip>
<name>СписокКомпоновщикНастроекПользовательскиеНастройкиРасширеннаяПодсказка</name>
<id>2</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>Vertical</group>
<behavior>Auto</behavior>
<representation>WeakSeparation</representation>
<showLeftMargin>true</showLeftMargin>
<united>true</united>
<throughAlign>Auto</throughAlign>
<currentRowUse>Auto</currentRowUse>
</extInfo>
</items>
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<items xsi:type="form:FormField">
<name>ПериодЗаписи</name>
<id>16</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ПериодЗаписи</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ПериодЗаписиРасширеннаяПодсказка</name>
<id>18</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПериодЗаписиКонтекстноеМеню</name>
<id>17</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ТипЗаписи</name>
<id>34</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ТипЗаписи</segments>
</dataPath>
<extendedTooltip>
<name>ТипЗаписиРасширеннаяПодсказка</name>
<id>36</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ТипЗаписиКонтекстноеМеню</name>
<id>35</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>Ключ</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Ключ</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>КлючРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>КлючКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ОперацияСтатистики</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ОперацияСтатистики</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ОперацияСтатистикиРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОперацияСтатистикиКонтекстноеМеню</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ОперацияСтатистикиНаименование</name>
<id>31</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ОперацияСтатистикиНаименование</segments>
</dataPath>
<extendedTooltip>
<name>ОперацияСтатистикиНаименованиеРасширеннаяПодсказка</name>
<id>33</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ОперацияСтатистикиНаименованиеКонтекстноеМеню</name>
<id>32</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ИдентификаторУдаления</name>
<id>25</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ИдентификаторУдаления</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ИдентификаторУдаленияРасширеннаяПодсказка</name>
<id>27</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИдентификаторУдаленияКонтекстноеМеню</name>
<id>26</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<items xsi:type="form:FormField">
<name>ЗначениеОперации</name>
<id>28</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.ЗначениеОперации</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>ЗначениеОперацииРасширеннаяПодсказка</name>
<id>30</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗначениеОперацииКонтекстноеМеню</name>
<id>29</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>5</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>7</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>8</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>10</id>
<extendedTooltip>
<name>СписокСостояниеПросмотраРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>11</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>13</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокКонтекстноеМеню</name>
<id>4</id>
<autoFill>true</autoFill>
</contextMenu>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
<userSettingsGroup>СписокКомпоновщикНастроекПользовательскиеНастройки</userSettingsGroup>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
РегистрСведенийЗамерыСтатистики.ПериодЗаписи,
РегистрСведенийЗамерыСтатистики.ТипЗаписи,
РегистрСведенийЗамерыСтатистики.Ключ,
РегистрСведенийЗамерыСтатистики.ОперацияСтатистики,
РегистрСведенийОперацииСтатистики.Наименование КАК ОперацияСтатистикиНаименование,
РегистрСведенийЗамерыСтатистики.ИдентификаторУдаления,
РегистрСведенийЗамерыСтатистики.ЗначениеОперации
ИЗ
РегистрСведений.ЗамерыСтатистики КАК РегистрСведенийЗамерыСтатистики
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ОперацииСтатистики КАК РегистрСведенийОперацииСтатистики
ПО
РегистрСведенийОперацииСтатистики.ИдентификаторОперации = РегистрСведенийЗамерыСтатистики.ОперацияСтатистики </queryText>
<mainTable>InformationRegister.ЗамерыСтатистики</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>
@@ -0,0 +1,139 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
Функция ЕстьЗапись(ПериодЗаписи, ТипЗаписи, Ключ, ОперацияСтатистики)
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА
|ИЗ
| РегистрСведений.ЗамерыСтатистики
|ГДЕ
| ПериодЗаписи = &ПериодЗаписи
| И ТипЗаписи = &ТипЗаписи
| И Ключ = &Ключ
| И ОперацияСтатистики = &ОперацияСтатистики
|";
Запрос.УстановитьПараметр("ПериодЗаписи", ПериодЗаписи);
Запрос.УстановитьПараметр("ТипЗаписи", ТипЗаписи);
Запрос.УстановитьПараметр("Ключ", Ключ);
Запрос.УстановитьПараметр("ОперацияСтатистики", ОперацияСтатистики);
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Возврат НЕ Результат.Пустой();
КонецФункции
Процедура ЗаписатьОперациюБизнесСтатистики(ПериодЗаписи, ТипЗаписи, Ключ, ОперацияСтатистики, ЗначениеОперации, Замещать) Экспорт
ЕстьЗапись = ЕстьЗапись(ПериодЗаписи, ТипЗаписи, Ключ, ОперацияСтатистики);
Если НЕ ЕстьЗапись ИЛИ Замещать Тогда
НачатьТранзакцию();
Попытка
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировкиПериодЗаписи = Блокировка.Добавить("РегистрСведений.ЗамерыСтатистики");
ЭлементБлокировкиПериодЗаписи.УстановитьЗначение("ПериодЗаписи", ПериодЗаписи);
ЭлементБлокировкиПериодЗаписи = Блокировка.Добавить("РегистрСведений.ЗамерыСтатистики");
ЭлементБлокировкиПериодЗаписи.УстановитьЗначение("ТипЗаписи", ТипЗаписи);
ЭлементБлокировкиПериодЗаписи = Блокировка.Добавить("РегистрСведений.ЗамерыСтатистики");
ЭлементБлокировкиПериодЗаписи.УстановитьЗначение("Ключ", Ключ);
ЭлементБлокировкиПериодЗаписи = Блокировка.Добавить("РегистрСведений.ЗамерыСтатистики");
ЭлементБлокировкиПериодЗаписи.УстановитьЗначение("ОперацияСтатистики", ОперацияСтатистики);
Блокировка.Заблокировать();
ЕстьЗапись = ЕстьЗапись(ПериодЗаписи, ТипЗаписи, Ключ, ОперацияСтатистики);
Если НЕ ЕстьЗапись ИЛИ Замещать Тогда
МенеджерЗаписи = СоздатьМенеджерЗаписи();
МенеджерЗаписи.ПериодЗаписи = ПериодЗаписи;
МенеджерЗаписи.Ключ = Ключ;
МенеджерЗаписи.ТипЗаписи = ТипЗаписи;
МенеджерЗаписи.ОперацияСтатистики = ОперацияСтатистики;
МенеджерЗаписи.ИдентификаторУдаления = НачалоДня(ПериодЗаписи);
МенеджерЗаписи.ЗначениеОперации = ЗначениеОперации;
УстановитьПривилегированныйРежим(Истина);
Если ЕстьЗапись И Замещать Тогда
МенеджерЗаписи.Записать(Истина);
Иначе
МенеджерЗаписи.Записать(Ложь);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ОП = ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
КонецПроцедуры
Функция ПолучитьЗамерыЧаса(ДатаНачала, ДатаОкончания) Экспорт
Возврат ПолучитьЗамерыПоТипу(ДатаНачала, ДатаОкончания, 1);
КонецФункции
Функция ПолучитьЗамерыСутки(ДатаНачала, ДатаОкончания) Экспорт
Возврат ПолучитьЗамерыПоТипу(ДатаНачала, ДатаОкончания, 2);
КонецФункции
Функция ПолучитьЗамерыПоТипу(ДатаНачала, ДатаОкончания, ТипЗаписи)
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ОперацииСтатистики.Наименование КАК ОперацияСтатистики,
| ЗамерыОперацииСтатистики.ПериодЗаписи КАК Период,
| КОЛИЧЕСТВО(*) КАК КоличествоЗначений,
| СУММА(ЗамерыОперацииСтатистики.ЗначениеОперации) КАК СуммаЗначений
|ИЗ
| РегистрСведений.ЗамерыСтатистики КАК ЗамерыОперацииСтатистики
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| РегистрСведений.ОперацииСтатистики КАК ОперацииСтатистики
|ПО
| ЗамерыОперацииСтатистики.ОперацияСтатистики = ОперацииСтатистики.ИдентификаторОперации
|ГДЕ
| ЗамерыОперацииСтатистики.ТипЗаписи = &ТипЗаписи
| И ЗамерыОперацииСтатистики.ПериодЗаписи МЕЖДУ &ДатаНачала И &ДатаОкончания
|СГРУППИРОВАТЬ ПО
| ОперацииСтатистики.Наименование,
| ЗамерыОперацииСтатистики.ПериодЗаписи
|";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
// SDF - Не забыть убрать 86400
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания + 86400);
Запрос.УстановитьПараметр("ТипЗаписи", ТипЗаписи);
Результат = Запрос.Выполнить();
Возврат Результат;
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:InformationRegister xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e8c048fc-0f39-4778-aaf3-d6bff5acb06a">
<producedTypes>
<selectionType typeId="4a505600-e729-4222-83ed-46e242fff447" valueTypeId="93b0e193-fba1-4370-9a31-8930590d67e3"/>
<listType typeId="9fe66fb2-eda8-4620-b943-24e18897b26f" valueTypeId="55c15843-3b2b-48fe-ac0d-f9c7d55be9ea"/>
<managerType typeId="f999a3a3-6c7c-4f75-8b8f-b8630f260d05" valueTypeId="e4055930-b22a-4d3d-95a7-551dde274aa6"/>
<recordSetType typeId="cfa4b7dc-3135-416f-83f1-f23a681a314b" valueTypeId="77fb2d25-d577-4b93-b57f-54e7d60381f7"/>
<recordKeyType typeId="eaaed21a-a609-4466-aea9-56388bc5d3ff" valueTypeId="ab7cfc9f-6fed-41d3-a469-30952391c338"/>
<recordType typeId="50333669-a36c-401b-9ce4-aea2006d022d" valueTypeId="5a08cb24-4ea1-41d3-a5dc-ad98b8f33bc3"/>
<recordManagerType typeId="1d60711b-df0d-48d5-a17e-b69f35ed58c1" valueTypeId="d4b25fe4-8cde-490c-90fc-4f863069b6d9"/>
</producedTypes>
<name>ЗамерыСтатистики</name>
<synonym>
<key>ru</key>
<value>Замеры статистики</value>
</synonym>
<useStandardCommands>true</useStandardCommands>
<editType>InDialog</editType>
<defaultListForm>InformationRegister.ЗамерыСтатистики.Form.ФормаСписка</defaultListForm>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Active</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>LineNumber</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Recorder</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Period</name>
<fillValue xsi:type="core:UndefinedValue"/>
<fillChecking>ShowError</fillChecking>
<fullTextSearch>Use</fullTextSearch>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
</standardAttributes>
<dataLockControlMode>Managed</dataLockControlMode>
<resources uuid="c7efb89b-f9e5-4b58-b7a0-502cea8cf1d4">
<name>ЗначениеОперации</name>
<synonym>
<key>ru</key>
<value>Значение операции</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>15</precision>
<scale>3</scale>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</resources>
<attributes uuid="cd133f15-aa45-4ec9-93c2-2f0f66baf3f3">
<name>ИдентификаторУдаления</name>
<synonym>
<key>ru</key>
<value>Идентификатор удаления</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<indexing>Index</indexing>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</attributes>
<dimensions uuid="18436045-1008-4114-8032-274fea0f4627">
<name>ТипЗаписи</name>
<synonym>
<key>ru</key>
<value>Тип записи</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>1</precision>
<nonNegative>true</nonNegative>
</numberQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</dimensions>
<dimensions uuid="cad93727-cffb-44a6-aaee-be73a078e802">
<name>ПериодЗаписи</name>
<synonym>
<key>ru</key>
<value>Период записи</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers/>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</dimensions>
<dimensions uuid="c034f410-ff8e-45d7-925f-94448f88a7af">
<name>Ключ</name>
<synonym>
<key>ru</key>
<value>Ключ</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>100</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:StringValue"/>
</dimensions>
<dimensions uuid="0027727b-3917-4010-9953-1649266e8ed7">
<name>ОперацияСтатистики</name>
<synonym>
<key>ru</key>
<value>Операция статистики</value>
</synonym>
<type>
<types>UUID</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</dimensions>
<forms uuid="b088786a-046f-458c-8e7a-5bebf8df8b34">
<name>ФормаСписка</name>
<synonym>
<key>ru</key>
<value>Форма списка</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
</mdclass:InformationRegister>
@@ -9,11 +9,10 @@
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КомментарииОперацииСтатистики");
ЭлементБлокировки.УстановитьЗначение("ИдентификаторОперации", ОперацияСтатистики);
ЭлементБлокировки.УстановитьЗначение("ИдентификаторКомментария", КомментарийСтатистики);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Если НЕ ЕстьЗапись(ОперацияСтатистики, КомментарийСтатистики) Тогда
НаборЗаписей = РегистрыСведений.КомментарииОперацииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ИдентификаторОперации = ОперацияСтатистики;
НовЗапись.ИдентификаторКомментария = КомментарийСтатистики;
@@ -52,8 +52,7 @@
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КомментарииСтатистики");
ЭлементБлокировки.УстановитьЗначение("ХешНаименования", ХешНаименования);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Ссылки = НайтиПоХешу(ХешНаименования, СсылкаОперация);
@@ -61,7 +60,7 @@
Если Ссылки.СсылкаКомментарий = Неопределено Тогда
Ссылки.СсылкаКомментарий = Новый УникальныйИдентификатор();
НаборЗаписей = РегистрыСведений.КомментарииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ХешНаименования = ХешНаименования;
@@ -124,12 +123,10 @@
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.КомментарииСтатистики");
ЭлементБлокировки.УстановитьЗначение("ХешНаименования", ХешНаименования);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОперацииСтатистики");
ЭлементБлокировки.УстановитьЗначение("ИдентификаторОперации", ОперацияСсылка);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Ссылки = НайтиПоХешу(ХешНаименования, ОперацияСсылка);
@@ -137,7 +134,7 @@
Если Ссылки.СсылкаКомментарий = Неопределено Тогда
Ссылка = Новый УникальныйИдентификатор();
НаборЗаписей = РегистрыСведений.КомментарииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ХешНаименования = ХешНаименования;
@@ -516,6 +516,7 @@
// Устанавливает признак повторения загрузки при ошибке загрузки или обновления.
// Очищает хранилище сообщения обмена, полученного из главного узла РИБ.
//
&НаСервере
Процедура ВключитьПовторениеЗагрузкиСообщенияОбменаДаннымиПередЗапуском()
ОбменДаннымиСервер.ОчиститьСообщениеОбменаДаннымиИзГлавногоУзла();
@@ -402,8 +402,16 @@
ЗапрашиватьFILE, ЗапрашиватьWS, ЗапрашиватьFTP)
ЗапросыРазрешений = Новый Массив;
ПараметрыЗапроса = РегистрыСведений.НастройкиТранспортаОбмена.ПараметрыЗапросаНаИспользованиеВнешнихРесурсов();
ПараметрыЗапроса.ЗапрашиватьCOM = ЗапрашиватьCOM;
ПараметрыЗапроса.ЗапрашиватьFILE = ЗапрашиватьFILE;
ПараметрыЗапроса.ЗапрашиватьWS = ЗапрашиватьWS;
ПараметрыЗапроса.ЗапрашиватьFTP = ЗапрашиватьFTP;
РегистрыСведений.НастройкиТранспортаОбмена.ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений,
Запись, ЗапрашиватьCOM, ЗапрашиватьFILE, ЗапрашиватьWS, ЗапрашиватьFTP);
Запись, ПараметрыЗапроса);
Возврат ЗапросыРазрешений;
КонецФункции
@@ -95,7 +95,8 @@
Пока НастройкиТранспорта.Следующий() Цикл
ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений, НастройкиТранспорта);
ПараметрыЗапроса = ПараметрыЗапросаНаИспользованиеВнешнихРесурсов();
ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений, НастройкиТранспорта, ПараметрыЗапроса);
КонецЦикла;
@@ -123,12 +124,23 @@
КонецФункции
Процедура ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений, Запись, ЗапрашиватьCOM = Истина,
ЗапрашиватьFILE = Истина, ЗапрашиватьWS = Истина, ЗапрашиватьFTP = Истина) Экспорт
Функция ПараметрыЗапросаНаИспользованиеВнешнихРесурсов() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ЗапрашиватьCOM", Истина);
Параметры.Вставить("ЗапрашиватьFILE", Истина);
Параметры.Вставить("ЗапрашиватьWS", Истина);
Параметры.Вставить("ЗапрашиватьFTP", Истина);
Возврат Параметры;
КонецФункции
Процедура ЗапросНаИспользованиеВнешнихРесурсов(ЗапросыРазрешений, Запись, ПараметрыЗапроса) Экспорт
Разрешения = Новый Массив;
Если ЗапрашиватьFTP И Не ПустаяСтрока(Запись.FTPСоединениеПуть) Тогда
Если ПараметрыЗапроса.ЗапрашиватьFTP И Не ПустаяСтрока(Запись.FTPСоединениеПуть) Тогда
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(Запись.FTPСоединениеПуть);
Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеИнтернетРесурса(
@@ -136,14 +148,14 @@
КонецЕсли;
Если ЗапрашиватьFILE И Не ПустаяСтрока(Запись.FILEКаталогОбменаИнформацией) Тогда
Если ПараметрыЗапроса.ЗапрашиватьFILE И Не ПустаяСтрока(Запись.FILEКаталогОбменаИнформацией) Тогда
Разрешения.Добавить(РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы(
Запись.FILEКаталогОбменаИнформацией, Истина, Истина));
КонецЕсли;
Если ЗапрашиватьWS И Не ПустаяСтрока(Запись.WSURLВебСервиса) Тогда
Если ПараметрыЗапроса.ЗапрашиватьWS И Не ПустаяСтрока(Запись.WSURLВебСервиса) Тогда
СтруктураАдреса = ОбщегоНазначенияКлиентСервер.СтруктураURI(Запись.WSURLВебСервиса);
Если ЗначениеЗаполнено(СтруктураАдреса.Схема) Тогда
@@ -153,7 +165,7 @@
КонецЕсли;
Если ЗапрашиватьCOM И (Не ПустаяСтрока(Запись.COMКаталогИнформационнойБазы)
Если ПараметрыЗапроса.ЗапрашиватьCOM И (Не ПустаяСтрока(Запись.COMКаталогИнформационнойБазы)
Или Не ПустаяСтрока(Запись.COMИмяИнформационнойБазыНаСервере1СПредприятия)) Тогда
ИмяCOMСоединителя = ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя();
@@ -81,8 +81,7 @@
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОбластиСтатистики");
ЭлементБлокировки.УстановитьЗначение("ХешНаименования", ХешНаименования);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Ссылка = НайтиПоХешу(ХешНаименования);
@@ -90,7 +89,7 @@
Если Ссылка = Неопределено Тогда
Ссылка = Новый УникальныйИдентификатор();
НаборЗаписей = РегистрыСведений.ОбластиСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ХешНаименования = ХешНаименования;
@@ -37,6 +37,10 @@
<items xsi:type="form:Table">
<name>Список</name>
<id>3</id>
<title>
<key>ru</key>
<value>Список</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -271,8 +275,6 @@
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
@@ -26,8 +26,11 @@
| ОперацииСтатистики.ХешНаименования = &ХешНаименования
|";
Запрос.УстановитьПараметр("ХешНаименования", Хеш);
УстановитьПривилегированныйРежим(Истина);
Результат = Запрос.Выполнить();
УстановитьПривилегированныйРежим(Ложь);
Если Результат.Пустой() Тогда
Ссылка = Неопределено;
Иначе
@@ -47,7 +50,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ОперацииСтатистики");
ЭлементБлокировки.УстановитьЗначение("ХешНаименования", ХешНаименования);
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
Ссылка = НайтиПоХешу(ХешНаименования);
@@ -55,13 +57,17 @@
Если Ссылка = Неопределено Тогда
Ссылка = Новый УникальныйИдентификатор();
НаборЗаписей = РегистрыСведений.ОперацииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.ОбменДанными.Загрузка = Истина;
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.ХешНаименования = ХешНаименования;
НовЗапись.ИдентификаторОперации = Ссылка;
НовЗапись.Наименование = Наименование;
УстановитьПривилегированныйРежим(Истина);
НаборЗаписей.Записать(Ложь);
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
@@ -102,7 +108,7 @@
КонецФункции
Функция УвеличитьКоличествоУникальныхКомментариев(СсылкаОперация, СсылкаКомментарий) Экспорт
НаборЗаписей = РегистрыСведений.ОперацииСтатистики.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.Отбор.ИдентификаторОперации.Установить(СсылкаОперация);
НаборЗаписей.Прочитать();
Для Каждого ТекЗапись Из НаборЗаписей Цикл
@@ -28,7 +28,7 @@
HASH = ХешMD5.ХешСумма;
HASH = СтрЗаменить(Строка(HASH), " ", "");
НаборЗаписей = РегистрыСведений.ПакетыДляОтправки.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
НовЗапись = НаборЗаписей.Добавить();
НовЗапись.Период = ДатаЗаписи;
НовЗапись.НомерПакета = СледующийНомерПакета;
@@ -76,7 +76,7 @@
НачатьТранзакцию();
Попытка
НаборЗаписей = РегистрыСведений.ПакетыДляОтправки.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.НомерПакета.Установить(Выборка.НомерПакета);
НаборЗаписей.Записать(Истина);
@@ -111,7 +111,7 @@
НачатьТранзакцию();
Попытка
НаборЗаписей = РегистрыСведений.ПакетыДляОтправки.СоздатьНаборЗаписей();
НаборЗаписей = СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.НомерПакета.Установить(Выборка.НомерПакета);
НаборЗаписей.Записать(Истина);
@@ -181,6 +181,13 @@
Возврат НомераПакетов;
КонецФункции
Процедура Очистить() Экспорт
НаборЗаписей = СоздатьНаборЗаписей();
НаборЗаписей.Записать(Истина);
КонецПроцедуры
#КонецОбласти
#КонецЕсли
@@ -324,9 +324,11 @@
КонецПроцедуры
// Продолжение процедуры (см. выше).
&НаКлиенте
Процедура ОткрытьКаталогСПоставкамиКонфигураций(КодВозврата, ДополнительныеПараметры) Экспорт
// Обработка не требуется.
Возврат;
КонецПроцедуры
#КонецОбласти
Loaded 100 of 114 files, more files were not shown because too many files have changed in this diff. Show more