3_0_3_241

This commit is contained in:
Компания 1С committed 2020-03-25 23:14:00 +03:00
1 parent 6a42a9487c
commit 7736b99c06
15 files changed
+637 -622

No files matched your search

@@ -422,8 +422,9 @@
Контекст = Новый Структура("Оповещение", Оповещение); Контекст = Новый Структура("Оповещение", Оповещение);
Если СтандартныеПроверки Тогда Если СтандартныеПроверки Тогда
НачатьПодключениеРасширенияРаботыСКриптографией(Новый ОписаниеОповещения( ЭлектроннаяПодписьКлиент.УстановитьРасширение(Ложь, Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст)); "ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией", ЭтотОбъект, Контекст),
НСтр("ru = 'Для продолжения необходимо установить расширение для работы с криптографией.'"));
Иначе Иначе
Контекст.Вставить("МенеджерКриптографии", Неопределено); Контекст.Вставить("МенеджерКриптографии", Неопределено);
ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст); ПроверитьНаСторонеКлиентаДополнительныеПроверки(Контекст);
@@ -435,7 +436,7 @@
&НаКлиенте &НаКлиенте
Процедура ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией(Подключено, Контекст) Экспорт Процедура ПроверитьНаСторонеКлиентаПослеПодключенияРасширенияРаботыСКриптографией(Подключено, Контекст) Экспорт
Если Не Подключено Тогда Если Подключено <> Истина Тогда
ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения( ЭлектроннаяПодписьСлужебныйКлиент.СоздатьМенеджерКриптографии(Новый ОписаниеОповещения(
"ПроверитьНаСторонеКлиентаПослеПопыткиСозданияМенеджераКриптографии", ЭтотОбъект, Контекст), "ПроверитьНаСторонеКлиентаПослеПопыткиСозданияМенеджераКриптографии", ЭтотОбъект, Контекст),
"ПроверкаСертификата", Ложь); "ПроверкаСертификата", Ложь);
@@ -305,199 +305,13 @@
ОписаниеОшибки = Null, ОписаниеОшибки = Null,
УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина); Если ДатыЗапретаИзмененияСлужебный.ПроверкаДатЗапретаОтключена(
УзелПроверкиЗапретаЗагрузки = Неопределено, УзелПроверкиЗапретаЗагрузки) Тогда
Если ТипЗнч(ДанныеДляПроверки) = Тип("Структура") Тогда
ДействующиеДаты = ДанныеДляПроверки.ДействующиеДаты;
ДанныеДляПроверки = ДанныеДляПроверки.ДанныеДляПроверки;
Иначе
ДействующиеДаты = ДатыЗапретаИзмененияСлужебный.ДействующиеДатыЗапрета();
КонецЕсли;
ЗапретИспользуется = ?(УзелПроверкиЗапретаЗагрузки = Неопределено,
ДействующиеДаты.ЗапретИзмененияИспользуется,
ДействующиеДаты.ЗапретЗагрузкиИспользуется);
Если Не ЗапретИспользуется Тогда
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
СвойстваРазделов = ДействующиеДаты.СвойстваРазделов; Возврат ДатыЗапретаИзмененияСлужебный.НайденЗапретИзмененияДанных(ДанныеДляПроверки,
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка( ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в функции НайденЗапретИзмененияДанных общего модуля ДатыЗапретаИзменения.'")
+ Символы.ПС
+ Символы.ПС;
// Приведение данных в соответствие варианту встраивания.
Для Каждого Строка Из ДанныеДляПроверки Цикл
Если Строка.Раздел = Неопределено Тогда
Строка.Раздел = ПустойРаздел;
КонецЕсли;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Строка.Раздел);
Если СвойстваРаздела = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В параметре ДанныеДляПроверки указан несуществующий раздел ""%1"".'"),
Строка.Раздел);
КонецЕсли;
Если СвойстваРазделов.БезРазделовИОбъектов Тогда
Строка.Раздел = ПустойРаздел;
Строка.Объект = ПустойРаздел;
Иначе
Если ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Строка.Раздел = СвойстваРазделов.ЕдинственныйРаздел;
Иначе
Строка.Раздел = СвойстваРаздела.Ссылка;
КонецЕсли;
Если СвойстваРазделов.ВсеРазделыБезОбъектов
Или Не ЗначениеЗаполнено(Строка.Объект) Тогда
Строка.Объект = Строка.Раздел;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Свертка лишних строк, чтобы сократить число проверок и сообщений.
РазделыИОбъекты = ДанныеДляПроверки.Скопировать();
РазделыИОбъекты.Свернуть("Раздел, Объект");
Отбор = Новый Структура("Раздел, Объект");
РазделыИОбъекты.Колонки.Добавить("Дата",
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Для Каждого РазделИОбъект Из РазделыИОбъекты Цикл
ЗаполнитьЗначенияСвойств(Отбор, РазделИОбъект);
Строки = ДанныеДляПроверки.НайтиСтроки(Отбор);
МинимальнаяДата = Неопределено;
Для Каждого Строка Из Строки Цикл
ТекущаяДата = НачалоДня(Строка.Дата);
Если МинимальнаяДата = Неопределено Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
Если ТекущаяДата < МинимальнаяДата Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
КонецЦикла;
РазделИОбъект.Дата = МинимальнаяДата;
КонецЦикла;
ДанныеДляПроверки = РазделыИОбъекты;
// Приоритеты дат запрета изменения.
// 1. Для раздела, объекта и пользователя.
// 2. Для раздела, объекта и группы пользователей.
// 3. Для раздела, объекта и любого пользователя.
// 4. Для раздела, любого объекта (объект = раздел) и пользователя.
// 5. Для раздела, любого объекта (объект = раздел) и группы пользователей.
// 6. Для раздела, любого объекта (объект = раздел) и любого пользователя.
// 7. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и пользователя.
// 8. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и группы пользователей.
// 9. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого пользователя.
// Приоритеты дат запрета загрузки.
// 1. Для раздела, объекта и узла.
// 2. Для раздела, объекта и любого узла.
// 3. Для раздела, любого объекта (объект = раздел) и узла.
// 4. Для раздела, любого объекта (объект = раздел) и любого узла.
// 5. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и узла.
// 6. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого узла.
ЗапретыИзменения = ДанныеДляПроверки.Скопировать(Новый Массив);
ЗапретыИзменения.Колонки.Добавить("Адресат");
ЗапретыИзменения.Колонки.Добавить("Данные");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
// Поиск запретов изменения данных.
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Разделы = ДействующиеДаты.ДляПользователей.Разделы;
Пользователь = Пользователи.АвторизованныйПользователь();
ГруппыПользователя = ДействующиеДаты.ГруппыПользователей.Получить(Пользователь);
Если ГруппыПользователя = Неопределено Тогда
ГруппыПользователя = Новый Массив;
КонецЕсли;
ДополнительныеПараметры.Вставить("Пользователь", Пользователь);
ДополнительныеПараметры.Вставить("ГруппыПользователя", ГруппыПользователя);
Иначе
Разделы = ДействующиеДаты.ДляИнформационныхБаз.Разделы;
ДополнительныеПараметры.Вставить("ПустойУзелПланаОбмена",
ОбщегоНазначения.МенеджерОбъектаПоСсылке(УзелПроверкиЗапретаЗагрузки).ПустаяСсылка());
КонецЕсли;
Для Каждого Данные Из ДанныеДляПроверки Цикл
РазделЗапрета = Данные.Раздел;
ОбъектЗапрета = Данные.Объект;
Объекты = Разделы.Получить(РазделЗапрета);
Адресаты = Неопределено;
ДатаЗапрета = Неопределено;
Если Объекты <> Неопределено Тогда
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
ОбъектЗапрета = РазделЗапрета;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и любого объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
РазделЗапрета = ПустойРаздел;
ОбъектЗапрета = РазделЗапрета;
Объекты = Разделы.Получить(РазделЗапрета);
Если Объекты = Неопределено Тогда
Продолжить;
КонецЕсли;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты = Неопределено Тогда
Продолжить;
КонецЕсли;
// Поиск для любого раздела и любого объекта (общая дата).
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
Если ДатаЗапрета = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета < Данные.Дата Тогда
Продолжить;
КонецЕсли;
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = Пользователь;
Иначе
Адресат = УзелПроверкиЗапретаЗагрузки;
КонецЕсли;
Строка = ЗапретыИзменения.Добавить();
Строка.Данные = Данные;
Строка.Раздел = РазделЗапрета;
Строка.Объект = ОбъектЗапрета;
Строка.Адресат = Адресат;
Строка.Дата = ДатаЗапрета;
КонецЦикла;
Если ТипЗнч(ОписаниеДанных) = Тип("Структура")
И ТипЗнч(ОписаниеОшибки) <> Тип("Null")
И ЗапретыИзменения.Количество() > 0 Тогда
ОписаниеОшибки = СообщениеОЗапретах(ЗапретыИзменения, ОписаниеДанных, СвойстваРазделов,
УзелПроверкиЗапретаЗагрузки <> Неопределено, ТипЗнч(ОписаниеОшибки) = Тип("Структура"));
КонецЕсли;
Возврат ЗапретыИзменения.Количество() > 0;
КонецФункции КонецФункции
@@ -697,232 +511,4 @@
КонецПроцедуры КонецПроцедуры
// Для функции НайденЗапретИзмененияДанных.
Функция НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры)
ДатаЗапрета = Неопределено;
Если ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = ДополнительныеПараметры.Пользователь;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Для Каждого Группа Из ДополнительныеПараметры.ГруппыПользователя Цикл
Дата = Адресаты.Получить(Группа);
Если ДатаЗапрета = Неопределено Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
ИначеЕсли Дата <> Неопределено И ДатаЗапрета < Дата Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
КонецЕсли;
КонецЦикла;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Иначе
Адресат = ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Адресат = ДополнительныеПараметры.ПустойУзелПланаОбмена;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Возврат ДатаЗапрета;
КонецФункции
// Для функции НайденЗапретИзмененияДанных.
Функция СообщениеОЗапретах(Запреты,
ОписаниеДанных,
СвойстваРазделов,
ПоискЗапретовЗагрузки,
СтруктурноеОписание)
НоваяВерсия = ОписаниеДанных.НоваяВерсия;
Текст = ПредставлениеДанных(ОписаниеДанных.Данные);
Если СтруктурноеОписание Тогда
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("ПредставлениеДанных", Текст);
ОписаниеОшибки.Вставить("Запреты", Новый ТаблицаЗначений);
Колонки = ОписаниеОшибки.Запреты.Колонки;
Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("Раздел", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Колонки.Добавить("Объект", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.Тип);
Колонки.Добавить("ДатаЗапрета", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("ОбщаяДата", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("ДляВсехОбъектов", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("Адресат", Метаданные.ОпределяемыеТипы.АдресатЗапретаИзменения.Тип);
Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000,ДопустимаяДлина.Переменная)));
КонецЕсли;
Если ЗначениеЗаполнено(Текст) Тогда
Если ПоискЗапретовЗагрузки Тогда
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно загрузить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно заменить загружаемыми данными.'");
КонецЕсли;
Иначе
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно поместить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно изменить.'");
КонецЕсли;
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС + Символы.ПС;
КонецЕсли;
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка(
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
Если СтруктурноеОписание Тогда
ОписаниеОшибки.Вставить("ЗаголовокОшибки", СокрЛП(Текст));
КонецЕсли;
ТекстОшибки = Текст;
Для Каждого Запрет Из Запреты Цикл
Текст = "";
Проверка = Запрет.Данные;
Если Запрет.Раздел = Запрет.Объект Тогда
Если Запрет.Раздел = ПустойРаздел Тогда
Текст = Текст + НСтр("ru = 'Дате %1'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по разделу ""%2""'");
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3""'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2""'");
КонецЕсли;
Если ПоискЗапретовЗагрузки Тогда
Текст = Текст + " " + НСтр("ru = 'соответствует запрет загрузки данных'") + " ";
Иначе
Текст = Текст + " " + НСтр("ru = 'соответствует запрет изменения данных'") + " ";
КонецЕсли;
Если Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей Тогда
Текст = Текст + НСтр("ru = 'для всех пользователей'");
ИначеЕсли Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз Тогда
Текст = Текст + НСтр("ru = 'для всех информационных баз'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыПользователей")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Текст = Текст + НСтр("ru = 'для группы пользователей ""%4""'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
Текст = Текст + НСтр("ru = 'для пользователя ""%4""'");
ИначеЕсли ЗначениеЗаполнено(Запрет.Адресат) Тогда
Текст = Текст + НСтр("ru = 'для информационной базы ""%4""'");
Иначе
Текст = Текст + НСтр("ru = 'для всех информационных баз ""%6""'");
КонецЕсли;
Текст = Текст + " " + НСтр("ru = 'по %5'");
Если Не СвойстваРазделов.БезРазделовИОбъектов Тогда
Если ЗначениеЗаполнено(Запрет.Раздел) Тогда
Если Запрет.Объект = Запрет.Раздел Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на раздел ""%2"")'");
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"")'");
Иначе
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"" раздела ""%2"")'");
КонецЕсли;
Иначе
Текст = Текст + " " + НСтр("ru = '(установлена общая дата запрета)'");
КонецЕсли;
КонецЕсли;
Текст = СтрЗаменить(Текст, "%1", Формат(Проверка.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%2", Проверка.Раздел);
Текст = СтрЗаменить(Текст, "%3", Проверка.Объект);
Текст = СтрЗаменить(Текст, "%4", Запрет.Адресат);
Текст = СтрЗаменить(Текст, "%5", Формат(Запрет.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%6", Запрет.Адресат.Метаданные().Представление());
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС;
Если СтруктурноеОписание Тогда
СтрокаОписанияОшибки = ОписаниеОшибки.Запреты.Добавить();
СтрокаОписанияОшибки.Дата = Проверка.Дата;
СтрокаОписанияОшибки.Раздел = СвойстваРазделов.Разделы.Получить(Проверка.Раздел).Имя;
СтрокаОписанияОшибки.Объект = ?(Проверка.Объект = Проверка.Раздел, Неопределено, Проверка.Объект);
СтрокаОписанияОшибки.ДатаЗапрета = Запрет.Дата;
СтрокаОписанияОшибки.ОбщаяДата = ?(ЗначениеЗаполнено(Запрет.Раздел), Ложь, Истина);
Если Запрет.Раздел = Запрет.Объект Тогда
СтрокаОписанияОшибки.ДляВсехОбъектов = Истина;
Иначе
СтрокаОписанияОшибки.ДляВсехОбъектов = Ложь;
КонецЕсли;
СтрокаОписанияОшибки.Адресат = Запрет.Адресат;
СтрокаОписанияОшибки.Описание = Текст;
КонецЕсли;
КонецЦикла;
Если Не СтруктурноеОписание Тогда
ОписаниеОшибки = СокрП(ТекстОшибки);
КонецЕсли;
Возврат ОписаниеОшибки;
КонецФункции
// Для функции СообщениеОЗапретах.
Функция ПредставлениеДанных(Данные)
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Возврат СокрЛП(Данные);
КонецЕсли;
Если ТипЗнч(Данные) = Тип("Структура") Тогда
ЭтоРегистр = Истина;
Если ТипЗнч(Данные.Регистр) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Данные.Регистр);
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные.Регистр));
КонецЕсли;
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные));
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
Возврат "";
КонецЕсли;
Если ЭтоРегистр Тогда
ПредставлениеДанных = ОбъектМетаданных.Представление();
КоличествоПолей = 0;
Для каждого ЭлементОтбора Из Данные.Отбор Цикл
Если ЭлементОтбора.Использование Тогда
КоличествоПолей = КоличествоПолей + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоПолей = 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полем'") + " " + Строка(Данные.Отбор);
ИначеЕсли КоличествоПолей > 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полями'") + " " + Строка(Данные.Отбор);
КонецЕсли;
ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ПредставлениеДанных = Строка(Данные);
Иначе
ПредставлениеДанных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Строка(Данные), ОбъектМетаданных.Представление());
КонецЕсли;
Возврат ПредставлениеДанных;
КонецФункции
#КонецОбласти #КонецОбласти
@@ -467,6 +467,20 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
Если ПроверкаДатЗапретаОтключена(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Тогда
Возврат Истина;
КонецЕсли;
ДатыЗапретаИзмененияПереопределяемый.ПередПроверкойЗапретаИзменения(
Объект, ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки, ВерсияОбъекта);
Возврат ПроверкаЗапретаИзменения = Ложь // НЕ проверять запрет изменения.
И УзелПроверкиЗапретаЗагрузки = Неопределено; // НЕ проверять запрет загрузки.
КонецФункции
Функция ПроверкаДатЗапретаОтключена(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Экспорт
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Если ПараметрыСеанса.ПропуститьПроверкуЗапретаИзменения Тогда Если ПараметрыСеанса.ПропуститьПроверкуЗапретаИзменения Тогда
Возврат Истина; Возврат Истина;
@@ -483,11 +497,7 @@
Возврат Истина; Возврат Истина;
КонецЕсли; КонецЕсли;
ДатыЗапретаИзмененияПереопределяемый.ПередПроверкойЗапретаИзменения( Возврат Ложь;
Объект, ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки, ВерсияОбъекта);
Возврат ПроверкаЗапретаИзменения = Ложь // НЕ проверять запрет изменения.
И УзелПроверкиЗапретаЗагрузки = Неопределено; // НЕ проверять запрет загрузки.
КонецФункции КонецФункции
@@ -526,7 +536,7 @@
ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты);
ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки);
ЗапретНайден = ДатыЗапретаИзменения.НайденЗапретИзмененияДанных(ДанныеИДаты, ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты,
ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
КонецЕсли; КонецЕсли;
@@ -544,7 +554,7 @@
ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты); ДанныеИДаты.Вставить("ДействующиеДаты", ДействующиеДаты);
ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки); ДанныеИДаты.Вставить("ДанныеДляПроверки", ДанныеДляПроверки);
ЗапретНайден = ДатыЗапретаИзменения.НайденЗапретИзмененияДанных(ДанныеИДаты, ЗапретНайден = НайденЗапретИзмененияДанных(ДанныеИДаты,
ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки); ОписаниеДанных, ОписаниеОшибки, УзелПроверкиЗапретаЗагрузки);
КонецЕсли; КонецЕсли;
@@ -552,6 +562,208 @@
КонецФункции КонецФункции
// См. ДатыЗапретаИзменения.НайденЗапретИзмененияДанных.
Функция НайденЗапретИзмененияДанных(Знач ДанныеДляПроверки,
ОписаниеДанных = Неопределено,
ОписаниеОшибки = Null,
УзелПроверкиЗапретаЗагрузки = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Если ТипЗнч(ДанныеДляПроверки) = Тип("Структура") Тогда
ДействующиеДаты = ДанныеДляПроверки.ДействующиеДаты;
ДанныеДляПроверки = ДанныеДляПроверки.ДанныеДляПроверки;
Иначе
ДействующиеДаты = ДатыЗапретаИзмененияСлужебный.ДействующиеДатыЗапрета();
КонецЕсли;
ЗапретИспользуется = ?(УзелПроверкиЗапретаЗагрузки = Неопределено,
ДействующиеДаты.ЗапретИзмененияИспользуется,
ДействующиеДаты.ЗапретЗагрузкиИспользуется);
Если Не ЗапретИспользуется Тогда
Возврат Ложь;
КонецЕсли;
СвойстваРазделов = ДействующиеДаты.СвойстваРазделов;
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка(
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в функции НайденЗапретИзмененияДанных общего модуля ДатыЗапретаИзменения.'")
+ Символы.ПС
+ Символы.ПС;
// Приведение данных в соответствие варианту встраивания.
Для Каждого Строка Из ДанныеДляПроверки Цикл
Если Строка.Раздел = Неопределено Тогда
Строка.Раздел = ПустойРаздел;
КонецЕсли;
СвойстваРаздела = СвойстваРазделов.Разделы.Получить(Строка.Раздел);
Если СвойстваРаздела = Неопределено Тогда
ВызватьИсключение ЗаголовокОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В параметре ДанныеДляПроверки указан несуществующий раздел ""%1"".'"),
Строка.Раздел);
КонецЕсли;
Если СвойстваРазделов.БезРазделовИОбъектов Тогда
Строка.Раздел = ПустойРаздел;
Строка.Объект = ПустойРаздел;
Иначе
Если ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Строка.Раздел = СвойстваРазделов.ЕдинственныйРаздел;
Иначе
Строка.Раздел = СвойстваРаздела.Ссылка;
КонецЕсли;
Если СвойстваРазделов.ВсеРазделыБезОбъектов
Или Не ЗначениеЗаполнено(Строка.Объект) Тогда
Строка.Объект = Строка.Раздел;
КонецЕсли;
КонецЕсли;
КонецЦикла;
// Свертка лишних строк, чтобы сократить число проверок и сообщений.
РазделыИОбъекты = ДанныеДляПроверки.Скопировать();
РазделыИОбъекты.Свернуть("Раздел, Объект");
Отбор = Новый Структура("Раздел, Объект");
РазделыИОбъекты.Колонки.Добавить("Дата",
Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Для Каждого РазделИОбъект Из РазделыИОбъекты Цикл
ЗаполнитьЗначенияСвойств(Отбор, РазделИОбъект);
Строки = ДанныеДляПроверки.НайтиСтроки(Отбор);
МинимальнаяДата = Неопределено;
Для Каждого Строка Из Строки Цикл
ТекущаяДата = НачалоДня(Строка.Дата);
Если МинимальнаяДата = Неопределено Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
Если ТекущаяДата < МинимальнаяДата Тогда
МинимальнаяДата = ТекущаяДата;
КонецЕсли;
КонецЦикла;
РазделИОбъект.Дата = МинимальнаяДата;
КонецЦикла;
ДанныеДляПроверки = РазделыИОбъекты;
// Приоритеты дат запрета изменения.
// 1. Для раздела, объекта и пользователя.
// 2. Для раздела, объекта и группы пользователей.
// 3. Для раздела, объекта и любого пользователя.
// 4. Для раздела, любого объекта (объект = раздел) и пользователя.
// 5. Для раздела, любого объекта (объект = раздел) и группы пользователей.
// 6. Для раздела, любого объекта (объект = раздел) и любого пользователя.
// 7. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и пользователя.
// 8. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и группы пользователей.
// 9. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого пользователя.
// Приоритеты дат запрета загрузки.
// 1. Для раздела, объекта и узла.
// 2. Для раздела, объекта и любого узла.
// 3. Для раздела, любого объекта (объект = раздел) и узла.
// 4. Для раздела, любого объекта (объект = раздел) и любого узла.
// 5. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и узла.
// 6. Для любого раздела (пустой раздел), любого объекта (объект = раздел) и любого узла.
ЗапретыИзменения = ДанныеДляПроверки.Скопировать(Новый Массив);
ЗапретыИзменения.Колонки.Добавить("Адресат");
ЗапретыИзменения.Колонки.Добавить("Данные");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("УзелПроверкиЗапретаЗагрузки", УзелПроверкиЗапретаЗагрузки);
// Поиск запретов изменения данных.
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Разделы = ДействующиеДаты.ДляПользователей.Разделы;
Пользователь = Пользователи.АвторизованныйПользователь();
ГруппыПользователя = ДействующиеДаты.ГруппыПользователей.Получить(Пользователь);
Если ГруппыПользователя = Неопределено Тогда
ГруппыПользователя = Новый Массив;
КонецЕсли;
ДополнительныеПараметры.Вставить("Пользователь", Пользователь);
ДополнительныеПараметры.Вставить("ГруппыПользователя", ГруппыПользователя);
Иначе
Разделы = ДействующиеДаты.ДляИнформационныхБаз.Разделы;
ДополнительныеПараметры.Вставить("ПустойУзелПланаОбмена",
ОбщегоНазначения.МенеджерОбъектаПоСсылке(УзелПроверкиЗапретаЗагрузки).ПустаяСсылка());
КонецЕсли;
Для Каждого Данные Из ДанныеДляПроверки Цикл
РазделЗапрета = Данные.Раздел;
ОбъектЗапрета = Данные.Объект;
Объекты = Разделы.Получить(РазделЗапрета);
Адресаты = Неопределено;
ДатаЗапрета = Неопределено;
Если Объекты <> Неопределено Тогда
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
ОбъектЗапрета = РазделЗапрета;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты <> Неопределено Тогда
// Поиск для раздела и любого объекта.
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
РазделЗапрета = ПустойРаздел;
ОбъектЗапрета = РазделЗапрета;
Объекты = Разделы.Получить(РазделЗапрета);
Если Объекты = Неопределено Тогда
Продолжить;
КонецЕсли;
Адресаты = Объекты.Получить(ОбъектЗапрета);
Если Адресаты = Неопределено Тогда
Продолжить;
КонецЕсли;
// Поиск для любого раздела и любого объекта (общая дата).
ДатаЗапрета = НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры);
Если ДатаЗапрета = Неопределено Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если ДатаЗапрета < Данные.Дата Тогда
Продолжить;
КонецЕсли;
Если УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = Пользователь;
Иначе
Адресат = УзелПроверкиЗапретаЗагрузки;
КонецЕсли;
Строка = ЗапретыИзменения.Добавить();
Строка.Данные = Данные;
Строка.Раздел = РазделЗапрета;
Строка.Объект = ОбъектЗапрета;
Строка.Адресат = Адресат;
Строка.Дата = ДатаЗапрета;
КонецЦикла;
Если ТипЗнч(ОписаниеДанных) = Тип("Структура")
И ТипЗнч(ОписаниеОшибки) <> Тип("Null")
И ЗапретыИзменения.Количество() > 0 Тогда
ОписаниеОшибки = СообщениеОЗапретах(ЗапретыИзменения, ОписаниеДанных, СвойстваРазделов,
УзелПроверкиЗапретаЗагрузки <> Неопределено, ТипЗнч(ОписаниеОшибки) = Тип("Структура"));
КонецЕсли;
Возврат ЗапретыИзменения.Количество() > 0;
КонецФункции
// Возвращает действующие даты запрета с учетом последней версии после изменений. // Возвращает действующие даты запрета с учетом последней версии после изменений.
Функция ДействующиеДатыЗапрета() Экспорт Функция ДействующиеДатыЗапрета() Экспорт
@@ -1039,7 +1251,7 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции. // Вспомогательные процедуры и функции.
// Для процедуры ПропуститьПроверкуДатЗапрета. // Для функции ПроверкаДатЗапретаОтключена.
Функция ЗапретИзмененияДанныхНеИспользуется(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки) Функция ЗапретИзмененияДанныхНеИспользуется(ПроверкаЗапретаИзменения, УзелПроверкиЗапретаЗагрузки)
Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда Если ОбновлениеИнформационнойБазы.НеобходимоОбновлениеИнформационнойБазы() Тогда
@@ -1404,6 +1616,234 @@
КонецФункции КонецФункции
// Для функции НайденЗапретИзмененияДанных.
Функция НайтиДатуЗапрета(Адресаты, РазделЗапрета, ОбъектЗапрета, ДополнительныеПараметры)
ДатаЗапрета = Неопределено;
Если ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки = Неопределено Тогда
Адресат = ДополнительныеПараметры.Пользователь;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Для Каждого Группа Из ДополнительныеПараметры.ГруппыПользователя Цикл
Дата = Адресаты.Получить(Группа);
Если ДатаЗапрета = Неопределено Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
ИначеЕсли Дата <> Неопределено И ДатаЗапрета < Дата Тогда
ДатаЗапрета = Дата;
Адресат = Группа;
КонецЕсли;
КонецЦикла;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Иначе
Адресат = ДополнительныеПараметры.УзелПроверкиЗапретаЗагрузки;
ДатаЗапрета = Адресаты.Получить(Адресат);
Если ДатаЗапрета = Неопределено Тогда
Адресат = ДополнительныеПараметры.ПустойУзелПланаОбмена;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
Если ДатаЗапрета = Неопределено Тогда
Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз;
ДатаЗапрета = Адресаты.Получить(Адресат);
КонецЕсли;
КонецЕсли;
Возврат ДатаЗапрета;
КонецФункции
Функция СообщениеОЗапретах(Запреты,
ОписаниеДанных,
СвойстваРазделов,
ПоискЗапретовЗагрузки,
СтруктурноеОписание)
НоваяВерсия = ОписаниеДанных.НоваяВерсия;
Текст = ПредставлениеДанных(ОписаниеДанных.Данные);
Если СтруктурноеОписание Тогда
ОписаниеОшибки = Новый Структура;
ОписаниеОшибки.Вставить("ПредставлениеДанных", Текст);
ОписаниеОшибки.Вставить("Запреты", Новый ТаблицаЗначений);
Колонки = ОписаниеОшибки.Запреты.Колонки;
Колонки.Добавить("Дата", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("Раздел", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(100, ДопустимаяДлина.Переменная)));
Колонки.Добавить("Объект", Метаданные.ПланыВидовХарактеристик.РазделыДатЗапретаИзменения.Тип);
Колонки.Добавить("ДатаЗапрета", Новый ОписаниеТипов("Дата",,,,,Новый КвалификаторыДаты(ЧастиДаты.Дата)));
Колонки.Добавить("ОбщаяДата", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("ДляВсехОбъектов", Новый ОписаниеТипов("Булево"));
Колонки.Добавить("Адресат", Метаданные.ОпределяемыеТипы.АдресатЗапретаИзменения.Тип);
Колонки.Добавить("Описание", Новый ОписаниеТипов("Строка",,,,Новый КвалификаторыСтроки(1000,ДопустимаяДлина.Переменная)));
КонецЕсли;
Если ЗначениеЗаполнено(Текст) Тогда
Если ПоискЗапретовЗагрузки Тогда
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно загрузить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно заменить загружаемыми данными.'");
КонецЕсли;
Иначе
Если НоваяВерсия Тогда
Шаблон = НСтр("ru = '%1 невозможно поместить в запрещенный период.'");
Иначе
Шаблон = НСтр("ru = '%1 в запрещенном периоде невозможно изменить.'");
КонецЕсли;
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, Текст) + Символы.ПС + Символы.ПС;
КонецЕсли;
ПустойРаздел = ДатыЗапретаИзмененияСлужебный.ПустаяСсылка(
Тип("ПланВидовХарактеристикСсылка.РазделыДатЗапретаИзменения"));
Если СтруктурноеОписание Тогда
ОписаниеОшибки.Вставить("ЗаголовокОшибки", СокрЛП(Текст));
КонецЕсли;
ТекстОшибки = Текст;
Для Каждого Запрет Из Запреты Цикл
Текст = "";
Проверка = Запрет.Данные;
Если Запрет.Раздел = Запрет.Объект Тогда
Если Запрет.Раздел = ПустойРаздел Тогда
Текст = Текст + НСтр("ru = 'Дате %1'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по разделу ""%2""'");
КонецЕсли;
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3""'");
Иначе
Текст = Текст + НСтр("ru = 'Дате %1 по объекту ""%3"" раздела ""%2""'");
КонецЕсли;
Если ПоискЗапретовЗагрузки Тогда
Текст = Текст + " " + НСтр("ru = 'соответствует запрет загрузки данных'") + " ";
Иначе
Текст = Текст + " " + НСтр("ru = 'соответствует запрет изменения данных'") + " ";
КонецЕсли;
Если Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехПользователей Тогда
Текст = Текст + НСтр("ru = 'для всех пользователей'");
ИначеЕсли Запрет.Адресат = Перечисления.ВидыНазначенияДатЗапрета.ДляВсехИнформационныхБаз Тогда
Текст = Текст + НСтр("ru = 'для всех информационных баз'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыПользователей")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ГруппыВнешнихПользователей") Тогда
Текст = Текст + НСтр("ru = 'для группы пользователей ""%4""'");
ИначеЕсли ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.Пользователи")
ИЛИ ТипЗнч(Запрет.Адресат) = Тип("СправочникСсылка.ВнешниеПользователи") Тогда
Текст = Текст + НСтр("ru = 'для пользователя ""%4""'");
ИначеЕсли ЗначениеЗаполнено(Запрет.Адресат) Тогда
Текст = Текст + НСтр("ru = 'для информационной базы ""%4""'");
Иначе
Текст = Текст + НСтр("ru = 'для всех информационных баз ""%6""'");
КонецЕсли;
Текст = Текст + " " + НСтр("ru = 'по %5'");
Если Не СвойстваРазделов.БезРазделовИОбъектов Тогда
Если ЗначениеЗаполнено(Запрет.Раздел) Тогда
Если Запрет.Объект = Запрет.Раздел Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на раздел ""%2"")'");
ИначеЕсли ЗначениеЗаполнено(СвойстваРазделов.ЕдинственныйРаздел) Тогда
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"")'");
Иначе
Текст = Текст + " " + НСтр("ru = '(запрет установлен на объект ""%3"" раздела ""%2"")'");
КонецЕсли;
Иначе
Текст = Текст + " " + НСтр("ru = '(установлена общая дата запрета)'");
КонецЕсли;
КонецЕсли;
Текст = СтрЗаменить(Текст, "%1", Формат(Проверка.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%2", Проверка.Раздел);
Текст = СтрЗаменить(Текст, "%3", Проверка.Объект);
Текст = СтрЗаменить(Текст, "%4", Запрет.Адресат);
Текст = СтрЗаменить(Текст, "%5", Формат(Запрет.Дата, "ДЛФ=Д"));
Текст = СтрЗаменить(Текст, "%6", Запрет.Адресат.Метаданные().Представление());
ТекстОшибки = ТекстОшибки + Текст + Символы.ПС + Символы.ПС;
Если СтруктурноеОписание Тогда
СтрокаОписанияОшибки = ОписаниеОшибки.Запреты.Добавить();
СтрокаОписанияОшибки.Дата = Проверка.Дата;
СтрокаОписанияОшибки.Раздел = СвойстваРазделов.Разделы.Получить(Проверка.Раздел).Имя;
СтрокаОписанияОшибки.Объект = ?(Проверка.Объект = Проверка.Раздел, Неопределено, Проверка.Объект);
СтрокаОписанияОшибки.ДатаЗапрета = Запрет.Дата;
СтрокаОписанияОшибки.ОбщаяДата = ?(ЗначениеЗаполнено(Запрет.Раздел), Ложь, Истина);
Если Запрет.Раздел = Запрет.Объект Тогда
СтрокаОписанияОшибки.ДляВсехОбъектов = Истина;
Иначе
СтрокаОписанияОшибки.ДляВсехОбъектов = Ложь;
КонецЕсли;
СтрокаОписанияОшибки.Адресат = Запрет.Адресат;
СтрокаОписанияОшибки.Описание = Текст;
КонецЕсли;
КонецЦикла;
Если Не СтруктурноеОписание Тогда
ОписаниеОшибки = СокрП(ТекстОшибки);
КонецЕсли;
Возврат ОписаниеОшибки;
КонецФункции
// Для функции СообщениеОЗапретах.
Функция ПредставлениеДанных(Данные)
Если ТипЗнч(Данные) = Тип("Строка") Тогда
Возврат СокрЛП(Данные);
КонецЕсли;
Если ТипЗнч(Данные) = Тип("Структура") Тогда
ЭтоРегистр = Истина;
Если ТипЗнч(Данные.Регистр) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(Данные.Регистр);
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные.Регистр));
КонецЕсли;
Иначе
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипЗнч(Данные));
ЭтоРегистр = ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных);
КонецЕсли;
Если ОбъектМетаданных = Неопределено Тогда
Возврат "";
КонецЕсли;
Если ЭтоРегистр Тогда
ПредставлениеДанных = ОбъектМетаданных.Представление();
КоличествоПолей = 0;
Для каждого ЭлементОтбора Из Данные.Отбор Цикл
Если ЭлементОтбора.Использование Тогда
КоличествоПолей = КоличествоПолей + 1;
КонецЕсли;
КонецЦикла;
Если КоличествоПолей = 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полем'") + " " + Строка(Данные.Отбор);
ИначеЕсли КоличествоПолей > 1 Тогда
ПредставлениеДанных = ПредставлениеДанных
+ " " + НСтр("ru = 'с полями'") + " " + Строка(Данные.Отбор);
КонецЕсли;
ИначеЕсли Метаданные.Документы.Содержит(ОбъектМетаданных) Тогда
ПредставлениеДанных = Строка(Данные);
Иначе
ПредставлениеДанных = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Строка(Данные), ОбъектМетаданных.Представление());
КонецЕсли;
Возврат ПредставлениеДанных;
КонецФункции
// Для процедуры ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения. // Для процедуры ЗначениеПараметраСеансаДействующиеДатыЗапретаИзменения.
Функция ЗапросДатЗапретаИзменения() Функция ЗапросДатЗапретаИзменения()
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.3.229"; Описание.Версия = "3.0.3.241";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -412,12 +412,6 @@
СсылкаЗадания = СправочникДляЗадания.ПолучитьСсылку(); СсылкаЗадания = СправочникДляЗадания.ПолучитьСсылку();
Задание.УстановитьСсылкуНового(СсылкаЗадания); Задание.УстановитьСсылкуНового(СсылкаЗадания);
Если ТранзакцияАктивна() Тогда
ЗаблокироватьДанныеДляРедактирования(СсылкаЗадания);
// Блокировка будет автоматически снята при завершении транзакции.
КонецЕсли;
РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание); РаботаВМоделиСервиса.ЗаписатьВспомогательныеДанные(Задание);
Возврат Задание.Ссылка; Возврат Задание.Ссылка;
@@ -546,9 +540,6 @@
ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска); ПараметрыЗадания.Вставить("ЗапланированныйМоментЗапуска", ЗапланированныйМоментЗапуска);
КонецЕсли; КонецЕсли;
// Блокировка записи задания
ЗаблокироватьДанныеДляРедактирования(Идентификатор);
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
@@ -592,10 +583,6 @@
КонецПопытки; КонецПопытки;
Если НЕ ТранзакцияАктивна() Тогда // Иначе блокировка будет снята при завершении транзакции.
РазблокироватьДанныеДляРедактирования(Идентификатор);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Удаляет задание из очереди заданий. // Удаляет задание из очереди заданий.
@@ -620,15 +607,9 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
ЗаблокироватьДанныеДляРедактирования(Идентификатор);
Задание.ОбменДанными.Загрузка = Истина; Задание.ОбменДанными.Загрузка = Истина;
РаботаВМоделиСервиса.УдалитьВспомогательныеДанные(Задание); РаботаВМоделиСервиса.УдалитьВспомогательныеДанные(Задание);
Если НЕ ТранзакцияАктивна() Тогда // Иначе блокировка снимется при завершении транзакции.
РазблокироватьДанныеДляРедактирования(Идентификатор);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Возвращает шаблон задания очереди по имени предопределенного // Возвращает шаблон задания очереди по имени предопределенного
@@ -381,7 +381,7 @@
Обработчик.Версия = "*"; Обработчик.Версия = "*";
Обработчик.Процедура = "ОчередьЗаданийСлужебныйРазделениеДанных.ОбновитьЗаданияОчередиПоШаблонам"; Обработчик.Процедура = "ОчередьЗаданийСлужебныйРазделениеДанных.ОбновитьЗаданияОчередиПоШаблонам";
Обработчик.ОбщиеДанные = Истина; Обработчик.ОбщиеДанные = Истина;
Обработчик.МонопольныйРежим = Истина; Обработчик.МонопольныйРежим = Ложь;
Обработчик.Приоритет = 63; Обработчик.Приоритет = 63;
Обработчик = Обработчики.Добавить(); Обработчик = Обработчики.Добавить();
@@ -3800,8 +3800,7 @@
ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета( ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(
Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст), Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст),
"XMLDSignAddIn", "XMLDSignAddIn", "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig",
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig",
ПараметрыПодключения); ПараметрыПодключения);
КонецПроцедуры КонецПроцедуры
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ba2c3cbf-ebdb-4886-ba82-7b69a4fd3312"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3cfe921c-9d05-42ba-895d-5c507bcd517e">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value> <value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="39e99319-b2ca-47bb-a039-a292ed2501a5"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="729cacc7-23f8-42b7-b6ec-682f5801f76b"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="b9414a3a-66b3-4fbe-8112-a0c0bb59d2c2"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="bfca0f0d-2940-42a2-8977-460f9d443672"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e445ef27-933f-4aab-a115-7ad1dc3640d7"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="6c275073-110f-4318-af8a-44672a2d6072"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="bca81099-eb5a-4a4a-a71f-a154d6332528"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="9537802b-d7bf-4c63-9124-9fde62052457"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="237adc78-cf29-409d-8aad-5fa3a4ae3dde"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="d906ccac-253d-4ee5-ac62-faa4596c5e7f"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="01b976a0-2e5b-40cb-8be5-d202942a5712"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="a32c5ec5-b2c2-4647-8705-b22c802fa300"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="67241a37-1c9c-45f0-982a-120c81776a87"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ee9072c4-8bca-4128-b4c5-a07724e821cb"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.3.229</version> <version>3.0.3.241</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,c5103072-a286-4de3-bb9d-ad9bc94bf677,1,27d8d0b2-dd2f-49b9-b902-82731be2ad0d,"3.0.3.229","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6043,1,0,ba2c3cbf-ebdb-4886-ba82-7b69a4fd3312,ba2c3cbf-ebdb-4886-ba82-7b69a4fd3312,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,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,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,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-74e8Line truncated {6,1,1,8e318341-2bf3-4cae-b005-30a8d7c1ac32,1,f7822c2b-1286-4004-99c5-bcce86466643,"3.0.3.241","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6043,1,0,3cfe921c-9d05-42ba-895d-5c507bcd517e,3cfe921c-9d05-42ba-895d-5c507bcd517e,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,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,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,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,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,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-74e8Line truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 38; Возврат 40;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.0.3.218"; Возврат "3.0.3.241";
КонецФункции КонецФункции
@@ -519,7 +519,6 @@
<Item Calendar="92" Year="2018" DayType="Праздник" Date="20180318" SwapDate="20180319"/> <Item Calendar="92" Year="2018" DayType="Праздник" Date="20180318" SwapDate="20180319"/>
<Item Calendar="92" Year="2018" DayType="Воскресенье" Date="20180319" SwapDate="20180318"/> <Item Calendar="92" Year="2018" DayType="Воскресенье" Date="20180319" SwapDate="20180318"/>
<Item Calendar="92" Year="2019" DayType="Праздник" Date="20190318" SwapDate=""/> <Item Calendar="92" Year="2019" DayType="Праздник" Date="20190318" SwapDate=""/>
<Item Calendar="92" Year="2020" DayType="Праздник" Date="20200101" SwapDate=""/>
<Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010101" SwapDate=""/> <Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010101" SwapDate=""/>
<Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010102" SwapDate=""/> <Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010102" SwapDate=""/>
<Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010107" SwapDate="20010108"/> <Item Calendar="РФ" Year="2001" DayType="Праздник" Date="20010107" SwapDate="20010108"/>
@@ -979,6 +978,15 @@
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200224" SwapDate="20200223"/> <Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200224" SwapDate="20200223"/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200308" SwapDate="20200309"/> <Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200308" SwapDate="20200309"/>
<Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200309" SwapDate="20200308"/> <Item Calendar="РФ" Year="2020" DayType="Воскресенье" Date="20200309" SwapDate="20200308"/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200328" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200329" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200330" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200331" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200401" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200402" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200403" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200404" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Нерабочий" Date="20200405" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200430" SwapDate=""/> <Item Calendar="РФ" Year="2020" DayType="Предпраздничный" Date="20200430" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200501" SwapDate=""/> <Item Calendar="РФ" Year="2020" DayType="Праздник" Date="20200501" SwapDate=""/>
<Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200504" SwapDate="20200104"/> <Item Calendar="РФ" Year="2020" DayType="Суббота" Date="20200504" SwapDate="20200104"/>
@@ -1474,6 +1474,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.СценарииОбменовДанными</name> <name>Catalog.СценарииОбменовДанными</name>
<right> <right>
@@ -4502,93 +4589,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.УдалитьЗамерыВремени2</name> <name>InformationRegister.УдалитьЗамерыВремени2</name>
<right> <right>
@@ -14,6 +14,37 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name> <name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right> <right>
@@ -76,37 +107,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -1998,6 +1998,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Document.НазначениеОпросов</name> <name>Document.НазначениеОпросов</name>
<right> <right>
@@ -6030,45 +6069,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>InformationRegister.УдалитьЗамерыВремени2</name> <name>InformationRegister.УдалитьЗамерыВремени2</name>
<right> <right>