3_1_2_359

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

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 -вкл
БлокировкаДанных = Новый БлокировкаДанных;
ЭлементБлокировки = БлокировкаДанных.Добавить("РегистрСведений.ПериодыНерабочихДнейКалендаря");
НачатьТранзакцию();
Попытка
БлокировкаДанных.Заблокировать();
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ПроизводственныйКалендарь") Цикл
НаборЗаписей = РегистрыСведений.ПериодыНерабочихДнейКалендаря.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(НаборЗаписей.Добавить(), Выборка);
ЗаполнитьЗначенияСвойств(ТаблицаИзменений.Добавить(), Выборка);
КонецЦикла;
НаборЗаписей.Отбор.ПроизводственныйКалендарь.Установить(Выборка.ПроизводственныйКалендарь);
Если ОбновлениеИнформационнойБазы.ЭтоВызовИзОбработчикаОбновления() Тогда
ОбновлениеИнформационнойБазы.ЗаписатьНаборЗаписей(НаборЗаписей);
Продолжить;
КонецЕсли;
НаборЗаписей.Записать();
КонецЦикла;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
ТаблицаИзменений.Свернуть("КодПроизводственногоКалендаря, Год");
Возврат ТаблицаИзменений;
КонецФункции
// Функция подготавливает результат заполнения производственного календаря
// данными по умолчанию.
// При наличии в конфигурации макета с предопределенными данными
@@ -373,7 +476,7 @@
// ФормироватьПолныйНабор - необязательный, булево, если ложь, то будут сформированы только данные по отклонениям от календаря по умолчанию.
//
// Возвращаемое значение:
// см. ДанныеПроизводственныхКалендарейИзXML.
// см. ДанныеПроизводственныхКалендарейИзXML.
//
Функция ДанныеПроизводственныхКалендарейИзМакета(КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт
@@ -402,11 +505,11 @@
//
// Возвращаемое значение:
// ТаблицаЗначений - таблица с колонками:
// * КодПроизводственногоКалендаря
// * ВидДня
// * Год
// * Дата
// * ДатаПереноса.
// * КодПроизводственногоКалендаря
// * ВидДня
// * Год
// * Дата
// * ДатаПереноса.
//
Функция ДанныеПроизводственныхКалендарейИзXML(Знач ДанныеXML, ТаблицаКалендарей, КодыКалендарей = Неопределено, ФормироватьПолныйНабор = Истина) Экспорт
@@ -463,6 +566,53 @@
КонецФункции
Функция ПериодыНерабочихДнейИзXML(Знач ДанныеXML, ТаблицаКалендарей) Экспорт
ТаблицаДанных = НоваяТаблицаПериодовНерабочихДней();
ДанныеМакета = ДанныеXML.Данные;
Для Каждого СтрокаМакета Из ДанныеМакета Цикл
ДобавитьНерабочийПериодВТаблицуИзМакета(ТаблицаДанных.Добавить(), СтрокаМакета);
КодыЗависимыхКалендарей = КодыЗависимыхКалендарей(СтрокаМакета.Calendar, ТаблицаКалендарей);
Для Каждого КодЗависимогоКалендаря Из КодыЗависимыхКалендарей Цикл
Если ДанныеМакета.НайтиСтроки(Новый Структура("Calendar", КодЗависимогоКалендаря)).Количество() <> 0 Тогда
Продолжить;
КонецЕсли;
НоваяСтрока = ТаблицаДанных.Добавить();
ДобавитьНерабочийПериодВТаблицуИзМакета(НоваяСтрока, СтрокаМакета);
НоваяСтрока.КодПроизводственногоКалендаря = КодЗависимогоКалендаря;
КонецЦикла;
КонецЦикла;
ТаблицаДанных.Сортировать("КодПроизводственногоКалендаря, НомерПериода");
Возврат ТаблицаДанных;
КонецФункции
Процедура ДобавитьНерабочийПериодВТаблицуИзМакета(СтрокаТаблицы, СтрокаМакета)
СтрокаТаблицы.КодПроизводственногоКалендаря = СтрокаМакета.Calendar;
СтрокаТаблицы.НомерПериода = Число(СтрокаМакета.Order);
СтрокаТаблицы.ДатаНачала = Дата(СтрокаМакета.StartDate);
СтрокаТаблицы.ДатаОкончания = Дата(СтрокаМакета.EndDate);
СтрокаТаблицы.Основание = СтрокаМакета.Description;
КонецПроцедуры
Функция ПериодыНерабочихДнейИзМакета() Экспорт
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") = Неопределено Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
ТекстовыйДокумент = МодульКалендарныеГрафики.ПолучитьМакет("ПериодыНерабочихДней");
ТаблицаПериодов = ОбщегоНазначения.ПрочитатьXMLВТаблицу(ТекстовыйДокумент.ПолучитьТекст());
ТаблицаКалендарей = ПроизводственныеКалендариИзМакета();
Возврат ПериодыНерабочихДнейИзXML(ТаблицаПериодов, ТаблицаКалендарей);
КонецФункции
// Получает таблицу поставляемых в составе программы производственных календарей.
//
// Возвращаемое значение:
@@ -690,7 +840,7 @@
// КодыКалендарей - Массив.
//
// Возвращаемое значение:
// см. Справочники.ПроизводственныеКалендари.ДанныеПроизводственныхКалендарейИз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,Истина);
КонецЕсли;
УправлениеПечатьюКлиентПереопределяемый.ПечатьДокументовОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
@@ -6669,9 +6669,9 @@
//
// Возвращаемое значение:
// Структура - с полями:
// * ЗагружатьИсториюАдресов - Булево - Если Истина, то будет загружена история адресных сведений. По умолчанию, Ложь.
// * ЗагружатьПорциями - Булево - Если Истина, то загрузка будет осуществляться порциями. По умолчанию, Ложь.
// * ОповещатьОПрогрессе - Булево - Если Истина, то передаваться сообщение о статусе загрузки. По умолчанию, Истина.
// * ЗагружатьИсториюАдресов - Булево - Если Истина, то будет загружена история адресных сведений. По умолчанию, Ложь.
// * ЗагружатьПорциями - Булево - Если Истина, то загрузка будет осуществляться порциями. По умолчанию, Ложь.
// * ОповещатьОПрогрессе - Булево - Если Истина, то передаваться сообщение о статусе загрузки. По умолчанию, Истина.
//
Функция ПараметрыЗагрузкиКлассификатораАдресов() Экспорт
@@ -252,7 +252,7 @@
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОбъектов - Форма задачи, где:
// * Объект - ЗадачаОбъект - задача.
// * Объект - ЗадачаОбъект - задача.
//
Процедура ОтменитьПринятиеЗадачиКИсполнению(Форма) Экспорт
@@ -551,9 +551,11 @@
// Ключи структуры тоже являются необязательными. Значение по умолчанию указано в скобках.
// * ЭлементОтбора - Булево - если Ложь, то сбрасывается настройка "ЭлементОтбораКомпоновкиДанных".
// * ЗначениеПараметраНастроек - Булево - если Ложь, то сбрасывается настройка "ЗначениеПараметраНастроекКомпоновкиДанных".
// * ВыбранныеПоля - Булево - признак необходимости сброса настройки "ВыбранныеПоляКомпоновкиДанных" (возвращается из ключа Прочие).
// * ВыбранныеПоля - Булево - признак необходимости сброса настройки "ВыбранныеПоляКомпоновкиДанных" (возвращается
// из ключа Прочие).
// * Порядок - Булево - признак необходимости сброса настройки "ПорядокКомпоновкиДанных" (возвращается из ключа Прочие).
// * ЭлементУсловногоОформления - Булево - признак необходимости сброса настройки "ЭлементУсловногоОформленияКомпоновкиДанных" (возвращается из ключа Прочие).
// * ЭлементУсловногоОформления - Булево - признак необходимости сброса настройки
// "ЭлементУсловногоОформленияКомпоновкиДанных" (возвращается из ключа Прочие).
// * Прочие - Булево - если Истина, то сбрасываются прочие настройки, не описанные в структуре явно.
//
Процедура СброситьПользовательскиеНастройки(Ключ, ТипыНастроек = Неопределено) Экспорт
@@ -1029,9 +1029,11 @@
Запрос = Новый Запрос(ТекстЗапроса);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() И ЗначениеЗаполнено(Выборка.ТипОбъекта) Цикл
Пока Выборка.Следующий() Цикл
ОбъектМетаданных = Метаданные.НайтиПоТипу(Выборка.ТипОбъекта);
МодульЦентрМониторинга.ЗаписатьСтатистикуОбъектаКонфигурации("КоличествоВерсийОбъекта." + ОбъектМетаданных.ПолноеИмя(), Выборка.Количество);
Если ОбъектМетаданных <> Неопределено Тогда
МодульЦентрМониторинга.ЗаписатьСтатистикуОбъектаКонфигурации("КоличествоВерсийОбъекта." + ОбъектМетаданных.ПолноеИмя(), Выборка.Количество);
КонецЕсли;
КонецЦикла;
ТекстЗапроса =
@@ -359,8 +359,8 @@
// УчетнаяЗапись - СправочникСсылка.УчетныеЗаписиЭлектроннойПочты - учетная запись, с которой будет отправлено письмо.
// Возвращаемое значение:
// Структура - Описание:
// * Отправлено - Булево - признак того, что письмо отправлено.
// * ОписаниеОшибки - Строка - содержит описание ошибки, в случае если письмо отправить не удалось.
// * Отправлено - Булево - признак того, что письмо отправлено.
// * ОписаниеОшибки - Строка - содержит описание ошибки, в случае если письмо отправить не удалось.
//
Функция СоздатьПисьмо(Сообщение, УчетнаяЗапись) Экспорт
@@ -1817,10 +1817,10 @@
// СтрокаПоиска
// Возвращаемое значение:
// ТаблицаЗначений - содержит колонки:
// * Контакт - ОпределяемыйТип.КонтактВзаимодействия - найденный контакт.
// * Наименование - Строка - наименование контакта.
// * НаименованиеВладельца - Строка - наименование владельца контакта.
// * Представление - Строка - адрес электронной почты.
// * Контакт - ОпределяемыйТип.КонтактВзаимодействия - найденный контакт.
// * Наименование - Строка - наименование контакта.
// * НаименованиеВладельца - Строка - наименование владельца контакта.
// * Представление - Строка - адрес электронной почты.
//
Функция НайтиКонтактыСАдресами(СтрокаПоиска) Экспорт
@@ -3733,7 +3733,7 @@
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма для которой выполняется процедура:
// * Объект - ДокументОбъект.ЭлектронноеПисьмоВходящее -
// * Объект - ДокументОбъект.ЭлектронноеПисьмоВходящее -
// - ДокументОбъект.ЭлектронноеПисьмоИсходящее - письмо, для которого устанавливается заголовок.
//
Процедура УстановитьЗаголовокФормыЭлектронногоПисьма(Форма) Экспорт
@@ -65,7 +65,7 @@
// Возвращает таблицу описаний внешних компонент, которые требуется обновлять автоматически с Портала 1С:ИТС.
//
// Возвращаемое значение:
// см. ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент
// см. ПолучениеВнешнихКомпонент.ОписаниеВнешнихКомпонент
// подсистемы ПолучениеВнешнихКомпонент Библиотеки интернет-поддержки пользователей (БИП).
//
Функция АвтоматическиОбновляемыеКомпоненты() Экспорт
@@ -362,7 +362,7 @@
// * Версия - Строка, Неопределено - версия компоненты.
//
// Возвращаемое значение:
// см. РезультатИнформацииОСохраненнойКомпоненте
// см. РезультатИнформацииОСохраненнойКомпоненте
//
Функция ИнформацияОСохраненнойКомпоненте(Идентификатор,
Версия = Неопределено) Экспорт
@@ -13,7 +13,7 @@
// Версия - Строка, Неопределено -
//
// Возвращаемое значение:
// см. ВнешниеКомпонентыСлужебный.ИнформацияОСохраненнойКомпоненте
// см. ВнешниеКомпонентыСлужебный.ИнформацияОСохраненнойКомпоненте
//
Функция ИнформацияОСохраненнойКомпоненте(Идентификатор, Версия = Неопределено) Экспорт
@@ -151,6 +151,139 @@
КонецФункции
// Конструктор параметров получения ближайших к заданным дат, включенных в график.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// Значение по умолчанию - Ложь.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихДатПоГрафику() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|ИгнорироватьНезаполненностьГрафика,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.ИгнорироватьНезаполненностьГрафика = Ложь;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к дня, включенного в график.
//
// Параметры:
// ГрафикРаботы - Справочник.Календари.
// НачальныеДаты - Массив Из Дата - даты, относительно которых нужно найти ближайшие.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихДатПоГрафику.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней дата, включенная в график.
//
Функция БлижайшиеДатыВключенныеВГрафик(ГрафикРаботы, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихДатПоГрафику();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик",
"ГрафикРаботы",
ГрафикРаботы,
Тип("СправочникСсылка.Календари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ГрафикРаботы),
НСтр("ru = 'Не указан график работы.'"),
"ГрафикиРаботы.БлижайшиеДатыВключенныеВГрафик");
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| МИНИМУМ(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.ДатаГрафика)", "МАКСИМУМ(ДатыКалендаря.ДатаГрафика)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.ДатаГрафика >= НачальныеДаты.Дата", "ДатыКалендаря.ДатаГрафика <= НачальныеДаты.Дата");
КонецЕсли;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", ГрафикРаботы);
Выборка = Запрос.Выполнить().Выбрать();
ДатыРабочихДней = Новый Соответствие;
Пока Выборка.Следующий() Цикл
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ПараметрыПолучения.ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую дату, включенную в график, для даты %1,
|возможно, график работы не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ДатыРабочихДней;
КонецФункции
// Составляет расписания работы для дат, включенных в указанные графики на указанный период.
// Если расписание на предпраздничный день не задано, то оно определяется так, как если бы этот день был бы рабочим.
//
@@ -438,26 +571,6 @@
КонецПроцедуры
// Формирует шаблон текста запроса, встраиваемый в методе КалендарныеГрафики.ПолучитьДатыРабочихДней.
//
Функция ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы() Экспорт
Возврат
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.ДатаГрафика) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КалендарныеГрафики КАК ДатыКалендаря
| ПО (ДатыКалендаря.ДатаГрафика %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.Календарь = &График)
| И (ДатыКалендаря.ДеньВключенВГрафик)
|
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
КонецФункции
Функция ИмяПроцедурыОбновленияГрафиковРаботы() Экспорт
Возврат "РегистрыСведений.КалендарныеГрафики.ОбработатьДанныеДляПереходаНаНовуюВерсию";
@@ -56,8 +56,8 @@
// Возвращает словарь представлений для внешних модулей контейнера.
//
// Возвращаемое значение - Структура:
// * Именительный - Строка, представление типа внешнего модуля в именительном падеже,
// * Родительный - Строка, представление типа внешнего модуля в родительном падеже.
// * Именительный - Строка, представление типа внешнего модуля в именительном падеже,
// * Родительный - Строка, представление типа внешнего модуля в родительном падеже.
//
Функция СловарьКонтейнераВнешнегоМодуля() Экспорт
@@ -901,9 +901,9 @@
// ИспользуемаяОбработка - СправочникСсылка.ДополнительныеОтчетыИОбработки.
//
// Возвращаемое значение - Структура:
// * ХранилищеОбработки - ХранилищеЗначения, содержащее ДвоичныеДанные дополнительного отчета
// * ХранилищеОбработки - ХранилищеЗначения, содержащее ДвоичныеДанные дополнительного отчета
// или обработки,
// * БезопасныйРежим - Булево, флаг подключения обработки в безопасном режиме.
// * БезопасныйРежим - Булево, флаг подключения обработки в безопасном режиме.
//
Функция ПараметрыПодключенияИспользуемойОбработки(Знач ИспользуемаяОбработка) Экспорт
@@ -16,7 +16,7 @@
// ПараметрыМетода - Структура - новые настройки (см. функцию НастройкиСкрытияПерсональныхДанныхСистемы).
//
// Возвращаемое значение:
// см. возвращаемое значение функции ДлительныеОперации.ВыполнитьВФоне.
// см. возвращаемое значение функции ДлительныеОперации.ВыполнитьВФоне.
//
Функция ЗапуститьИзменениеНастроекСкрытияПДнВФоновомЗадании(Знач ИдентификаторФормы, Знач ПараметрыМетода) Экспорт
@@ -185,8 +185,8 @@
// Возвращаемое значение:
// Структура - Описание:
// * ДоступностьЭлементов - Соответствие -
// * Форма - ФормаКлиентскогоПриложения -
// * ДоступностьЭлементов - Соответствие -
// * Форма - ФормаКлиентскогоПриложения -
//
Функция ДополнительныеПараметрыИзмененияНастроекСкрытияПерсональныхДанных(Форма, ДоступностьЭлементов)
ДополнительныеПараметры = Новый Структура;
@@ -331,94 +331,121 @@
КонецФункции
// Конструктор параметров получения ближайших рабочих дат по календарю.
// См. БлижайшиеРабочиеДаты.
//
// Возвращаемое значение:
// Структура:
// * ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются ближайшие рабочие даты, следующие за начальными датами.
// Значение по умолчанию - Ложь.
// * УчитыватьНерабочиеПериоды - Булево - определяет отношение к датам, выпадающим на периоды нерабочих дней календаря,
// если Истина, даты, выпадающие на период нерабочих дней будут считаться нерабочими,
// если Ложь, периоды нерабочих дней будут игнорироваться.
// Значение по умолчанию - Истина.
// * ВызыватьИсключение - Булево - вызов исключения в случае не заполненного графика
// если Истина, вызвать исключение, если график не заполнен.
// если Ложь - даты, по которым не удалось определить ближайшую дату, будут просто пропущены.
// Значение по умолчанию - Истина.
//
Функция ПараметрыПолученияБлижайшихРабочихДат() Экспорт
Параметры = Новый Структура(
"ПолучатьПредшествующие,
|УчитыватьНерабочиеПериоды,
|ВызыватьИсключение");
Параметры.ПолучатьПредшествующие = Ложь;
Параметры.УчитыватьНерабочиеПериоды = Истина;
Параметры.ВызыватьИсключение = Истина;
Возврат Параметры;
КонецФункции
// Определяет для каждой даты дату ближайшего к ней рабочего дня.
//
// Параметры:
// График - СправочникСсылка.Календари, СправочникСсылка.ПроизводственныеКалендари - график или
// производственный календарь, который необходимо использовать для расчета.
// НачальныеДаты - Массив - массив дат (Дата).
// ПолучатьПредшествующие - Булево - способ получения ближайшей даты:
// если Истина - определяются рабочие даты, предшествующие переданным в параметре НачальныеДаты,
// если Ложь - получаются даты не ранее начальной даты.
// ВызыватьИсключение - Булево - если Истина, вызвать исключение в случае незаполненного графика.
// ИгнорироватьНезаполненностьГрафика - Булево - если Истина, то в любом случае будет возвращено соответствие.
// Начальные даты, для которых не будет значений из-за незаполненности графика, включены не будут.
// Параметры:
// ПроизводственныйКалендарь - СправочникСсылка.ПроизводственныеКалендари - календарь, используемый для расчета.
// НачальныеДаты - Массив Из Дата - даты, относительно которых будет выполнен поиск ближайших.
// ПараметрыПолучения - Структура - см. ПараметрыПолученияБлижайшихРабочихДат.
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение
// * Ключ - Дата - начальная дата,
// * Значение - Дата - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
//
// Возвращаемое значение:
// Соответствие, Неопределено - соответствие, где ключ - дата из переданного массива,
// значение - ближайшая к ней рабочая дата (если передана рабочая дата, то она же и возвращается).
// Если выбранный график не заполнен, и ВызыватьИсключение = Ложь, возвращается Неопределено.
//
Функция ДатыБлижайшихРабочихДней(График, НачальныеДаты, ПолучатьПредшествующие = Ложь, ВызыватьИсключение = Истина,
ИгнорироватьНезаполненностьГрафика = Ложь) Экспорт
Функция БлижайшиеРабочиеДаты(ПроизводственныйКалендарь, НачальныеДаты, ПараметрыПолучения = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(График) Тогда
Если ВызыватьИсключение Тогда
ВызватьИсключение НСтр("ru = 'Не указан график работы или производственный календарь.'");
КонецЕсли;
Возврат Неопределено;
Если ПараметрыПолучения = Неопределено Тогда
ПараметрыПолучения = ПараметрыПолученияБлижайшихРабочихДат();
КонецЕсли;
ТекстЗапросаВТ = "";
ПерваяЧасть = Истина;
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(
"КалендарныеГрафики.БлижайшиеРабочиеДаты",
"ПроизводственныйКалендарь",
ПроизводственныйКалендарь,
Тип("СправочникСсылка.ПроизводственныеКалендари"));
ОбщегоНазначенияКлиентСервер.Проверить(
ЗначениеЗаполнено(ПроизводственныйКалендарь),
НСтр("ru = 'Не указан график или производственный календарь.'"),
"КалендарныеГрафики.БлижайшиеРабочиеДаты");
ТекстыЗапросов = Новый Массив;
Для Каждого НачальнаяДата Из НачальныеДаты Цикл
Если Не ЗначениеЗаполнено(НачальнаяДата) Тогда
Продолжить;
КонецЕсли;
Если Не ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ОБЪЕДИНИТЬ ВСЕ
|";
ТекстЗапроса =
"ВЫБРАТЬ
| &НачальнаяДата КАК Дата
|ПОМЕСТИТЬ ВТНачальныеДаты";
ТекстЗапроса = СтрЗаменить(
ТекстЗапроса, "&НачальнаяДата", СтрШаблон("ДАТАВРЕМЯ(%1)", Формат(НачальнаяДата, "ДФ=гггг,ММ,дд"))); // АПК:456 Не требует локализации
Если ТекстыЗапросов.Количество() > 0 Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ПОМЕСТИТЬ ВТНачальныеДаты", "");
КонецЕсли;
ТекстЗапросаВТ = ТекстЗапросаВТ + "
|ВЫБРАТЬ
| ДАТАВРЕМЯ(" + Формат(НачальнаяДата, "ДФ=гггг,ММ,дд") + ")";
Если ПерваяЧасть Тогда
ТекстЗапросаВТ = ТекстЗапросаВТ + " КАК Дата
|ПОМЕСТИТЬ НачальныеДаты
|";
КонецЕсли;
ПерваяЧасть = Ложь;
ТекстыЗапросов.Добавить(ТекстЗапроса);
КонецЦикла;
Если ПустаяСтрока(ТекстЗапросаВТ) Тогда
ТекстЗапроса = СтрСоединить(ТекстыЗапросов, Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС);
Если ПустаяСтрока(ТекстЗапроса) Тогда
Возврат Новый Соответствие;
КонецЕсли;
Запрос = Новый Запрос(ТекстЗапросаВТ);
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Выполнить();
Если ТипЗнч(График) = Тип("СправочникСсылка.ПроизводственныеКалендари") Тогда
ТекстЗапроса =
ТекстЗапроса =
"ВЫБРАТЬ
| НачальныеДаты.Дата,
| %Функция%(ДатыКалендаря.Дата) КАК БлижайшаяДата
| МИНИМУМ(ДатыКалендаря.Дата) КАК БлижайшаяДата
|ИЗ
| НачальныеДаты КАК НачальныеДаты
| ВТНачальныеДаты КАК НачальныеДаты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДанныеПроизводственногоКалендаря КАК ДатыКалендаря
| ПО (ДатыКалендаря.Дата %ЗнакУсловия% НачальныеДаты.Дата)
| И (ДатыКалендаря.ПроизводственныйКалендарь = &График)
| И (ДатыКалендаря.ВидДня В (
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный)
| ))
|
| ПО ДатыКалендаря.Дата >= НачальныеДаты.Дата
| И ДатыКалендаря.ПроизводственныйКалендарь = &ПроизводственныйКалендарь
| И ДатыКалендаря.ВидДня В (ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Рабочий),
| ЗНАЧЕНИЕ(Перечисление.ВидыДнейПроизводственногоКалендаря.Предпраздничный))
| И ДатыКалендаря.Дата НЕ В (&НерабочиеДаты)
|СГРУППИРОВАТЬ ПО
| НачальныеДаты.Дата";
Иначе
// По графику работы
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрафикиРаботы") Тогда
МодульГрафикиРаботы = ОбщегоНазначения.ОбщийМодуль("ГрафикиРаботы");
ТекстЗапроса = МодульГрафикиРаботы.ШаблонТекстаЗапросаОпределенияБлижайшихДатПоГрафикуРаботы();
КонецЕсли;
Если ПараметрыПолучения.ПолучатьПредшествующие Тогда
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "МИНИМУМ(ДатыКалендаря.Дата)", "МАКСИМУМ(ДатыКалендаря.Дата)");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "ДатыКалендаря.Дата >= НачальныеДаты.Дата", "ДатыКалендаря.Дата <= НачальныеДаты.Дата");
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%Функция%", ?(ПолучатьПредшествующие, "МАКСИМУМ", "МИНИМУМ"));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "%ЗнакУсловия%", ?(ПолучатьПредшествующие, "<=", ">="));
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("График", График);
Запрос.УстановитьПараметр("ПроизводственныйКалендарь", ПроизводственныйКалендарь);
НерабочиеДаты = Новый Массив;
Если ПараметрыПолучения.УчитыватьНерабочиеПериоды Тогда
НерабочиеПериоды = ПериодыНерабочихДней(ПроизводственныйКалендарь, Новый СтандартныйПериод());
Для Каждого Период Из НерабочиеПериоды Цикл
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(НерабочиеДаты, Период.Даты);
КонецЦикла;
КонецЕсли;
Запрос.УстановитьПараметр("НерабочиеДаты", НерабочиеДаты);
Выборка = Запрос.Выполнить().Выбрать();
@@ -427,14 +454,11 @@
Если ЗначениеЗаполнено(Выборка.БлижайшаяДата) Тогда
ДатыРабочихДней.Вставить(Выборка.Дата, Выборка.БлижайшаяДата);
Иначе
Если ИгнорироватьНезаполненностьГрафика Тогда
Продолжить;
КонецЕсли;
Если ВызыватьИсключение Тогда
ТекстСообщения = НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1, возможно, график работы не заполнен.'");
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, Формат(Выборка.Дата, "ДЛФ=D"));
Иначе
Возврат Неопределено;
Если ПараметрыПолучения.ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Невозможно определить ближайшую рабочую дату для даты %1,
|возможно, производственный календарь не заполнен.'"),
Формат(Выборка.Дата, "ДЛФ=D"));
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -550,12 +574,10 @@
Периоды = Новый Массив;
Если Метаданные.Обработки.Найти("ЗаполнениеКалендарныхГрафиков") = Неопределено Тогда
Возврат Периоды;
КонецЕсли;
БазовыйКалендарь = Справочники.ПроизводственныеКалендари.БазовыйКалендарь(ПроизводственныйКалендарь);
КонецЕсли;
МодульКалендарныеГрафики = ОбщегоНазначения.ОбщийМодуль("Обработки.ЗаполнениеКалендарныхГрафиков");
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(БазовыйКалендарь, ПериодОтбор);
Периоды = МодульКалендарныеГрафики.ПериодыНерабочихДней(ПроизводственныйКалендарь, ПериодОтбор);
УдалитьПериодыНеСоответствующиеОтбору(Периоды, ПериодОтбор);
@@ -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,9 +1316,12 @@
КонецПроцедуры
Процедура ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ТаблицаДанных)
Процедура ЗаполнитьДанныеПроизводственныхКалендарейПриОбновлении(ТаблицаДанных, ТаблицаПериодов)
ТаблицаИзменений = Справочники.ПроизводственныеКалендари.ОбновитьДанныеПроизводственныхКалендарей(ТаблицаДанных);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(
Справочники.ПроизводственныеКалендари.ОбновитьПериодыНерабочихДней(ТаблицаПериодов), ТаблицаИзменений);
Если ОбщегоНазначения.РазделениеВключено() Тогда
ЗапланироватьОбновлениеДанныхЗависимыхОтПроизводственныхКалендарей(ТаблицаИзменений);
@@ -92,9 +92,15 @@
УсловияОбновления.Свернуть("КодПроизводственногоКалендаря, Год");
Для каждого ОбластьДанных Из ОбластиДляОбновления Цикл
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
УстановитьПривилегированныйРежим(Ложь);
Попытка
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Истина, ОбластьДанных);
УстановитьПривилегированныйРежим(Ложь);
Исключение
// В области может быть установлен монопольный режим, и тогда в область не войдешь.
// Такие области надо пропускать.
Продолжить;
КонецПопытки;
НачатьТранзакцию();
Попытка
КалендарныеГрафики.ЗаполнитьДанныеЗависимыеОтПроизводственныхКалендарей(УсловияОбновления);
@@ -106,6 +112,9 @@
УровеньЖурналаРегистрации.Ошибка,,,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
УстановитьПривилегированныйРежим(Истина);
МодульРаботаВМоделиСервиса.УстановитьРазделениеСеанса(Ложь);
УстановитьПривилегированныйРежим(Ложь);
КонецЦикла;
КонецПроцедуры
@@ -14,7 +14,7 @@
// При обработке результата выполнения функции необходимо учитывать эту особенность.
//
// Возвращаемое значение:
// см. НапоминанияПользователяСлужебный.СписокТекущихНапоминанийПользователя
// см. НапоминанияПользователяСлужебный.СписокТекущихНапоминанийПользователя
//
Функция ПолучитьНапоминанияТекущегоПользователя() Экспорт
@@ -142,7 +142,7 @@
// ближайшее напоминание за пределами выборки кэша, то возвращается Неопределено.
//
// Возвращаемое значение:
// см. НапоминанияПользователяКлиентПовтИсп.ПолучитьНапоминанияТекущегоПользователя
// см. НапоминанияПользователяКлиентПовтИсп.ПолучитьНапоминанияТекущегоПользователя
//
Функция ПолучитьТекущиеОповещения(ВремяБлижайшего = Неопределено) Экспорт
@@ -16,7 +16,7 @@
// на клиенте. Такой подход применяется для минимизации серверных вызовов.
//
// Возвращаемое значение:
// см. НапоминанияПользователяСлужебный.СписокТекущихНапоминанийПользователя
// см. НапоминанияПользователяСлужебный.СписокТекущихНапоминанийПользователя
//
Функция ПолучитьНапоминанияТекущегоПользователя() Экспорт
@@ -978,11 +978,11 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам
// все обработано или все, что нужно обработать, еще заблокировано обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуРегистраторовРегистраДляОбработки(Очередь, ПолноеИмяДокумента, ПолноеИмяРегистра, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1213,13 +1213,13 @@
// ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки:
// * ВыборкаИзРезультатаЗапроса - выборка регистраторов, которые нужно обработать, поля выборки:
// ** Регистратор - ДокументСсылка.
// ** Период - Дата - дата документа, если передано полное имя документа, максимальный период по регистратору,
// если полное имя документа не передано.
// ** Проведен - Булево, Неопределено - значение реквизита Проведен документа, если передано полное имя документа,
// Неопределено - если имя документа не передано.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьРегистраторыРегистраДляОбработки(Очередь, ПолноеИмяДокумента, ПолноеИмяРегистра, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1329,9 +1329,9 @@
// ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки:
// * ВыборкаИзРезультатаЗапроса - выборка ссылок, которые нужно обработать, поля выборки:
// ** Ссылка - ЛюбаяСсылка.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьСсылкиДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт
Если ДополнительныеПараметры = Неопределено Тогда
@@ -1412,12 +1412,12 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам:
// все обработано или все, что нужно обработать, еще заблокировано
// обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть ссылки для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуСсылокДляОбработки(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -1567,10 +1567,10 @@
// ДополнительныеПараметры - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляОбработки.
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам
// * ВыборкаИзРезультатаЗапроса - выборка значений измерений, которые нужно обработать, имена полей соответствует именам
// измерений регистра. Если по измерению не регистрировалась необходимость обработки,
// то в выборке по этому измерению будет пустое значение.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
// * ТаблицаЗначений - данные, которые нужно обработать, имена колонок соответствуют именам измерений регистра.
//
Функция ВыбратьИзмеренияНезависимогоРегистраСведенийДляОбработки(Очередь, ПолноеИмяОбъекта, ДополнительныеПараметры = Неопределено) Экспорт
Если ДополнительныеПараметры = Неопределено Тогда
@@ -1679,12 +1679,12 @@
//
// Возвращаемое значение:
// Структура - результат формирования временной таблицы:
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// * ЕстьЗаписиВоВременнойТаблице - Булево - в создаваемой таблице есть хотя бы одна запись. Записей может не быть по
// двум причинам:
// все обработано или все, что нужно обработать, еще заблокировано
// обработчиками с меньшей очередью.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть данные для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
// * ЕстьДанныеДляОбработки - Булево - в очереди есть данные для обработки, т.е. еще не все обработано.
// * ИмяВременнойТаблицы - Строка - имя созданной временной таблицы.
//
Функция СоздатьВременнуюТаблицуИзмеренийНезависимогоРегистраСведенийДляОбработки(Очередь, ПолноеИмяОбъекта, МенеджерВременныхТаблиц, ДополнительныеПараметры = Неопределено) Экспорт
@@ -3989,8 +3989,8 @@
// ПараметрыПостроения - см. ПараметрыПостроенияВыборки().
//
// Возвращаемое значение:
// * ВыборкаИзРезультатаЗапроса - в случае обычной выборки.
// * ТаблицаЗначений - в случае постраничной выборки.
// * ВыборкаИзРезультатаЗапроса - в случае обычной выборки.
// * ТаблицаЗначений - в случае постраничной выборки.
//
Функция ВыбратьДанныеДляОбработки(Запрос, ПараметрыПостроения)
@@ -4227,7 +4227,7 @@
// - Неопределено - порядок не указывается (всегда ВОЗР).
//
// Возвращаемое значение:
// см. НовыеУсловияПостраничнойВыборки().
// см. НовыеУсловияПостраничнойВыборки().
//
Функция УсловияДляСледующейСтраницы(ПоляВыборки, Параметры, Направления)
@@ -4265,7 +4265,7 @@
// - Неопределено - порядок не указывается (всегда ВОЗР).
//
// Возвращаемое значение:
// см. НовыеУсловияПостраничнойВыборки().
// см. НовыеУсловияПостраничнойВыборки().
//
Функция УсловияДляДиапазонаСтраницы(ПоляВыборки, Параметры, Направления)
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.352";
Описание.Версия = "3.1.2.359";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -2808,7 +2808,7 @@
// Создать новое описание потоков регистрации данных отложенного обновления.
//
// Возвращаемое значение:
// см. НовоеОписаниеПотоков().
// см. НовоеОписаниеПотоков().
//
Функция НовоеОписаниеПотоковРегистрацииДанныхОтложенногоОбновления()
@@ -2884,7 +2884,7 @@
// Создать новое описание потоков обработчиков отложенного обновления.
//
// Возвращаемое значение:
// см. НовоеОписаниеПотоков().
// см. НовоеОписаниеПотоков().
//
Функция НовоеОписаниеПотоковОбработчиковОтложенногоОбновления()
@@ -2923,8 +2923,8 @@
// СведенияОбОбновлении - Структура - сведения об обновлении (см. НовыеСведенияОбОбновлении()).
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - новый поток (см. НовоеОписаниеПотоков()).
// * Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить.
// * СтрокаТаблицыЗначений - новый поток (см. НовоеОписаниеПотоков()).
// * Булево - Истина, если обработчик не нужно выполнять или Ложь, если выполнение обработчиков нужно завершить.
//
Функция ДобавитьПотокОбработчикаОтложенногоОбновления(ОписаниеПотоков, СведенияОбОбновлении)
@@ -3634,10 +3634,10 @@
// Описание группы потоков.
//
// Возвращаемое значение:
// * Группы - Соответствие - описание групп потоков, где:
// * Группы - Соответствие - описание групп потоков, где:
// ** Ключ - Строка - имя группы.
// ** Значение - см. НовоеОписаниеГруппыПотоков().
// * Потоки - ТаблицаЗначений - описание потоков со следующими колонками:
// * Потоки - ТаблицаЗначений - описание потоков со следующими колонками:
// ** Наименование - Строка - произвольное наименование потока (используется в наименовании фонового задания).
// ** Группа - Строка - имя группы с описанием потока.
// ** ИдентификаторЗадания - УникальныйИдентификатор - уникальный идентификатор фонового задания.
@@ -3929,10 +3929,10 @@
// ПараметрыОбхода - см. ПараметрыОбходаДанныхДляОбновления().
//
// Возвращаемое значение:
// * Структура - параметры обхода текущей итерации в виде структуры со следующими полями:
// * Структура - параметры обхода текущей итерации в виде структуры со следующими полями:
// ** СсылочныйОбъект - Строка - имя ссылочного объекта.
// ** ТабличныйОбъект - Строка - имя табличного объекта.
// * Неопределено - если обход закончен.
// * Неопределено - если обход закончен.
//
Функция ТекущиеПараметрыОбхода(ПараметрыОбхода)
@@ -4616,8 +4616,8 @@
// ПорцииДляОбновления - см. НоваяТаблицаПорцийДляОбновления().
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - найденная порция.
// * Неопределено - если необработанных порций нет.
// * СтрокаТаблицыЗначений - найденная порция.
// * Неопределено - если необработанных порций нет.
//
Функция ПерваяНеобработаннаяПорция(ПорцииДляОбновления)
@@ -5977,8 +5977,8 @@
// ПараметрыОбновления - см. ВыполнитьОбновлениеИнформационнойБазы().
//
// Возвращаемое значение:
// * СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// * Булево - Истина, если обработчик не нужно выполнять, Ложь, если выполнение обработчиков нужно завершить.
// * СтрокаДереваЗначений - обработчик обновления в виде строки дерева обработчиков.
// * Булево - Истина, если обработчик не нужно выполнять, Ложь, если выполнение обработчиков нужно завершить.
//
Функция НайтиОбработчикОбновления(КонтекстОбработчика, СведенияОбОбновлении, ПараметрыОбновления = Неопределено)
@@ -7371,8 +7371,8 @@
// ИмяОбработчика - Строка - имя обработчика обновления.
//
// Возвращаемое значение:
// * СтрокаДереваЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
// * СтрокаДереваЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
//
Функция НайтиОбработчикВДереве(ДеревоОбработчиков, Идентификатор, ИмяОбработчика)
@@ -7397,8 +7397,8 @@
// ИмяОбработчика - Строка - имя обработчика обновления.
//
// Возвращаемое значение:
// * СтрокаТаблицыЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
// * СтрокаТаблицыЗначений - найденный обработчик.
// * Неопределено - если обработчик не найден.
//
Функция НайтиОбработчикВТаблице(ТаблицаОбработчиков, Идентификатор, ИмяОбработчика)
@@ -5535,8 +5535,8 @@
//
// Возвращаемое значение:
// Структура - Результат проверки.
// * Ошибка - Булево - Найдена ошибка.
// * ОписаниеОшибки - Строка - Описание найденных ошибок.
// * Ошибка - Булево - Найдена ошибка.
// * ОписаниеОшибки - Строка - Описание найденных ошибок.
//
// Пример:
//
@@ -6903,10 +6903,14 @@
Возврат Описание;
КонецФункции
Процедура ЗаменитьВКоллекцииСтрок(ВидКоллекции, ИмяКоллекции, Объект, Коллекция, Знач СписокПолей, Знач ПарыЗамен)
ЭтоРегистрБухгалтерии = ВидКоллекции = "Движения" И ЭтоРегистрБухгалтерии(Коллекция.Метаданные());
РабочаяКоллекция = Коллекция.Выгрузить();
Модифицировано = Ложь;
ИзмененныеПоля = Новый Массив;
Для Каждого Строка Из РабочаяКоллекция Цикл
Для Каждого КлючЗначение Из СписокПолей Цикл
@@ -6916,16 +6920,67 @@
ЗарегистрироватьФактЗамены(Объект, Строка[Имя], ЦелеваяСсылка, ВидКоллекции, ИмяКоллекции, РабочаяКоллекция.Индекс(Строка), Имя);
Строка[Имя] = ЦелеваяСсылка;
Модифицировано = Истина;
ИзмененныеПоля.Добавить(Имя);
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если Модифицировано Тогда
Коллекция.Загрузить(РабочаяКоллекция);
Если ЭтоРегистрБухгалтерии Тогда
ЗагрузитьИзмененныйНаборВРегистрБухгалтерии(Коллекция, РабочаяКоллекция, ИзмененныеПоля);
Иначе
Коллекция.Загрузить(РабочаяКоллекция);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура ЗагрузитьИзмененныйНаборВРегистрБухгалтерии(НаборЗаписей, ИзмененнаяКоллекция, ИзмененныеПоля)
НеизмененныеИзмерения = Новый Соответствие;
ИзмененныеИзмерения = Новый Соответствие;
Для каждого Измерение Из НаборЗаписей.Метаданные().Измерения Цикл
ИменаИзмерений = Новый Массив;
Если НЕ Измерение.Балансовый Тогда
ИменаИзмерений.Добавить(Измерение.Имя + "Дт");
ИменаИзмерений.Добавить(Измерение.Имя + "Кт");
Иначе
ИменаИзмерений.Добавить(Измерение.Имя);
КонецЕсли;
Для каждого ИмяИзмерения Из ИменаИзмерений Цикл
Если ИзмененныеПоля.Найти(ИмяИзмерения) = Неопределено Тогда
НеизмененныеИзмерения.Вставить(ИмяИзмерения, НаборЗаписей.ВыгрузитьКолонку(ИмяИзмерения));
Иначе
ИзмененныеИзмерения.Вставить(ИмяИзмерения, НаборЗаписей.ВыгрузитьКолонку(ИмяИзмерения));
КонецЕсли;
КонецЦикла;
КонецЦикла;
Для Сч = 0 По НаборЗаписей.Количество()-1 Цикл
Для каждого ИмяИзмеренияЗначения Из ИзмененныеИзмерения Цикл
Если НаборЗаписей[Сч][ИмяИзмеренияЗначения.Ключ] = NULL Тогда
ИмяИзмеренияЗначения.Значение[Сч] = NULL;
Иначе
ИмяИзмеренияЗначения.Значение[Сч] = ИзмененнаяКоллекция[Сч][ИмяИзмеренияЗначения.Ключ];
КонецЕсли;
КонецЦикла;
КонецЦикла;
НаборЗаписей.Загрузить(ИзмененнаяКоллекция);
Для каждого ИзмеренияЗначенияВКолонке Из НеизмененныеИзмерения Цикл
НаборЗаписей.ЗагрузитьКолонку(ИзмеренияЗначенияВКолонке.Значение, ИзмеренияЗначенияВКолонке.Ключ);
КонецЦикла;
Для каждого ИзмеренияЗначенияВКолонке Из ИзмененныеИзмерения Цикл
НаборЗаписей.ЗагрузитьКолонку(ИзмеренияЗначенияВКолонке.Значение, ИзмеренияЗначенияВКолонке.Ключ);
КонецЦикла;
КонецПроцедуры
Процедура ОбработатьОбъектСПерехватомСообщений(Знач Объект, Знач Действие, Знач РежимЗаписи, Знач ПараметрыЗаписи)
// Текущие сообщения до исключения запоминаем.
@@ -59,7 +59,7 @@
// Документы - См. ОбщегоНазначения.ПровестиДокументы.Документы
//
// Возвращаемое значение:
// См. ОбщегоНазначения.ПровестиДокументы
// См. ОбщегоНазначения.ПровестиДокументы
//
Функция ПровестиДокументы(Документы) Экспорт
@@ -1922,7 +1922,7 @@
// СтрокаСоединения - Строка - строка соединения ИБ.
//
// Возвращаемое значение:
// см. СтруктураПараметровДляУстановкиВнешнегоСоединения
// см. СтруктураПараметровДляУстановкиВнешнегоСоединения
//
Функция ПолучитьПараметрыПодключенияИзСтрокиСоединенияИнформационнойБазы(Знач СтрокаСоединения) Экспорт
@@ -2802,7 +2802,7 @@
// Настройки - НастройкиКомпоновкиДанных -
//
// Возвращаемое значение:
// см. ВидыСведений
// см. ВидыСведений
//
Функция СведенияОПользовательскихНастройках(Настройки)
Сведения = Новый Соответствие;
@@ -539,7 +539,7 @@
Знач Описание = "",
Знач НоваяСсылкаНаФайл = Неопределено) Экспорт
ВладелецФайлов = ПараметрыФайла.ВладелецФайлов;
ВладелецФайлов = ПараметрыФайла.ВладелецФайлов;
ИмяБезРасширения = ПараметрыФайла.ИмяБезРасширения;
РасширениеБезТочки = ПараметрыФайла.РасширениеБезТочки;
@@ -552,7 +552,7 @@
"АдресФайлаВоВременномХранилище", ДвоичныеДанные, Тип("ДвоичныеДанные"));
ГруппаФайлов = Неопределено;
Если ПараметрыФайла.Свойство("ГруппаФайлов")
Если ПараметрыФайла.Свойство("ГруппаФайлов")
И ЗначениеЗаполнено(ПараметрыФайла.ГруппаФайлов)
И Не РаботаСФайламиСлужебный.ЭтоПапкаФайлов(ВладелецФайлов) Тогда
@@ -562,8 +562,8 @@
Если Не ЗначениеЗаполнено(РасширениеБезТочки) Тогда
ЧастиИмениФайла = СтрРазделить(ИмяБезРасширения, ".", Ложь);
Если ЧастиИмениФайла.Количество() > 1 Тогда
РасширениеБезТочки = ЧастиИмениФайла[ЧастиИмениФайла.Количество()-1];
ИмяБезРасширения = Лев(ИмяБезРасширения, СтрДлина(ИмяБезРасширения) - (СтрДлина(РасширениеБезТочки)+1));
РасширениеБезТочки = ЧастиИмениФайла[ЧастиИмениФайла.Количество() - 1];
ИмяБезРасширения = Лев(ИмяБезРасширения, СтрДлина(ИмяБезРасширения) - (СтрДлина(РасширениеБезТочки) + 1));
КонецЕсли;
КонецЕсли;
@@ -611,30 +611,38 @@
КонецЕсли;
ЗаполнитьЗначенияСвойств(ПрисоединенныйФайл, ПараметрыФайла);
ПрисоединенныйФайл.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка();
ПрисоединенныйФайл.ПутьКФайлу = "";
ПрисоединенныйФайл.Заполнить(Неопределено);
ИспользованиеПолнотекстовогоПоиска = Метаданные.СвойстваОбъектов.ИспользованиеПолнотекстовогоПоиска.Использовать;
ИзвлекатьТекст = Метаданные.Справочники[ИмяСправочника].ПолнотекстовыйПоиск = ИспользованиеПолнотекстовогоПоиска;
Если ИзвлекатьТекст Тогда
РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(АдресВременногоХранилищаТекста,
ДвоичныеДанные, ПрисоединенныйФайл.Расширение);
ПрисоединенныйФайл.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
ПрисоединенныйФайл.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
Иначе
ПрисоединенныйФайл.ТекстХранилище = Новый ХранилищеЗначения("");
ПрисоединенныйФайл.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
ПредварительноСохраняетсяНаДиск = (РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РасширениеБезТочки, ПрисоединенныйФайл.Размер) = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске);
Если ПрисоединенныйФайл.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске
И ПредварительноСохраняетсяНаДиск Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанные);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
НачатьТранзакцию();
Попытка
ПрисоединенныйФайл.Том = Справочники.ТомаХраненияФайлов.ПустаяСсылка();
ПрисоединенныйФайл.ПутьКФайлу = "";
Если ИзвлекатьТекст Тогда
РезультатИзвлеченияТекста = РаботаСФайламиСлужебный.ИзвлечьТекст(АдресВременногоХранилищаТекста,
ДвоичныеДанные, ПрисоединенныйФайл.Расширение);
ПрисоединенныйФайл.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
ПрисоединенныйФайл.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
Иначе
ПрисоединенныйФайл.ТекстХранилище = Новый ХранилищеЗначения("");
ПрисоединенныйФайл.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
КонецЕсли;
ПрисоединенныйФайл.Заполнить(Неопределено);
Если Не ЗначениеЗаполнено(ПрисоединенныйФайл.Изменил) Тогда
ПрисоединенныйФайл.Изменил = Пользователи.АвторизованныйПользователь();
КонецЕсли;
@@ -645,9 +653,13 @@
РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(ПрисоединенныйФайл.Ссылка, ДвоичныеДанные);
Иначе
УстановитьОтключениеБезопасногоРежима(Истина);
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанные);
УстановитьОтключениеБезопасногоРежима(Ложь);
Если Не ПредварительноСохраняетсяНаДиск Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
РаботаСФайламиВТомахСлужебный.ДобавитьФайл(ПрисоединенныйФайл, ДвоичныеДанные);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ПрисоединенныйФайл.Записать();
@@ -688,6 +700,10 @@
,
,
КомментарийЖурналаРегистрации);
Если ПредварительноСохраняетсяНаДиск Тогда
РаботаСФайламиВТомахСлужебный.УдалитьФайл(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(ПрисоединенныйФайл));
КонецЕсли;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонСообщения,
@@ -1430,7 +1430,7 @@
// файлов указан "ВИнформационнойБазеИТомахНаДиске", возвращает "ВИнформационнойБазе", если
// файл соответствует параметрам хранения в информационной базе и "ВТомахНаДиске", если нет.
//
Функция ТипХраненияФайла(Расширение, Размер)
Функция ТипХраненияФайла(Расширение, Размер) Экспорт
ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске;
Если ХранитьФайлыВТомахНаДискеИИнформационнойБазе() Тогда
@@ -298,12 +298,12 @@
//
// Возвращаемое значение:
// Структура, Неопределено - со свойствами:
// * Именительный - Строка.
// * Родительный - Строка.
// * Дательный - Строка
// * Винительный - Строка.
// * Творительный - Строка.
// * Предложный - Строка.
// * Именительный - Строка.
// * Родительный - Строка.
// * Дательный - Строка
// * Винительный - Строка.
// * Творительный - Строка.
// * Предложный - Строка.
// Неопределено - если просклонять не удалось.
//
Функция ДанныеСклонения(Знач Представление, ПараметрыСклонения = Неопределено, ПоказыватьСообщения = Ложь) Экспорт
@@ -534,7 +534,7 @@
// Только для внутреннего использования.
//
// Возвращаемое значение:
// см. Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии
// см. Справочники.ИдентификаторыОбъектовМетаданных.ТаблицаПереименованияДляТекущейВерсии
//
Функция ТаблицаПереименованияДляТекущейВерсии() Экспорт
@@ -2109,7 +2109,15 @@
УниверсальноеОграничение = ОграничиватьДоступНаУровнеЗаписейУниверсально(Истина, Истина, Ложь);
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально"
Или ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально <> УниверсальноеОграничение Тогда
ПередИзменениемПараметровСеансаДляШаблонов(
Новый Структура("ОграничениеДоступаНаУровнеЗаписейУниверсально", УниверсальноеОграничение),
ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально");
ПараметрыСеанса.ОграничениеДоступаНаУровнеЗаписейУниверсально = УниверсальноеОграничение;
КонецЕсли;
УстановленныеПараметры.Добавить("ОграничениеДоступаНаУровнеЗаписейУниверсально");
Если ИмяПараметра = "ОграничениеДоступаНаУровнеЗаписейУниверсально" Тогда
@@ -20004,6 +20012,10 @@
Возврат;
КонецПроцедуры
Процедура ПередИзменениемПараметровСеансаДляШаблонов(НовыеЗначения, ЭтоУстановка)
Возврат;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@@ -21085,7 +21097,7 @@
// Для функций РассчитанныеПараметрыОграничения и ПараметрыОграниченияДляВидаПользователей.
//
// Возвращаемое значение:
// см. УправлениеДоступом.СтруктураОграничения
// см. УправлениеДоступом.СтруктураОграничения
//
Функция РассчитаннаяСтруктураОграничения(ПолноеИмя, ТекстОграничения, ТекстВМодулеМенеджера, ДляВнешнихПользователей, БезИсключения = Ложь)
@@ -21187,7 +21199,8 @@
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
КонецЕсли;
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов);
Возврат ПараметрыСеанса.ПараметрыОграниченияДоступа.Параметры;
@@ -21257,9 +21270,16 @@
"ПараметрыОграниченияДоступа.ДляОтчетаПоПравамДоступа", "Неопределено");
КонецЕсли;
Запрос.Текст = СтрЗаменить(Запрос.Текст, ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей",
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахВнешнихПользователей"), "Неопределено");
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей",
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахВнешнихПользователей"), "Неопределено");
Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ПараметрыОграниченияДоступа.ДляШаблоновВСеансахПользователей", "Неопределено");
КонецЕсли;
Запрос.УстановитьПараметр("Версия", Версия);
@@ -21582,7 +21602,8 @@
КонецПроцедуры
// Для функции ДействующиеПараметрыОграниченияДоступа.
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, ПовторныйВызов = Ложь)
Процедура УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов = Ложь, ПовторныйВызов = Ложь)
Если Не ПовторныйВызов Тогда
ОбновитьПовторноИспользуемыеЗначения();
@@ -21599,7 +21620,8 @@
Если ДляЗаписиОбъектовИПроверкиПрав.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
@@ -21612,39 +21634,60 @@
Если ДляОтчетаПоПравамДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Кэш = КэшПараметровОграничения();
Кэш.ВсеВидыОграниченийПрав = ДляОтчетаПоПравамДоступа.ВсеВидыОграниченийПрав;
КонецЕсли;
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
Если ТипЗнч(ХранилищеДляШаблоновОграниченияДоступа) = Тип("ХранилищеЗначения") Тогда
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов(
ХранилищеДляШаблоновОграниченияДоступа.Получить());
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст, Истина);
Возврат;
ХранилищеДляШаблоновОграниченияДоступа = ?(Пользователи.ЭтоСеансВнешнегоПользователя(),
ВерсияПараметров.ДляШаблоновВСеансахВнешнихПользователей,
ВерсияПараметров.ДляШаблоновВСеансахПользователей);
Если ТипЗнч(ХранилищеДляШаблоновОграниченияДоступа) = Тип("ХранилищеЗначения") Тогда
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов(
ХранилищеДляШаблоновОграниченияДоступа.Получить());
Если ДляШаблоновОграниченияДоступа.ВерсияСтруктурыКэша <> ВерсияСтруктурыКэша() Тогда
ВерсияПараметров = НоваяВерсияПараметровОграниченияДоступа(ОбщийКонтекст);
УстановитьВерсиюПараметров(ВерсияПараметров, ИдентификаторТранзакции, ОбщийКонтекст,
УстановкаПараметровСеансаДляШаблонов, Истина);
Возврат;
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ВерсииШаблонов = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ПараметрыШаблонов.Вставить("ВерсииШаблоновОграниченияДоступа", ВерсииШаблонов);
ОбновитьПараметрыСеансаДляШаблонов = УстановкаПараметровСеансаДляШаблонов;
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Для Каждого КлючИЗначение Из ПараметрыШаблонов Цикл
Если ПараметрыСеанса[КлючИЗначение.Ключ] <> КлючИЗначение.Значение Тогда
ОбновитьПараметрыСеансаДляШаблонов = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ОбновитьПараметрыСеансаДляШаблонов Тогда
ПередИзменениемПараметровСеансаДляШаблонов(ПараметрыШаблонов, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
КонецЕсли;
Иначе
ДляШаблоновОграниченияДоступа = СтруктураХранимыхПараметровШаблонов();
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = СтрСоединить(СтрРазделить(
ДляШаблоновОграниченияДоступа.ВерсииШаблонов, Символы.ПС + Символы.ВК, Ложь), Символы.ПС);
ПараметрыШаблонов = СтруктураПараметровШаблонов(ДляШаблоновОграниченияДоступа.ПараметрыШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, ПараметрыШаблонов);
УточнитьВерсииШаблоновОграниченияДоступа();
ОбновитьРазрешенныеНаборыВПараметрахСеанса(Истина);
ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов, Истина);
ПараметрыОграничения = Новый Структура;
ПараметрыОграничения.Вставить("Версия", ВерсияПараметров.Версия);
@@ -21652,19 +21695,24 @@
ПараметрыОграничения.Вставить("ДатаСоздания", ВерсияПараметров.ДатаСоздания);
ПараметрыОграничения.Вставить("Параметры", ДляЗаписиОбъектовИПроверкиПрав);
Если УстановкаПараметровСеансаДляШаблонов
Или ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
ПараметрыОграничения.Вставить("ПараметрыСеансаДляШаблоновУстановлены");
КонецЕсли;
ФиксированныеПараметрыОграничения = Новый ФиксированнаяСтруктура(ПараметрыОграничения);
ПараметрыСеанса.ПараметрыОграниченияДоступа = ФиксированныеПараметрыОграничения;
КонецПроцедуры
// Для процедуры УстановитьВерсиюПараметров.
Процедура УточнитьВерсииШаблоновОграниченияДоступа()
Процедура УточнитьВерсииШаблоновОграниченияДоступа(ВерсииШаблонов)
Если ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() Тогда
Если ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.ВерсииШаблоновОграниченияДоступа = ВерсииШаблоновОграниченияДоступа() + "
ВерсииШаблонов = ВерсииШаблоновОграниченияДоступа() + "
|,ТребуетсяПерезапуститьСеанс,";
КонецПроцедуры
@@ -21672,28 +21720,38 @@
// Для процедуры УстановитьВерсиюПараметров, ПроверитьДоступКОбъекту,
// ПроверитьДоступКНаборуЗаписей и функции ДоступРазрешен.
//
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(ЭтоУстановкаПараметровСеанса = Ложь)
Процедура ОбновитьРазрешенныеНаборыВПараметрахСеанса(УстановкаПараметровСеансаДляШаблонов = Ложь,
УстановкаПараметровОграниченияДоступа = Ложь)
Если Не УстановкаПараметровСеансаДляШаблонов
И Не ПараметрыСеанса.ПараметрыОграниченияДоступа.Свойство("ПараметрыСеансаДляШаблоновУстановлены") Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если Не ЭтоУстановкаПараметровСеанса И ПоследняяПроверка.Дата + 3 > ТекущаяДатаСеанса() Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И Не УстановкаПараметровОграниченияДоступа
И ПоследняяПроверка.Дата + 5 >= ТекущаяДатаСеанса() Тогда
Возврат;
КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
ПустойНаборГруппДоступа = Справочники.НаборыГруппДоступа.ПустаяСсылка();
РазрешенныйПустойНаборГруппДоступа = УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа();
Если Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
РазрешенныйПользователь = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Иначе
РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Состав = Новый Структура;
Состав.Вставить("РазрешенныйПользователь", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппДоступа", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйНаборГруппПользователей", ПустойНаборГруппДоступа);
Состав.Вставить("РазрешенныйПустойНаборГруппДоступа",
УправлениеДоступомСлужебныйПовтИсп.РазрешенныйПустойНаборГруппДоступа());
Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
Состав.РазрешенныйПользователь = Справочники.НаборыГруппДоступа.ПолучитьСсылку(
Пользователи.АвторизованныйПользователь().УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("РазрешенныйПользователь", РазрешенныйПользователь);
Запрос.УстановитьПараметр("РазрешенныйПользователь", Состав.РазрешенныйПользователь);
Запрос.Текст =
"ВЫБРАТЬ
| НаборыГруппДоступа.РазрешенныйНаборГруппДоступа КАК РазрешенныйНаборГруппДоступа,
@@ -21705,44 +21763,38 @@
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
Иначе
РазрешенныйНаборГруппДоступа = ПустойНаборГруппДоступа;
РазрешенныйНаборГруппПользователей = ПустойНаборГруппДоступа;
Состав.РазрешенныйНаборГруппДоступа = Выборка.РазрешенныйНаборГруппДоступа;
Состав.РазрешенныйНаборГруппПользователей = Выборка.РазрешенныйНаборГруппПользователей;
КонецЕсли;
КонецЕсли;
Если Не ЭтоУстановкаПараметровСеанса
И ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйПустойНаборГруппДоступа Тогда
Если Не УстановкаПараметровСеансаДляШаблонов
И ПараметрыСеанса.РазрешенныйПользователь = Состав.РазрешенныйПользователь
И ПараметрыСеанса.РазрешенныйНаборГруппДоступа = Состав.РазрешенныйНаборГруппДоступа
И ПараметрыСеанса.РазрешенныйНаборГруппПользователей = Состав.РазрешенныйНаборГруппПользователей
И ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = Состав.РазрешенныйПустойНаборГруппДоступа Тогда
Возврат;
КонецЕсли;
ПараметрыСеанса.РазрешенныйПользователь = РазрешенныйПользователь;
ПараметрыСеанса.РазрешенныйНаборГруппДоступа = РазрешенныйНаборГруппДоступа;
ПараметрыСеанса.РазрешенныйНаборГруппПользователей = РазрешенныйНаборГруппПользователей;
ПараметрыСеанса.РазрешенныйПустойНаборГруппДоступа = РазрешенныйПустойНаборГруппДоступа;
Состав.Вставить("ОбщиеПараметрыШаблоновОграниченияДоступа", "");
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав);
ОбщиеПараметры = "";
УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры);
ПараметрыСеанса.ОбщиеПараметрыШаблоновОграниченияДоступа = ОбщиеПараметры;
ПередИзменениемПараметровСеансаДляШаблонов(Состав, УстановкаПараметровСеансаДляШаблонов);
ЗаполнитьЗначенияСвойств(ПараметрыСеанса, Состав);
КонецПроцедуры
// Для процедуры ОбновитьРазрешенныеНаборыВПараметрахСеанса.
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(ОбщиеПараметры)
Процедура УчестьНастройкиПравПриПостроенииПланаВыполненияЗапроса(Состав)
Если Не УправлениеДоступомСлужебныйПовтИсп.ТребуетсяУточнениеПланаЗапроса() Тогда
Возврат;
КонецЕсли;
ОбщиеПараметры = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(ПараметрыСеанса.РазрешенныйПользователь, "^");
Состав.ОбщиеПараметрыШаблоновОграниченияДоступа = ";УточнитьДляВсех;"
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйНаборГруппДоступа)
+ ОписаниеХешСуммыНастроекПрав(Состав.РазрешенныйПользователь, "^");
КонецПроцедуры
@@ -29245,7 +29297,7 @@
// РазобранноеОграничение - см. УправлениеДоступом.СтруктураОграничения.РазобранноеОграничение
//
// Возвращаемое значение:
// См. УправлениеДоступом.СтруктураОграничения
// См. УправлениеДоступом.СтруктураОграничения
//
Функция СтруктураОграничения(РазобранноеОграничение) Экспорт
@@ -4600,7 +4600,7 @@
// ИмяЭлементаДляРазмещения - Строка, Неопределено -
//
// Возвращаемое значение:
// см. ПараметрыВыводаКонтактнойИнформации
// см. ПараметрыВыводаКонтактнойИнформации
//
Функция ПараметрыКонтактнойИнформацииФормы(ПараметрыКонтактнойИнформации, ИмяЭлементаДляРазмещения)
@@ -242,24 +242,24 @@
//
// Возвращаемое значение:
// Структура - содержит поля:
// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид редактируемой контактной информации.
// * ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид редактируемой контактной информации.
// см. УправлениеКонтактнойИнформацией.ПараметрыВидаКонтактнойИнформации
// * Значение - Строка - значение полей контактной информации в формате JSON или ХML.
// * Представление - Строка - представление контактной информации.
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации, если был указан
// * Значение - Строка - значение полей контактной информации в формате JSON или ХML.
// * Представление - Строка - представление контактной информации.
// * ТипКонтактнойИнформации - ПеречислениеСсылка.ТипыКонтактнойИнформации - тип контактной информации, если был указан
// в параметрах.
// * Страна - Строка - страна мира, только если указан тип контактной информации Адрес.
// * Регион - Строка - значение поля региона, только если указан тип контактной информации Адрес.
// * Страна - Строка - страна мира, только если указан тип контактной информации Адрес.
// * Регион - Строка - значение поля региона, только если указан тип контактной информации Адрес.
// Актуально для стран ЕАЭС.
// * Индекс - Строка - почтовый индекс, только если указан тип контактной информации Адрес.
// * ТипПомещения - Строка - тип помещения в форме ввода нового адреса, , только если указан тип контактной
// * Индекс - Строка - почтовый индекс, только если указан тип контактной информации Адрес.
// * ТипПомещения - Строка - тип помещения в форме ввода нового адреса, , только если указан тип контактной
// информации Адрес.
// * КодСтраны - Строка - телефонный код страны мира, только если указан тип контактной информации Телефон.
// * КодГорода - Строка - телефонный код города, только если указан тип контактной информации Телефон.
// * НомерТелефона - Строка - телефонный номер, только если указан тип контактной информации Телефон.
// * Добавочный - Строка - добавочный телефонный номер, только если указан тип контактной информации Телефон.
// * Заголовок - Строка - заголовок формы. По умолчанию, представление вида контактной информации.
// * ТипАдреса - Строка - варианты: Пустая строка (по умолчанию), "ВСвободнойФорме", "ЕАЭС";
// * КодСтраны - Строка - телефонный код страны мира, только если указан тип контактной информации Телефон.
// * КодГорода - Строка - телефонный код города, только если указан тип контактной информации Телефон.
// * НомерТелефона - Строка - телефонный номер, только если указан тип контактной информации Телефон.
// * Добавочный - Строка - добавочный телефонный номер, только если указан тип контактной информации Телефон.
// * Заголовок - Строка - заголовок формы. По умолчанию, представление вида контактной информации.
// * ТипАдреса - Строка - варианты: Пустая строка (по умолчанию), "ВСвободнойФорме", "ЕАЭС";
// Для РФ: "Муниципальный" или "АдминистративноТерриториальный".
// Если не указан (пустая строка), то для существующего адреса будет установлен адрес
// выбранный пользователем в форме ввода адреса, для нового адреса - Муниципальный".
@@ -61,4 +61,17 @@
КонецПроцедуры
// Вызывается из обработчика ОбработкаОповещения формы ПечатьДокументов.
// Позволяет реализовать обработчик внешнего события в форме.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма ОбщаяФорма.ПечатьДокументов.
// ИмяСобытия - Строка - идентификатор оповещения.
// Параметр - Произвольный - произвольный параметр оповещения.
// Источник - Произвольный - источник события.
//
Процедура ПечатьДокументовОбработкаОповещения(Форма, ИмяСобытия, Параметр, Источник) Экспорт
КонецПроцедуры
#КонецОбласти
@@ -105,12 +105,12 @@
//
// Возвращаемое значение:
// Структура - Список параметров открытия формы.
// * Владелец - Произвольный - Форма или элемент управления другой формы.
// * Уникальность - Произвольный - Ключ, значение которого будет использоваться для поиска уже открытых форм.
// * НавигационнаяСсылка - Строка - Задает навигационную ссылку, возвращаемую формой.
// * ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - Содержит описание процедуры, которая будет вызвана после
// * Владелец - Произвольный - Форма или элемент управления другой формы.
// * Уникальность - Произвольный - Ключ, значение которого будет использоваться для поиска уже открытых форм.
// * НавигационнаяСсылка - Строка - Задает навигационную ссылку, возвращаемую формой.
// * ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - Содержит описание процедуры, которая будет вызвана после
// закрытия формы.
// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - Указывает режим открытия окна управляемой формы.
// * РежимОткрытияОкна - РежимОткрытияОкнаФормы - Указывает режим открытия окна управляемой формы.
//
Функция ПараметрыФормы(ДанныеЗаполнения) Экспорт
ПараметрыОткрытия = Новый Структура();
@@ -629,7 +629,7 @@
КонецЕсли;
КонецЕсли;
СформированноеСообщение = КонструкторСообщения();
СформированноеСообщение = КонструкторСообщения(ПараметрыШаблона);
ЗаполнитьПолучателейСообщения(ПараметрыОтправки, ПараметрыШаблона, СформированноеСообщение, МенеджерОбъекта);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
@@ -1066,7 +1066,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" + ...
//
@@ -33,26 +33,26 @@
//
// Параметры:
// Параметры - Структура - со свойствами:
// * ОжидатьПродолжения - Булево - (возвращаемое значение) - если Истина, тогда дополнительная проверка
// * ОжидатьПродолжения - Булево - (возвращаемое значение) - если Истина, тогда дополнительная проверка
// будет выполнятся асинхронно, продолжение возобновится после выполнения оповещения.
// Начальное значение Ложь.
// * Оповещение - ОписаниеОповещения - обработка, которую нужно вызывать для продолжения
// * Оповещение - ОписаниеОповещения - обработка, которую нужно вызывать для продолжения
// после асинхронного выполнения дополнительной проверки.
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// общего модуля ЭлектроннаяПодписьПереопределяемый.
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// выполнения проверки.
// - Неопределено - если стандартные проверки отключены в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// Это описание сможет увидеть пользователь при нажатии на картинку результата.
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// начальное значение - Ложь.
// * Пароль - Строка - пароль, введенный пользователем.
// * Пароль - Строка - пароль, введенный пользователем.
// - Неопределено - если свойство ВводитьПароль установлено в Ложь в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * РезультатыПроверок - Структура - со свойствами:
// * РезультатыПроверок - Структура - со свойствами:
// * Ключ - Строка - имя стандартной или дополнительной проверки или имя ошибки. Ключ свойства, содержащего
// ошибку, содержит имя проверки с окончанием Ошибка.
// * Значение - Неопределено - проверка не выполнялась (ОписаниеОшибки осталось Неопределено).
@@ -84,21 +84,21 @@
//
// Параметры:
// Параметры - Структура - со свойствами:
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// * Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования - проверяемый сертификат.
// * Проверка - Строка - имя проверки, добавленное в процедуре ПриСозданииФормыПроверкаСертификата
// общего модуля ЭлектроннаяПодписьПереопределяемый.
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// * МенеджерКриптографии - МенеджерКриптографии - подготовленный менеджер криптографии для
// выполнения проверки.
// - Неопределено - если стандартные проверки отключены в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// * ОписаниеОшибки - Строка - (возвращаемое значение) - описание ошибки, полученной при выполнении проверки.
// Это описание сможет увидеть пользователь при нажатии на картинку результата.
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// * ЭтоПредупреждение - Булево - (возвращаемое значение) - вид картинки Ошибка/Предупреждение,
// начальное значение - Ложь.
// * Пароль - Строка - пароль, введенный пользователем.
// * Пароль - Строка - пароль, введенный пользователем.
// - Неопределено - если свойство ВводитьПароль установлено в Ложь в процедуре
// ПриСозданииФормыПроверкаСертификата общего модуля ЭлектроннаяПодписьПереопределяемый.
// * РезультатыПроверок - Структура - со свойствами:
// * РезультатыПроверок - Структура - со свойствами:
// * Ключ - Строка - имя дополнительной проверки, которая уже выполнена.
// * Значение - Неопределено - дополнительная проверка не выполнялась (ОписаниеОшибки осталось Неопределено).
// - Булево - результат выполнения дополнительной проверки.
@@ -72,8 +72,8 @@
//
// Возвращаемое значение:
// Структура -
// * РасширениеСертификата - Строка - Расширение файла сертификата.
// * АдресСертификата - Строка - Адрес во временном хранилище, по которому был помещен сертификат.
// * РасширениеСертификата - Строка - Расширение файла сертификата.
// * АдресСертификата - Строка - Адрес во временном хранилище, по которому был помещен сертификат.
//
Функция ДанныеПоСертификату(СведенияОЭлектроннойПодписи, УникальныйИдентификатор) Экспорт
+10 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="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>
@@ -13,7 +13,7 @@
// См. СтандартныеПодсистемыСервер.ПараметрРаботыРасширения.
//
// Возвращаемое значение:
// см. СтандартныеПодсистемыСервер.ПараметрРаботыРасширения
// см. СтандартныеПодсистемыСервер.ПараметрРаботыРасширения
//
Функция ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь) Экспорт
@@ -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>