3_0_3_272

This commit is contained in:
Компания 1С committed 2020-04-24 13:39:00 +03:00
1 parent b13d305a56
commit 250b42c1c2
26 files changed
+1121 -345

No files matched your search

@@ -227,6 +227,109 @@
КонецФункции
Функция ОбновитьПериодыНерабочихДней(ТаблицаПериодов) Экспорт
ТаблицаИзменений = ТаблицаИзмененийПроизводственныхКалендарей();
// АПК:96 -выкл результат должен содержать уникальные значения
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаПериодов", ТаблицаПериодов);
Запрос.Текст =
"ВЫБРАТЬ
| КлассификаторТаблица.КодПроизводственногоКалендаря КАК КалендарьКод,
| КлассификаторТаблица.НомерПериода КАК НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ПОМЕСТИТЬ ВТКлассификаторТаблица
|ИЗ
| &ТаблицаПериодов КАК КлассификаторТаблица
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПроизводственныеКалендари.Ссылка КАК ПроизводственныйКалендарь,
| КлассификаторТаблица.КалендарьКод КАК КодПроизводственногоКалендаря
|ПОМЕСТИТЬ ВТИзмененияКалендарей
|ИЗ
| ВТКлассификаторТаблица КАК КлассификаторТаблица
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
| ПО КлассификаторТаблица.КалендарьКод = ПроизводственныеКалендари.Код
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ПО ПроизводственныеКалендари.Ссылка = ПериодыНерабочихДней.ПроизводственныйКалендарь
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| ПериодыНерабочихДней.НомерПериода ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПериодыНерабочихДней.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ПериодыНерабочихДней.ПроизводственныйКалендарь.Код КАК КодПроизводственногоКалендаря
|ИЗ
| РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ПериодыНерабочихДней.ПроизводственныйКалендарь.Код
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| КлассификаторТаблица.НомерПериода ЕСТЬ NULL
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИзмененияКалендарей.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ИзмененияКалендарей.КодПроизводственногоКалендаря КАК КодПроизводственногоКалендаря,
| ГОД(КлассификаторТаблица.ДатаНачала) КАК Год,
| КлассификаторТаблица.НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ИЗ
| ВТИзмененияКалендарей КАК ИзмененияКалендарей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ИзмененияКалендарей.КодПроизводственногоКалендаря
|УПОРЯДОЧИТЬ ПО
| ИзмененияКалендарей.ПроизводственныйКалендарь,
| КлассификаторТаблица.НомерПериода";
// АПК:96 -вкл
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПериодыНерабочихДнейКалендаря");
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
НаборЗаписей = РегистрыСведений.ПериодыНерабочихДнейКалендаря.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
ЗаполнитьЗначенияСвойств(ТаблицаИзменений.Добавить(), Выборка);
КонецЦикла;
НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
Продолжить;
КонецЕсли;
НаборЗаписей.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ТаблицаИзменений.Свернуть("КодПроизводственногоКалендаря, Год");
Возврат ТаблицаИзменений;
КонецФункции
// Функция подготавливает результат заполнения производственного календаря
// данными по умолчанию.
// При наличии в конфигурации макета с предопределенными данными
@@ -454,6 +557,53 @@
КонецФункции
Функция ПериодыНерабочихДнейИзXML(Знач ДанныеXML, ТаблицаКалендарей) Экспорт
ТаблицаДанных = НоваяТаблицаПериодовНерабочихДней();
ДанныеМакета = ДанныеXML.Данные;
Для Каждого СтрокаМакета Из ДанныеМакета Цикл
ДобавитьНерабочийПериодВТаблицуИзМакета(ТаблицаДанных.Добавить(), СтрокаМакета);
КодыЗависимыхКалендарей = КодыЗависимыхКалендарей(СтрокаМакета.Calendar, ТаблицаКалендарей);
Для Каждого КодЗависимогоКалендаря Из КодыЗависимыхКалендарей Цикл
Если ДанныеМакета.НайтиСтроки(Новый Структура("Calendar", КодЗависимогоКалендаря)).Количество() <> 0 Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТаблицаДанных.Добавить();
ДобавитьНерабочийПериодВТаблицуИзМакета(НоваяСтрока, СтрокаМакета);
НоваяСтрока.КодПроизводственногоКалендаря = КодЗависимогоКалендаря;
КонецЦикла;
КонецЦикла;
ТаблицаДанных.Сортировать("КодПроизводственногоКалендаря, НомерПериода");
Возврат ТаблицаДанных;
КонецФункции
Процедура ДобавитьНерабочийПериодВТаблицуИзМакета(СтрокаТаблицы, СтрокаМакета)
СтрокаТаблицы.КодПроизводственногоКалендаря = СтрокаМакета.Calendar;
СтрокаТаблицы.НомерПериода = Число(СтрокаМакета.Order);
СтрокаТаблицы.ДатаНачала = Дата(СтрокаМакета.StartDate);
СтрокаТаблицы.ДатаОкончания = Дата(СтрокаМакета.EndDate);
СтрокаТаблицы.Основание = СтрокаМакета.Description;
КонецПроцедуры
Функция ПериодыНерабочихДнейИзМакета() Экспорт
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") = Неопределено Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней");
ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
ТаблицаКалендарей = ПроизводственныеКалендариИзМакета();
Возврат ПериодыНерабочихДнейИзXML(ТаблицаПериодов, ТаблицаКалендарей);
КонецФункции
// Получает таблицу поставляемых в составе программы производственных календарей.
//
// Возвращаемое значение:
@@ -715,6 +865,26 @@
КонецФункции
Функция ПериодыНерабочихДнейПоУмолчанию() Экспорт
Если КалендарныеГрафики.ВерсияКалендарей() >= КалендарныеГрафики.ВерсияЗагруженныхКалендарей() Тогда
Возврат ПериодыНерабочихДнейИзМакета();
КонецЕсли;
Возврат ПериодыНерабочихДнейИзФайлаКлассификатора();
КонецФункции
Функция ПериодыНерабочихДнейИзФайлаКлассификатора()
ДанныеКлассификатора = КалендарныеГрафики.ДанныеКлассификатора();
Возврат ПериодыНерабочихДнейИзXML(
ДанныеКлассификатора["ПериодыНерабочихДней"],
ДанныеКлассификатора["ПроизводственныеКалендари"].Данные);
КонецФункции
// Создает таблицу значений для описания изменений данных производственных календарей.
//
Функция ТаблицаИзмененийПроизводственныхКалендарей()
@@ -873,6 +1043,18 @@
КонецФункции
Функция НоваяТаблицаПериодовНерабочихДней()
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("КодПроизводственногоКалендаря", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(2)));
ТаблицаДанных.Колонки.Добавить("НомерПериода", Новый ОписаниеТипов("Число"));
ТаблицаДанных.Колонки.Добавить("ДатаНачала", Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("Основание", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)));
Возврат ТаблицаДанных;
КонецФункции
Процедура ЗаполнитьПостоянныеПраздничныеДни(ВидыДней, ПереносыДней, НомерГода, КодКалендаря, КодБазовогоКалендаря = Неопределено)
// Если нет - заполняем праздники и переносы.
@@ -984,6 +1166,11 @@
КонецФункции
Функция КодыЗависимыхКалендарей(КодБазовогоКалендаря, КлассификаторКалендарей)
Возврат ОбщегоНазначения.ВыгрузитьКолонку(
КлассификаторКалендарей.НайтиСтроки(Новый Структура("Base", КодБазовогоКалендаря)), "Code");
КонецФункции
Функция НоваяСтрокаДанныхКалендаряИзКлассификатора(ДанныеКалендаря, СтрокаКлассификатора, Проверять = Ложь, Замещать = Ложь)
Если Проверять Тогда
@@ -1253,25 +1440,6 @@
КонецПроцедуры
Функция БазовыйКалендарь(ПроизводственныйКалендарь) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(Базовый.Ссылка, Текущий.Ссылка) КАК Ссылка,
| ЕСТЬNULL(Базовый.Код, Текущий.Код) КАК Код,
| ЕСТЬNULL(Базовый.Наименование, Текущий.Наименование) КАК Наименование
|ИЗ
| Справочник.ПроизводственныеКалендари КАК Текущий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК Базовый
| ПО Текущий.БазовыйКалендарь = Базовый.Ссылка
|ГДЕ
| Текущий.Ссылка = &ПроизводственныйКалендарь";
Возврат ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Запрос.Выполнить().Выгрузить()[0]);
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -50,6 +50,10 @@
<metadata>InformationRegister.СообщенияОбменаДанными</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>InformationRegister.ПериодыНерабочихДнейКалендаря</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>ScheduledJob.ОбновлениеИндексаППД</metadata>
<use>DontUse</use>
@@ -151,6 +151,139 @@
КонецФункции
// Конструктор параметров получения ближайших к заданным дат, включенных в график.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// Значение по умолчанию - Ложь.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|ИгнорироватьНезаполненностьГрафика,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.ИгнорироватьНезаполненностьГрафика = Ложь;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к дня, включенного в график.
//
// Параметры:
// ГрафикРаботы - Справочник.Календари.
// НачальныеДаты - Массив Из Дата - даты, относительно которых нужно найти ближайшие.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихДатПоГрафику.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней дата, включенная в график.
//
Функция БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихДатПоГрафику();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик",
"ГрафикРаботы",
ГрафикРаботы,
Тип("СправочникСсылка.Календари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ГрафикРаботы),
НСтр("ru = 'Не указан график работы.'"),
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик");
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| МИНИМУМ(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.ДатаГрафика)", "МАКСИМУМ(ДатыКалендаря.ДатаГрафика)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата", "ДатыКалендаря.ДатаГрафика <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", ГрафикРаботы);
Выборка = Запрос.Выполнить().Выбрать();
ДатыРабочихДней = Новый Соответствие;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую дату, включенную в график, для даты %1,
|возможно, график работы не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ДатыРабочихДней;
КонецФункции
// Составляет расписания работы для дат, включенных в указанные графики на указанный период.
// Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим.
//
@@ -427,26 +560,6 @@
КонецПроцедуры
// Формирует шаблон текста запроса, встраиваемый в методе КалендарныеГрафики.ПолучитьДатыРабочихДней.
//
Функция ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы() Экспорт
Возврат
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
КонецФункции
Функция ИмяПроцедурыОбновленияГрафиковРаботы() Экспорт
Возврат "РегистрыСведений.КалендарныеГрафики.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -331,94 +331,121 @@
КонецФункции
// Конструктор параметров получения ближайших рабочих дат по календарю.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * УчитыватьНерабочиеПериоды - Булево - определяет отношение к датам, выпадающим на периоды нерабочих дней календаря,
// если Истина, даты, выпадающие на период нерабочих дней будут считаться нерабочими,
// если Ложь, периоды нерабочих дней будут игнорироваться.
// Значение по умолчанию - Истина.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихРабочихДат() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|УчитыватьНерабочиеПериоды,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.УчитыватьНерабочиеПериоды = Истина;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к ней рабочего дня.
//
// Параметры:
// График - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или
// производственный календарь, который необходимо использовать для расчета.
// НачальныеДаты - Массив - массив дат (Дата).
// ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются даты не ранее начальной даты.
// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика.
// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, используемый для расчета.
// НачальныеДаты - Массив Из Дата - даты, относительно которых будет выполнен поиск ближайших.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихРабочихДат.
//
// Возвращаемое значение:
// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива,
// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
//
Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина,
ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт
Функция БлижайшиеРабочиеДаты(ПроизводственныйКалендарь, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(График) Тогда
Если ВызыватьИсключение Тогда
ВызватьИсключение НСтр("ru = 'Не указан график работы или производственный календарь.'");
КонецЕсли;
Возврат Неопределено;
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихРабочихДат();
КонецЕсли;
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"КалендарныеГрафики.БлижайшиеРабочиеДаты",
"ПроизводственныйКалендарь",
ПроизводственныйКалендарь,
Тип("СправочникСсылка.ПроизводственныеКалендари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ПроизводственныйКалендарь),
НСтр("ru = 'Не указан график или производственный календарь.'"),
"КалендарныеГрафики.БлижайшиеРабочиеДаты");
ТекстыЗапросов = Новый Массив;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
ТекстЗапроса =
"ВЫБРАТЬ
| &НачальнаяДата КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты";
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса, "&НачальнаяДата", СтрШаблон("ДАТАВРЕМЯ(%1)", Формат(НачальнаяДата, "ДФ=гггг,ММ,дд"))); // АПК:456 Не требует локализации
Если ТекстыЗапросов.Количество() > 0 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПОМЕСТИТЬ ВТНачальныеДаты", "");
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ НачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
ТекстыЗапросов.Добавить(ТекстЗапроса);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС);
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
Если ТипЗнч(График) = Тип("СправочникСсылка.ПроизводственныеКалендари") Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.Дата) КАК БлижайшаяДата
| МИНИМУМ(ДатыКалендаря.Дата) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДатыКалендаря
| ПО (ДатыКалендаря.Дата %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.ПроизводственныйКалендарь = &График)
| И (ДатыКалендаря.ВидДня В (
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ))
|
| ПО ДатыКалендаря.Дата >= НачальныеДаты.Дата
| И ДатыКалендаря.ПроизводственныйКалендарь = &ПроизводственныйКалендарь
| И ДатыКалендаря.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный))
| И ДатыКалендаря.Дата НЕ В (&НерабочиеДаты)
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Иначе
// По графику работы
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда
МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("ГрафикиРаботы");
ТекстЗапроса = МодульГрафикиРаботы.ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы();
КонецЕсли;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Функция%", ?(ПолучатьПредшествующие, "МАКСИМУМ", "МИНИМУМ"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ЗнакУсловия%", ?(ПолучатьПредшествующие, "<=", ">="));
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.Дата)", "МАКСИМУМ(ДатыКалендаря.Дата)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.Дата >= НачальныеДаты.Дата", "ДатыКалендаря.Дата <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", График);
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
НерабочиеДаты = Новый Массив;
Если ПараметрыПолучения.УчитыватьНерабочиеПериоды Тогда
НерабочиеПериоды = ПериодыНерабочихДней(ПроизводственныйКалендарь, Новый СтандартныйПериод());
Для Каждого Период Из НерабочиеПериоды Цикл
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НерабочиеДаты, Период.Даты);
КонецЦикла;
КонецЕсли;
Запрос.УстановитьПараметр("НерабочиеДаты", НерабочиеДаты);
Выборка = Запрос.Выполнить().Выбрать();
@@ -427,14 +454,11 @@
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ВызыватьИсключение Тогда
ТекстСообщения = НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1, возможно, график работы не заполнен.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1,
|возможно, производственный календарь не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -552,10 +576,8 @@
Возврат Периоды;
КонецЕсли;
БазовыйКалендарь = Справочники.ПроизводственныеКалендари.БазовыйКалендарь(ПроизводственныйКалендарь);
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(БазовыйКалендарь, ПериодОтбор);
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор);
УдалитьПериодыНеСоответствующиеОтбору(Периоды, ПериодОтбор);
@@ -613,6 +635,49 @@
#Область УстаревшиеПроцедурыИФункции
// Устарела. Следует использовать:
// - КалендарныеГрафики.БлижайшиеРабочиеДаты - для производственного календаря,
// - или ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик - для графика работы.
// Определяет для каждой даты дату ближайшего к ней рабочего дня.
//
// Параметры:
// График - СправочникСсылка.Календари
// - СправочникСсылка.ПроизводственныеКалендари - график или
// производственный календарь, который необходимо использовать для расчета.
// НачальныеДаты - Массив - массив дат (Дата).
// ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются даты не ранее начальной даты.
// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика.
// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
//
// Возвращаемое значение:
// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива,
// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
//
Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина,
ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт
Если ТипЗнч(График) <> Тип("СправочникСсылка.ПроизводственныеКалендари") Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда
МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("ГрафикиРаботы");
ПараметрыПолучения = МодульГрафикиРаботы.ПараметрыПолученияБлижайшихДатПоГрафику();
ПараметрыПолучения.ПолучатьПредшествующие = ПолучатьПредшествующие;
ПараметрыПолучения.ВызыватьИсключение = ВызыватьИсключение;
ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика = ИгнорироватьНезаполненностьГрафика;
Возврат МодульГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик(График, НачальныеДаты, ПараметрыПолучения);
КонецЕсли;
КонецЕсли;
ПараметрыПолучения = ПараметрыПолученияБлижайшихРабочихДат();
ПараметрыПолучения.ПолучатьПредшествующие = ПолучатьПредшествующие;
ПараметрыПолучения.ВызыватьИсключение = ВызыватьИсключение;
Возврат БлижайшиеРабочиеДаты(График, НачальныеДаты, ПараметрыПолучения);
КонецФункции
// Устарела. Следует использовать ОсновнойПроизводственныйКалендарь.
// Возвращает основной производственный календарь.
//
@@ -1067,6 +1132,11 @@
ТаблицаДанных = Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзXML(ДанныеXML, ТаблицаКалендарей);
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ПериодыXML = ДанныеКлассификатора["ПериодыНерабочихДней"];
ТаблицаПериодов = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзXML(ПериодыXML, ТаблицаКалендарей);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ТаблицаПериодов), ТаблицаИзменений);
КалендарныеГрафикиПереопределяемый.ПриОбновленииПроизводственныхКалендарей(ТаблицаИзменений);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
@@ -1086,10 +1156,11 @@
ДанныеКлассификатора = Новый Структура(
"ПроизводственныеКалендари,
|ДанныеПроизводственныхКалендарей");
|ДанныеПроизводственныхКалендарей,
|ПериодыНерабочихДней");
ПутьКФайлу = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес); // ДвоичныеДанные
ДвоичныеДанные.Записать(ПутьКФайлу);
ЧтениеXML = Новый ЧтениеXML;
@@ -1108,6 +1179,13 @@
ДанныеКлассификатора.ДанныеПроизводственныхКалендарей = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ЧтениеXML);
ЧтениеXML.Прочитать();
ПроверитьКонецЭлемента(ЧтениеXML, "CalendarData");
ЧтениеXML.Прочитать();
ПроверитьНачалоЭлемента(ЧтениеXML, "NonWorkingPeriods");
ДанныеКлассификатора.ПериодыНерабочихДней = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ЧтениеXML);
ЧтениеXML.Закрыть();
УдалитьФайлы(ПутьКФайлу);
@@ -1349,6 +1427,10 @@
// Обновляем данные производственных календарей.
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ПериодыНерабочихДней = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзМакета();
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ПериодыНерабочихДней), ТаблицаИзменений);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ЗапланироватьОбновлениеДанныхЗависимыхОтПроизводственныхКалендарей(ТаблицаИзменений);
Возврат;
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.3.261";
Описание.Версия = "3.0.3.272";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2132,7 +2132,15 @@
УниверсальноеОграничение = ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина, Ложь);
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально"
Или ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально <> УниверсальноеОграничение Тогда
ПередИзменениемПараметровСеансаДляШаблонов(
Новый Структура("ОграничениеДоступаНаУровнеЗаписейУниверсально", УниверсальноеОграничение),
ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально");
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
КонецЕсли;
УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейУниверсально");
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально" Тогда
@@ -20039,6 +20047,10 @@
Возврат;
КонецПроцедуры
Процедура ПередИзменениемПараметровСеансаДляШаблонов(НовыеЗначения, ЭтоУстановка)
Возврат;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -21218,7 +21230,8 @@
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
КонецЕсли;
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов);
Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.Параметры;
@@ -21288,9 +21301,16 @@
"ПараметрыОграниченияДоступа.ДляОтчетаПоПравамДоступа", "Неопределено");
КонецЕсли;
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей",
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахВнешнихПользователей"), "Неопределено");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей", "Неопределено");
КонецЕсли;
Запрос.УстановитьПараметр("Версия", Версия);
@@ -21613,7 +21633,8 @@
КонецПроцедуры
// Для функции ДействующиеПараметрыОграниченияДоступа.
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, ПовторныйВызов = Ложь)
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов = Ложь, ПовторныйВызов = Ложь)
Если Не ПовторныйВызов Тогда
ОбновитьПовторноИспользуемыеЗначения();
@@ -21630,7 +21651,8 @@
Если ДляЗаписиОбъектовИПроверкиПрав.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
@@ -21643,13 +21665,17 @@
Если ДляОтчетаПоПравамДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Кэш = КэшПараметровОграничения();
Кэш.ВсеВидыОграниченийПрав = ДляОтчетаПоПравамДоступа.ВсеВидыОграниченийПрав;
КонецЕсли;
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
@@ -21660,22 +21686,39 @@
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = СтрСоединить(СтрРазделить(
ВерсииШаблонов = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ПараметрыШаблонов.Вставить("ВерсииШаблоновОграниченияДоступа", ВерсииШаблонов);
ОбновитьПараметрыСеансаДляШаблонов = УстановкаПараметровСеансаДляШаблонов;
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Для Каждого КлючИЗначение Из ПараметрыШаблонов Цикл
Если ПараметрыСеанса[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
ОбновитьПараметрыСеансаДляШаблонов = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ОбновитьПараметрыСеансаДляШаблонов Тогда
ПередИзменениемПараметровСеансаДляШаблонов(ПараметрыШаблонов, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
КонецЕсли;
КонецЕсли;
УточнитьВерсииШаблоновОграниченияДоступа();
ОбновитьРазрешенныеНаборыВПараметрахСеанса(Истина);
ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов, Истина);
ПараметрыОграничения = Новый Структура;
ПараметрыОграничения.Вставить("Версия", ВерсияПараметров.Версия);
@@ -21683,19 +21726,24 @@
ПараметрыОграничения.Вставить("ДатаСоздания", ВерсияПараметров.ДатаСоздания);
ПараметрыОграничения.Вставить("Параметры", ДляЗаписиОбъектовИПроверкиПрав);
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ПараметрыОграничения.Вставить("ПараметрыСеансаДляШаблоновУстановлены");
КонецЕсли;
ФиксированныеПараметрыОграничения = Новый ФиксированнаяСтруктура(ПараметрыОграничения);
ПараметрыСеанса.ПараметрыОграниченияДоступа = ФиксированныеПараметрыОграничения;
КонецПроцедуры
// Для процедуры УстановитьВерсиюПараметров.
Процедура УточнитьВерсииШаблоновОграниченияДоступа()
Процедура УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов)
Если ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() Тогда
Если ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() + "
ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() + "
|,ТребуетсяПерезапуститьСеанс,";
КонецПроцедуры
@@ -21703,28 +21751,38 @@
// Для процедуры УстановитьВерсиюПараметров, ПроверитьДоступКОбъекту,
// ПроверитьДоступКНаборуЗаписей и функции ДоступРазрешен.
//
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(ЭтоУстановкаПараметровСеанса = Ложь)
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов = Ложь,
УстановкаПараметровОграниченияДоступа = Ложь)
Если Не УстановкаПараметровСеансаДляШаблонов
И Не ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если Не ЭтоУстановкаПараметровСеанса И ПоследняяПроверка.Дата + 3 > ТекущаяДатаСеанса() Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И Не УстановкаПараметровОграниченияДоступа
И ПоследняяПроверка.Дата + 5 >= ТекущаяДатаСеанса() Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
РазрешенныйПустойНаборГруппДоступа = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа();
Если Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
РазрешенныйПользователь = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Иначе
РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Состав = Новый Структура;
Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйПустойНаборГруппДоступа",
УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа());
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Пользователи.АвторизованныйПользователь().УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РазрешенныйПользователь", РазрешенныйПользователь);
Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь);
Запрос.Текст =
"ВЫБРАТЬ
| НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа,
@@ -21736,44 +21794,38 @@
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
Иначе
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
КонецЕсли;
КонецЕсли;
Если Не ЭтоУстановкаПараметровСеанса
И ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйПустойНаборГруппДоступа Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.РазрешенныйПользователь = Состав.РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = Состав.РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = Состав.РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = Состав.РазрешенныйПустойНаборГруппДоступа Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь;
ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей;
ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = РазрешенныйПустойНаборГруппДоступа;
Состав.Вставить("ОбщиеПараметрыШаблоновОграниченияДоступа", "");
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав);
ОбщиеПараметры = "";
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры);
ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = ОбщиеПараметры;
ПередИзменениемПараметровСеансаДляШаблонов(Состав, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, Состав);
КонецПроцедуры
// Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса.
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры)
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав)
Если Не УправлениеДоступомСлужебныйПовтИсп.ТребуетсяУточнениеПланаЗапроса() Тогда
Возврат;
КонецЕсли;
ОбщиеПараметры = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйПользователь, "^");
Состав.ОбщиеПараметрыШаблоновОграниченияДоступа = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйПользователь, "^");
КонецПроцедуры
+10 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="7a21a5f5-11ed-4fc5-bdc4-1a37ac6d6d3d">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="d12b1be7-1b03-406e-9631-dd64fdacdcc3">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="3474b911-cbbe-4790-b0a6-59b6c2d0bb43"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="189eb711-3d2b-493d-952f-b7ceb93931c8"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="f32fab66-483f-4e0c-8b15-aabd7168282f"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="c0413443-4ede-4cb0-9aea-1cdc66099b67"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="009b5f38-f9be-400d-b3c0-a00bb921c632"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="28535fd1-21b9-4bb5-b7e6-20d7da401422"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="fbcdaf2e-b9a7-4a3d-9182-e797a870f7c3"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4d41d592-aad7-456a-adf4-1308e33fb325"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="82d29ecd-d9d0-42aa-b0b9-8a70ef6392df"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="10757e6d-8f7a-4772-8700-6938ee29fe78"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="baddf597-8e74-4220-a2d0-212fff8350bf"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="6b20639b-1926-4b8d-9eaf-3fe4d15a0708"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="e43328a0-5f39-4b05-be0f-da25bc280aa5"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="398b6623-b35f-4e81-bb20-2d3f94d808b4"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.0.3.261</version>
<version>3.0.3.272</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1883,6 +1883,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,839c262c-3051-4aba-b822-190e48d0b69b,1,702fea1e-7f68-4a3c-85d7-74163150ded2,"3.0.3.261","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6046,1,0,7a21a5f5-11ed-4fc5-bdc4-1a37ac6d6d3d,7a21a5f5-11ed-4fc5-bdc4-1a37ac6d6d3d,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,3e57749e-f646-4b7a-b717-8c5115ae8eed,1,3973f5d1-d3c7-4d6d-a89c-1371bfb990db,"3.0.3.272","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6053,1,0,d12b1be7-1b03-406e-9631-dd64fdacdcc3,d12b1be7-1b03-406e-9631-dd64fdacdcc3,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
@@ -2734,10 +2734,6 @@
</attributes>
<attributes>
<name>ИдентификаторЗадания</name>
<title>
<key>ru</key>
<value>Идентификатор задания</value>
</title>
<id>15</id>
<valueType>
<types>UUID</types>
@@ -196,6 +196,9 @@
ТаблицаДанных = Справочники.ПроизводственныеКалендари.РезультатЗаполненияПроизводственныхКалендарейПоУмолчанию(КодыКалендарей);
Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(
Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейПоУмолчанию());
КонецПроцедуры
#КонецОбласти
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт
Возврат 1;
Возврат 2;
КонецФункции
@@ -57,22 +57,19 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.0.3.257";
Возврат "3.0.3.271";
КонецФункции
Функция ПериодыНерабочихДней(ДанныеКалендаря, Период) Экспорт
Функция ПериодыНерабочихДней(ПроизводственныйКалендарь, Период) Экспорт
Периоды = Новый Массив;
Если СокрЛП(ДанныеКалендаря.Код) = "РФ" Тогда
ТаблицаПериодов = РегистрыСведений.ПериодыНерабочихДнейКалендаря.ПериодыНерабочихДней(ПроизводственныйКалендарь);
Для Каждого СтрокаТаблицы Из ТаблицаПериодов Цикл
Периоды.Добавить(
ОписаниеПериодаНерабочихДней(
Дата(2020, 3, 30), Дата(2020, 4, 3), НСтр("ru = 'Указ Президента РФ от 25.03.2020 № 206'")));
Периоды.Добавить(
ОписаниеПериодаНерабочихДней(
Дата(2020, 4, 4), Дата(2020, 4, 30), НСтр("ru = 'Указ Президента РФ от 02.04.2020 № 239'")));
КонецЕсли;
ОписаниеПериодаНерабочихДней(СтрокаТаблицы.ДатаНачала, СтрокаТаблицы.ДатаОкончания, СтрокаТаблицы.Основание));
КонецЦикла;
Возврат Периоды;
@@ -0,0 +1,4 @@
<Items Description="Периоды нерабочих дней" Columns="Calendar,Order,StartDate,EndDate,Description">
<Item Calendar="РФ" Order="1" StartDate="20200330" EndDate="20200403" Description="Указ Президента РФ от 25.03.2020 № 206"/>
<Item Calendar="РФ" Order="2" StartDate="20200404" EndDate="20200430" Description="Указ Президента РФ от 02.04.2020 № 239"/>
</Items>
@@ -56,4 +56,12 @@
</synonym>
<templateType>TextDocument</templateType>
</templates>
<templates uuid="8efa4c12-b5ba-4dfd-bdc9-e824402fc4b1">
<name>ПериодыНерабочихДней</name>
<synonym>
<key>ru</key>
<value>Периоды нерабочих дней</value>
</synonym>
<templateType>TextDocument</templateType>
</templates>
</mdclass:DataProcessor>
@@ -44,6 +44,7 @@
<types>InformationRegisterRecordSet.ИсторияАдресныхОбъектов</types>
<types>InformationRegisterRecordSet.УдалитьЗамерыВремени</types>
<types>InformationRegisterRecordSet.ПраваРолей</types>
<types>InformationRegisterRecordSet.ПериодыНерабочихДнейКалендаря</types>
<types>InformationRegisterRecordSet.УдалитьВерсииПодсистем</types>
<types>InformationRegisterRecordSet.УдалитьОчередьИзвлеченияТекста</types>
<types>InformationRegisterRecordSet.ПоставляемыеДанныеТребующиеОбработки</types>
@@ -140,6 +140,9 @@
<content>
<mdObject>Catalog.НаборыДополнительныхРеквизитовИСведений</mdObject>
</content>
<content>
<mdObject>InformationRegister.ПериодыНерабочихДнейКалендаря</mdObject>
</content>
<content>
<mdObject>Catalog.ПапкиЭлектронныхПисем</mdObject>
</content>
@@ -0,0 +1,37 @@
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции
Функция ПериодыНерабочихДней(ПроизводственныйКалендарь) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
Запрос.Текст =
"ВЫБРАТЬ
| ПериодыНерабочихДнейКалендаря.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ПериодыНерабочихДнейКалендаря.НомерПериода КАК НомерПериода,
| ПериодыНерабочихДнейКалендаря.ДатаНачала КАК ДатаНачала,
| ПериодыНерабочихДнейКалендаря.ДатаОкончания КАК ДатаОкончания,
| ПериодыНерабочихДнейКалендаря.Основание КАК Основание
|ИЗ
| РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДнейКалендаря
|ГДЕ
| ПериодыНерабочихДнейКалендаря.ПроизводственныйКалендарь = &ПроизводственныйКалендарь
|
|УПОРЯДОЧИТЬ ПО
| НомерПериода";
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -0,0 +1,155 @@
<?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="0a92df3d-fb51-4fba-938c-55846929bd5f">
<producedTypes>
<selectionType typeId="5949c51b-6929-4b50-af20-8e05f8cb0284" valueTypeId="06ee4e55-1829-4a2e-ba83-49e94bc8478d"/>
<listType typeId="45e998ed-4ee3-4bf8-a7ce-cd2aab32ed63" valueTypeId="6e89e14c-4590-48da-80c9-1ddd7cdcb1eb"/>
<managerType typeId="f46bbe38-9a00-42f3-837e-46d865cf166a" valueTypeId="59eb071c-6aea-429b-a9cb-def33f2b581f"/>
<recordSetType typeId="ebfbc844-f724-47c9-b96a-eca5011fa87f" valueTypeId="187b4d44-c7aa-435b-a213-e23a2827fa17"/>
<recordKeyType typeId="b19cfa18-f0cb-4066-913a-2d5dfdcf8923" valueTypeId="7875cb6d-684e-4a89-9169-363d0fcaf19a"/>
<recordType typeId="bc057a73-5412-463b-a797-db5bee38f69b" valueTypeId="44b2b6c3-0e6c-44fd-8349-b1b8146696f3"/>
<recordManagerType typeId="f5f824e6-916a-4d56-a86b-7b620226b744" valueTypeId="d3e2b81f-131f-45a4-9db8-5fe67edbf0d3"/>
</producedTypes>
<name>ПериодыНерабочихДнейКалендаря</name>
<synonym>
<key>ru</key>
<value>Периоды нерабочих дней календаря</value>
</synonym>
<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>
<recordPresentation>
<key>ru</key>
<value>Период нерабочих дней</value>
</recordPresentation>
<extendedRecordPresentation>
<key>ru</key>
<value>Период нерабочих дней производственного календаря</value>
</extendedRecordPresentation>
<extendedListPresentation>
<key>ru</key>
<value>Периоды нерабочих дней производственного календаря</value>
</extendedListPresentation>
<resources uuid="1d005a8d-aaac-4442-a7dc-12634d03f6f3">
<name>ДатаНачала</name>
<synonym>
<key>ru</key>
<value>Дата начала</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</resources>
<resources uuid="348d0ad2-f64e-4ea0-8b8e-11bbc10926f7">
<name>ДатаОкончания</name>
<synonym>
<key>ru</key>
<value>Дата окончания</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
</resources>
<attributes uuid="7f7eb00d-7a38-4025-8853-9d1cf2dab1e3">
<name>Основание</name>
<synonym>
<key>ru</key>
<value>Основание</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>150</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:StringValue"/>
</attributes>
<dimensions uuid="36221881-a9c8-4b91-acac-44f7c065c05a">
<name>ПроизводственныйКалендарь</name>
<synonym>
<key>ru</key>
<value>Производственный календарь</value>
</synonym>
<type>
<types>CatalogRef.ПроизводственныеКалендари</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<denyIncompleteValues>true</denyIncompleteValues>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
<fillValue xsi:type="core:UndefinedValue"/>
<master>true</master>
<mainFilter>true</mainFilter>
</dimensions>
<dimensions uuid="3fdcf013-38e0-4a30-9ae8-19100e6704ba">
<name>НомерПериода</name>
<synonym>
<key>ru</key>
<value>Номер периода</value>
</synonym>
<type>
<types>Number</types>
<numberQualifiers>
<precision>10</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"/>
<mainFilter>true</mainFilter>
</dimensions>
</mdclass:InformationRegister>
@@ -178,6 +178,65 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>true</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>true</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>true</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>true</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗамерыКомментарииСтатистики</name>
<right>
@@ -3202,93 +3261,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.ЭкспортЗамеровПроизводительности</name>
<right>
@@ -4901,6 +4873,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>ChartOfCharacteristicTypes.УдалитьВидыДоступа</name>
<right>
@@ -86,6 +86,17 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.ВариантыОтчетов</name>
<right>
@@ -68,6 +68,17 @@
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.ВариантыОтчетов</name>
<right>
@@ -3,6 +3,29 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
<right>
<name>TotalsControl</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ДанныеПроизводственногоКалендаря</name>
<right>
@@ -21,37 +21,6 @@
<value>true</value>
</right>
</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>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right>
@@ -107,6 +76,37 @@
<value>true</value>
</right>
</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>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -258,6 +258,57 @@
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ПериодыНерабочихДнейКалендаря</name>
<right>
<name>Update</name>
<value>false</value>
</right>
<right>
<name>Edit</name>
<value>false</value>
</right>
<right>
<name>TotalsControl</name>
<value>false</value>
</right>
<right>
<name>ReadDataHistory</name>
<value>false</value>
</right>
<right>
<name>ReadDataHistoryOfMissingData</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistoryOfMissingData</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>ViewDataHistory</name>
<value>false</value>
</right>
<right>
<name>EditDataHistoryVersionComment</name>
<value>false</value>
</right>
<right>
<name>SwitchToDataHistoryVersion</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ПапкиЭлектронныхПисем</name>
<right>
@@ -575,10 +626,6 @@
<name>UpdateDataHistory</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistorySettings</name>
<value>false</value>
</right>
<right>
<name>UpdateDataHistoryVersionComment</name>
<value>false</value>
@@ -4280,45 +4327,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.ЭкспортЗамеровПроизводительности</name>
<right>
@@ -6475,6 +6483,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>ChartOfCharacteristicTypes.УдалитьВидыДоступа</name>
<right>
@@ -3,6 +3,13 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -34,13 +41,6 @@
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации</name>
<right>
@@ -29,5 +29,6 @@
<content>DataProcessor.ЗаполнениеКалендарныхГрафиков</content>
<content>StyleItem.НерабочийПериодПроизводственногоКалендаряФон</content>
<content>Enum.УдалитьВидыКалендарей</content>
<content>InformationRegister.ПериодыНерабочихДнейКалендаря</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>