3_1_2_359

This commit is contained in:
Компания 1С committed 2020-04-24 13:39:00 +03:00
1 parent 2dd06e5d05
commit 19da2d0220
48 files changed
+1318 -403

No files matched your search

@@ -450,10 +450,6 @@
</attributes>
<attributes>
<name>ИтогиИсправления</name>
<title>
<key>ru</key>
<value>Итоги исправления</value>
</title>
<id>3</id>
<valueType>
<types>String</types>
@@ -1396,7 +1396,8 @@
// * ЗначениеПустойСсылки - СправочникСсылка.ИдентификаторыОбъектовМетаданных -
// - СправочникСсылка.ИдентификаторыОбъектовРасширений -
// * ХранилищеКлюча - ХранилищеЗначения -
// * НоваяСсылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений -
// * НоваяСсылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
// СправочникСсылка.ИдентификаторыОбъектовРасширений -
// * ИмяРасширения - Строка -
// * ХешСуммаРасширения - Строка -
// * КлючОбъектаМетаданных - ХранилищеЗначения -
@@ -1217,6 +1217,12 @@
<value></value>
</code>
</items>
<items id="6e19c877-8395-49d3-a4fe-7c12c531ad11">
<name>РегистрСведенийПериодыНерабочихДнейКалендаря</name>
<code xsi:type="core:StringValue">
<value></value>
</code>
</items>
</predefined>
<predefinedDataUpdate>DontAutoUpdate</predefinedDataUpdate>
<editType>InDialog</editType>
@@ -236,6 +236,109 @@
КонецФункции
Функция ОбновитьПериодыНерабочихДней(ТаблицаПериодов) Экспорт
ТаблицаИзменений = ТаблицаИзмененийПроизводственныхКалендарей();
// АПК:96 -выкл результат должен содержать уникальные значения
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ТаблицаПериодов", ТаблицаПериодов);
Запрос.Текст =
"ВЫБРАТЬ
| КлассификаторТаблица.КодПроизводственногоКалендаря КАК КалендарьКод,
| КлассификаторТаблица.НомерПериода КАК НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ПОМЕСТИТЬ ВТКлассификаторТаблица
|ИЗ
| &ТаблицаПериодов КАК КлассификаторТаблица
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПроизводственныеКалендари.Ссылка КАК ПроизводственныйКалендарь,
| КлассификаторТаблица.КалендарьКод КАК КодПроизводственногоКалендаря
|ПОМЕСТИТЬ ВТИзмененияКалендарей
|ИЗ
| ВТКлассификаторТаблица КАК КлассификаторТаблица
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК ПроизводственныеКалендари
| ПО КлассификаторТаблица.КалендарьКод = ПроизводственныеКалендари.Код
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ПО ПроизводственныеКалендари.Ссылка = ПериодыНерабочихДней.ПроизводственныйКалендарь
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| ПериодыНерабочихДней.НомерПериода ЕСТЬ NULL
|
|ОБЪЕДИНИТЬ
|
|ВЫБРАТЬ
| ПериодыНерабочихДней.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ПериодыНерабочихДней.ПроизводственныйКалендарь.Код КАК КодПроизводственногоКалендаря
|ИЗ
| РегистрСведений.ПериодыНерабочихДнейКалендаря КАК ПериодыНерабочихДней
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ПериодыНерабочихДней.ПроизводственныйКалендарь.Код
| И КлассификаторТаблица.НомерПериода = ПериодыНерабочихДней.НомерПериода
| И КлассификаторТаблица.ДатаНачала = ПериодыНерабочихДней.ДатаНачала
| И КлассификаторТаблица.ДатаОкончания = ПериодыНерабочихДней.ДатаОкончания
| И КлассификаторТаблица.Основание = ПериодыНерабочихДней.Основание
|ГДЕ
| КлассификаторТаблица.НомерПериода ЕСТЬ NULL
|;
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИзмененияКалендарей.ПроизводственныйКалендарь КАК ПроизводственныйКалендарь,
| ИзмененияКалендарей.КодПроизводственногоКалендаря КАК КодПроизводственногоКалендаря,
| ГОД(КлассификаторТаблица.ДатаНачала) КАК Год,
| КлассификаторТаблица.НомерПериода,
| КлассификаторТаблица.ДатаНачала КАК ДатаНачала,
| КлассификаторТаблица.ДатаОкончания КАК ДатаОкончания,
| КлассификаторТаблица.Основание КАК Основание
|ИЗ
| ВТИзмененияКалендарей КАК ИзмененияКалендарей
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКлассификаторТаблица КАК КлассификаторТаблица
| ПО КлассификаторТаблица.КалендарьКод = ИзмененияКалендарей.КодПроизводственногоКалендаря
|УПОРЯДОЧИТЬ ПО
| ИзмененияКалендарей.ПроизводственныйКалендарь,
| КлассификаторТаблица.НомерПериода";
// АПК:96 -вкл
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПериодыНерабочихДнейКалендаря");
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
НаборЗаписей = РегистрыСведений.ПериодыНерабочихДнейКалендаря.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
ЗаполнитьЗначенияСвойств(ТаблицаИзменений.Добавить(), Выборка);
КонецЦикла;
НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
Продолжить;
КонецЕсли;
НаборЗаписей.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ТаблицаИзменений.Свернуть("КодПроизводственногоКалендаря, Год");
Возврат ТаблицаИзменений;
КонецФункции
// Функция подготавливает результат заполнения производственного календаря
// данными по умолчанию.
// При наличии в конфигурации макета с предопределенными данными
@@ -463,6 +566,53 @@
КонецФункции
Функция ПериодыНерабочихДнейИзXML(Знач ДанныеXML, ТаблицаКалендарей) Экспорт
ТаблицаДанных = НоваяТаблицаПериодовНерабочихДней();
ДанныеМакета = ДанныеXML.Данные;
Для Каждого СтрокаМакета Из ДанныеМакета Цикл
ДобавитьНерабочийПериодВТаблицуИзМакета(ТаблицаДанных.Добавить(), СтрокаМакета);
КодыЗависимыхКалендарей = КодыЗависимыхКалендарей(СтрокаМакета.Calendar, ТаблицаКалендарей);
Для Каждого КодЗависимогоКалендаря Из КодыЗависимыхКалендарей Цикл
Если ДанныеМакета.НайтиСтроки(Новый Структура("Calendar", КодЗависимогоКалендаря)).Количество() <> 0 Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТаблицаДанных.Добавить();
ДобавитьНерабочийПериодВТаблицуИзМакета(НоваяСтрока, СтрокаМакета);
НоваяСтрока.КодПроизводственногоКалендаря = КодЗависимогоКалендаря;
КонецЦикла;
КонецЦикла;
ТаблицаДанных.Сортировать("КодПроизводственногоКалендаря, НомерПериода");
Возврат ТаблицаДанных;
КонецФункции
Процедура ДобавитьНерабочийПериодВТаблицуИзМакета(СтрокаТаблицы, СтрокаМакета)
СтрокаТаблицы.КодПроизводственногоКалендаря = СтрокаМакета.Calendar;
СтрокаТаблицы.НомерПериода = Число(СтрокаМакета.Order);
СтрокаТаблицы.ДатаНачала = Дата(СтрокаМакета.StartDate);
СтрокаТаблицы.ДатаОкончания = Дата(СтрокаМакета.EndDate);
СтрокаТаблицы.Основание = СтрокаМакета.Description;
КонецПроцедуры
Функция ПериодыНерабочихДнейИзМакета() Экспорт
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") = Неопределено Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней");
ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
ТаблицаКалендарей = ПроизводственныеКалендариИзМакета();
Возврат ПериодыНерабочихДнейИзXML(ТаблицаПериодов, ТаблицаКалендарей);
КонецФункции
// Получает таблицу поставляемых в составе программы производственных календарей.
//
// Возвращаемое значение:
@@ -724,6 +874,26 @@
КонецФункции
Функция ПериодыНерабочихДнейПоУмолчанию() Экспорт
Если КалендарныеГрафики.ВерсияКалендарей() >= КалендарныеГрафики.ВерсияЗагруженныхКалендарей() Тогда
Возврат ПериодыНерабочихДнейИзМакета();
КонецЕсли;
Возврат ПериодыНерабочихДнейИзФайлаКлассификатора();
КонецФункции
Функция ПериодыНерабочихДнейИзФайлаКлассификатора()
ДанныеКлассификатора = КалендарныеГрафики.ДанныеКлассификатора();
Возврат ПериодыНерабочихДнейИзXML(
ДанныеКлассификатора["ПериодыНерабочихДней"],
ДанныеКлассификатора["ПроизводственныеКалендари"].Данные);
КонецФункции
// Создает таблицу значений для описания изменений данных производственных календарей.
//
Функция ТаблицаИзмененийПроизводственныхКалендарей()
@@ -882,6 +1052,18 @@
КонецФункции
Функция НоваяТаблицаПериодовНерабочихДней()
ТаблицаДанных = Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("КодПроизводственногоКалендаря", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(2)));
ТаблицаДанных.Колонки.Добавить("НомерПериода", Новый ОписаниеТипов("Число"));
ТаблицаДанных.Колонки.Добавить("ДатаНачала", Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("ДатаОкончания", Новый ОписаниеТипов("Дата"));
ТаблицаДанных.Колонки.Добавить("Основание", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(150)));
Возврат ТаблицаДанных;
КонецФункции
Процедура ЗаполнитьПостоянныеПраздничныеДни(ВидыДней, ПереносыДней, НомерГода, КодКалендаря, КодБазовогоКалендаря = Неопределено)
// Если нет - заполняем праздники и переносы.
@@ -993,6 +1175,11 @@
КонецФункции
Функция КодыЗависимыхКалендарей(КодБазовогоКалендаря, КлассификаторКалендарей)
Возврат ОбщегоНазначения.ВыгрузитьКолонку(
КлассификаторКалендарей.НайтиСтроки(Новый Структура("Base", КодБазовогоКалендаря)), "Code");
КонецФункции
Функция НоваяСтрокаДанныхКалендаряИзКлассификатора(ДанныеКалендаря, СтрокаКлассификатора, Проверять = Ложь, Замещать = Ложь)
Если Проверять Тогда
@@ -1283,25 +1470,6 @@
КонецПроцедуры
Функция БазовыйКалендарь(ПроизводственныйКалендарь) Экспорт
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
Запрос.Текст =
"ВЫБРАТЬ
| ЕСТЬNULL(Базовый.Ссылка, Текущий.Ссылка) КАК Ссылка,
| ЕСТЬNULL(Базовый.Код, Текущий.Код) КАК Код,
| ЕСТЬNULL(Базовый.Наименование, Текущий.Наименование) КАК Наименование
|ИЗ
| Справочник.ПроизводственныеКалендари КАК Текущий
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПроизводственныеКалендари КАК Базовый
| ПО Текущий.БазовыйКалендарь = Базовый.Ссылка
|ГДЕ
| Текущий.Ссылка = &ПроизводственныйКалендарь";
Возврат ОбщегоНазначения.СтрокаТаблицыЗначенийВСтруктуру(Запрос.Выполнить().Выгрузить()[0]);
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -38,6 +38,10 @@
<metadata>InformationRegister.СообщенияОбменаДанными</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>InformationRegister.ПериодыНерабочихДнейКалендаря</metadata>
<use>DontUse</use>
</content>
<content>
<metadata>ScheduledJob.ОбновлениеИндексаППД</metadata>
<use>DontUse</use>
@@ -1906,10 +1906,6 @@
</attributes>
<attributes>
<name>ПоддерживаетсяПередачаБольшихФайлов</name>
<title>
<key>ru</key>
<value>Поддерживается передача больших файлов</value>
</title>
<id>3</id>
<valueType>
<types>Boolean</types>
@@ -215,6 +215,8 @@
ПодключитьОбработчикОжидания("ОбновитьТекущуюПечатнуюФорму",0.1,Истина);
КонецЕсли;
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
@@ -551,9 +551,11 @@
// Ключи структуры тоже являются необязательными. Значение по умолчанию указано в скобках.
// * ЭлементОтбора - Булево - если Ложь, то сбрасывается настройка "ЭлементОтбораКомпоновкиДанных".
// * ЗначениеПараметраНастроек - Булево - если Ложь, то сбрасывается настройка "ЗначениеПараметраНастроекКомпоновкиДанных".
// * ВыбранныеПоля - Булево - признак необходимости сброса настройки "ВыбранныеПоляКомпоновкиДанных" (возвращается из ключа Прочие).
// * ВыбранныеПоля - Булево - признак необходимости сброса настройки "ВыбранныеПоляКомпоновкиДанных" (возвращается
// из ключа Прочие).
// * Порядок - Булево - признак необходимости сброса настройки "ПорядокКомпоновкиДанных" (возвращается из ключа Прочие).
// * ЭлементУсловногоОформления - Булево - признак необходимости сброса настройки "ЭлементУсловногоОформленияКомпоновкиДанных" (возвращается из ключа Прочие).
// * ЭлементУсловногоОформления - Булево - признак необходимости сброса настройки
// "ЭлементУсловногоОформленияКомпоновкиДанных" (возвращается из ключа Прочие).
// * Прочие - Булево - если Истина, то сбрасываются прочие настройки, не описанные в структуре явно.
//
Процедура СброситьПользовательскиеНастройки(Ключ, ТипыНастроек = Неопределено) Экспорт
@@ -1029,9 +1029,11 @@
Запрос = Новый Запрос(ТекстЗапроса);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() И ЗначениеЗаполнено(Выборка.ТипОбъекта) Цикл
Пока Выборка.Следующий() Цикл
ОбъектМетаданных = Метаданные.НайтиПоТипу(Выборка.ТипОбъекта);
Если ОбъектМетаданных <> Неопределено Тогда
МодульЦентрМониторинга.ЗаписатьСтатистикуОбъектаКонфигурации("КоличествоВерсийОбъекта." + ОбъектМетаданных.ПолноеИмя(), Выборка.Количество);
КонецЕсли;
КонецЦикла;
ТекстЗапроса =
@@ -151,6 +151,139 @@
КонецФункции
// Конструктор параметров получения ближайших к заданным дат, включенных в график.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// Значение по умолчанию - Ложь.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|ИгнорироватьНезаполненностьГрафика,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.ИгнорироватьНезаполненностьГрафика = Ложь;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к дня, включенного в график.
//
// Параметры:
// ГрафикРаботы - Справочник.Календари.
// НачальныеДаты - Массив Из Дата - даты, относительно которых нужно найти ближайшие.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихДатПоГрафику.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней дата, включенная в график.
//
Функция БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихДатПоГрафику();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик",
"ГрафикРаботы",
ГрафикРаботы,
Тип("СправочникСсылка.Календари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ГрафикРаботы),
НСтр("ru = 'Не указан график работы.'"),
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик");
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| МИНИМУМ(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.ДатаГрафика)", "МАКСИМУМ(ДатыКалендаря.ДатаГрафика)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата", "ДатыКалендаря.ДатаГрафика <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", ГрафикРаботы);
Выборка = Запрос.Выполнить().Выбрать();
ДатыРабочихДней = Новый Соответствие;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую дату, включенную в график, для даты %1,
|возможно, график работы не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ДатыРабочихДней;
КонецФункции
// Составляет расписания работы для дат, включенных в указанные графики на указанный период.
// Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим.
//
@@ -438,26 +571,6 @@
КонецПроцедуры
// Формирует шаблон текста запроса, встраиваемый в методе КалендарныеГрафики.ПолучитьДатыРабочихДней.
//
Функция ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы() Экспорт
Возврат
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
КонецФункции
Функция ИмяПроцедурыОбновленияГрафиковРаботы() Экспорт
Возврат "РегистрыСведений.КалендарныеГрафики.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -331,94 +331,121 @@
КонецФункции
// Конструктор параметров получения ближайших рабочих дат по календарю.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * УчитыватьНерабочиеПериоды - Булево - определяет отношение к датам, выпадающим на периоды нерабочих дней календаря,
// если Истина, даты, выпадающие на период нерабочих дней будут считаться нерабочими,
// если Ложь, периоды нерабочих дней будут игнорироваться.
// Значение по умолчанию - Истина.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихРабочихДат() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|УчитыватьНерабочиеПериоды,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.УчитыватьНерабочиеПериоды = Истина;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к ней рабочего дня.
//
// Параметры:
// График - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или
// производственный календарь, который необходимо использовать для расчета.
// НачальныеДаты - Массив - массив дат (Дата).
// ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются даты не ранее начальной даты.
// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика.
// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, используемый для расчета.
// НачальныеДаты - Массив Из Дата - даты, относительно которых будет выполнен поиск ближайших.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихРабочихДат.
//
// Возвращаемое значение:
// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива,
// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
//
Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина,
ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт
Функция БлижайшиеРабочиеДаты(ПроизводственныйКалендарь, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(График) Тогда
Если ВызыватьИсключение Тогда
ВызватьИсключение НСтр("ru = 'Не указан график работы или производственный календарь.'");
КонецЕсли;
Возврат Неопределено;
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихРабочихДат();
КонецЕсли;
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"КалендарныеГрафики.БлижайшиеРабочиеДаты",
"ПроизводственныйКалендарь",
ПроизводственныйКалендарь,
Тип("СправочникСсылка.ПроизводственныеКалендари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ПроизводственныйКалендарь),
НСтр("ru = 'Не указан график или производственный календарь.'"),
"КалендарныеГрафики.БлижайшиеРабочиеДаты");
ТекстыЗапросов = Новый Массив;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
ТекстЗапроса =
"ВЫБРАТЬ
| &НачальнаяДата КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты";
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса, "&НачальнаяДата", СтрШаблон("ДАТАВРЕМЯ(%1)", Формат(НачальнаяДата, "ДФ=гггг,ММ,дд"))); // АПК:456 Не требует локализации
Если ТекстыЗапросов.Количество() > 0 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПОМЕСТИТЬ ВТНачальныеДаты", "");
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ НачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
ТекстыЗапросов.Добавить(ТекстЗапроса);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС);
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
Если ТипЗнч(График) = Тип("СправочникСсылка.ПроизводственныеКалендари") Тогда
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.Дата) КАК БлижайшаяДата
| МИНИМУМ(ДатыКалендаря.Дата) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДатыКалендаря
| ПО (ДатыКалендаря.Дата %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.ПроизводственныйКалендарь = &График)
| И (ДатыКалендаря.ВидДня В (
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ))
|
| ПО ДатыКалендаря.Дата >= НачальныеДаты.Дата
| И ДатыКалендаря.ПроизводственныйКалендарь = &ПроизводственныйКалендарь
| И ДатыКалендаря.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный))
| И ДатыКалендаря.Дата НЕ В (&НерабочиеДаты)
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Иначе
// По графику работы
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда
МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("ГрафикиРаботы");
ТекстЗапроса = МодульГрафикиРаботы.ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы();
КонецЕсли;
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Функция%", ?(ПолучатьПредшествующие, "МАКСИМУМ", "МИНИМУМ"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ЗнакУсловия%", ?(ПолучатьПредшествующие, "<=", ">="));
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.Дата)", "МАКСИМУМ(ДатыКалендаря.Дата)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.Дата >= НачальныеДаты.Дата", "ДатыКалендаря.Дата <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", График);
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
НерабочиеДаты = Новый Массив;
Если ПараметрыПолучения.УчитыватьНерабочиеПериоды Тогда
НерабочиеПериоды = ПериодыНерабочихДней(ПроизводственныйКалендарь, Новый СтандартныйПериод());
Для Каждого Период Из НерабочиеПериоды Цикл
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НерабочиеДаты, Период.Даты);
КонецЦикла;
КонецЕсли;
Запрос.УстановитьПараметр("НерабочиеДаты", НерабочиеДаты);
Выборка = Запрос.Выполнить().Выбрать();
@@ -427,14 +454,11 @@
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ВызыватьИсключение Тогда
ТекстСообщения = НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1, возможно, график работы не заполнен.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1,
|возможно, производственный календарь не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -552,10 +576,8 @@
Возврат Периоды;
КонецЕсли;
БазовыйКалендарь = Справочники.ПроизводственныеКалендари.БазовыйКалендарь(ПроизводственныйКалендарь);
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(БазовыйКалендарь, ПериодОтбор);
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор);
УдалитьПериодыНеСоответствующиеОтбору(Периоды, ПериодОтбор);
@@ -611,6 +633,53 @@
#КонецОбласти
#Область УстаревшиеПроцедурыИФункции
// Устарела. Следует использовать:
// - КалендарныеГрафики.БлижайшиеРабочиеДаты - для производственного календаря,
// - или ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик - для графика работы.
// Определяет для каждой даты дату ближайшего к ней рабочего дня.
//
// Параметры:
// График - СправочникСсылка.Календари
// - СправочникСсылка.ПроизводственныеКалендари - график или
// производственный календарь, который необходимо использовать для расчета.
// НачальныеДаты - Массив - массив дат (Дата).
// ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются даты не ранее начальной даты.
// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика.
// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
//
// Возвращаемое значение:
// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива,
// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
//
Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина,
ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт
Если ТипЗнч(График) <> Тип("СправочникСсылка.ПроизводственныеКалендари") Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда
МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("ГрафикиРаботы");
ПараметрыПолучения = МодульГрафикиРаботы.ПараметрыПолученияБлижайшихДатПоГрафику();
ПараметрыПолучения.ПолучатьПредшествующие = ПолучатьПредшествующие;
ПараметрыПолучения.ВызыватьИсключение = ВызыватьИсключение;
ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика = ИгнорироватьНезаполненностьГрафика;
Возврат МодульГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик(График, НачальныеДаты, ПараметрыПолучения);
КонецЕсли;
КонецЕсли;
ПараметрыПолучения = ПараметрыПолученияБлижайшихРабочихДат();
ПараметрыПолучения.ПолучатьПредшествующие = ПолучатьПредшествующие;
ПараметрыПолучения.ВызыватьИсключение = ВызыватьИсключение;
Возврат БлижайшиеРабочиеДаты(График, НачальныеДаты, ПараметрыПолучения);
КонецФункции
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -900,7 +969,8 @@
ОбновитьИспользованиеНесколькихПроизводственныхКалендарей();
ДанныеПроизводственныхКалендарей = Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейПоУмолчанию();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей);
ПериодыНерабочихДней = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейПоУмолчанию();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей, ПериодыНерабочихДней);
КонецПроцедуры
@@ -951,6 +1021,11 @@
ТаблицаДанных = Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзXML(ДанныеXML, ТаблицаКалендарей);
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ПериодыXML = ДанныеКлассификатора["ПериодыНерабочихДней"];
ТаблицаПериодов = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзXML(ПериодыXML, ТаблицаКалендарей);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ТаблицаПериодов), ТаблицаИзменений);
КалендарныеГрафикиПереопределяемый.ПриОбновленииПроизводственныхКалендарей(ТаблицаИзменений);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
@@ -970,7 +1045,8 @@
ДанныеКлассификатора = Новый Структура(
"ПроизводственныеКалендари,
|ДанныеПроизводственныхКалендарей");
|ДанныеПроизводственныхКалендарей,
|ПериодыНерабочихДней");
ПутьКФайлу = ПолучитьИмяВременногоФайла();
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес); // ДвоичныеДанные
@@ -992,6 +1068,13 @@
ДанныеКлассификатора.ДанныеПроизводственныхКалендарей = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ЧтениеXML);
ЧтениеXML.Прочитать();
ПроверитьКонецЭлемента(ЧтениеXML, "CalendarData");
ЧтениеXML.Прочитать();
ПроверитьНачалоЭлемента(ЧтениеXML, "NonWorkingPeriods");
ДанныеКлассификатора.ПериодыНерабочихДней = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ЧтениеXML);
ЧтениеXML.Закрыть();
УдалитьФайлы(ПутьКФайлу);
@@ -1068,7 +1151,8 @@
ОбновитьИспользованиеНесколькихПроизводственныхКалендарей();
ДанныеПроизводственныхКалендарей = Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзМакета();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей);
ПериодыНерабочихДней = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзМакета();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей, ПериодыНерабочихДней);
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
@@ -1092,7 +1176,8 @@
КонецЕсли;
ДанныеПроизводственныхКалендарей = Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИзМакета();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей);
ПериодыНерабочихДней = Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейИзМакета();
ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ДанныеПроизводственныхКалендарей, ПериодыНерабочихДней);
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.РаботаСКлассификаторами") Тогда
МодульРаботаСКлассификаторами = ОбщегоНазначения.ОбщийМодуль("РаботаСКлассификаторами");
@@ -1231,10 +1316,13 @@
КонецПроцедуры
Процедура ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ТаблицаДанных)
Процедура ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ТаблицаДанных, ТаблицаПериодов)
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ТаблицаПериодов), ТаблицаИзменений);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ЗапланироватьОбновлениеДанныхЗависимыхОтПроизводственныхКалендарей(ТаблицаИзменений);
Возврат;
@@ -92,9 +92,15 @@
УсловияОбновления.Свернуть("КодПроизводственногоКалендаря, Год");
Для каждого ОбластьДанных Из ОбластиДляОбновления Цикл
Попытка
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
УстановитьПривилегированныйРежим(Ложь);
Исключение
// В области может быть установлен монопольный режим, и тогда в область не войдешь.
// Такие области надо пропускать.
Продолжить;
КонецПопытки;
НачатьТранзакцию();
Попытка
КалендарныеГрафики.ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(УсловияОбновления);
@@ -106,6 +112,9 @@
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
КонецЦикла;
КонецПроцедуры
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.352";
Описание.Версия = "3.1.2.359";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -6903,10 +6903,14 @@
Возврат Описание;
КонецФункции
Процедура ЗаменитьВКоллекцииСтрок(ВидКоллекции, ИмяКоллекции, Объект, Коллекция, Знач СписокПолей, Знач ПарыЗамен)
ЭтоРегистрБухгалтерии = ВидКоллекции = "Движения" И ЭтоРегистрБухгалтерии(Коллекция.Метаданные());
РабочаяКоллекция = Коллекция.Выгрузить();
Модифицировано = Ложь;
ИзмененныеПоля = Новый Массив;
Для Каждого Строка Из РабочаяКоллекция Цикл
Для Каждого КлючЗначение Из СписокПолей Цикл
@@ -6916,14 +6920,65 @@
ЗарегистрироватьФактЗамены(Объект, Строка[Имя], ЦелеваяСсылка, ВидКоллекции, ИмяКоллекции, РабочаяКоллекция.Индекс(Строка), Имя);
Строка[Имя] = ЦелеваяСсылка;
Модифицировано = Истина;
ИзмененныеПоля.Добавить(Имя);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если Модифицировано Тогда
Если ЭтоРегистрБухгалтерии Тогда
ЗагрузитьИзмененныйНаборВРегистрБухгалтерии(Коллекция, РабочаяКоллекция, ИзмененныеПоля);
Иначе
Коллекция.Загрузить(РабочаяКоллекция);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗагрузитьИзмененныйНаборВРегистрБухгалтерии(НаборЗаписей, ИзмененнаяКоллекция, ИзмененныеПоля)
НеизмененныеИзмерения = Новый Соответствие;
ИзмененныеИзмерения = Новый Соответствие;
Для каждого Измерение Из НаборЗаписей.Метаданные().Измерения Цикл
ИменаИзмерений = Новый Массив;
Если НЕ Измерение.Балансовый Тогда
ИменаИзмерений.Добавить(Измерение.Имя + "Дт");
ИменаИзмерений.Добавить(Измерение.Имя + "Кт");
Иначе
ИменаИзмерений.Добавить(Измерение.Имя);
КонецЕсли;
Для каждого ИмяИзмерения Из ИменаИзмерений Цикл
Если ИзмененныеПоля.Найти(ИмяИзмерения) = Неопределено Тогда
НеизмененныеИзмерения.Вставить(ИмяИзмерения, НаборЗаписей.ВыгрузитьКолонку(ИмяИзмерения));
Иначе
ИзмененныеИзмерения.Вставить(ИмяИзмерения, НаборЗаписей.ВыгрузитьКолонку(ИмяИзмерения));
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для Сч = 0 По НаборЗаписей.Количество()-1 Цикл
Для каждого ИмяИзмеренияЗначения Из ИзмененныеИзмерения Цикл
Если НаборЗаписей[Сч][ИмяИзмеренияЗначения.Ключ] = NULL Тогда
ИмяИзмеренияЗначения.Значение[Сч] = NULL;
Иначе
ИмяИзмеренияЗначения.Значение[Сч] = ИзмененнаяКоллекция[Сч][ИмяИзмеренияЗначения.Ключ];
КонецЕсли;
КонецЦикла;
КонецЦикла;
НаборЗаписей.Загрузить(ИзмененнаяКоллекция);
Для каждого ИзмеренияЗначенияВКолонке Из НеизмененныеИзмерения Цикл
НаборЗаписей.ЗагрузитьКолонку(ИзмеренияЗначенияВКолонке.Значение, ИзмеренияЗначенияВКолонке.Ключ);
КонецЦикла;
Для каждого ИзмеренияЗначенияВКолонке Из ИзмененныеИзмерения Цикл
НаборЗаписей.ЗагрузитьКолонку(ИзмеренияЗначенияВКолонке.Значение, ИзмеренияЗначенияВКолонке.Ключ);
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьОбъектСПерехватомСообщений(Знач Объект, Знач Действие, Знач РежимЗаписи, Знач ПараметрыЗаписи)
@@ -611,16 +611,13 @@
КонецЕсли;
ЗаполнитьЗначенияСвойств(ПрисоединенныйФайл, ПараметрыФайла);
ПрисоединенныйФайл.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка();
ПрисоединенныйФайл.ПутьКФайлу = "";
ПрисоединенныйФайл.Заполнить(Неопределено);
ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать;
ИзвлекатьТекст = Метаданные.Справочники[ИмяСправочника].ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска;
НачатьТранзакцию();
Попытка
ПрисоединенныйФайл.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка();
ПрисоединенныйФайл.ПутьКФайлу = "";
Если ИзвлекатьТекст Тогда
РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(АдресВременногоХранилищаТекста,
@@ -634,7 +631,18 @@
ПрисоединенныйФайл.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
ПрисоединенныйФайл.Заполнить(Неопределено);
ПредварительноСохраняетсяНаДиск = (РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РасширениеБезТочки, ПрисоединенныйФайл.Размер) = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске);
Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске
И ПредварительноСохраняетсяНаДиск Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанные);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
НачатьТранзакцию();
Попытка
Если Не ЗначениеЗаполнено(ПрисоединенныйФайл.Изменил) Тогда
ПрисоединенныйФайл.Изменил = Пользователи.АвторизованныйПользователь();
КонецЕсли;
@@ -645,10 +653,14 @@
РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(ПрисоединенныйФайл.Ссылка, ДвоичныеДанные);
Иначе
Если Не ПредварительноСохраняетсяНаДиск Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанные);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ПрисоединенныйФайл.Записать();
Если РаботаСФайламиСлужебныйВызовСервера.ЭтоСправочникФайлы(ВладелецФайлов) Тогда
@@ -689,6 +701,10 @@
,
КомментарийЖурналаРегистрации);
Если ПредварительноСохраняетсяНаДиск Тогда
РаботаСФайламиВТомахСлужебный.УдалитьФайл(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(ПрисоединенныйФайл));
КонецЕсли;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонСообщения,
ИмяБезРасширения + "." + РасширениеБезТочки,
@@ -1430,7 +1430,7 @@
// файлов указан "ВИнформационнойБазеИТомахНаДиске", возвращает "ВИнформационнойБазе", если
// файл соответствует параметрам хранения в информационной базе и "ВТомахНаДиске", если нет.
//
Функция ТипХраненияФайла(Расширение, Размер)
Функция ТипХраненияФайла(Расширение, Размер) Экспорт
ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске;
Если ХранитьФайлыВТомахНаДискеИИнформационнойБазе() Тогда
@@ -2109,7 +2109,15 @@
УниверсальноеОграничение = ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина, Ложь);
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально"
Или ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально <> УниверсальноеОграничение Тогда
ПередИзменениемПараметровСеансаДляШаблонов(
Новый Структура("ОграничениеДоступаНаУровнеЗаписейУниверсально", УниверсальноеОграничение),
ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально");
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
КонецЕсли;
УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейУниверсально");
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально" Тогда
@@ -20004,6 +20012,10 @@
Возврат;
КонецПроцедуры
Процедура ПередИзменениемПараметровСеансаДляШаблонов(НовыеЗначения, ЭтоУстановка)
Возврат;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -21187,7 +21199,8 @@
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
КонецЕсли;
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов);
Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.Параметры;
@@ -21257,9 +21270,16 @@
"ПараметрыОграниченияДоступа.ДляОтчетаПоПравамДоступа", "Неопределено");
КонецЕсли;
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей",
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахВнешнихПользователей"), "Неопределено");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей", "Неопределено");
КонецЕсли;
Запрос.УстановитьПараметр("Версия", Версия);
@@ -21582,7 +21602,8 @@
КонецПроцедуры
// Для функции ДействующиеПараметрыОграниченияДоступа.
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, ПовторныйВызов = Ложь)
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов = Ложь, ПовторныйВызов = Ложь)
Если Не ПовторныйВызов Тогда
ОбновитьПовторноИспользуемыеЗначения();
@@ -21599,7 +21620,8 @@
Если ДляЗаписиОбъектовИПроверкиПрав.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
@@ -21612,13 +21634,17 @@
Если ДляОтчетаПоПравамДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Кэш = КэшПараметровОграничения();
Кэш.ВсеВидыОграниченийПрав = ДляОтчетаПоПравамДоступа.ВсеВидыОграниченийПрав;
КонецЕсли;
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
@@ -21629,22 +21655,39 @@
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = СтрСоединить(СтрРазделить(
ВерсииШаблонов = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ПараметрыШаблонов.Вставить("ВерсииШаблоновОграниченияДоступа", ВерсииШаблонов);
ОбновитьПараметрыСеансаДляШаблонов = УстановкаПараметровСеансаДляШаблонов;
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Для Каждого КлючИЗначение Из ПараметрыШаблонов Цикл
Если ПараметрыСеанса[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
ОбновитьПараметрыСеансаДляШаблонов = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ОбновитьПараметрыСеансаДляШаблонов Тогда
ПередИзменениемПараметровСеансаДляШаблонов(ПараметрыШаблонов, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
КонецЕсли;
КонецЕсли;
УточнитьВерсииШаблоновОграниченияДоступа();
ОбновитьРазрешенныеНаборыВПараметрахСеанса(Истина);
ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов, Истина);
ПараметрыОграничения = Новый Структура;
ПараметрыОграничения.Вставить("Версия", ВерсияПараметров.Версия);
@@ -21652,19 +21695,24 @@
ПараметрыОграничения.Вставить("ДатаСоздания", ВерсияПараметров.ДатаСоздания);
ПараметрыОграничения.Вставить("Параметры", ДляЗаписиОбъектовИПроверкиПрав);
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ПараметрыОграничения.Вставить("ПараметрыСеансаДляШаблоновУстановлены");
КонецЕсли;
ФиксированныеПараметрыОграничения = Новый ФиксированнаяСтруктура(ПараметрыОграничения);
ПараметрыСеанса.ПараметрыОграниченияДоступа = ФиксированныеПараметрыОграничения;
КонецПроцедуры
// Для процедуры УстановитьВерсиюПараметров.
Процедура УточнитьВерсииШаблоновОграниченияДоступа()
Процедура УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов)
Если ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() Тогда
Если ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() + "
ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() + "
|,ТребуетсяПерезапуститьСеанс,";
КонецПроцедуры
@@ -21672,28 +21720,38 @@
// Для процедуры УстановитьВерсиюПараметров, ПроверитьДоступКОбъекту,
// ПроверитьДоступКНаборуЗаписей и функции ДоступРазрешен.
//
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(ЭтоУстановкаПараметровСеанса = Ложь)
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов = Ложь,
УстановкаПараметровОграниченияДоступа = Ложь)
Если Не УстановкаПараметровСеансаДляШаблонов
И Не ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если Не ЭтоУстановкаПараметровСеанса И ПоследняяПроверка.Дата + 3 > ТекущаяДатаСеанса() Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И Не УстановкаПараметровОграниченияДоступа
И ПоследняяПроверка.Дата + 5 >= ТекущаяДатаСеанса() Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
РазрешенныйПустойНаборГруппДоступа = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа();
Если Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
РазрешенныйПользователь = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Иначе
РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Состав = Новый Структура;
Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйПустойНаборГруппДоступа",
УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа());
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Пользователи.АвторизованныйПользователь().УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РазрешенныйПользователь", РазрешенныйПользователь);
Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь);
Запрос.Текст =
"ВЫБРАТЬ
| НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа,
@@ -21705,44 +21763,38 @@
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
Иначе
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
КонецЕсли;
КонецЕсли;
Если Не ЭтоУстановкаПараметровСеанса
И ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйПустойНаборГруппДоступа Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.РазрешенныйПользователь = Состав.РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = Состав.РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = Состав.РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = Состав.РазрешенныйПустойНаборГруппДоступа Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь;
ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей;
ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = РазрешенныйПустойНаборГруппДоступа;
Состав.Вставить("ОбщиеПараметрыШаблоновОграниченияДоступа", "");
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав);
ОбщиеПараметры = "";
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры);
ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = ОбщиеПараметры;
ПередИзменениемПараметровСеансаДляШаблонов(Состав, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, Состав);
КонецПроцедуры
// Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса.
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры)
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав)
Если Не УправлениеДоступомСлужебныйПовтИсп.ТребуетсяУточнениеПланаЗапроса() Тогда
Возврат;
КонецЕсли;
ОбщиеПараметры = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйПользователь, "^");
Состав.ОбщиеПараметрыШаблоновОграниченияДоступа = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйПользователь, "^");
КонецПроцедуры
@@ -61,4 +61,17 @@
КонецПроцедуры
// Вызывается из обработчика ОбработкаОповещения формы ПечатьДокументов.
// Позволяет реализовать обработчик внешнего события в форме.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов.
// ИмяСобытия - Строка - идентификатор оповещения.
// Параметр - Произвольный - произвольный параметр оповещения.
// Источник - Произвольный - источник события.
//
Процедура ПечатьДокументовОбработкаОповещения(Форма, ИмяСобытия, Параметр, Источник) Экспорт
КонецПроцедуры
#КонецОбласти
@@ -629,7 +629,7 @@
КонецЕсли;
КонецЕсли;
СформированноеСообщение = КонструкторСообщения();
СформированноеСообщение = КонструкторСообщения(ПараметрыШаблона);
ЗаполнитьПолучателейСообщения(ПараметрыОтправки, ПараметрыШаблона, СформированноеСообщение, МенеджерОбъекта);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
@@ -1178,7 +1178,8 @@
// * ИмяАлгоритмаХеширования - Строка - например, "GOST R 34.11-94" + Символы.ПС + "GOST R 34.11-12" + ...
// * OIDАлгоритмаХеширования - Строка - например, "1.2.643.2.2.9" + Символы.ПС + "1.2.643.7.1.1.2.2" + ...
// * АлгоритмПодписи - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411"
// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ...
// + Символы.ПС +
// "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102012-gostr34112012-256" + ...
// * АлгоритмХеширования - Строка - например, "http://www.w3.org/2001/04/xmldsig-more#gostr3411"
// + Символы.ПС + "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34112012-256" + ...
//
+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="1596306c-0243-4c24-8a5c-d1acca0fe938">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="cca59235-9376-49e9-8643-01e75f5adf06">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="cdbcd538-851c-436a-b420-deb172b81085"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="78db71d0-72f6-4ad5-8459-f77db6d0eda7"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="a4caaa6c-3656-49fa-a6e4-f7b273e4349f"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="d75889f3-ac03-4881-901e-fc8c3b568a47"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="ff2a0308-e7e6-40f3-a04f-130bb24e66af"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="6f21ace5-d7cf-48d8-a48f-b74cacd45035"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="56f5c35e-2a05-4436-9de3-04264a465772"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="aa6a6b55-46a6-4e2e-b6ba-bcad75d3cbba"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a49f61da-c98e-4cb4-90b9-529f2ec76989"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e09cddde-8217-429d-bf1a-c562e34fa9af"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="3edd0acb-e202-4df1-8a77-c8ac0541067c"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="f88c5906-be7e-42c8-89ee-9fdcf5151b14"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="c3c3a1fb-9384-4934-8848-77ea58969cd5"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="a995995b-3031-491d-8cd6-85d3118a368d"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.2.352</version>
<version>3.1.2.359</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1925,6 +1925,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,bdb1e375-682c-4c83-a11f-5f88b4849b49,1,b7f2c226-9c47-4d13-b952-9673dddf2f07,"3.1.2.352","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5926,1,0,1596306c-0243-4c24-8a5c-d1acca0fe938,1596306c-0243-4c24-8a5c-d1acca0fe938,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
{6,1,1,84a24a10-afb2-47ae-a7f3-06f1ad388a55,1,53821d27-2b28-4520-bf66-77d0a49c1e2f,"3.1.2.359","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5933,1,0,cca59235-9376-49e9-8643-01e75f5adf06,cca59235-9376-49e9-8643-01e75f5adf06,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -196,6 +196,9 @@
ТаблицаДанных = Справочники.ПроизводственныеКалендари.РезультатЗаполненияПроизводственныхКалендарейПоУмолчанию(КодыКалендарей);
Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(
Справочники.ПроизводственныеКалендари.ПериодыНерабочихДнейПоУмолчанию());
КонецПроцедуры
#КонецОбласти
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт
Возврат 1;
Возврат 2;
КонецФункции
@@ -57,22 +57,19 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.2.341";
Возврат "3.1.2.358";
КонецФункции
Функция ПериодыНерабочихДней(ДанныеКалендаря, Период) Экспорт
Функция ПериодыНерабочихДней(ПроизводственныйКалендарь, Период) Экспорт
Периоды = Новый Массив;
Если СокрЛП(ДанныеКалендаря.Код) = "РФ" Тогда
ТаблицаПериодов = РегистрыСведений.ПериодыНерабочихДнейКалендаря.ПериодыНерабочихДней(ПроизводственныйКалендарь);
Для Каждого СтрокаТаблицы Из ТаблицаПериодов Цикл
Периоды.Добавить(
ОписаниеПериодаНерабочихДней(
Дата(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>
@@ -23,6 +23,7 @@
Элементы.Должность.Видимость = Не СведенияОВладельце.ЭтоИндивидуальныйПредприниматель;
Элементы.Подразделение.Видимость = Не СведенияОВладельце.ЭтоИндивидуальныйПредприниматель;
ПриИзмененииВидаДокументаНаСервере();
УстановитьТолькоПросмотр();
КонецПроцедуры
@@ -2915,6 +2915,34 @@
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПрограммаИмя</name>
<id>36</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ПрограммаТип</name>
<id>90</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>УказатьСведенияОбОрганизации</name>
<title>
@@ -871,6 +871,8 @@
ОбновитьЗначение(Содержание, "ПредставлениеПрограммы");
ОбновитьЗначение(Содержание, "КонтейнерКлючаИмя");
ОбновитьЗначение(Содержание, "КонтейнерКлючаПуть");
ОбновитьЗначение(Содержание, "ПрограммаИмя");
ОбновитьЗначение(Содержание, "ПрограммаТип");
ОбновитьЗначение(Содержание, "ЗапросНаСертификат", ПолучитьИзВременногоХранилища(АдресЗапросаНаСертификат));
ОбновитьЗначение(Содержание, "ОткрытаяЧастьКлючаЭП");
ОбновитьЗначение(Содержание, "ИдентификаторКлючаСубъекта");
@@ -1348,15 +1350,16 @@
Если ДокументВид = "" Тогда
ДокументВид = "21";
ДокументКодПодразделения = "";
ИначеЕсли ДокументВид = 91 Тогда
ДокументВид = "";
КонецЕсли;
Если ДокументВид <> "21" Тогда
ДокументКодПодразделения = "";
КонецЕсли;
Если ДокументВид = 91 Тогда
ДокументВид = "";
КонецЕсли;
КонецПроцедуры
&НаСервере
@@ -1459,7 +1462,7 @@
КонецЕсли;
УстановитьРеквизит(Реквизиты, "ДокументВид", Истина);
УстановитьРеквизит(Реквизиты, "ДокументНомер", Истина);
УстановитьРеквизит(Реквизиты, "ДокументНомер", ДокументВид = "21");
УстановитьРеквизит(Реквизиты, "ДокументКемВыдан");
УстановитьРеквизит(Реквизиты, "ДокументКодПодразделения", Истина);
УстановитьРеквизит(Реквизиты, "ДокументДатаВыдачи");
@@ -3134,8 +3137,8 @@
Строки = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа));
ЗаписьXML.ЗаписатьНачалоЭлемента("Криптопровайдер");
ЗаписьXMLЭлемент(ЗаписьXML, "ТипКриптопровайдера", XMLСтрока(Строки[0].ТипПрограммы));
ЗаписьXMLЭлемент(ЗаписьXML, "ИмяКриптопровайдера", XMLСтрока(Строки[0].ИмяПрограммы));
ЗаписьXMLЭлемент(ЗаписьXML, "ТипКриптопровайдера", XMLСтрока(ПрограммаТип));
ЗаписьXMLЭлемент(ЗаписьXML, "ИмяКриптопровайдера", XMLСтрока(ПрограммаИмя));
ЗаписьXML.ЗаписатьКонецЭлемента(); // КонецЭлемента Криптопровайдер.
ЗаписьXML.ЗаписатьНачалоЭлемента("ЗапросНаСертификат");
@@ -3411,9 +3414,9 @@
АктивноеОкно().Активизировать();
Если Не ЗначениеЗаполнено(Путь) Тогда
Строки = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа));
Если Не ЗначениеЗаполнено(Путь) Тогда
Если СтрНачинаетсяС(Строки[0].Идентификатор, "CryptoPro") Тогда
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ключ электронной подписи не создан.
@@ -3432,6 +3435,8 @@
КонтейнерКлючаИмя = Контекст.КонтейнерКлючаНовоеИмя;
КонтейнерКлючаПуть = Путь;
ПрограммаИмя = Строки[0].ИмяПрограммы;
ПрограммаТип = Строки[0].ТипПрограммы;
ПоказатьОповещениеПользователя(НСтр("ru = 'Создан новый контейнер ключа:'"),, КонтейнерКлючаПуть);
@@ -4377,7 +4382,10 @@
ОшибкаУстановкиСертификата = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось найти контейнер ключа на компьютере.
|Имя контейнера: ""%1"".
|Путь к контейнеру: ""%2"".'"),
|Путь к контейнеру: ""%2"".
|Нужно, либо вставить флешку с контейнером ключа в используемый компьютер
|(если контейнер ключа создавался на флешке), либо выполнить установку сертификата
|на том компьютере, на котором создавался контейнер ключа при печати заявления.'"),
КонтейнерКлючаИмя,
КонтейнерКлючаПуть);
@@ -4475,11 +4483,13 @@
Если Результат.Свойство("СертификатНеНайден") Тогда
ОшибкаПоиска =
НСтр("ru = 'Не удалось найти личный сертификат, установленный на компьютер.'");
НСтр("ru = 'Не удалось найти личный сертификат в папке ""Личное""
|хранилища сертификатов пользователя ОС на компьютере.'");
Иначе
ОшибкаПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось найти личный сертификат, установленный на компьютер по причине:
НСтр("ru = 'Не удалось найти личный сертификат в папке ""Личное""
|хранилища сертификатов пользователя ОС на компьютере по причине:
|%1'"),
Результат.ОписаниеОшибки);
@@ -4661,6 +4671,9 @@
Иначе
СостояниеОбработкиЗаявления = НСтр("ru = 'Исполнено. Сертификат не установлен.'");
Объект.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.ИсполненоСертификатНеУстановлен;
Если ЗначениеЗаполнено(ОшибкаУстановкиСертификата) Тогда
СостояниеОбработкиЗаявления = СостояниеОбработкиЗаявления + Символы.ПС + ОшибкаУстановкиСертификата;
КонецЕсли;
КонецЕсли;
ЗаписатьЗаявление();
@@ -4865,6 +4878,10 @@
Доступность = Истина;
ОписаниеОшибки = "";
Если Не ОтветСервиса.Выполнено Тогда
Если ОтветСервиса.Свойство("КодОшибки")
И ОтветСервиса.КодОшибки = "ПользовательОтменилДействие" Тогда
Возврат;
КонецЕсли;
ОписаниеОшибки = ОтветСервиса.ОписаниеОшибки;
Если Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
ОписаниеОшибки = НСтр("ru = 'Сервис облачной подписи сообщил, что действие не выполнено.'");
@@ -4891,9 +4908,8 @@
ДокументыПоляСертификата = ЗапросНаСертификат;
ДатаЗаявления = Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДФ=dd.MM.yyyy"); // АПК:335 Не локализуется (формат веб-сервиса).
Программы = СписокПрограмм.НайтиСтроки(Новый Структура("Ссылка", Объект.Программа));
Программы[0].ИмяПрограммы = ОтветСервиса.ИмяПровайдера;
Программы[0].ТипПрограммы = ОтветСервиса.ТипПровайдера;
ПрограммаИмя = ОтветСервиса.ИмяПровайдера;
ПрограммаТип = ОтветСервиса.ТипПровайдера;
ПечатьЗаявленияПослеСозданияКлючаИЗапросаНаСертификат(Истина, Неопределено);
@@ -3007,10 +3007,6 @@
</attributes>
<attributes>
<name>ДоступнаНастройкаТранспорта</name>
<title>
<key>ru</key>
<value>Доступна настройка транспорта</value>
</title>
<id>6</id>
<valueType>
<types>Boolean</types>
@@ -8008,10 +8008,6 @@
</attributes>
<attributes>
<name>ИдентификаторВременногоКаталогаДляОбмена</name>
<title>
<key>ru</key>
<value>Идентификатор временного каталога для обмена</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
@@ -5633,10 +5633,6 @@
</columns>
<columns>
<name>НастройкаСинхронизацииНедоступна</name>
<title>
<key>ru</key>
<value>Настройка синхронизации недоступна</value>
</title>
<id>10</id>
<valueType>
<types>Boolean</types>
@@ -5678,10 +5674,6 @@
</columns>
<columns>
<name>СообщениеОбОшибке</name>
<title>
<key>ru</key>
<value>Сообщение об ошибке</value>
</title>
<id>14</id>
<valueType>
<types>String</types>
@@ -1488,17 +1488,17 @@
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииПомещенияФайлаНастроекXDTOКорреспондента(РезультатВыбора, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Процедура ПриЗавершенииПомещенияФайлаНастроекXDTOКорреспондента(ПомещенныйФайл, ДополнительныеПараметры) Экспорт
Если ПомещенныйФайл = Неопределено Тогда
Возврат;
КонецЕсли;
Результат = Новый Структура;
Результат.Вставить("Отказ", Ложь);
Результат.Вставить("СообщениеОбОшибке", "");
Если Не РезультатВыбора Тогда
Результат.Отказ = Истина;
Иначе
ЗаполнитьНастройкиXDTOКорреспондентаИзXMLНаСервере(Адрес, Результат.Отказ, Результат.СообщениеОбОшибке);
КонецЕсли;
ЗаполнитьНастройкиXDTOКорреспондентаИзXMLНаСервере(ПомещенныйФайл.Хранение, Результат.Отказ, Результат.СообщениеОбОшибке);
Если Результат.Отказ Тогда
Если ПустаяСтрока(Результат.СообщениеОбОшибке) Тогда
@@ -468,10 +468,6 @@
</attributes>
<attributes>
<name>ИдентификаторПроверки</name>
<title>
<key>ru</key>
<value>Идентификатор проверки</value>
</title>
<id>2</id>
<valueType>
<types>String</types>
@@ -34,6 +34,7 @@
<types>InformationRegisterRecordSet.ЗагруженныеВерсииАдресныхСведений</types>
<types>InformationRegisterRecordSet.ИсторияАдресныхОбъектов</types>
<types>InformationRegisterRecordSet.ПраваРолей</types>
<types>InformationRegisterRecordSet.ПериодыНерабочихДнейКалендаря</types>
</source>
<event>OnWrite</event>
<handler>CommonModule.РаботаВМоделиСервисаБСП.КонтрольНеразделенныхНаборовЗаписейПриЗаписи</handler>
@@ -125,6 +125,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>
@@ -86,7 +86,8 @@
&НаКлиенте
Процедура ПерейтиКЖурналуРегистрации(Команда)
Для Каждого Область Из Отчет.ВыделенныеОбласти Цикл
ВыделенныеОбласти = Элементы.Отчет.ПолучитьВыделенныеОбласти();
Для Каждого Область Из ВыделенныеОбласти Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Расшифровка = Область.Расшифровка;
Иначе
@@ -81,6 +81,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>
@@ -535,93 +594,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.НастройкаРезервногоКопированияИБ</name>
<right>
@@ -4070,6 +4042,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>Constant.ИспользоватьСервисСклоненияMorpher</name>
<right>
@@ -79,6 +79,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>
@@ -50,6 +50,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>
@@ -14,37 +14,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>// ДляОбъекта(ПолеОбъекта = "")
@@ -181,6 +181,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>
@@ -763,45 +814,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Catalog.ВнешниеКомпоненты</name>
<right>
@@ -5581,6 +5593,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>Constant.ИспользоватьСервисСклоненияMorpher</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>CommonModule.КалендарныеГрафикиСлужебный</content>
<content>StyleItem.НерабочийПериодПроизводственногоКалендаряФон</content>
<content>InformationRegister.ПериодыНерабочихДнейКалендаря</content>
<parentSubsystem>Subsystem.СтандартныеПодсистемы</parentSubsystem>
</mdclass:Subsystem>