3_0_3_272

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

No files matched your search

@@ -227,6 +227,109 @@
КонецФункции
Функция ОбновитьПериодыНерабочихДней(ТаблицаПериодов) Экспорт
ТаблицаИзменений = ТаблицаИзмененийПроизводственныхКалендарей();
// АПК:96 -выкл результат должен содержать уникальные значения
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаПериодов", ТаблицаПериодов);
Запрос.Текст =
"ВЫБРАТЬ
| КлассификаторТаблица.КодПроизводственногоКалендаря КАК КалендарьКод,
| КлассификаторТаблица.НомерПериода КАК НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ПОМЕСТИТЬ ВТКлассификаторТаблица
|ИЗ
| &ТаблицаПериодов КАК КлассификаторТаблица
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПроизводственныеКалендари.Ссылка КАК ПроизводственныйКалендарь,
| КлассификаторТаблица.КалендарьКод КАК КодПроизводственногоКалендаря
|ПОМЕСТИТЬ ВТИзмененияКалендарей
|ИЗ
| ВТКлассификаторТаблица КАК КлассификаторТаблица
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
| ПО КлассификаторТаблица.КалендарьКод = ПроизводственныеКалендари.Код
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ПО ПроизводственныеКалендари.Ссылка = ПериодыНерабочихДней.ПроизводственныйКалендарь
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| ПериодыНерабочихДней.НомерПериода ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПериодыНерабочихДней.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ПериодыНерабочихДней.ПроизводственныйКалендарь.Код КАК КодПроизводственногоКалендаря
|ИЗ
| РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ПериодыНерабочихДней.ПроизводственныйКалендарь.Код
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| КлассификаторТаблица.НомерПериода ЕСТЬ NULL
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИзмененияКалендарей.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ИзмененияКалендарей.КодПроизводственногоКалендаря КАК КодПроизводственногоКалендаря,
| ГОД(КлассификаторТаблица.ДатаНачала) КАК Год,
| КлассификаторТаблица.НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ИЗ
| ВТИзмененияКалендарей КАК ИзмененияКалендарей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ИзмененияКалендарей.КодПроизводственногоКалендаря
|УПОРЯДОЧИТЬ ПО
| ИзмененияКалендарей.ПроизводственныйКалендарь,
| КлассификаторТаблица.НомерПериода";
// АПК:96 -вкл
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПериодыНерабочихДнейКалендаря");
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
НаборЗаписей = РегистрыСведений.ПериодыНерабочихДнейКалендаря.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
ЗаполнитьЗначенияСвойств(ТаблицаИзменений.Добавить(), Выборка);
КонецЦикла;
НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
Продолжить;
КонецЕсли;
НаборЗаписей.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ТаблицаИзменений.Свернуть("КодПроизводственногоКалендаря, Год");
Возврат ТаблицаИзменений;
КонецФункции
// Функция подготавливает результат заполнения производственного календаря
// данными по умолчанию.
// При наличии в конфигурации макета с предопределенными данными
@@ -393,11 +496,11 @@
//
// Возвращаемое значение:
// ТаблицаЗначений - таблица с колонками:
// * КодПроизводственногоКалендаря
// * ВидДня
// * Год
// * Дата
// * ДатаПереноса.
// * КодПроизводственногоКалендаря
// * ВидДня
// * Год
// * Дата
// * ДатаПереноса.
//
Функция ДанныеПроизводственныхКалендарейИзXML(Знач ДанныеXML, ТаблицаКалендарей, КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт
@@ -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>
@@ -312,7 +312,7 @@
// равенство.
//
// Возвращаемое значение: Массив(Структура), массив структур, описывающих свойства сеансов. Описание структур -
// см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса().
// см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса().
//
Функция СеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт
@@ -481,7 +481,7 @@
// равенство.
//
// Возвращаемое значение: Массив(Структура), массив структур, описывающих свойства соединений. Описание структур -
// см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения().
// см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения().
//
Функция СоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт
@@ -417,7 +417,7 @@
// равенство.
//
// Возвращаемое значение: Массив(Структура), массив структур, описывающих свойства соединений. Описание структур -
// см. АдминистрированиеКластера.СвойстваСоединения().
// см. АдминистрированиеКластера.СвойстваСоединения().
//
Функция СоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт
@@ -195,7 +195,7 @@
// равенство.
//
// Возвращаемое значение: Массив(Структура), массив структур, описывающих свойства сеансов. Описание структур -
// см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса().
// см. АдминистрированиеКластераКлиентСервер.СвойстваСеанса().
//
Функция СеансыИнформационнойБазы(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт
@@ -341,7 +341,7 @@
// равенство.
//
// Возвращаемое значение: Массив(Структура), массив структур, описывающих свойства соединений. Описание структур -
// см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения().
// см. АдминистрированиеКластераКлиентСервер.СвойстваСоединения().
//
Функция СоединенияСИнформационнойБазой(Знач ПараметрыАдминистрированияКластера, Знач ПараметрыАдминистрированияИБ, Знач Фильтр = Неопределено) Экспорт
@@ -5685,9 +5685,9 @@
//
// Возвращаемое значение:
// Структура - с полями:
// * ЗагружатьИсториюАдресов - Булево - Если Истина, то будет загружена история адресных сведений. По умолчанию, Ложь.
// * ЗагружатьПорциями - Булево - Если Истина, то загрузка будет осуществляться порциями. По умолчанию, Ложь.
// * ОповещатьОПрогрессе - Булево - Если Истина, то передаваться сообщение о статусе загрузки. По умолчанию, Истина.
// * ЗагружатьИсториюАдресов - Булево - Если Истина, то будет загружена история адресных сведений. По умолчанию, Ложь.
// * ЗагружатьПорциями - Булево - Если Истина, то загрузка будет осуществляться порциями. По умолчанию, Ложь.
// * ОповещатьОПрогрессе - Булево - Если Истина, то передаваться сообщение о статусе загрузки. По умолчанию, Истина.
//
Функция ПараметрыЗагрузкиКлассификатораАдресов() Экспорт
@@ -151,6 +151,139 @@
КонецФункции
// Конструктор параметров получения ближайших к заданным дат, включенных в график.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// Значение по умолчанию - Ложь.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|ИгнорироватьНезаполненностьГрафика,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.ИгнорироватьНезаполненностьГрафика = Ложь;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к дня, включенного в график.
//
// Параметры:
// ГрафикРаботы - Справочник.Календари.
// НачальныеДаты - Массив Из Дата - даты, относительно которых нужно найти ближайшие.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихДатПоГрафику.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней дата, включенная в график.
//
Функция БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихДатПоГрафику();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик",
"ГрафикРаботы",
ГрафикРаботы,
Тип("СправочникСсылка.Календари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ГрафикРаботы),
НСтр("ru = 'Не указан график работы.'"),
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик");
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| МИНИМУМ(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.ДатаГрафика)", "МАКСИМУМ(ДатыКалендаря.ДатаГрафика)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата", "ДатыКалендаря.ДатаГрафика <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", ГрафикРаботы);
Выборка = Запрос.Выполнить().Выбрать();
ДатыРабочихДней = Новый Соответствие;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую дату, включенную в график, для даты %1,
|возможно, график работы не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ДатыРабочихДней;
КонецФункции
// Составляет расписания работы для дат, включенных в указанные графики на указанный период.
// Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим.
//
@@ -427,26 +560,6 @@
КонецПроцедуры
// Формирует шаблон текста запроса, встраиваемый в методе КалендарныеГрафики.ПолучитьДатыРабочихДней.
//
Функция ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы() Экспорт
Возврат
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
КонецФункции
Функция ИмяПроцедурыОбновленияГрафиковРаботы() Экспорт
Возврат "РегистрыСведений.КалендарныеГрафики.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -56,8 +56,8 @@
// Возвращает словарь представлений для внешних модулей контейнера.
//
// Возвращаемое значение - Структура:
// * Именительный - Строка, представление типа внешнего модуля в именительном падеже,
// * Родительный - Строка, представление типа внешнего модуля в родительном падеже.
// * Именительный - Строка, представление типа внешнего модуля в именительном падеже,
// * Родительный - Строка, представление типа внешнего модуля в родительном падеже.
//
Функция СловарьКонтейнераВнешнегоМодуля() Экспорт
@@ -19,14 +19,14 @@
//
// Возвращаемое значение:
// Структура - Структура с описание колонки.
// * Имя - Строка - имя колонки.
// * Тип - ОписаниеТипов - тип колонки.
// * Заголовок - Строка - заголовок колонки выводимый в бланке для загрузки.
// * Ширина - - Число - ширина колонки.
// * Подсказка - Строка - подсказка выводимая в заголовке колонки.
// * ОбязательнаяДляЗаполнения - Булево - истина, если колонка обязательно должна содержать значения.
// * Группа - Строка - имя группы колонок.
// * Родитель - Строка - используется для связи динамической колонки с реквизитом табличной части объекта.
// * Имя - Строка - имя колонки.
// * Тип - ОписаниеТипов - тип колонки.
// * Заголовок - Строка - заголовок колонки выводимый в бланке для загрузки.
// * Ширина - - Число - ширина колонки.
// * Подсказка - Строка - подсказка выводимая в заголовке колонки.
// * ОбязательнаяДляЗаполнения - Булево - истина, если колонка обязательно должна содержать значения.
// * Группа - Строка - имя группы колонок.
// * Родитель - Строка - используется для связи динамической колонки с реквизитом табличной части объекта.
//
Функция ОписаниеКолонкиМакета(Имя, Тип, Заголовок = Неопределено, Ширина = 0, Подсказка = "") Экспорт
@@ -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 @@
// Обновляем данные производственных календарей.
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ПериодыНерабочихДней = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзМакета();
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ПериодыНерабочихДней), ТаблицаИзменений);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ЗапланироватьОбновлениеДанныхЗависимыхОтПроизводственныхКалендарей(ТаблицаИзменений);
Возврат;
@@ -982,11 +982,11 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам
// все обработано или все, что нужно обработать, еще заблокировано обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуРегистраторовРегистраДляОбработки(Очередь, ПолноеИмяДокумента, ПолноеИмяРегистра, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1217,13 +1217,13 @@
// ДополнительныеПараметры - Структура - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки:
// * ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки:
// ** Регистратор - ДокументСсылка.
// ** Период - Дата - дата документа, если передано полное имя документа, максимальный период по регистратору,
// если полное имя документа не передано.
// ** Проведен - Булево, Неопределено - значение реквизита Проведен документа, если передано полное имя документа,
// Неопределено - если имя документа не передано.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьРегистраторыРегистраДляОбработки(Очередь, ПолноеИмяДокумента, ПолноеИмяРегистра, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1333,9 +1333,9 @@
// ДополнительныеПараметры - Структура - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки:
// * ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки:
// ** Ссылка - ЛюбаяСсылка.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьСсылкиДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт
Если ДополнительныеПараметры = Неопределено Тогда
@@ -1416,12 +1416,12 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам:
// все обработано или все, что нужно обработать, еще заблокировано
// обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуСсылокДляОбработки(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1571,10 +1571,10 @@
// ДополнительныеПараметры - Структура - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам
// * ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам
// измерений регистра. Если по измерению не регистрировалась необходимость обработки,
// то в выборке по этому измерению будет пустое значение.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьИзмеренияНезависимогоРегистраСведенийДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт
Если ДополнительныеПараметры = Неопределено Тогда
@@ -1683,12 +1683,12 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам:
// все обработано или все, что нужно обработать, еще заблокировано
// обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть данные для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть данные для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуИзмеренийНезависимогоРегистраСведенийДляОбработки(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -3852,8 +3852,8 @@
// ПараметрыПостроения - Структура - см. ПараметрыПостроенияВыборки().
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - в случае обычной выборки.
// * ТаблицаЗначений - в случае постраничной выборки.
// * ВыборкаИзРезультатаЗапроса - в случае обычной выборки.
// * ТаблицаЗначений - в случае постраничной выборки.
//
Функция ВыбратьДанныеДляОбработки(Запрос, ПараметрыПостроения)
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.3.261";
Описание.Версия = "3.0.3.272";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2876,8 +2876,8 @@
// СведенияОбОбновлении - Структура - сведения об обновлении (см. НовыеСведенияОбОбновлении()).
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - новый поток (см. НовоеОписаниеПотоков()).
// * Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить.
// * СтрокаТаблицыЗначений - новый поток (см. НовоеОписаниеПотоков()).
// * Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить.
//
Функция ДобавитьПотокОбработчикаОтложенногоОбновления(ОписаниеПотоков, СведенияОбОбновлении)
@@ -3578,10 +3578,10 @@
// Описание группы потоков.
//
// Возвращаемое значение:
// * Группы - Соответствие - описание групп потоков, где:
// * Группы - Соответствие - описание групп потоков, где:
// ** Ключ - Строка - имя группы.
// ** Значение - Структура - см. НовоеОписаниеГруппыПотоков().
// * Потоки - ТаблицаЗначений - описание потоков со следующими колонками:
// * Потоки - ТаблицаЗначений - описание потоков со следующими колонками:
// ** Наименование - Строка - произвольное наименование потока (используется в наименовании фонового задания).
// ** Группа - Строка - имя группы с описанием потока.
// ** ИдентификаторЗадания - УникальныйИдентификатор - уникальный идентификатор фонового задания.
@@ -3877,10 +3877,10 @@
// ПараметрыОбхода - Структура - см. ПараметрыОбходаДанныхДляОбновления().
//
// Возвращаемое значение:
// * Структура - параметры обхода текущей итерации в виде структуры со следующими полями:
// * Структура - параметры обхода текущей итерации в виде структуры со следующими полями:
// ** СсылочныйОбъект - Строка - имя ссылочного объекта.
// ** ТабличныйОбъект - Строка - имя табличного объекта.
// * Неопределено - если обход закончен.
// * Неопределено - если обход закончен.
//
Функция ТекущиеПараметрыОбхода(ПараметрыОбхода)
@@ -4564,8 +4564,8 @@
// ПорцииДляОбновления - ТаблицаЗначений - см. НоваяТаблицаПорцийДляОбновления().
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - найденная порция.
// * Неопределено - если необработанных порций нет.
// * СтрокаТаблицыЗначений - найденная порция.
// * Неопределено - если необработанных порций нет.
//
Функция ПерваяНеобработаннаяПорция(ПорцииДляОбновления)
@@ -6096,8 +6096,8 @@
// ПараметрыОбновления - Структура - см. ВыполнитьОбновлениеИнформационнойБазы().
//
// Возвращаемое значение:
// * СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// * Булево - Истина, если обработчик не нужно выполнять, Ложь, если выполнение обработчиков нужно завершить.
// * СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// * Булево - Истина, если обработчик не нужно выполнять, Ложь, если выполнение обработчиков нужно завершить.
//
Функция НайтиОбработчикОбновления(КонтекстОбработчика, СведенияОбОбновлении, ПараметрыОбновления = Неопределено)
@@ -7496,8 +7496,8 @@
// ИмяОбработчика - Строка - имя обработчика обновления.
//
// Возвращаемое значение:
// * СтрокаДереваЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
// * СтрокаДереваЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
//
Функция НайтиОбработчикВДереве(ДеревоОбработчиков, Идентификатор, ИмяОбработчика)
@@ -7522,8 +7522,8 @@
// ИмяОбработчика - Строка - имя обработчика обновления.
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
// * СтрокаТаблицыЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
//
Функция НайтиОбработчикВТаблице(ТаблицаОбработчиков, Идентификатор, ИмяОбработчика)
@@ -5969,8 +5969,8 @@
//
// Возвращаемое значение:
// Структура - Результат проверки.
// * Ошибка - Булево - Найдена ошибка.
// * ОписаниеОшибки - Строка - Описание найденных ошибок.
// * Ошибка - Булево - Найдена ошибка.
// * ОписаниеОшибки - Строка - Описание найденных ошибок.
//
// Пример:
//
@@ -882,7 +882,7 @@
//
// Возвращаемое значение:
// Структура - структура настроек.
// См. РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским().
// См. РезервноеКопированиеОбластейДанныхПовтИсп.СоответствиеРусскихИменПолейНастроекАнглийским().
//
Функция ПолучитьНастройкиРезервногоКопированияОбласти(Знач ОбластьДанных = Неопределено) Экспорт
@@ -300,7 +300,7 @@
// Создает пустую таблицу дел пользователя.
//
// Возвращаемое значение:
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
//
Функция НоваяТаблицаТекущихДел()
@@ -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,39 +21665,60 @@
Если ДляОтчетаПоПравамДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Кэш = КэшПараметровОграничения();
Кэш.ВсеВидыОграниченийПрав = ДляОтчетаПоПравамДоступа.ВсеВидыОграниченийПрав;
КонецЕсли;
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Если ТипЗнч(ХранилищеДляШаблоновОграниченияДоступа) = Тип("ХранилищеЗначения") Тогда
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов(
ХранилищеДляШаблоновОграниченияДоступа.Получить());
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
Возврат;
Если ТипЗнч(ХранилищеДляШаблоновОграниченияДоступа) = Тип("ХранилищеЗначения") Тогда
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов(
ХранилищеДляШаблоновОграниченияДоступа.Получить());
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ВерсииШаблонов = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ПараметрыШаблонов.Вставить("ВерсииШаблоновОграниченияДоступа", ВерсииШаблонов);
ОбновитьПараметрыСеансаДляШаблонов = УстановкаПараметровСеансаДляШаблонов;
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Для Каждого КлючИЗначение Из ПараметрыШаблонов Цикл
Если ПараметрыСеанса[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
ОбновитьПараметрыСеансаДляШаблонов = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ОбновитьПараметрыСеансаДляШаблонов Тогда
ПередИзменениемПараметровСеансаДляШаблонов(ПараметрыШаблонов, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
УточнитьВерсииШаблоновОграниченияДоступа();
ОбновитьРазрешенныеНаборыВПараметрахСеанса(Истина);
ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов, Истина);
ПараметрыОграничения = Новый Структура;
ПараметрыОграничения.Вставить("Версия", ВерсияПараметров.Версия);
@@ -21683,19 +21726,24 @@
ПараметрыОграничения.Вставить("ДатаСоздания", ВерсияПараметров.ДатаСоздания);
ПараметрыОграничения.Вставить("Параметры", ДляЗаписиОбъектовИПроверкиПрав);
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ПараметрыОграничения.Вставить("ПараметрыСеансаДляШаблоновУстановлены");
КонецЕсли;
ФиксированныеПараметрыОграничения = Новый ФиксированнаяСтруктура(ПараметрыОграничения);
ПараметрыСеанса.ПараметрыОграниченияДоступа = ФиксированныеПараметрыОграничения;
КонецПроцедуры
// Для процедуры УстановитьВерсиюПараметров.
Процедура УточнитьВерсииШаблоновОграниченияДоступа()
Процедура УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов)
Если ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() Тогда
Если ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() + "
ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() + "
|,ТребуетсяПерезапуститьСеанс,";
КонецПроцедуры
@@ -21703,28 +21751,38 @@
// Для процедуры УстановитьВерсиюПараметров, ПроверитьДоступКОбъекту,
// ПроверитьДоступКНаборуЗаписей и функции ДоступРазрешен.
//
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(ЭтоУстановкаПараметровСеанса = Ложь)
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов = Ложь,
УстановкаПараметровОграниченияДоступа = Ложь)
Если Не УстановкаПараметровСеансаДляШаблонов
И Не ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если Не ЭтоУстановкаПараметровСеанса И ПоследняяПроверка.Дата + 3 > ТекущаяДатаСеанса() Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И Не УстановкаПараметровОграниченияДоступа
И ПоследняяПроверка.Дата + 5 >= ТекущаяДатаСеанса() Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
РазрешенныйПустойНаборГруппДоступа = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа();
Если Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
РазрешенныйПользователь = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Иначе
РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Состав = Новый Структура;
Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйПустойНаборГруппДоступа",
УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа());
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Пользователи.АвторизованныйПользователь().УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РазрешенныйПользователь", РазрешенныйПользователь);
Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь);
Запрос.Текст =
"ВЫБРАТЬ
| НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа,
@@ -21736,44 +21794,38 @@
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
Иначе
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
КонецЕсли;
КонецЕсли;
Если Не ЭтоУстановкаПараметровСеанса
И ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйПустойНаборГруппДоступа Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.РазрешенныйПользователь = Состав.РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = Состав.РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = Состав.РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = Состав.РазрешенныйПустойНаборГруппДоступа Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь;
ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей;
ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = РазрешенныйПустойНаборГруппДоступа;
Состав.Вставить("ОбщиеПараметрыШаблоновОграниченияДоступа", "");
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав);
ОбщиеПараметры = "";
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры);
ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = ОбщиеПараметры;
ПередИзменениемПараметровСеансаДляШаблонов(Состав, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, Состав);
КонецПроцедуры
// Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса.
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры)
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав)
Если Не УправлениеДоступомСлужебныйПовтИсп.ТребуетсяУточнениеПланаЗапроса() Тогда
Возврат;
КонецЕсли;
ОбщиеПараметры = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйПользователь, "^");
Состав.ОбщиеПараметрыШаблоновОграниченияДоступа = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйПользователь, "^");
КонецПроцедуры
@@ -5297,8 +5297,8 @@
//
// Возвращаемое значение:
// ТаблицаЗначений - Виды контактной информации.
// * Имя - Строка - Имя вида контактной информации.
// * Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - Ссылка на элемент справочника виды контактной информации.
// * Имя - Строка - Имя вида контактной информации.
// * Ссылка - СправочникСсылка.ВидыКонтактнойИнформации - Ссылка на элемент справочника виды контактной информации.
//
Функция ПредопределенныеВидыКонтактнойИнформации(Имя = "") Экспорт
@@ -464,23 +464,23 @@
//
// Возвращаемое значение:
// Структура - содержит поля:
// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - Вид редактируемой информации.
// * Значение - Строка - Значение полей контактной информации в формате JSON или ХML.
// * Представление - Строка - Представление контактной информации.
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации, если был указан
// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации, Структура - Вид редактируемой информации.
// * Значение - Строка - Значение полей контактной информации в формате JSON или ХML.
// * Представление - Строка - Представление контактной информации.
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - Тип контактной информации, если был указан
// в параметрах.
// * Страна - Строка - Страна мира, только если указан тип контактной информации Адрес.
// * Регион - Строка - Значение поля региона, только если указан тип контактной информации Адрес.
// * Страна - Строка - Страна мира, только если указан тип контактной информации Адрес.
// * Регион - Строка - Значение поля региона, только если указан тип контактной информации Адрес.
// Актуально для стран ЕАЭС.
// * Индекс - Строка - Страна мира, только если указан тип контактной информации Адрес.
// * ТипПомещения - Строка - Тип помещения в форме ввода нового адреса, , только если указан тип контактной
// * Индекс - Строка - Страна мира, только если указан тип контактной информации Адрес.
// * ТипПомещения - Строка - Тип помещения в форме ввода нового адреса, , только если указан тип контактной
// информации Адрес.
// * КодСтраны - Строка - Телефонный код страны мира, только если указан тип контактной информации Телефон.
// * КодГорода - Строка - Телефонный код города, только если указан тип контактной информации Телефон.
// * НомерТелефона - Строка - Телефонный номер, только если указан тип контактной информации Телефон.
// * Добавочный - Строка - Добавочный телефонный номер, только если указан тип контактной информации Телефон.
// * Заголовок - Строка - Заголовок формы. По умолчанию, представление вида контактной информации.
// * ТипАдреса - Строка - варианты: Пустая строка (по умолчанию), "ВСвободнойФорме", "ЕАЭС";
// * КодСтраны - Строка - Телефонный код страны мира, только если указан тип контактной информации Телефон.
// * КодГорода - Строка - Телефонный код города, только если указан тип контактной информации Телефон.
// * НомерТелефона - Строка - Телефонный номер, только если указан тип контактной информации Телефон.
// * Добавочный - Строка - Добавочный телефонный номер, только если указан тип контактной информации Телефон.
// * Заголовок - Строка - Заголовок формы. По умолчанию, представление вида контактной информации.
// * ТипАдреса - Строка - варианты: Пустая строка (по умолчанию), "ВСвободнойФорме", "ЕАЭС";
// Для РФ: "Муниципальный" или "АдминистративноТерриториальный".
// Если не указан (пустая строка), то для существующего адреса будет установлен адрес
// выбранный пользователем в форме ввода адреса, для нового адреса - Муниципальный".
@@ -104,12 +104,12 @@
//
// Возвращаемое значение:
// Структура - Список параметров открытия формы.
// * Владелец - Произвольный - Форма или элемент управления другой формы.
// * Уникальность - Произвольный - Ключ, значение которого будет использоваться для поиска уже открытых форм.
// * НавигационнаяСсылка - Строка - Задает навигационную ссылку, возвращаемую формой.
// * ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - Содержит описание процедуры, которая будет вызвана после
// * Владелец - Произвольный - Форма или элемент управления другой формы.
// * Уникальность - Произвольный - Ключ, значение которого будет использоваться для поиска уже открытых форм.
// * НавигационнаяСсылка - Строка - Задает навигационную ссылку, возвращаемую формой.
// * ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - Содержит описание процедуры, которая будет вызвана после
// закрытия формы.
// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - Указывает режим открытия окна управляемой формы.
// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - Указывает режим открытия окна управляемой формы.
//
Функция ПараметрыФормы(ДанныеЗаполнения) Экспорт
ПараметрыОткрытия = Новый Структура();
@@ -33,26 +33,26 @@
//
// Параметры:
// Параметры - Структура - со свойствами:
// * ОжидатьПродолжения - Булево - (возвращаемое значение) - если Истина, тогда дополнительная проверка
// * ОжидатьПродолжения - Булево - (возвращаемое значение) - если Истина, тогда дополнительная проверка
// будет выполнятся асинхронно, продолжение возобновится после выполнения оповещения.
// Начальное значение Ложь.
// * Оповещение - ОписаниеОповещения - обработка, которую нужно вызывать для продолжения
// * Оповещение - ОписаниеОповещения - обработка, которую нужно вызывать для продолжения
// после асинхронного выполнения дополнительной проверки.
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// общего модуля ЭлектроннаяПодписьПереопределяемый.
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// выполнения проверки.
// - Неопределено - если стандартные проверки отключены в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// Это описание сможет увидеть пользователь при нажатии на картинку результата.
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// начальное значение - Ложь.
// * Пароль - Строка - пароль, введенный пользователем.
// * Пароль - Строка - пароль, введенный пользователем.
// - Неопределено - если свойство ВводитьПароль установлено в Ложь в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * РезультатыПроверок - Структура - со свойствами:
// * РезультатыПроверок - Структура - со свойствами:
// * Ключ - Строка - имя стандартной или дополнительной проверки.
// * Значение - Неопределено - проверка не выполнялась (ОписаниеОшибки осталось Неопределено).
// - Булево - результат выполнения дополнительной проверки.
@@ -84,21 +84,21 @@
//
// Параметры:
// Параметры - Структура - со свойствами:
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// общего модуля ЭлектроннаяПодписьПереопределяемый.
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// выполнения проверки.
// - Неопределено - если стандартные проверки отключены в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// Это описание сможет увидеть пользователь при нажатии на картинку результата.
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// начальное значение - Ложь.
// * Пароль - Строка - пароль, введенный пользователем.
// * Пароль - Строка - пароль, введенный пользователем.
// - Неопределено - если свойство ВводитьПароль установлено в Ложь в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * РезультатыПроверок - Структура - со свойствами:
// * РезультатыПроверок - Структура - со свойствами:
// * Ключ - Строка - имя дополнительной проверки, которая уже выполнена.
// * Значение - Неопределено - дополнительная проверка не выполнялась (ОписаниеОшибки осталось Неопределено).
// - Булево - результат выполнения дополнительной проверки.
@@ -68,8 +68,8 @@
//
// Возвращаемое значение:
// Структура -
// * РасширениеСертификата - Строка - Расширение файла сертификата.
// * АдресСертификата - Строка - Адрес во временном хранилище, по которому был помещен сертификат.
// * РасширениеСертификата - Строка - Расширение файла сертификата.
// * АдресСертификата - Строка - Адрес во временном хранилище, по которому был помещен сертификат.
//
Функция ДанныеПоСертификату(СведенияОЭлектроннойПодписи, УникальныйИдентификатор) Экспорт
+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>