3_1_7_123

This commit is contained in:
Компания 1С committed 2022-07-27 23:25:00 +03:00
1 parent 7e4f81a91c
commit 25d8bba0ad
73 files changed
+1430 -633

No files matched your search

@@ -644,6 +644,31 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// Дата - оперативная отметка универсального времени, полученная
// при первом вызове этой функции в сеансе.
// Разные ПК имеют разное время, что влияет на результат.
//
Функция ОперативнаяОтметкаВремениСеанса() Экспорт
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
Если Не ПараметрыСеанса.УстановленныеРасширения.Свойство("ОперативнаяОтметкаВремениСеанса") Тогда
УстановленныеРасширения = Новый Структура(ПараметрыСеанса.УстановленныеРасширения);
УстановленныеРасширения.Вставить("ОперативнаяОтметкаВремениСеанса",
ПолучитьТекущийСеансИнформационнойБазы().НачалоСеанса - СмещениеСтандартногоВремени());
ПараметрыСеанса.УстановленныеРасширения = Новый ФиксированнаяСтруктура(УстановленныеРасширения);
КонецЕсли;
ОтметкаВремени = ПараметрыСеанса.УстановленныеРасширения.ОперативнаяОтметкаВремениСеанса;
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
Возврат ОтметкаВремени;
КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -1121,6 +1121,7 @@
Строка.Синоним = НСтр("ru = 'Константы'"); Строка.Синоним = НСтр("ru = 'Константы'");
Строка.ИмяВЕдЧисле = "Константа"; Строка.ИмяВЕдЧисле = "Константа";
Строка.СинонимВЕдЧисле = НСтр("ru = 'Константа'"); Строка.СинонимВЕдЧисле = НСтр("ru = 'Константа'");
Строка.ОбъектыРасширений = Истина;
// Подсистемы // Подсистемы
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить(); Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -17,6 +17,7 @@
КонецЕсли; КонецЕсли;
Если Владелец.ПометкаУдаления Тогда Если Владелец.ПометкаУдаления Тогда
ПредопределеннаяПапка = Ложь;
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -24,10 +25,6 @@
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Данная операция доступна только ответственному за ведение папок для данной учетной записи'"), НСтр("ru = 'Данная операция доступна только ответственному за ведение папок для данной учетной записи'"),
Ссылка,,,Отказ); Ссылка,,,Отказ);
ИначеЕсли ПредопределеннаяПапка И ПометкаУдаления И (НЕ Владелец.ПометкаУдаления) Тогда
ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Нельзя установить пометку удаления для предопределенной папки'"),
Ссылка,,,Отказ);
ИначеЕсли ПредопределеннаяПапка И (Не Родитель.Пустая()) Тогда ИначеЕсли ПредопределеннаяПапка И (Не Родитель.Пустая()) Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
НСтр("ru = 'Нельзя переместить предопределенную папку в другую папку'"), НСтр("ru = 'Нельзя переместить предопределенную папку в другую папку'"),
@@ -192,8 +192,9 @@
Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилейСеанса(); Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилейСеанса();
НовоеЗначение = Кэш.ХешСумма; НовоеЗначение = Кэш.ХешСумма;
УжеИзменен = Ложь;
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеПоставляемыеПрофили"; ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеПоставляемыеПрофили";
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение = НовоеЗначение Тогда Если СтароеЗначение = НовоеЗначение Тогда
Возврат; Возврат;
@@ -219,7 +220,7 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(СтароеЗначение) Тогда Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
@@ -236,14 +237,15 @@
Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилейСеанса(); Кэш = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилейСеанса();
НовоеЗначение = Кэш.ХешСумма; НовоеЗначение = Кэш.ХешСумма;
УжеИзменен = Ложь;
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеНепоставляемыеПрофили"; ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ОбновленныеНепоставляемыеПрофили";
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение = НовоеЗначение Тогда Если СтароеЗначение = НовоеЗначение Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(СтароеЗначение) Тогда Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
@@ -803,6 +805,92 @@
КонецФункции КонецФункции
// Сравнивает часть объекта в базе данных с той же частью объекта в памяти.
//
// Параметры:
// Профиль - СправочникОбъект.ПрофилиГруппДоступа - объект в памяти.
//
// СтарыеЗначения - Структура:
// * Наименование - Строка
// * Родитель - СправочникСсылка.ПрофилиГруппДоступа
// * Роли - РезультатЗапроса
// * Назначение - РезультатЗапроса
// * ВидыДоступа - РезультатЗапроса
// * ЗначенияДоступа - РезультатЗапроса
//
Функция ПоставляемыеОбластиПрофиляИзменены(НовыйПрофиль, СтарыеЗначения) Экспорт
Если ВРег(НовыйПрофиль.Наименование) <> ВРег(СтарыеЗначения.Наименование) Тогда
Возврат Истина;
КонецЕсли;
Если НовыйПрофиль.Родитель <> СтарыеЗначения.Родитель Тогда
ОписанияПрофилей = УправлениеДоступомСлужебный.ПоставляемыеПрофили().ОписанияПрофилей;
СвойстваПрофиля = ОписанияПрофилей.Получить(Строка(НовыйПрофиль.ИдентификаторПоставляемыхДанных)); // См. СвойстваПоставляемогоПрофиля
Если СвойстваПрофиля <> Неопределено
И ЗначениеЗаполнено(СвойстваПрофиля.Родитель)
И ЗначениеЗаполнено(ПоставляемыйПрофильПоИдентификатору(СвойстваПрофиля.Родитель)) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
Если НовыйПрофиль.ЭтоГруппа Тогда
Возврат Ложь;
КонецЕсли;
СтарыйПрофиль = Новый Структура;
СтарыйПрофиль.Вставить("Роли", СтарыеЗначения.Роли.Выгрузить());
СтарыйПрофиль.Вставить("Назначение", СтарыеЗначения.Назначение.Выгрузить());
СтарыйПрофиль.Вставить("ВидыДоступа", СтарыеЗначения.ВидыДоступа.Выгрузить());
СтарыйПрофиль.Вставить("ЗначенияДоступа", СтарыеЗначения.ЗначенияДоступа.Выгрузить());
Если НовыйПрофиль.Роли.Количество() <> СтарыйПрофиль.Роли.Количество()
Или НовыйПрофиль.ВидыДоступа.Количество() <> СтарыйПрофиль.ВидыДоступа.Количество()
Или НовыйПрофиль.ЗначенияДоступа.Количество() <> СтарыйПрофиль.ЗначенияДоступа.Количество()
Или НовыйПрофиль.Назначение.Количество() <> СтарыйПрофиль.Назначение.Количество() Тогда
Возврат Истина;
КонецЕсли;
Для Каждого Строка Из НовыйПрофиль.Роли Цикл
Если СтарыйПрофиль.Роли.Найти(Строка.Роль, "Роль") = Неопределено Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из НовыйПрофиль.ВидыДоступа Цикл
Отбор = Новый Структура("ВидДоступа, Предустановленный, ВсеРазрешены",
Строка.ВидДоступа, Строка.Предустановленный, Строка.ВсеРазрешены);
Если СтарыйПрофиль.ВидыДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из НовыйПрофиль.ВидыДоступа Цикл
Отбор = Новый Структура("ВидДоступа, Предустановленный, ВсеРазрешены",
Строка.ВидДоступа, Строка.Предустановленный, Строка.ВсеРазрешены);
Если СтарыйПрофиль.ВидыДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из НовыйПрофиль.ЗначенияДоступа Цикл
Отбор = Новый Структура("ВидДоступа, ЗначениеДоступа, ВключаяНижестоящие",
Строка.ВидДоступа, Строка.ЗначениеДоступа, Строка.ВключаяНижестоящие);
Если СтарыйПрофиль.ЗначенияДоступа.НайтиСтроки(Отбор).Количество() = 0 Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из НовыйПрофиль.Назначение Цикл
Если СтарыйПрофиль.Назначение.Найти(Строка.ТипПользователей, "ТипПользователей") = Неопределено Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
// Определяет наличие начального заполнения для профиля групп доступа в переопределяемом модуле. // Определяет наличие начального заполнения для профиля групп доступа в переопределяемом модуле.
// //
// Параметры: // Параметры:
@@ -997,9 +1085,10 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление. Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
@@ -1363,9 +1452,10 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление. Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
@@ -63,8 +63,15 @@
Справочники.ПрофилиГруппДоступа.ЗаполнитьСтандартныеРолиРасширений(Роли); Справочники.ПрофилиГруппДоступа.ЗаполнитьСтандартныеРолиРасширений(Роли);
Если Не ДополнительныеСвойства.Свойство("НеОбновлятьРеквизитПоставляемыйПрофильИзменен") Тогда Если Не ДополнительныеСвойства.Свойство("НеОбновлятьРеквизитПоставляемыйПрофильИзменен") Тогда
ПоставляемыйПрофильИзменен = НовоеЗначениеПоставляемыйПрофильИзменен =
Справочники.ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен(ЭтотОбъект); Справочники.ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен(ЭтотОбъект);
Если ПоставляемыйПрофильИзменен <> НовоеЗначениеПоставляемыйПрофильИзменен
И (Не НовоеЗначениеПоставляемыйПрофильИзменен
Или Справочники.ПрофилиГруппДоступа.ПоставляемыеОбластиПрофиляИзменены(ЭтотОбъект, СтарыеЗначения)) Тогда
ПоставляемыйПрофильИзменен = НовоеЗначениеПоставляемыйПрофильИзменен;
КонецЕсли;
КонецЕсли; КонецЕсли;
// Обновление наименования у персональных групп доступа этого профиля (если есть). // Обновление наименования у персональных групп доступа этого профиля (если есть).
@@ -441,6 +448,8 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * Ссылка - СправочникСсылка.ПрофилиГруппДоступа // * Ссылка - СправочникСсылка.ПрофилиГруппДоступа
// * Наименование - Строка
// * Родитель - СправочникСсылка.ПрофилиГруппДоступа
// * ПометкаУдаления - Булево // * ПометкаУдаления - Булево
// * Роли - РезультатЗапроса // * Роли - РезультатЗапроса
// * Назначение - РезультатЗапроса // * Назначение - РезультатЗапроса
@@ -450,7 +459,7 @@
Функция СтарыеЗначения() Функция СтарыеЗначения()
Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
"Ссылка, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа"); "Ссылка, Наименование, Родитель, ПометкаУдаления, Роли, Назначение, ВидыДоступа, ЗначенияДоступа");
КонецФункции КонецФункции
@@ -1402,7 +1402,7 @@
ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Истина, ОписаниеОшибки); ДополнительнаяПроверкаНаВозможностьПодписания(Контекст.СертификатКриптографии, Истина, ОписаниеОшибки);
// Подписание. // Подписание.
Если ПроверкиНаКлиенте.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда Если ПроверкиНаСервере.НаличиеСертификата = Истина И Не ЗначениеЗаполнено(ОписаниеОшибки) Тогда
МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер"); МодульСервисКриптографииDSSКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиентСервер");
МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент"); МодульСервисКриптографииDSSКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSКлиент");
@@ -126,6 +126,12 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если ИмяСобытия = "Запись_НаборКонстант" И Источник = "РазрешенныеНеаккредитованныеУЦ" Тогда
ОбновитьВидимостьПредупреждения();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -109,7 +109,7 @@
КонецЕсли; КонецЕсли;
Если ИмяСобытия = "Запись_Файл" И Источник = Объект.Ссылка И Не Модифицированность Тогда Если ИмяСобытия = "Запись_Файл" И Источник = Объект.Ссылка И Не Модифицированность Тогда
Прочитать(); ОбновитьОбъект();
КонецЕсли; КонецЕсли;
Если ИмяСобытия = "Запись_Подпись" Тогда Если ИмяСобытия = "Запись_Подпись" Тогда
@@ -849,7 +849,6 @@
КонецЕсли; КонецЕсли;
Обработчик = Новый ОписаниеОповещения("ПрочитатьИУстановитьДоступностьЭлементовФормы", ЭтотОбъект); Обработчик = Новый ОписаниеОповещения("ПрочитатьИУстановитьДоступностьЭлементовФормы", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.СохранитьИзмененияФайлаСОповещением(Обработчик, РаботаСФайламиСлужебныйКлиент.СохранитьИзмененияФайлаСОповещением(Обработчик,
ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор); ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
@@ -1065,7 +1064,7 @@
КонецЦикла; КонецЦикла;
МодульЭлектроннаяПодпись.УдалитьПодпись(Объект.Ссылка, ИндексыСтрок, УникальныйИдентификатор); МодульЭлектроннаяПодпись.УдалитьПодпись(Объект.Ссылка, ИндексыСтрок, УникальныйИдентификатор);
Прочитать(); ОбновитьОбъект();
КонецПроцедуры КонецПроцедуры
@@ -1435,8 +1434,7 @@
&НаКлиенте &НаКлиенте
Процедура ПрочитатьИУстановитьДоступностьЭлементовФормы(Результат, ДополнительныеПараметры) Экспорт Процедура ПрочитатьИУстановитьДоступностьЭлементовФормы(Результат, ДополнительныеПараметры) Экспорт
Прочитать(); ОбновитьОбъект();
УстановитьДоступностьКнопок(ЭтотОбъект, Элементы);
КонецПроцедуры КонецПроцедуры
@@ -1544,7 +1542,7 @@
Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле); Версия = РаботаСФайламиСлужебный.СоздатьВерсию(Приемник, СведенияОФайле);
РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле( РаботаСФайламиСлужебный.ОбновитьВерсиюВФайле(
Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище, УникальныйИдентификатор); Приемник, Версия, Источник.ТекущаяВерсия.ТекстХранилище, УникальныйИдентификатор);
Прочитать(); ОбновитьОбъект();
КонецПроцедуры КонецПроцедуры
@@ -1,5 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:form="http://g5.1c.ru/v8/dt/form"> <form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:Decoration">
<name>ДекорацияНадпись</name>
<id>6</id>
<title>
<key>ru</key>
<value>УЦ сертификата добавлен в список разрешенных УЦ</value>
</title>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ДекорацияНадписьРасширеннаяПодсказка</name>
<id>8</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДекорацияНадписьКонтекстноеМеню</name>
<id>7</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
<backColor xsi:type="core:ColorRef">
<color>Style.ToolTipBackColor</color>
</backColor>
</extInfo>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаРазрешенныеНеаккредитованныеУЦ</name> <name>ГруппаРазрешенныеНеаккредитованныеУЦ</name>
<id>4</id> <id>4</id>
@@ -20,7 +56,7 @@
<id>3</id> <id>3</id>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Список ОГРН (через запятую) удостоверяющих центров, потерявших аккредитацию, подписание сертификатами которых разрешено, подписи считаются верными.</value> <value>Список ОГРН (с новой строки или через запятую) удостоверяющих центров, потерявших аккредитацию, подписание сертификатами которых разрешено, подписи считаются верными.</value>
</title> </title>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -40,13 +76,19 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<handlers>
<event>EditTextChange</event>
<name>РазрешенныеНеаккредитованныеУЦИзменениеТекстаРедактирования</name>
</handlers>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<height>5</height>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<multiLine>true</multiLine> <multiLine>true</multiLine>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
<editTextUpdate>OnValueChange</editTextUpdate>
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
@@ -86,6 +128,14 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>LockOwner</windowOpeningMode> <windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle> <autoTitle>true</autoTitle>
@@ -111,6 +161,25 @@
<main>true</main> <main>true</main>
<savedData>true</savedData> <savedData>true</savedData>
</attributes> </attributes>
<attributes>
<name>ТекстПредупреждения</name>
<id>7</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<parameters>
<name>Сертификат</name>
<valueType/>
<keyParameter>true</keyParameter>
</parameters>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -8,10 +8,146 @@
#Область ОбработчикиСобытийФормы #Область ОбработчикиСобытийФормы
&НаКлиенте &НаСервере
Процедура ПослеЗаписи(ПараметрыЗаписи) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ОбновитьПовторноИспользуемыеЗначения();
ДобавитьУдостоверяющийЦентрСертификатаВРазрешенные();
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если ЗначениеЗаполнено(ТекстПредупреждения) Тогда
СтандартныеПодсистемыКлиент.УстановитьХранениеФормы(ЭтотОбъект, Истина);
ПодключитьОбработчикОжидания("ОбработчикОжиданияПоказатьВопросПользователю", 0.1, Истина);
Отказ = Истина;
Возврат;
КонецЕсли;
Модифицированность = Элементы.ДекорацияНадпись.Видимость;
ПодключитьОбработчикОжидания("ОбновитьКоличествоВЗаголовке", 0.1, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьПовторноИспользуемыеЗначения();
Оповестить("Запись_НаборКонстант", Новый Структура, "РазрешенныеНеаккредитованныеУЦ");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура РазрешенныеНеаккредитованныеУЦИзменениеТекстаРедактирования(Элемент, Текст, СтандартнаяОбработка)
ПодключитьОбработчикОжидания("ОбновитьКоличествоВЗаголовке", 0.5, Истина);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбновитьКоличествоВЗаголовке()
Если ПустаяСтрока(Элементы.РазрешенныеНеаккредитованныеУЦ.ТекстРедактирования) Тогда
Элементы.РазрешенныеНеаккредитованныеУЦ.Заголовок = НСтр("ru ='Разрешенные неаккредитованные УЦ'");
Иначе
РазрешенныеУЦ = СтрРазделить(Элементы.РазрешенныеНеаккредитованныеУЦ.ТекстРедактирования, ",;" + Символы.ПС, Ложь);
Элементы.РазрешенныеНеаккредитованныеУЦ.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru ='Разрешенные неаккредитованные УЦ (%1)'"), РазрешенныеУЦ.Количество());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработчикОжиданияПоказатьВопросПользователю()
СтандартныеПодсистемыКлиент.УстановитьХранениеФормы(ЭтотОбъект, Ложь);
ПараметрыВопроса = СтандартныеПодсистемыКлиент.ПараметрыВопросаПользователю();
ПараметрыВопроса.Картинка = БиблиотекаКартинок.Предупреждение32;
ПараметрыВопроса.ПредлагатьБольшеНеЗадаватьЭтотВопрос = Ложь;
ПараметрыВопроса.Заголовок = НСтр("ru = 'Неаккредитованный удостоверяющий центр'");
СтандартныеПодсистемыКлиент.ПоказатьВопросПользователю(Неопределено, ТекстПредупреждения, РежимДиалогаВопрос.ОК, ПараметрыВопроса);
КонецПроцедуры
&НаСервере
Процедура ДобавитьУдостоверяющийЦентрСертификатаВРазрешенные()
Элементы.ДекорацияНадпись.Видимость = Ложь;
Если Не ЗначениеЗаполнено(Параметры.Сертификат) Тогда
Возврат;
КонецЕсли;
МодульЭлектроннаяПодписьКлиентСерверЛокализация = ОбщегоНазначения.ОбщийМодуль(
"ЭлектроннаяПодписьКлиентСерверЛокализация");
Если МодульЭлектроннаяПодписьКлиентСерверЛокализация = Неопределено Тогда
Возврат;
КонецЕсли;
Сертификат = Параметры.Сертификат;
Если ТипЗнч(Сертификат) = Тип("Строка") И ЭтоАдресВременногоХранилища(Сертификат) Тогда
Сертификат = ПолучитьИзВременногоХранилища(Сертификат);
ИначеЕсли ТипЗнч(Сертификат) = Тип("СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования") Тогда
Сертификат = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Сертификат, "ДанныеСертификата").Получить();
КонецЕсли;
Если ТипЗнч(Сертификат) <> Тип("ДвоичныеДанные") Тогда
Возврат;
КонецЕсли;
Сертификат = Новый СертификатКриптографии(Сертификат);
ДанныеДляПроверкиУдостоверяющегоЦентра = МодульЭлектроннаяПодписьКлиентСерверЛокализация.ДанныеДляПроверкиУдостоверяющегоЦентра(
Сертификат);
ЗначенияПоиска = ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска;
Если ЗначенияПоиска = Неопределено Тогда
Возврат;
КонецЕсли;
МассивПолейПоиска = СтрРазделить(ЗначенияПоиска, ",");
ЗначениеДляДобавления = МассивПолейПоиска[0];
РазрешенныеУЦ = СтрРазделить(НаборКонстант.РазрешенныеНеаккредитованныеУЦ, ",;" + Символы.ПС);
Если РазрешенныеУЦ.Найти(ЗначениеДляДобавления) = Неопределено Тогда
ПредставлениеИздателя = ЭлектроннаяПодписьСлужебныйКлиентСервер.ПредставлениеИздателя(Сертификат);
Элементы.ДекорацияНадпись.Видимость = Истина;
ЕстьПраваНаИзменение = ПравоДоступа("Изменение", Метаданные.Константы.РазрешенныеНеаккредитованныеУЦ);
Если Не ЕстьПраваНаИзменение Тогда
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Обратитесь к администратору для добавления ОГРН %1 удостоверяющего центра ""%2"" в список разрешенных неаккредитованных УЦ.'"),
ЗначениеДляДобавления, ПредставлениеИздателя);
Возврат;
КонецЕсли;
РазрешенныеУЦ.Вставить(0, ЗначениеДляДобавления);
НаборКонстант.РазрешенныеНеаккредитованныеУЦ = СтрСоединить(РазрешенныеУЦ, Символы.ПС);
Элементы.ДекорацияНадпись.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Нажмите ""Записать и закрыть"", чтобы добавить ОГРН %1 удостоверяющего центра ""%2"" в список разрешенных.'"),
ЗначениеДляДобавления, ПредставлениеИздателя);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
@@ -2441,6 +2441,12 @@
ТекущаяОбласть.Текст = ТекущееЗначение; ТекущаяОбласть.Текст = ТекущееЗначение;
ИначеЕсли ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда ИначеЕсли ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда
ТекущаяОбласть.Имя = ""; ТекущаяОбласть.Имя = "";
Область = ТабличныйДокумент.Область(ТекущаяОбласть.Верх, 1, ТекущаяОбласть.Верх, 1);
Если Область.Текст = "" Тогда
Область.Текст = "";
КонецЕсли;
ТекущаяОбласть.ПараметрРасшифровки = ТекущееЗначение; ТекущаяОбласть.ПараметрРасшифровки = ТекущееЗначение;
Если ЗначениеЗаполнено(ТекущееЗначение) Тогда Если ЗначениеЗаполнено(ТекущееЗначение) Тогда
@@ -6,6 +6,46 @@
// https://creativecommons.org/licenses/by/4.0/legalcode // https://creativecommons.org/licenses/by/4.0/legalcode
/////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Функция ТипыАдресныхОбъектовДляРаспознаванияАдреса() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УровниСокращенийАдресныхСведений.Сокращение КАК Сокращение
|ИЗ
| РегистрСведений.УровниСокращенийАдресныхСведений КАК УровниСокращенийАдресныхСведений";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
АдресныеСокращения = РегистрыСведений.АдресныеОбъекты.АдресныеСокращения();
Иначе
АдресныеСокращения = РезультатЗапроса.Выгрузить();
КонецЕсли;
АдресныеСокращения.Колонки.Добавить("Длина", ОбщегоНазначения.ОписаниеТипаЧисло(3));
АдресныеСокращения.Колонки.Добавить("СокращениеВНачале", ОбщегоНазначения.ОписаниеТипаСтрока(20));
АдресныеСокращения.Колонки.Добавить("СокращениеВКонце", ОбщегоНазначения.ОписаниеТипаСтрока(20));
Для каждого ЭлементИзПеречня Из АдресныеСокращения Цикл
ЭлементИзПеречня.СокращениеВНачале = ВРег(ЭлементИзПеречня.Сокращение) + " ";
ЭлементИзПеречня.СокращениеВКонце = " " + ВРег(ЭлементИзПеречня.Сокращение);
ЭлементИзПеречня.Длина = СтрДлина(ЭлементИзПеречня.Сокращение);
КонецЦикла;
АдресныеСокращения.Свернуть("Длина, СокращениеВНачале, СокращениеВКонце");
АдресныеСокращения.Индексы.Добавить("Длина");
АдресныеСокращения.Сортировать("Длина Убыв");
Возврат АдресныеСокращения;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// HTTPСоединение для вызова веб-сервиса 1С. // HTTPСоединение для вызова веб-сервиса 1С.
@@ -318,6 +358,7 @@
КонецФункции КонецФункции
Функция МуниципальныеРайоны() Экспорт Функция МуниципальныеРайоны() Экспорт
// АПК: 1297-выкл Данные адресного классификатора, не локализуются // АПК: 1297-выкл Данные адресного классификатора, не локализуются
@@ -2386,6 +2386,11 @@
РезультатЗапроса = Запрос.ВыполнитьПакет(); РезультатЗапроса = Запрос.ВыполнитьПакет();
СопоставленныеЧастиАдреса = СопоставленныеЧастиАдреса(РезультатЗапроса); СопоставленныеЧастиАдреса = СопоставленныеЧастиАдреса(РезультатЗапроса);
Если СопоставленныеЧастиАдреса.Количество() = 0 Тогда
Возврат Адрес;
КонецЕсли;
ДомаЗдания = ДомаЗдания(РезультатЗапроса); ДомаЗдания = ДомаЗдания(РезультатЗапроса);
// дома здания // дома здания
@@ -2397,22 +2402,22 @@
Для каждого ЭлементАдреса Из ДомаЗдания Цикл Для каждого ЭлементАдреса Из ДомаЗдания Цикл
Тип = ВРег(СокрЛП(СтрЗаменить(ЭлементАдреса.Наименование, "№", ""))); Тип = ВРег(СокрЛП(СтрЗаменить(ЭлементАдреса.Сокращение, "№", "")));
Значение = ЭлементАдреса.Сокращение; Значение = ЭлементАдреса.Наименование;
Если КодыДомовВладенийИСтроений.Дома[Тип] <> Неопределено Тогда Если КодыДомовВладенийИСтроений.Дома[Тип] <> Неопределено Тогда
СведенияОДоме.ТипДома = ТРег(ЭлементАдреса.Наименование); СведенияОДоме.ТипДома = ТРег(ЭлементАдреса.Сокращение);
СведенияОДоме.НомерДома = Значение; СведенияОДоме.НомерДома = Значение;
ИначеЕсли КодыДомовВладенийИСтроений.Строения[Тип] <> Неопределено Тогда ИначеЕсли КодыДомовВладенийИСтроений.Строения[Тип] <> Неопределено Тогда
Строения.Добавить(ЗначениеСтроенияИлиПомещения(ТРег(ЭлементАдреса.Наименование), Значение)); Строения.Добавить(ЗначениеСтроенияИлиПомещения(ТРег(ЭлементАдреса.Сокращение), Значение));
Если КодыДомовВладенийИСтроений.Строения[Тип] = -1 Тогда Если КодыДомовВладенийИСтроений.Строения[Тип] = -1 Тогда
СведенияОДоме.НомерКорпуса = Значение; СведенияОДоме.НомерКорпуса = Значение;
Иначе Иначе
СведенияОДоме.ТипСтроения = ТРег(ЭлементАдреса.Наименование); СведенияОДоме.ТипСтроения = ТРег(ЭлементАдреса.Сокращение);
СведенияОДоме.НомерСтроения = Значение; СведенияОДоме.НомерСтроения = Значение;
КонецЕсли; КонецЕсли;
Иначе Иначе
Квартиры.Добавить(ЗначениеСтроенияИлиПомещения(ТРег(ЭлементАдреса.Наименование), Значение)); Квартиры.Добавить(ЗначениеСтроенияИлиПомещения(ТРег(ЭлементАдреса.Сокращение), Значение));
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -2436,10 +2441,6 @@
СоединениеМуниципальный = Новый Массив; СоединениеМуниципальный = Новый Массив;
Где = Новый Массив; Где = Новый Массив;
Если СопоставленныеЧастиАдреса.Количество() = 0 Тогда
Возврат Адрес;
КонецЕсли;
Для Счетчик = 1 По СопоставленныеЧастиАдреса.Количество() Цикл Для Счетчик = 1 По СопоставленныеЧастиАдреса.Количество() Цикл
Выбор.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВыбор, Счетчик)); Выбор.Добавить(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонВыбор, Счетчик));
@@ -7512,26 +7513,37 @@
Процедура ОбработатьОбщепринятыеСокращения(ДоступныеУровни) Процедура ОбработатьОбщепринятыеСокращения(ДоступныеУровни)
ОбщепринятыеСокращения = Новый Соответствие();
ОбщепринятыеСокращения.Вставить("КОРП", "Корпус");
ОбщепринятыеСокращения.Вставить("КОРП.", "Корпус");
ОбщепринятыеСокращения.Вставить("К.", "Корпус");
ОбщепринятыеСокращения.Вставить("КВ.", "Квартира");
ОбщепринятыеСокращения.Вставить("КВ", "Квартира");
ОбщепринятыеСокращения.Вставить("ОФ.", "Офис");
ОбщепринятыеСокращения.Вставить("ОФ.", "Офис");
ОбщепринятыеСокращения.Вставить("ПОМЕЩ", "Квартира");
ОбщепринятыеСокращения.Вставить("ПОМЕЩ.", "Квартира");
ОбщепринятыеСокращения.Вставить("Д", "Дом");
ОбщепринятыеСокращения.Вставить("Д.", "Дом");
ОбщепринятыеСокращения.Вставить("СТР.", "Строение");
ОбщепринятыеСокращения.Вставить("ЛИТЕР", "Литера");
Фильтр = Новый Структура("Уровень", 0); Фильтр = Новый Структура("Уровень", 0);
НераспознанныеСтроки = ДоступныеУровни.НайтиСтроки(Фильтр); НераспознанныеСтроки = ДоступныеУровни.НайтиСтроки(Фильтр);
Для каждого НераспознаннаяЧастьАдреса Из НераспознанныеСтроки Цикл Для каждого НераспознаннаяЧастьАдреса Из НераспознанныеСтроки Цикл
Если (ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "МОСКВА" Если (ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "МОСКВА"
ИЛИ ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "САНКТ-ПЕТЕРБУРГ") Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "САНКТ-ПЕТЕРБУРГ")
И ПустаяСтрока(НераспознаннаяЧастьАдреса.Сокращение) Тогда И ПустаяСтрока(НераспознаннаяЧастьАдреса.Сокращение) Тогда
НераспознаннаяЧастьАдреса.Сокращение = "г"; НераспознаннаяЧастьАдреса.Сокращение = "г";
НераспознаннаяЧастьАдреса.Значение = НераспознаннаяЧастьАдреса.Наименование + " " + НераспознаннаяЧастьАдреса.Сокращение; НераспознаннаяЧастьАдреса.Значение = СоединитьНаименованиеИТипАдресногоОбъекта(НераспознаннаяЧастьАдреса.Наименование,
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "КОРП" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "КОРП." Тогда НераспознаннаяЧастьАдреса.Сокращение, Истина);
НераспознаннаяЧастьАдреса.Наименование = "Корпус"; Иначе
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "КВ" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "КВ." Тогда
НераспознаннаяЧастьАдреса.Наименование = "Квартира"; Сокращение = ОбщепринятыеСокращения[ВРЕГ(НераспознаннаяЧастьАдреса.Сокращение)];
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ОФ" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ОФ." Тогда Если Сокращение <> Неопределено Тогда
НераспознаннаяЧастьАдреса.Наименование = "Квартира"; НераспознаннаяЧастьАдреса.Сокращение = Сокращение;
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ПОМЕЩ" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ПОМЕЩ." Тогда КонецЕсли;
НераспознаннаяЧастьАдреса.Наименование = "Квартира";
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "Д" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "Д." Тогда
НераспознаннаяЧастьАдреса.Наименование = "Дом";
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ЛИТЕР" Тогда
НераспознаннаяЧастьАдреса.Наименование = "Литера";
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -761,6 +761,8 @@
ПараметрыЗаполнения = Неопределено; ПараметрыЗаполнения = Неопределено;
Если Выборка.Количество() > 0 Тогда Если Выборка.Количество() > 0 Тогда
ОбъектыДляОбработкиОтсутствуют = Ложь;
Параметры.ОбработкаЗавершена = Ложь;
ПараметрыЗаполнения = ОбновлениеИнформационнойБазыСлужебный.НаборПараметровДляЗаполненияОбъекта(Метаданные.НайтиПоПолномуИмени(ИмяОбъектСТЧПредставления)); ПараметрыЗаполнения = ОбновлениеИнформационнойБазыСлужебный.НаборПараметровДляЗаполненияОбъекта(Метаданные.НайтиПоПолномуИмени(ИмяОбъектСТЧПредставления));
КонецЕсли; КонецЕсли;
@@ -45,7 +45,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.7.110"; Описание.Версия = "3.1.7.123";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -5782,7 +5782,8 @@
ОписаниеПроцедурыЗаполнения = ОбработчикОбновления.ОбрабатываемыеДанные.Получить(); ОписаниеПроцедурыЗаполнения = ОбработчикОбновления.ОбрабатываемыеДанные.Получить();
ПорцииДляОбновления = ОписаниеПроцедурыЗаполнения.ПорцииДляОбновления; ПорцииДляОбновления = ОписаниеПроцедурыЗаполнения.ПорцииДляОбновления;
Если ПорцииДляОбновления <> Неопределено Тогда Если ПорцииДляОбновления <> Неопределено
И КонтекстОбработчика.Параметры.Свойство("ОбновляемыеДанные") Тогда
ОбновляемыеДанные = КонтекстОбработчика.Параметры.ОбновляемыеДанные; ОбновляемыеДанные = КонтекстОбработчика.Параметры.ОбновляемыеДанные;
Если ОбновляемыеДанные <> Неопределено Тогда Если ОбновляемыеДанные <> Неопределено Тогда
@@ -216,6 +216,8 @@
Сообщения["[СообщениеПараметрыФайлаРезервнойКопии]"] = НСтр("ru = '\r\n\Файл резервной копии уже существует: {0}\r\n\Создан: {1}\r\n\Последнее обращение: {2}\r\n\Последнее изменение: {3}\r\n\Размер: {4}\r\n\Тип: {5}\r\n\Атрибуты:\r\n\{6}'"); Сообщения["[СообщениеПараметрыФайлаРезервнойКопии]"] = НСтр("ru = '\r\n\Файл резервной копии уже существует: {0}\r\n\Создан: {1}\r\n\Последнее обращение: {2}\r\n\Последнее изменение: {3}\r\n\Размер: {4}\r\n\Тип: {5}\r\n\Атрибуты:\r\n\{6}'");
Сообщения["[СообщениеДискНеСуществует]"] = НСтр("ru = '\r\n\Диск не найден по пути {0}\r\n\Исключение: {1}, {2}'"); Сообщения["[СообщениеДискНеСуществует]"] = НСтр("ru = '\r\n\Диск не найден по пути {0}\r\n\Исключение: {1}, {2}'");
Сообщения["[СообщениеДискНедоступен]"] = НСтр("ru = 'Диск не доступен по пути {0}'"); Сообщения["[СообщениеДискНедоступен]"] = НСтр("ru = 'Диск не доступен по пути {0}'");
Сообщения["[СообщениеДисковогоПространстваДостаточно]"] = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Доступно на диске {0}: {1} Mb\r\n\Размер файла %1: {2} Mb\r\n\Тип диска: {3}'"), "1Cv8.1CD");
Сообщения["[СообщениеДисковогоПространстваНедостаточно]"] = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( Сообщения["[СообщениеДисковогоПространстваНедостаточно]"] = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '\r\n\Недостаточно свободного места для создания резервной копии.\r\n\Освободите место или укажите папку на другом диске.\r\n\Требуется: {0} Mb\r\n\Доступно на диске {1}: {2} Mb\r\n\Размер файла %1: {3} Mb\r\n\Тип диска: {4}'"), "1Cv8.1CD"); НСтр("ru = '\r\n\Недостаточно свободного места для создания резервной копии.\r\n\Освободите место или укажите папку на другом диске.\r\n\Требуется: {0} Mb\r\n\Доступно на диске {1}: {2} Mb\r\n\Размер файла %1: {3} Mb\r\n\Тип диска: {4}'"), "1Cv8.1CD");
Сообщения["[СообщениеРезультатСозданияРезервнойКопииБазы]"] = НСтр("ru = 'Резервная копия базы создана'"); Сообщения["[СообщениеРезультатСозданияРезервнойКопииБазы]"] = НСтр("ru = 'Резервная копия базы создана'");
@@ -138,8 +138,8 @@
// ПриЗапуске - Булево - Истина, если вызывается при начале работы программы. // ПриЗапуске - Булево - Истина, если вызывается при начале работы программы.
// В этом случае недопустимо вызывать те серверные функции конфигурации, // В этом случае недопустимо вызывать те серверные функции конфигурации,
// которые рассчитывают на то, что запуск уже полностью завершен. // которые рассчитывают на то, что запуск уже полностью завершен.
// Например, вместо СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента // Например, вместо СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента
// следует вызывать СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске. // следует вызывать СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске.
// //
// Пример: // Пример:
// Для того чтобы в начале заголовка программы вывести название текущего проекта, следует определить параметр // Для того чтобы в начале заголовка программы вывести название текущего проекта, следует определить параметр
@@ -96,7 +96,7 @@
// при запуске конфигурации (в обработчиках событий ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы) // при запуске конфигурации (в обработчиках событий ПередНачаломРаботыСистемы и ПриНачалеРаботыСистемы)
// без дополнительных серверных вызовов. // без дополнительных серверных вызовов.
// Для получения значений этих параметров из клиентского кода // Для получения значений этих параметров из клиентского кода
// см. СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиентаПриЗапуске. // см. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске.
// //
// Важно: недопустимо использовать команды сброса кэша повторно используемых модулей, // Важно: недопустимо использовать команды сброса кэша повторно используемых модулей,
// иначе запуск может привести к непредсказуемым ошибкам и лишним серверным вызовам. // иначе запуск может привести к непредсказуемым ошибкам и лишним серверным вызовам.
@@ -115,7 +115,7 @@
// Позволяет задать значения параметров, необходимых для работы клиентского кода // Позволяет задать значения параметров, необходимых для работы клиентского кода
// конфигурации без дополнительных серверных вызовов. // конфигурации без дополнительных серверных вызовов.
// Для получения этих параметров из клиентского кода // Для получения этих параметров из клиентского кода
// см. СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента. // см. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента.
// //
// Параметры: // Параметры:
// Параметры - Структура - имена и значения параметров работы клиента, которые необходимо задать. // Параметры - Структура - имена и значения параметров работы клиента, которые необходимо задать.
@@ -1948,8 +1948,6 @@
НастройкиВхода.ПросрочкаРаботыВПрограммеДатаВключения = НачалоДня(ТекущаяДатаСеанса()); НастройкиВхода.ПросрочкаРаботыВПрограммеДатаВключения = НачалоДня(ТекущаяДатаСеанса());
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Константы.НастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(Настройки)); Константы.НастройкиВходаПользователей.Установить(Новый ХранилищеЗначения(Настройки));
Если Не РазделениеВключено Тогда Если Не РазделениеВключено Тогда
@@ -1961,8 +1959,6 @@
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
@@ -2310,7 +2310,7 @@
ГруппаРазмещенияНаФорме = Форма.Элементы.Вставить(ИмяГруппы, Тип("ГруппаФормы"), ГруппаРазмещенияНаФорме = Форма.Элементы.Вставить(ИмяГруппы, Тип("ГруппаФормы"),
ЭлементРодитель, ЭлементРазмещения); ЭлементРодитель, ЭлементРазмещения);
ТолькоОдинФайлТекст = ?(ДобавляемыйЭлемент.ТолькоОдинФайл, "ТолькоОдинФайл", ""); ТолькоОдинФайлТекст = ?(ДобавляемыйЭлемент.ТолькоОдинФайл, РаботаСФайламиКлиентСервер.ТолькоОдинФайлТекст(), "");
ЗаполнитьЗначенияСвойств(ГруппаРазмещенияНаФорме, СвойстваГруппыБезОтображения); ЗаполнитьЗначенияСвойств(ГруппаРазмещенияНаФорме, СвойстваГруппыБезОтображения);
ГруппаШапка = Форма.Элементы.Добавить( ГруппаШапка = Форма.Элементы.Добавить(
@@ -650,7 +650,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
НомерЭлемента = Число(ЧастиИмениКоманды[1]); НомерЭлемента = Число(СтрЗаменить(ЧастиИмениКоманды[1], РаботаСФайламиКлиентСервер.ТолькоОдинФайлТекст(), ""));
ВладелецПрисоединенныхФайлов = ЗначениеПараметраПрисоединенногоФайла(Форма, НомерЭлемента, "ПутьКДаннымВладельца"); ВладелецПрисоединенныхФайлов = ЗначениеПараметраПрисоединенногоФайла(Форма, НомерЭлемента, "ПутьКДаннымВладельца");
Если Не ЗначениеЗаполнено(ВладелецПрисоединенныхФайлов) Тогда Если Не ЗначениеЗаполнено(ВладелецПрисоединенныхФайлов) Тогда
@@ -1290,7 +1290,7 @@
ИмяКоманды = СтрЗаменить(ЧастиИмениКоманды[0], "УправлениеПрисоединеннымиФайлами", ""); ИмяКоманды = СтрЗаменить(ЧастиИмениКоманды[0], "УправлениеПрисоединеннымиФайлами", "");
ПараметрыВыполнения = ПараметрыКомандыУправления(Форма); ПараметрыВыполнения = ПараметрыКомандыУправления(Форма);
ПараметрыВыполнения.НомерЭлемента = ЧастиИмениКоманды[1]; ПараметрыВыполнения.НомерЭлемента = СтрЗаменить(ЧастиИмениКоманды[1], РаботаСФайламиКлиентСервер.ТолькоОдинФайлТекст(), "");
ОбработчикЗавершения = Новый ОписаниеОповещения("ЗавершениеВыполненияКомандыСОповещением", ОбработчикЗавершения = Новый ОписаниеОповещения("ЗавершениеВыполненияКомандыСОповещением",
ЭтотОбъект, ПараметрыВыполнения); ЭтотОбъект, ПараметрыВыполнения);
@@ -181,4 +181,8 @@
КонецФункции КонецФункции
Функция ТолькоОдинФайлТекст() Экспорт
Возврат "ТолькоОдинФайл";
КонецФункции
#КонецОбласти #КонецОбласти
@@ -2723,12 +2723,9 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; НенужныеФайлы = ВыбратьНенужныеФайлы(Настройка, МассивИсключений);
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
МассивИсключений.Добавить(Настройка.ВладелецФайла); МассивИсключений.Добавить(Настройка.ВладелецФайла);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев); ОчиститьДанныеНенужныхФайлов(НенужныеФайлы);
КонецПроцедуры КонецПроцедуры
Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение) Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение)
@@ -2744,7 +2741,7 @@
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла, | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла,
| ВерсииФайлов.Размер /1024 /1024 КАК ОбъемНенужныхФайлов, | ВерсииФайлов.Размер / (1024 * 1024) КАК Размер,
| Файлы.Ссылка КАК ФайлСсылка, | Файлы.Ссылка КАК ФайлСсылка,
| ВерсииФайлов.Ссылка КАК ВерсияСсылка | ВерсииФайлов.Ссылка КАК ВерсияСсылка
|ИЗ |ИЗ
@@ -2754,6 +2751,7 @@
|ГДЕ |ГДЕ
| ВерсииФайлов.ДатаСоздания <= &ПериодОчистки | ВерсииФайлов.ДатаСоздания <= &ПериодОчистки
| И НЕ Файлы.ПометкаУдаления | И НЕ Файлы.ПометкаУдаления
| И &ЭтоНеГруппа
| И ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца | И ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) = &ТипВладельца
| И ВЫБОР | И ВЫБОР
| КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
@@ -2772,7 +2770,7 @@
| СправочникВладелецФайла.Ссылка, | СправочникВладелецФайла.Ссылка,
| &Реквизиты, | &Реквизиты,
| ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла, | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла,
| ВерсииФайлов.Размер /1024 /1024 КАК ОбъемНенужныхФайлов, | ВерсииФайлов.Размер / (1024 * 1024) КАК Размер,
| Файлы.Ссылка КАК ФайлСсылка, | Файлы.Ссылка КАК ФайлСсылка,
| ВерсииФайлов.Ссылка КАК ВерсияСсылка | ВерсииФайлов.Ссылка КАК ВерсияСсылка
|ИЗ |ИЗ
@@ -2783,6 +2781,7 @@
| ПО СправочникВладелецФайла.Ссылка = Файлы.ВладелецФайла | ПО СправочникВладелецФайла.Ссылка = Файлы.ВладелецФайла
|ГДЕ |ГДЕ
| НЕ Файлы.ПометкаУдаления | НЕ Файлы.ПометкаУдаления
| И &ЭтоНеГруппа
| И НЕ ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ) | И НЕ ЕСТЬNULL(ВерсииФайлов.ПометкаУдаления, ЛОЖЬ)
| И ВЫБОР | И ВЫБОР
| КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) | КОГДА ВерсииФайлов.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
@@ -2805,7 +2804,7 @@
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
| ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла, | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла,
| Файлы.Размер /1024 /1024 КАК ОбъемНенужныхФайлов, | Файлы.Размер / (1024 * 1024) КАК Размер,
| Файлы.Ссылка КАК ФайлСсылка | Файлы.Ссылка КАК ФайлСсылка
|ИЗ |ИЗ
| #ТипВладельцаФайла КАК Файлы | #ТипВладельцаФайла КАК Файлы
@@ -2814,6 +2813,7 @@
|ГДЕ |ГДЕ
| Файлы.ДатаСоздания <= &ПериодОчистки | Файлы.ДатаСоздания <= &ПериодОчистки
| И НЕ Файлы.ПометкаУдаления | И НЕ Файлы.ПометкаУдаления
| И &ЭтоНеГруппа
| И ВЫБОР | И ВЫБОР
| КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
| ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """" | ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """"
@@ -2831,7 +2831,7 @@
"ВЫБРАТЬ "ВЫБРАТЬ
| СправочникВладелецФайла.Ссылка, | СправочникВладелецФайла.Ссылка,
| ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла, | ТИПЗНАЧЕНИЯ(Файлы.ВладелецФайла) КАК ВладелецФайла,
| Файлы.Размер /1024 /1024 КАК ОбъемНенужныхФайлов, | Файлы.Размер / (1024 * 1024) КАК Размер,
| &Реквизиты, | &Реквизиты,
| Файлы.Ссылка КАК ФайлСсылка | Файлы.Ссылка КАК ФайлСсылка
|ИЗ |ИЗ
@@ -2840,6 +2840,7 @@
| ПО Файлы.ВладелецФайла = СправочникВладелецФайла.Ссылка | ПО Файлы.ВладелецФайла = СправочникВладелецФайла.Ссылка
|ГДЕ |ГДЕ
| НЕ Файлы.ПометкаУдаления | НЕ Файлы.ПометкаУдаления
| И &ЭтоНеГруппа
| И ВЫБОР | И ВЫБОР
| КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске) | КОГДА Файлы.ТипХраненияФайла = ЗНАЧЕНИЕ(Перечисление.ТипыХраненияФайлов.ВТомахНаДиске)
| ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """" | ТОГДА (ВЫРАЗИТЬ(Файлы.ПутьКФайлу КАК СТРОКА(100))) <> """"
@@ -2850,7 +2851,6 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты" + ",", РеквизитыВладельцаФайлов(ВладелецФайла)); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Реквизиты" + ",", РеквизитыВладельцаФайлов(ВладелецФайла));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", ПолноеИмяСправочникаФайлов); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#ПолноеИмяСправочникаФайлов", ПолноеИмяСправочникаФайлов);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ВладелецФайла.ПолноеИмя); ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "#СправочникВладелецФайла", ВладелецФайла.ПолноеИмя);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -2867,6 +2867,8 @@
| И ВерсииФайлов.Ссылка <> Файлы.ТекущаяВерсия | И ВерсииФайлов.Ссылка <> Файлы.ТекущаяВерсия
| И ВерсииФайлов.РодительскаяВерсия <> ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)"; // @query-part | И ВерсииФайлов.РодительскаяВерсия <> ЗНАЧЕНИЕ(Справочник.ВерсииФайлов.ПустаяСсылка)"; // @query-part
КонецЕсли; КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ЭтоНеГруппа",
?(МетаданныеОбъектаФайлов.Иерархический, "НЕ Файлы.ЭтоГруппа", "ИСТИНА")); // @query-part
Возврат ТекстЗапроса; Возврат ТекстЗапроса;
@@ -2966,9 +2968,9 @@
// Сведения об очищаемых файлах. // Сведения об очищаемых файлах.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - сведения об очищаемых файлах: // Структура:
// * ОбъемУдаляемыхФайлов - Число - результат отчета см. Отчеты.ПроверкаЦелостностиТома. // * ОбъемУдаляемыхФайлов - Число - в Мб, результат отчета, см. Отчеты.ПроверкаЦелостностиТома.
// * ОбъемНенужныхФайлов - Число - результат отчета см. Отчеты.ОбъемНенужныхФайлов. // * ОбъемНенужныхФайлов - Число - в Мб, результат отчета, см. Отчеты.ОбъемНенужныхФайлов.
// //
Функция СведенияОбОчищаемыхФайлах() Экспорт Функция СведенияОбОчищаемыхФайлах() Экспорт
Результат = Новый Структура; Результат = Новый Структура;
@@ -2990,7 +2992,7 @@
Файл = Новый Файл(ЛишнийФайл.ПолноеИмя); Файл = Новый Файл(ЛишнийФайл.ПолноеИмя);
Если Файл.Существует() Тогда Если Файл.Существует() Тогда
Результат.ОбъемУдаляемыхФайлов = Результат.ОбъемУдаляемыхФайлов + Файл.Размер() ; Результат.ОбъемУдаляемыхФайлов = Результат.ОбъемУдаляемыхФайлов + Файл.Размер();
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -5595,25 +5597,16 @@
#Область ОчисткаНенужныхФайлов #Область ОчисткаНенужныхФайлов
// Параметры: // Параметры:
// ДеревоВладельцев - СтрокаДереваЗначений: // НенужныеФайлы - см. ВыбратьНенужныеФайлы
// * ФайлСсылка - ОпределяемыйТип.ПрисоединенныйФайл
// * ВерсияСсылка - ОпределяемыйТип.ПрисоединенныйФайл
// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * ЭтоНастройкаДляЭлементаСправочника - Булево
// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * ПравилоОтбора - ХранилищеЗначения
// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов
// * ПериодОчистки - ПеречислениеСсылка.ПериодОчисткиФайлов
// * ЭтоФайл - Булево
// //
Процедура ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев) Процедура ОчиститьДанныеНенужныхФайлов(НенужныеФайлы)
Если ДеревоВладельцев.Строки.Количество() = 0 Тогда Если НенужныеФайлы.Строки.Количество() = 0 Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
УдаляемыеПрисоединенныеФайлы = Новый Массив; УдаляемыеПрисоединенныеФайлы = Новый Массив;
Для Каждого Файл Из ДеревоВладельцев.Строки Цикл Для Каждого Файл Из НенужныеФайлы.Строки Цикл
ПрисоединенныйФайл = Файл.ФайлСсылка; // ОпределяемыйТип.ПрисоединенныйФайл ПрисоединенныйФайл = Файл.ФайлСсылка; // ОпределяемыйТип.ПрисоединенныйФайл
ПодготовленныйФайл = ПодготовитьФайлКУдалению(ПрисоединенныйФайл); ПодготовленныйФайл = ПодготовитьФайлКУдалению(ПрисоединенныйФайл);
Если ЗначениеЗаполнено(ПодготовленныйФайл) Тогда Если ЗначениеЗаполнено(ПодготовленныйФайл) Тогда
@@ -5649,7 +5642,7 @@
Если ЕстьМестаИспользования Тогда Если ЕстьМестаИспользования Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ПрисоединенныйФайл = ДеревоВладельцев.Строки.Найти(ПрисоединенныйФайл, "ФайлСсылка"); ПрисоединенныйФайл = НенужныеФайлы.Строки.Найти(ПрисоединенныйФайл, "ФайлСсылка");
УдалитьНенужныеФайлы(ПрисоединенныйФайл); УдалитьНенужныеФайлы(ПрисоединенныйФайл);
КонецЦикла; КонецЦикла;
@@ -5696,7 +5689,7 @@
КонецФункции КонецФункции
// Параметры: // Параметры:
// ОписаниеПрисоединенногоФайла - см. ОчиститьДанныеНенужныхФайлов.ДеревоВладельцев // ОписаниеПрисоединенногоФайла - СтрокаДереваЗначения из см. ВыбратьНенужныеФайлы
// //
Процедура УдалитьНенужныеФайлы(ОписаниеПрисоединенногоФайла) Процедура УдалитьНенужныеФайлы(ОписаниеПрисоединенногоФайла)
@@ -5782,7 +5775,17 @@
Возврат Истина; Возврат Истина;
КонецФункции КонецФункции
Функция ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода) Экспорт // Параметры:
// НастройкаОчистки - СтрокаТаблицыЗначений из см. РегистрыСведений.НастройкиОчисткиФайлов.ТекущиеНастройкиОчистки
// МассивИсключений - Массив из ОпределяемыйТип.ВладелецФайлов
//
// Возвращаемое значение:
// ДеревоЗначений:
// * ФайлСсылка - ОпределяемыйТип.ПрисоединенныйФайл
// * ВладелецФайла - Тип - тип ОпределяемыйТип.ВладелецФайлов.
// * Размер - Число - размер в Мб.
//
Функция ВыбратьНенужныеФайлы(НастройкаОчистки, МассивИсключений) Экспорт
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
@@ -5820,14 +5823,15 @@
ВыбранноеПоле = Структура.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле = Структура.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ФайлСсылка"); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ФайлСсылка");
ВыбранноеПоле = Структура.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ВладелецФайла");
ВыбранноеПоле = Структура.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("Размер");
Если НастройкаОчистки.ЭтоФайл Тогда Если НастройкаОчистки.ЭтоФайл Тогда
СтруктураВерсий = Структура.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных")); СтруктураВерсий = Структура.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ВыбранноеПоле = СтруктураВерсий.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных")); ВыбранноеПоле = СтруктураВерсий.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ВерсияСсылка"); ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("ВерсияСсылка");
КонецЕсли; КонецЕсли;
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
@@ -5870,11 +5874,14 @@
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , ,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВывода.УстановитьОбъект(Новый ДеревоЗначений);
Результат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -7472,6 +7479,9 @@
Процедура ВыполнитьСинхронизациюФайловОблачнымСервисом(ПараметрыСинхронизации) Процедура ВыполнитьСинхронизациюФайловОблачнымСервисом(ПараметрыСинхронизации)
// Корневая запись о начале синхронизации
ЗапомнитьСерверныеДанныеСсылки("", "", "", Ложь, Неопределено, Ложь, ПараметрыСинхронизации.УчетнаяЗапись);
ДеревоФайловСервера = СформироватьСтруктуруДереваФайловСервера(); ДеревоФайловСервера = СформироватьСтруктуруДереваФайловСервера();
АдресСервера = КодироватьURIПоСтруктуре(ПараметрыСинхронизации.СтруктураАдресаСервера); АдресСервера = КодироватьURIПоСтруктуре(ПараметрыСинхронизации.СтруктураАдресаСервера);
@@ -7483,34 +7493,33 @@
ЗаголовкиHTTP["Accept"] = "text/xml"; ЗаголовкиHTTP["Accept"] = "text/xml";
ЗаголовкиHTTP["Depth"] = "0"; ЗаголовкиHTTP["Depth"] = "0";
Попытка
Результат = ВыполнитьМетодWebdav("PROPFIND", АдресСервера, ЗаголовкиHTTP, ПараметрыСинхронизации); Результат = ВыполнитьМетодWebdav("PROPFIND", АдресСервера, ЗаголовкиHTTP, ПараметрыСинхронизации);
Если Не Результат.Успешно Тогда Если Не Результат.Успешно Тогда
ВызватьМетодMKCOL(АдресСервера, ПараметрыСинхронизации); ВызватьМетодMKCOL(АдресСервера, ПараметрыСинхронизации);
КонецЕсли; КонецЕсли;
Исключение
ТекстСобытия = НСтр("ru = 'Не удалось создать корневую папку на сервере, синхронизация файлов не выполнена.'");
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка);
Возврат;
КонецПопытки
КонецЕсли; КонецЕсли;
Отказ = Ложь; Отказ = Ложь;
СинхронизацияВыполнена = Истина; СинхронизацияВыполнена = Истина;
// Корневая запись о начале синхронизации
ЗапомнитьСерверныеДанныеСсылки("", "", "", Ложь, Неопределено, Ложь, ПараметрыСинхронизации.УчетнаяЗапись);
СкачатьДеревоФайловРекурсивно(ДеревоФайловСервера.Строки, АдресСервера, ПараметрыСинхронизации, Отказ); СкачатьДеревоФайловРекурсивно(ДеревоФайловСервера.Строки, АдресСервера, ПараметрыСинхронизации, Отказ);
Если Отказ = Истина Тогда Если Отказ = Истина Тогда
ТекстСобытия = НСтр("ru = 'Не удалось загрузить структуру файлов с сервера, синхронизация файлов не выполнена.'");
ТекстСобытия = НСтр("ru = 'Не удалось загрузить структуру файлов с сервера, синхронизация не выполнена.'");
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка); ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Сравниваем с деревом файлов в системе, синхронизация идет по уникальному идентификатору. // Сравниваем с деревом файлов в системе, синхронизация идет по уникальному идентификатору.
ТаблицаФайлов = ВыбратьДанныеПоПравилам(ПараметрыСинхронизации.УчетнаяЗапись); ТаблицаФайлов = ВыбратьДанныеПоПравилам(ПараметрыСинхронизации.УчетнаяЗапись);
Если ТаблицаФайлов = Неопределено Тогда Если ТаблицаФайлов = Неопределено Тогда
ТекстСобытия = НСтр("ru = 'Не удалось получить таблицу файлов из информационной базы, синхронизация не выполнена.'"); ТекстСобытия = НСтр("ru = 'Не удалось получить таблицу файлов из информационной базы, синхронизация файлов не выполнена.'");
ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка); ЗаписатьВЖурналСобытийСинхронизацииФайлов(ТекстСобытия, ПараметрыСинхронизации.УчетнаяЗапись, УровеньЖурналаРегистрации.Ошибка);
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -8478,10 +8487,10 @@
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
Если ИмяСправочника = "ВерсииФайлов" Тогда Если ИмяСправочника = "ВерсииФайлов" Тогда
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| И НЕ Файлы.Владелец.Зашифрован"; // @query-part-1 | И НЕ Файлы.Владелец.Зашифрован"; // @query-part
Иначе Иначе
ТекстЗапроса = ТекстЗапроса + " ТекстЗапроса = ТекстЗапроса + "
| И НЕ Файлы.Зашифрован"; // @query-part-1 | И НЕ Файлы.Зашифрован"; // @query-part
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -8813,7 +8822,7 @@
ИЛИ РеквизитыФайла.Том <> ТекущаяВерсия.Том ИЛИ РеквизитыФайла.Том <> ТекущаяВерсия.Том
ИЛИ РеквизитыФайла.ПутьКФайлу <> ТекущаяВерсия.ПутьКФайлу ИЛИ РеквизитыФайла.ПутьКФайлу <> ТекущаяВерсия.ПутьКФайлу
ИЛИ РеквизитыФайла.ИндексКартинки <> ТекущаяВерсия.ИндексКартинки ИЛИ РеквизитыФайла.ИндексКартинки <> ТекущаяВерсия.ИндексКартинки
ИЛИ РеквизитыФайла.ДатаМодификацииУниверсальная <> ТекущаяВерсия.ДатаМодификацииФайла Тогда ИЛИ РеквизитыФайла.ДатаМодификацииУниверсальная <> ТекущаяВерсия.ДатаМодификацииУниверсальная Тогда
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
БлокировкаДанных = Новый БлокировкаДанных; БлокировкаДанных = Новый БлокировкаДанных;
@@ -627,6 +627,7 @@
Файл.ВладелецФайла = Владелец; Файл.ВладелецФайла = Владелец;
Файл.Наименование = СведенияОФайле.ИмяБезРасширения; Файл.Наименование = СведенияОФайле.ИмяБезРасширения;
Файл.Автор = ?(СведенияОФайле.Автор <> Неопределено, СведенияОФайле.Автор, Пользователи.АвторизованныйПользователь()); Файл.Автор = ?(СведенияОФайле.Автор <> Неопределено, СведенияОФайле.Автор, Пользователи.АвторизованныйПользователь());
Файл.Изменил = Файл.Автор;
Файл.ДатаСоздания = ТекущаяДатаСеанса(); Файл.ДатаСоздания = ТекущаяДатаСеанса();
Файл.Описание = СведенияОФайле.Комментарий; Файл.Описание = СведенияОФайле.Комментарий;
Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Неопределено); Файл.ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Неопределено);
@@ -2414,7 +2414,7 @@
ПараметрыЦикла = Новый Структура(); ПараметрыЦикла = Новый Структура();
ПараметрыЦикла.Вставить("ВидОперации", НСтр("ru = 'Подготовка транзакции'", КодЯзыка())); ПараметрыЦикла.Вставить("ВидОперации", НСтр("ru = 'Подготовка транзакции'", КодЯзыка()));
ПараметрыЦикла.Вставить("НастройкиПользователя", ПараметрыВыполнения.НастройкиПользователя); ПараметрыЦикла.Вставить("НастройкиПользователя", ПараметрыВыполнения.НастройкиПользователя);
ПараметрыЦикла.Вставить("ПараметрыВыполнения", ПараметрыВыполнения); ПараметрыЦикла.Вставить("ПараметрыВыполнения", ПроверитьПараметрыОперации(ПараметрыВыполнения));
ПараметрыЦикла.Вставить("ПараметрыОперации", ДополнимПараметры); ПараметрыЦикла.Вставить("ПараметрыОперации", ДополнимПараметры);
ПараметрыЦикла.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении); ПараметрыЦикла.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
@@ -7226,7 +7226,8 @@
Если ПараметрыФормы <> Неопределено Тогда Если ПараметрыФормы <> Неопределено Тогда
Для каждого СтрокаКлюча Из Результат Цикл Для каждого СтрокаКлюча Из Результат Цикл
Если ТипЗнч(СтрокаКлюча.Значение) = Тип("ФормаКлиентскогоПриложения") Тогда Если ТипЗнч(СтрокаКлюча.Значение) = Тип("ФормаКлиентскогоПриложения")
ИЛИ ТипЗнч(СтрокаКлюча.Значение) = Тип("ОписаниеОповещения") Тогда
Результат.Вставить(СтрокаКлюча.Ключ, Неопределено); Результат.Вставить(СтрокаКлюча.Ключ, Неопределено);
ИначеЕсли ТипЗнч(СтрокаКлюча.Значение) = Тип("Структура") Тогда ИначеЕсли ТипЗнч(СтрокаКлюча.Значение) = Тип("Структура") Тогда
Результат.Вставить(СтрокаКлюча.Ключ, ПодготовитьПараметрыФормы(СтрокаКлюча.Значение)); Результат.Вставить(СтрокаКлюча.Ключ, ПодготовитьПараметрыФормы(СтрокаКлюча.Значение));
@@ -11,7 +11,7 @@
// См. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(). // См. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске().
Функция ПараметрыРаботыКлиентаПриЗапуске() Экспорт Функция ПараметрыРаботыКлиентаПриЗапуске() Экспорт
ПроверитьПорядокЗапускаПрограммыПередНачаломРаботыСистемы(); ПроверитьЗапускПрограммыЗавершен(Истина);
ПараметрыПриЗапускеПрограммы = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"]; ПараметрыПриЗапускеПрограммы = ПараметрыПриложения["СтандартныеПодсистемы.ПараметрыПриЗапускеПрограммы"];
@@ -59,8 +59,7 @@
// См. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента(). // См. СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().
Функция ПараметрыРаботыКлиента() Экспорт Функция ПараметрыРаботыКлиента() Экспорт
ПроверитьПорядокЗапускаПрограммыПередНачаломРаботыСистемы(); ПроверитьЗапускПрограммыЗавершен();
ПроверитьПорядокЗапускаПрограммыПриНачалеРаботыСистемы();
СвойстваКлиента = Новый Структура; СвойстваКлиента = Новый Структура;
СтандартныеПодсистемыКлиент.ЗаполнитьПараметрыРаботыКлиентаНаСервере(СвойстваКлиента); СтандартныеПодсистемыКлиент.ЗаполнитьПараметрыРаботыКлиентаНаСервере(СвойстваКлиента);
@@ -69,8 +68,6 @@
КонецФункции КонецФункции
#Область ПредопределенныйЭлемент
// См. СтандартныеПодсистемыПовтИсп.СсылкиПоИменамПредопределенных // См. СтандартныеПодсистемыПовтИсп.СсылкиПоИменамПредопределенных
Функция СсылкиПоИменамПредопределенных(ПолноеИмяОбъектаМетаданных) Экспорт Функция СсылкиПоИменамПредопределенных(ПолноеИмяОбъектаМетаданных) Экспорт
@@ -78,28 +75,27 @@
КонецФункции КонецФункции
#КонецОбласти Процедура ПроверитьЗапускПрограммыЗавершен(ТолькоПередНачаломРаботыСистемы = Ложь)
Процедура ПроверитьПорядокЗапускаПрограммыПередНачаломРаботыСистемы()
ИмяПараметра = "СтандартныеПодсистемы.ЗапускПрограммыЗавершен"; ИмяПараметра = "СтандартныеПодсистемы.ЗапускПрограммыЗавершен";
Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда Если ПараметрыПриложения[ИмяПараметра] = Неопределено Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка запуска программы. НСтр("ru = 'Недопустимый вызов %1 при запуске программы.
|Первой процедурой, которая вызывается из обработчика события %1 |Первой процедурой, которая вызывается из обработчика события %2, должна быть процедура %3.'"),
|должна быть процедура %2.'"), "СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента", "ПередНачаломРаботыСистемы",
"ПередНачаломРаботыСистемы", "СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы"); "СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы");
КонецЕсли; КонецЕсли;
КонецПроцедуры Если ТолькоПередНачаломРаботыСистемы Тогда
Возврат;
Процедура ПроверитьПорядокЗапускаПрограммыПриНачалеРаботыСистемы() КонецЕсли;
Если Не СтандартныеПодсистемыКлиент.ЗапускПрограммыЗавершен() Тогда Если Не СтандартныеПодсистемыКлиент.ЗапускПрограммыЗавершен() Тогда
ВызватьИсключение ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ошибка запуска программы. НСтр("ru = 'Недопустимый вызов %1 при запуске программы.
|Перед получением параметров работы клиента запуск программы должен быть завершен. |Следует вызывать %2, пока запуск еще не завершен.'"),
|Пока запуск не завершен следует использовать параметры работы клиента при запуске.'"); "СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента",
"СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске");
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -677,6 +677,28 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// Структура:
// * НомерСеанса - Число
// * НачалоСеанса - Дата
// * КлючКомпьютера - Строка
//
Функция СвойстваТекущегоСеанса() Экспорт
Сеанс = ПолучитьТекущийСеансИнформационнойБазы();
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеширование.Добавить(Сеанс.ИмяКомпьютера);
СтрокаХешСуммы = Base64Строка(Хеширование.ХешСумма);
Результат = Новый Структура;
Результат.Вставить("НомерСеанса", Сеанс.НомерСеанса);
Результат.Вставить("НачалоСеанса", Сеанс.НачалоСеанса);
Результат.Вставить("КлючКомпьютера", СтрокаХешСуммы);
Возврат Результат;
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Для справочника ИдентификаторыОбъектовМетаданных. // Для справочника ИдентификаторыОбъектовМетаданных.
@@ -970,15 +970,20 @@
ИмяРеквизита = ""; ИмяРеквизита = "";
// Для определения предопределенных элементов в подсистемах Свойства и КонтактнаяИнформация // Для определения предопределенных элементов в подсистемах Свойства, КонтактнаяИнформация и Взаимодействия
// зачитываются реквизиты ИмяПредопределенногоНабора и ИмяПредопределенногоВида. // зачитываются реквизиты ИмяПредопределенногоНабора, ИмяПредопределенногоВида и ПредопределеннаяПапка.
ЗначенияРеквизитов = Новый Структура("ИмяПредопределенногоНабора,ИмяПредопределенногоВида,ИмяПредопределенныхДанных", ЗначенияРеквизитов = Новый Структура;
"", "", ""); ЗначенияРеквизитов.Вставить("ИмяПредопределенныхДанных", "");
ЗначенияРеквизитов.Вставить("ИмяПредопределенногоНабора", "");
ЗначенияРеквизитов.Вставить("ИмяПредопределенногоВида", "");
ЗначенияРеквизитов.Вставить("ПредопределеннаяПапка", Ложь);
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Элемент); ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Элемент);
Если (ЗначенияРеквизитов.ИмяПредопределенныхДанных = "" Если ЗначенияРеквизитов.ИмяПредопределенныхДанных = ""
И ЗначенияРеквизитов.ИмяПредопределенногоНабора = "" И ЗначенияРеквизитов.ИмяПредопределенногоНабора = ""
И ЗначенияРеквизитов.ИмяПредопределенногоВида = "") Тогда И ЗначенияРеквизитов.ИмяПредопределенногоВида = ""
И Не ЗначенияРеквизитов.ПредопределеннаяПапка Тогда
Возврат Ложь; Возврат Ложь;
КонецЕсли; КонецЕсли;
@@ -986,6 +991,8 @@
ИмяРеквизита = "ИмяПредопределенногоНабора"; ИмяРеквизита = "ИмяПредопределенногоНабора";
ИначеЕсли ЗначенияРеквизитов.ИмяПредопределенногоВида <> "" Тогда ИначеЕсли ЗначенияРеквизитов.ИмяПредопределенногоВида <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоВида"; ИмяРеквизита = "ИмяПредопределенногоВида";
ИначеЕсли ЗначенияРеквизитов.ПредопределеннаяПапка Тогда
ИмяРеквизита = "ПредопределеннаяПапка";
Иначе Иначе
ИмяРеквизита = "ИмяПредопределенныхДанных"; ИмяРеквизита = "ИмяПредопределенныхДанных";
КонецЕсли; КонецЕсли;
@@ -1004,15 +1011,23 @@
// Параметры: // Параметры:
// ИмяПараметра - Строка - не более 128 символов. Например, // ИмяПараметра - Строка - не более 128 символов. Например,
// "СтандартныеПодсистемы.ВариантыОтчетов.ОтчетыСНастройками". // "СтандартныеПодсистемы.ВариантыОтчетов.ОтчетыСНастройками".
//
// БезУчетаВерсииРасширений - Булево // БезУчетаВерсииРасширений - Булево
// //
// УжеИзменен - Булево - возвращаемое значение. Устанавливается Истина
// когда БезУчетаВерсииРасширений равно Истина,
// хранилище значения содержит значение отличное от Неопределено и
// значение было установлено более новым сеансом, чем текущий.
// - Неопределено - установка значения не требуется.
//
// Возвращаемое значение: // Возвращаемое значение:
// Произвольный - возвращается Неопределено, если параметр не заполнен // Произвольный - возвращается Неопределено, если параметр не заполнен
// для текущей версии расширений. // для текущей версии расширений.
// //
Функция ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь) Экспорт Функция ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь, УжеИзменен = Неопределено) Экспорт
Возврат РегистрыСведений.ПараметрыРаботыВерсийРасширений.ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений); Возврат РегистрыСведений.ПараметрыРаботыВерсийРасширений.ПараметрРаботыРасширения(ИмяПараметра,
БезУчетаВерсииРасширений, УжеИзменен);
КонецФункции КонецФункции
@@ -2806,14 +2821,14 @@
"ПометкаУдаления, ИмяПредопределенныхДанных" "ПометкаУдаления, ИмяПредопределенныхДанных"
+ ?(ИмяРеквизита <> "ИмяПредопределенныхДанных", ", " + ИмяРеквизита, "")); + ?(ИмяРеквизита <> "ИмяПредопределенныхДанных", ", " + ИмяРеквизита, ""));
Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] <> "") Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита]))
И СтарыеСвойства.ПометкаУдаления <> Истина Тогда И СтарыеСвойства.ПометкаУдаления <> Истина Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент: НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент:
|""%1"".'"), |""%1"".'"),
Строка(Источник.Ссылка)); Строка(Источник.Ссылка));
ИначеЕсли (ЗначениеРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] = "" ИначеЕсли (ЗначениеЗаполнено(ЗначениеРеквизита) И Не ЗначениеЗаполнено(СтарыеСвойства[ИмяРеквизита])
Или СтарыеСвойства.ИмяПредопределенныхДанных = "") Или СтарыеСвойства.ИмяПредопределенныхДанных = "")
И СтарыеСвойства.ПометкаУдаления = Истина Тогда И СтарыеСвойства.ПометкаУдаления = Истина Тогда
@@ -2836,6 +2851,13 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ЗначенияРеквизитов = Новый Структура("Владелец");
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Источник);
Если ЗначениеЗаполнено(ЗначенияРеквизитов.Владелец) И ЗначенияРеквизитов.Владелец.ПолучитьОбъект() = Неопределено Тогда
Возврат;
КонецЕсли;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимо удалять предопределенный элемент НСтр("ru = 'Недопустимо удалять предопределенный элемент
|""%1"".'"), |""%1"".'"),
@@ -3402,6 +3402,13 @@
И Источник.ДополнительныеСвойства.Свойство( И Источник.ДополнительныеСвойства.Свойство(
"НаборыЗначенийДоступаТабличнойЧастиЗаполнены")) Тогда "НаборыЗначенийДоступаТабличнойЧастиЗаполнены")) Тогда
Если Источник.ЭтоНовый()
И ОбщегоНазначения.ИнформационнаяБазаФайловая()
И Не ПропуститьПроверкуДоступа(Отказ, Источник) Тогда
ПредварительнаяБлокировкаПередЗаписьюНовогоВФайловойИБ();
КонецЕсли;
Таблица = ПолучитьНаборыЗначенийДоступаТабличнойЧасти(Источник); Таблица = ПолучитьНаборыЗначенийДоступаТабличнойЧасти(Источник);
ПодготовитьНаборыЗначенийДоступаКЗаписи(Неопределено, Таблица, Ложь); ПодготовитьНаборыЗначенийДоступаКЗаписи(Неопределено, Таблица, Ложь);
Источник.НаборыЗначенийДоступа.Загрузить(Таблица); Источник.НаборыЗначенийДоступа.Загрузить(Таблица);
@@ -5220,8 +5227,8 @@
КонецЕсли; КонецЕсли;
// Проверка необходимости обновления регистра ТаблицыГруппДоступа. // Проверка необходимости обновления регистра ТаблицыГруппДоступа.
ПараметрыОбновления = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения( ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.ПараметрыОбновленияТаблицГруппДоступа";
"СтандартныеПодсистемы.УправлениеДоступом.ПараметрыОбновленияТаблицГруппДоступа", Истина); ПараметрыОбновления = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если ТипЗнч(ПараметрыОбновления) <> Тип("Структура") Если ТипЗнч(ПараметрыОбновления) <> Тип("Структура")
Или Не ПараметрыОбновления.Свойство("ПоследниеПраваРолейРасширений") Или Не ПараметрыОбновления.Свойство("ПоследниеПраваРолейРасширений")
@@ -5264,10 +5271,16 @@
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("РегистрСведений.ТаблицыГруппДоступа"); Блокировка.Добавить("РегистрСведений.ТаблицыГруппДоступа");
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
Если ПараметрыОбновления <> Неопределено Тогда // Не первое обновление. УжеИзменен = Ложь;
СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если УжеИзменен Тогда
ПроверитьАктуальностьМетаданных(); ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
Если УстановитьНовыеПраваРолейРасширений Тогда; Если УстановитьНовыеПраваРолейРасширений Тогда;
@@ -5275,8 +5288,7 @@
"СтандартныеПодсистемы.УправлениеДоступом.ПраваРолей", "СтандартныеПодсистемы.УправлениеДоступом.ПраваРолей",
Новый ХранилищеЗначения(ПраваРолейРасширений)); Новый ХранилищеЗначения(ПраваРолейРасширений));
КонецЕсли; КонецЕсли;
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения( СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра,
"СтандартныеПодсистемы.УправлениеДоступом.ПараметрыОбновленияТаблицГруппДоступа",
НовыеПараметрыОбновления, Истина); НовыеПараметрыОбновления, Истина);
РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(, ОбъектыСИзменениемПравДляОбновления); РегистрыСведений.ТаблицыГруппДоступа.ОбновитьДанныеРегистра(, ОбъектыСИзменениемПравДляОбновления);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -6321,10 +6333,11 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра); УжеИзменен = Ложь;
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра, УжеИзменен);
Если ТекущееЗначение.ХешСумма <> ЗначениеСеанса.ХешСумма Тогда Если ТекущееЗначение.ХешСумма <> ЗначениеСеанса.ХешСумма Тогда
ПропуститьОбновление = Ложь; ПропуститьОбновление = Ложь;
Если ЗначениеЗаполнено(ТекущееЗначение.ХешСумма) Тогда // Не первое обновление. Если УжеИзменен Тогда
Попытка Попытка
ПроверитьАктуальностьМетаданных(); ПроверитьАктуальностьМетаданных();
Исключение Исключение
@@ -6353,9 +6366,9 @@
КонецПроцедуры КонецПроцедуры
// См. УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса // См. УправлениеДоступомСлужебныйПовтИсп.ИдентификаторыРолейСеанса
Функция ПоследниеИдентификаторыРолей(ИмяПараметра) Функция ПоследниеИдентификаторыРолей(ИмяПараметра, УжеИзменен = Ложь)
Значение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); Значение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если ТипЗнч(Значение) <> Тип("ФиксированнаяСтруктура") Если ТипЗнч(Значение) <> Тип("ФиксированнаяСтруктура")
Или Не Значение.Свойство("ХешСумма") Или Не Значение.Свойство("ХешСумма")
Или Не Значение.Свойство("ИдентификаторыРолей") Или Не Значение.Свойство("ИдентификаторыРолей")
@@ -7598,11 +7611,12 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение);
Если СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа Если СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа
<> НовоеЗначение.ХешСуммаТиповГруппИЗначенийДоступа Тогда <> НовоеЗначение.ХешСуммаТиповГруппИЗначенийДоступа Тогда
Если ЗначениеЗаполнено(СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа) Тогда // Не первое обновление. Если УжеИзменен Тогда
ПроверитьАктуальностьМетаданных(); ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации(); РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации();
@@ -7671,10 +7685,11 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение);
Если СтароеЗначение.ХешСумма <> НовоеЗначение.ХешСумма Тогда Если СтароеЗначение.ХешСумма <> НовоеЗначение.ХешСумма Тогда
Если ЗначениеЗаполнено(СтароеЗначение.ХешСумма) Тогда // Не первое обновление. Если УжеИзменен Тогда
ПроверитьАктуальностьМетаданных(); ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
@@ -9635,14 +9650,9 @@
#Область ПроверкаДоступаПриИзменении #Область ПроверкаДоступаПриИзменении
// Для обработчиков подписок на событие ПередЗаписью. // Для процедур ПроверитьДоступПередЗаписьюИсточника и др.
Процедура ПроверитьДоступПередЗаписьюИсточника(Источник, Отказ, ЭтоНаборЗаписей, Замещение) Процедура ПредварительнаяБлокировкаПередЗаписьюНовогоВФайловойИБ()
Если ПропуститьПроверкуДоступа(Отказ, Источник) Тогда
Возврат;
КонецЕсли;
Если Не ЭтоНаборЗаписей И Источник.ЭтоНовый() И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
Блокировка.Добавить("РегистрСведений.КлючиДоступаКОбъектам"); Блокировка.Добавить("РегистрСведений.КлючиДоступаКОбъектам");
Блокировка.Добавить("РегистрСведений.КлючиДоступаГруппДоступа"); Блокировка.Добавить("РегистрСведений.КлючиДоступаГруппДоступа");
@@ -9670,6 +9680,21 @@
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НаследованиеНастроекПравОбъектов"); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.НаследованиеНастроекПравОбъектов");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Блокировка.Заблокировать(); Блокировка.Заблокировать();
КонецПроцедуры
// Для обработчиков подписок на событие ПередЗаписью.
Процедура ПроверитьДоступПередЗаписьюИсточника(Источник, Отказ, ЭтоНаборЗаписей, Замещение)
Если ПропуститьПроверкуДоступа(Отказ, Источник) Тогда
Возврат;
КонецЕсли;
Если Не ЭтоНаборЗаписей
И Источник.ЭтоНовый()
И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
ПредварительнаяБлокировкаПередЗаписьюНовогоВФайловойИБ();
КонецЕсли; КонецЕсли;
ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь() ЭтоПолноправныйПользователь = Пользователи.ЭтоПолноправныйПользователь()
@@ -22562,6 +22587,14 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Попытка
ВызватьИсключение НСтр("ru = 'Стек вызовов'");
Исключение
СтекВызовов = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
КонецПопытки;
КомментарийДляЖурнала = КомментарийДляЖурнала + Символы.ПС + Символы.ПС + СтекВызовов;
ЗаписьЖурналаРегистрации( ЗаписьЖурналаРегистрации(
НСтр("ru = 'Управление доступом.Показатели.Планирование обновления доступа'", НСтр("ru = 'Управление доступом.Показатели.Планирование обновления доступа'",
ОбщегоНазначения.КодОсновногоЯзыка()), ОбщегоНазначения.КодОсновногоЯзыка()),
@@ -6037,7 +6037,7 @@
| ЕСТЬNULL(КонтактнаяИнформация.Значение, """") КАК Значение, | ЕСТЬNULL(КонтактнаяИнформация.Значение, """") КАК Значение,
| ЕСТЬNULL(КонтактнаяИнформация.ДействуетС, 0) КАК ДействуетС, | ЕСТЬNULL(КонтактнаяИнформация.ДействуетС, 0) КАК ДействуетС,
| ЕСТЬNULL(КонтактнаяИнформация.НомерСтроки, 0) КАК НомерСтроки, | ЕСТЬNULL(КонтактнаяИнформация.НомерСтроки, 0) КАК НомерСтроки,
| 0 КАК ИдентификаторСтрокиТабличнойЧасти, | ЕСТЬNULL(КонтактнаяИнформация.ИдентификаторСтрокиТабличнойЧасти, 0) КАК ИдентификаторСтрокиТабличнойЧасти,
| ВЫРАЗИТЬ("""" КАК СТРОКА(200)) КАК ИмяРеквизита, | ВЫРАЗИТЬ("""" КАК СТРОКА(200)) КАК ИмяРеквизита,
| ВидыКонтактнойИнформации.ПометкаУдаления КАК ПометкаУдаления, | ВидыКонтактнойИнформации.ПометкаУдаления КАК ПометкаУдаления,
| ВЫРАЗИТЬ("""" КАК СТРОКА) КАК Комментарий | ВЫРАЗИТЬ("""" КАК СТРОКА) КАК Комментарий
@@ -1348,6 +1348,7 @@
Функция ЧастиАдресаТаблицей(Знач Текст) Функция ЧастиАдресаТаблицей(Знач Текст)
ТипыАдресныхОбъектов = ТипыАдресныхОбъектов();
Результат = ЧастиАдреса(); Результат = ЧастиАдреса();
Номер = 1; Номер = 1;
@@ -1366,29 +1367,72 @@
Строка.Начало = Часть.Начало; Строка.Начало = Часть.Начало;
Строка.Длина = Часть.Длина; Строка.Длина = Часть.Длина;
Позиция = СтрДлина(Значение); Если СтрНайти(Значение, " ") = 0 Тогда
Пока Позиция > 0 Цикл Строка.Наименование = Значение;
Символ = Сред(Значение, Позиция, 1); Строка.Значение = Строка.Наименование;
Если ПустаяСтрока(Символ) Тогда Продолжить;
Строка.Наименование = СокрЛП(Лев(Значение, Позиция-1));
Прервать;
КонецЕсли; КонецЕсли;
Строка.Сокращение = Символ + Строка.Сокращение;
Позиция = Позиция - 1; ЗначениеВерхнийРегистр = ВРег(Значение);
Для Каждого ТипАдресныхОбъектов Из ТипыАдресныхОбъектов Цикл
Если СтрНачинаетсяС(ЗначениеВерхнийРегистр, ТипАдресныхОбъектов.СокращениеВНачале) Тогда
Строка.Наименование = СокрЛП(Сред(Значение, ТипАдресныхОбъектов.Длина + 1));
Строка.Сокращение = СокрЛП(Лев(Значение, ТипАдресныхОбъектов.Длина));
Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.Сокращение);
Прервать;
ИначеЕсли СтрЗаканчиваетсяНа(ЗначениеВерхнийРегистр, ТипАдресныхОбъектов.СокращениеВКонце) Тогда
Строка.Наименование = СокрЛП(Сред(Значение, 1, СтрДлина(Значение) - ТипАдресныхОбъектов.Длина));
Строка.Сокращение = СокрЛП(Прав(Значение, ТипАдресныхОбъектов.Длина));
Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.Сокращение);
Прервать;
КонецЕсли;
КонецЦикла; КонецЦикла;
Если ПустаяСтрока(Строка.Наименование) Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
Строка.Наименование = СокрЛП(Строка.Сокращение); МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор");
Строка.Сокращение = ""; КодРегиона = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(
УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.Сокращение, Истина));
Если КодРегиона <> Неопределено Тогда
Строка.Значение = МодульАдресныйКлассификатор.НаименованиеРегионаПоКоду(КодРегиона);
Строка.Уровень = 1;
КонецЕсли; КонецЕсли;
Если СтрЗаканчиваетсяНа(Строка.Наименование, "тер.") Тогда
Строка.Наименование = СокрЛП(СтрЗаменить(Строка.Наименование, "тер.", ""));
Строка.Сокращение = "тер. " + Строка.Сокращение;
КонецЕсли; КонецЕсли;
Строка.Значение = СокрЛП(Строка.Наименование + " " + Строка.Сокращение);
Если ЗначениеЗаполнено(Строка.Значение) Тогда
Продолжить;
КонецЕсли;
ЧастиАдресногоОбъекта = СтрРазделить(Значение, " " + Символы.ПС + Символы.Таб);
Строка.Сокращение = ЧастиАдресногоОбъекта[0];
ЧастиАдресногоОбъекта.Удалить(0);
Строка.Наименование = СокрЛП(СтрСоединить(ЧастиАдресногоОбъекта, " "));
Строка.Значение = УправлениеКонтактнойИнформациейКлиентСервер.СоединитьНаименованиеИТипАдресногоОбъекта(Строка.Наименование, Строка.Сокращение);
КонецЦикла; КонецЦикла;
Возврат Результат; Возврат Результат;
КонецФункции
Функция ТипыАдресныхОбъектов()
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторПовтИсп = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторПовтИсп");
СписокСокращений = МодульАдресныйКлассификаторПовтИсп.ТипыАдресныхОбъектовДляРаспознаванияАдреса();
Иначе
СписокСокращений = Новый ФиксированноеСоответствие(Новый Соответствие());
КонецЕсли;
Возврат СписокСокращений;
КонецФункции КонецФункции
// Функция-конструктор таблицы содержащей адрес, где каждая строка это часть адреса. // Функция-конструктор таблицы содержащей адрес, где каждая строка это часть адреса.
@@ -1046,6 +1046,7 @@
ОткрытаТаблица = Ложь; ОткрытаТаблица = Ложь;
ОткрытаКлеткаТаблицы = Ложь; ОткрытаКлеткаТаблицы = Ложь;
УстановленАтрибутСохраненияПробелов = Ложь;
ШиринаТаблицы = 0; ШиринаТаблицы = 0;
ШиринаКлеткиТаблицы = 0; ШиринаКлеткиТаблицы = 0;
@@ -1060,6 +1061,7 @@
Если ЧтениеНачалаТекстаСтроки(СтруктураРазбораXML, ЧтениеXML) Тогда Если ЧтениеНачалаТекстаСтроки(СтруктураРазбораXML, ЧтениеXML) Тогда
ОбработатьТекст = ИСТИНА; ОбработатьТекст = ИСТИНА;
УстановленАтрибутСохраненияПробелов = Ложь;
КонецЕсли; КонецЕсли;
Если ЧтениеКонцаТекстаСтроки(СтруктураРазбораXML, ЧтениеXML) Тогда Если ЧтениеКонцаТекстаСтроки(СтруктураРазбораXML, ЧтениеXML) Тогда
@@ -1106,9 +1108,8 @@
Для Каждого ПараметрТекст Из ПараметрыИзТекста Цикл Для Каждого ПараметрТекст Из ПараметрыИзТекста Цикл
Если ДанныеОбъекта.Свойство(ПараметрТекст, ЗначениеПараметра) Тогда ДанныеОбъекта.Свойство(ПараметрТекст, ЗначениеПараметра);
ЗначениеПараметра = СокрЛП(ЗначениеПараметра); ЗначениеПараметра = Строка(ЗначениеПараметра);
КонецЕсли;
Если ТипЗнч(ЗначениеПараметра) = Тип("Строка") И НЕ СтрНачинаетсяС(ЗначениеПараметра, "e1cib/tempstorage") Тогда Если ТипЗнч(ЗначениеПараметра) = Тип("Строка") И НЕ СтрНачинаетсяС(ЗначениеПараметра, "e1cib/tempstorage") Тогда
ТекстУзла = СтрЗаменить(ТекстУзла, "{v8 " + ПараметрТекст + "}", ЗначениеПараметра); ТекстУзла = СтрЗаменить(ТекстУзла, "{v8 " + ПараметрТекст + "}", ЗначениеПараметра);
@@ -1123,7 +1124,7 @@
Если ВыводТекста Тогда Если ВыводТекста Тогда
ЗаписатьТекстВПотоки(СтруктураРазбораXML, ЧтениеXML, "Область", ТекстУзла); ЗаписатьТекстВПотоки(СтруктураРазбораXML, ЧтениеXML, "Область", ТекстУзла, УстановленАтрибутСохраненияПробелов);
ИначеЕсли ВыводКартинки Тогда ИначеЕсли ВыводКартинки Тогда
@@ -1174,7 +1175,7 @@
КонецЕсли КонецЕсли
Иначе Иначе
ЗаписатьЭлементXMLВПоток(СтруктураРазбораXML, ЧтениеXML, ПечатнаяФорма.СтруктураДокумента); ЗаписатьЭлементXMLВПоток(СтруктураРазбораXML, ЧтениеXML, ПечатнаяФорма.СтруктураДокумента, УстановленАтрибутСохраненияПробелов);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -1880,7 +1881,7 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьТекстВПотоки(СтруктураРазбораXML, ЧтениеXML, ИмяПотока = "", Знач Текст = Неопределено) Процедура ЗаписатьТекстВПотоки(СтруктураРазбораXML, ЧтениеXML, ИмяПотока = "", Знач Текст = Неопределено, УстановленАтрибутСохраненияПробелов = Неопределено)
Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл Для Каждого ЭлементПотока Из СтруктураРазбораXML.ПотокиЗаписи Цикл
@@ -1911,6 +1912,9 @@
Для Инд = 1 По ЧислоСтрок Цикл Для Инд = 1 По ЧислоСтрок Цикл
СтрокаТекста = СтрПолучитьСтроку(Текст, Инд); СтрокаТекста = СтрПолучитьСтроку(Текст, Инд);
Если УстановленАтрибутСохраненияПробелов = Ложь Тогда
ЭлементПотока.Значение.Поток.ЗаписатьАтрибут("xml:space", "preserve");
КонецЕсли;
ЭлементПотока.Значение.Поток.ЗаписатьТекст(СтрокаТекста); ЭлементПотока.Значение.Поток.ЗаписатьТекст(СтрокаТекста);
Если Инд < ЧислоСтрок Тогда Если Инд < ЧислоСтрок Тогда
@@ -1923,6 +1927,9 @@
КонецЦикла; КонецЦикла;
Иначе Иначе
Если УстановленАтрибутСохраненияПробелов = Ложь Тогда
ЭлементПотока.Значение.Поток.ЗаписатьАтрибут("xml:space", "preserve");
КонецЕсли;
ЭлементПотока.Значение.Поток.ЗаписатьТекст(Текст); ЭлементПотока.Значение.Поток.ЗаписатьТекст(Текст);
КонецЕсли; КонецЕсли;
@@ -1930,7 +1937,7 @@
КонецПроцедуры КонецПроцедуры
Процедура ЗаписатьЭлементXMLВПоток(СтруктураРазбораXML, ЧтениеXML, СтруктураДокумента) Процедура ЗаписатьЭлементXMLВПоток(СтруктураРазбораXML, ЧтениеXML, СтруктураДокумента, УстановленАтрибутСохраненияПробелов = Неопределено)
Если ЧтениеXML.ТипУзла = ТипУзлаXML.ИнструкцияОбработки Тогда Если ЧтениеXML.ТипУзла = ТипУзлаXML.ИнструкцияОбработки Тогда
@@ -1954,6 +1961,8 @@
ЗначениеАтрибута = СтруктураДокумента.ИдентификаторДокумента; ЗначениеАтрибута = СтруктураДокумента.ИдентификаторДокумента;
КонецЕсли; КонецЕсли;
УстановленАтрибутСохраненияПробелов = ЧтениеXML.Имя = "xml:space";
ЗаписатьАтрибутВПотоки(СтруктураРазбораXML, ЧтениеXML,, ЗначениеАтрибута); ЗаписатьАтрибутВПотоки(СтруктураРазбораXML, ЧтениеXML,, ЗначениеАтрибута);
Если ИмяУзла = "w:document" ИЛИ ИмяУзла = "w:ftr" ИЛИ ИмяУзла = "w:hdr" Тогда Если ИмяУзла = "w:document" ИЛИ ИмяУзла = "w:ftr" ИЛИ ИмяУзла = "w:hdr" Тогда
@@ -1705,7 +1705,7 @@
ОбрабатываемыеНаборы = Запрос.Выполнить().Выгрузить(); ОбрабатываемыеНаборы = Запрос.Выполнить().Выгрузить();
Для Каждого Строка Из ОбрабатываемыеНаборы Цикл Для Каждого Строка Из ОбрабатываемыеНаборы Цикл
СвойстваНабора = ПредопределенныеНаборыСвойств.Получить(Строка.Ссылка); СвойстваНабора = ПредопределенныеНаборыСвойств.Получить(Строка.Ссылка); // см. Справочники.НаборыДополнительныхРеквизитовИСведений.СвойстваНабора
Объект = СвойстваНабора.Ссылка.ПолучитьОбъект(); Объект = СвойстваНабора.Ссылка.ПолучитьОбъект();
СоздатьНаборСвойств(Объект, СвойстваНабора); СоздатьНаборСвойств(Объект, СвойстваНабора);
@@ -307,6 +307,7 @@
Структура = Новый Структура; Структура = Новый Структура;
Структура.Вставить("ДанныеУдостоверяющегоЦентра"); Структура.Вставить("ДанныеУдостоверяющегоЦентра");
Структура.Вставить("ЗначенияПоиска");
Структура.Вставить("НаименованиеУдостоверяющегоЦентра", ""); Структура.Вставить("НаименованиеУдостоверяющегоЦентра", "");
Структура.Вставить("ДобавкаВремени"); Структура.Вставить("ДобавкаВремени");
Структура.Вставить("НаДату"); Структура.Вставить("НаДату");
@@ -472,17 +473,16 @@
Если ВозможенПеревыпуск Тогда Если ВозможенПеревыпуск Тогда
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат.'"), "ПодатьЗаявлениеНаСертификат"); НСтр("ru = 'Подайте <a href = ""%1"">заявление</a> на новый сертификат или добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
"ПодатьЗаявлениеНаСертификат", КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
Иначе Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Решение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a>.'"), НСтр("ru = 'Получите новый сертификат в <a href = ""%1"">соответствующем удостоверяющем центре</a> или добавьте удостоверяющий центр %2 в <a href = ""%3"">список разрешенных</a> неаккредитованных УЦ.'"),
СсылкаНаСтатьюОбУдостоверяющихЦентрах()); СсылкаНаСтатьюОбУдостоверяющихЦентрах(), КонтекстПроверки.НаименованиеУдостоверяющегоЦентра,
"ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных");
КонецЕсли; КонецЕсли;
Иначе
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки =
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.ТекстОшибки +" "+ РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина;
РезультатПроверкиУдостоверяющегоЦентра.Предупреждение.Причина = Неопределено;
КонецЕсли; КонецЕсли;
Возврат РезультатПроверкиУдостоверяющегоЦентра; Возврат РезультатПроверкиУдостоверяющегоЦентра;
@@ -422,6 +422,7 @@
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата(); КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра; КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра;
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра; КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра;
КонтекстПроверки.ЗначенияПоиска = ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска;
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ТекущаяДатаСеанса(), НаДату); КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ТекущаяДатаСеанса(), НаДату);
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени(); КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи; КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
@@ -1676,6 +1676,7 @@
КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата(); КонтекстПроверки = МодульЭлектроннаяПодписьКлиентСерверЛокализация.КонтекстПроверкиУдостоверяющегоЦентраСертификата();
КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра; КонтекстПроверки.ДанныеУдостоверяющегоЦентра = ДанныеУдостоверяющегоЦентра;
КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра; КонтекстПроверки.НаименованиеУдостоверяющегоЦентра = ДанныеДляПроверкиУдостоверяющегоЦентра.НаименованиеУдостоверяющегоЦентра;
КонтекстПроверки.ЗначенияПоиска = ДанныеДляПроверкиУдостоверяющегоЦентра.ЗначенияПоиска;
КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ОбщегоНазначенияКлиент.ДатаСеанса(), НаДату); КонтекстПроверки.НаДату = ?(НаДату = Неопределено, ОбщегоНазначенияКлиент.ДатаСеанса(), НаДату);
КонтекстПроверки.ДобавкаВремени = ДобавкаВремени(); КонтекстПроверки.ДобавкаВремени = ДобавкаВремени();
КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи; КонтекстПроверки.ЭтоПроверкаПодписи = ЭтоПроверкаПодписи;
@@ -8007,33 +8008,37 @@
Процедура ОбработатьНавигационнуюСсылкуКлассификатора(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка, ДополнительныеДанные = Неопределено) Экспорт Процедура ОбработатьНавигационнуюСсылкуКлассификатора(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка, ДополнительныеДанные = Неопределено) Экспорт
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
Если НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьСертификат" Тогда Сертификат = Неопределено;
Если ТипЗнч(ДополнительныеДанные) = Тип("Структура") Тогда
Если ДополнительныеДанные = Неопределено Тогда Сертификат = ДополнительныеДанные.Сертификат;
Возврат;
КонецЕсли; КонецЕсли;
Сертификат = ДополнительныеДанные.Сертификат; Если НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьСертификат" Тогда
Если ЗначениеЗаполнено(Сертификат) Тогда Если ЗначениеЗаполнено(Сертификат) Тогда
ПоказатьЗначение( ,Сертификат); ПоказатьЗначение( ,Сертификат);
КонецЕсли; КонецЕсли;
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьСписокПрограмм" Тогда
ЭлектроннаяПодписьКлиент.ОткрытьНастройкиЭлектроннойПодписиИШифрования("Программы");
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ПодатьЗаявлениеНаСертификат" Тогда ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ПодатьЗаявлениеНаСертификат" Тогда
Если ДополнительныеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Сертификат = ДополнительныеДанные.Сертификат;
Если ЗначениеЗаполнено(Сертификат) Тогда Если ЗначениеЗаполнено(Сертификат) Тогда
ПараметрыСоздания = Новый Структура; ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("СоздатьЗаявление", Истина); ПараметрыСоздания.Вставить("СоздатьЗаявление", Истина);
ПараметрыСоздания.Вставить("СертификатОснование", Сертификат); ПараметрыСоздания.Вставить("СертификатОснование", Сертификат);
ДобавитьСертификат(ПараметрыСоздания); ДобавитьСертификат(ПараметрыСоздания);
КонецЕсли; КонецЕсли;
// Локализация
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ДобавитьУдостоверяющийЦентрВСписокРазрешенныхНеаккредитованных" Тогда
ИначеЕсли НавигационнаяСсылкаФорматированнойСтроки = "ОткрытьСписокПрограмм" Тогда Если ЗначениеЗаполнено(Сертификат) И ЭлектроннаяПодписьКлиент.ОбщиеНастройки().ДоступнаПроверкаПоСпискуУЦ Тогда
ЭлектроннаяПодписьКлиент.ОткрытьНастройкиЭлектроннойПодписиИШифрования("Программы"); ПараметрыСоздания = Новый Структура;
ПараметрыСоздания.Вставить("Сертификат", Сертификат);
ОткрытьФорму("ОбщаяФорма.РазрешенныеНеаккредитованныеУЦ", ПараметрыСоздания, Элемент);
КонецЕсли;
// Конец Локализация
Иначе Иначе
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаФорматированнойСтроки, ); ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигационнаяСсылкаФорматированнойСтроки, );
КонецЕсли; КонецЕсли;
@@ -135,7 +135,7 @@
РазрешенныеНеаккредитованныеУЦ = Новый Соответствие; РазрешенныеНеаккредитованныеУЦ = Новый Соответствие;
МассивЗначенийПоиска = СтрРазделить(Константы.РазрешенныеНеаккредитованныеУЦ.Получить(), ",;" + Символы.ПС); МассивЗначенийПоиска = СтрРазделить(Константы.РазрешенныеНеаккредитованныеУЦ.Получить(), ",;" + Символы.ПС, Ложь);
Для Каждого ТекущееЗначениеПоиска Из МассивЗначенийПоиска Цикл Для Каждого ТекущееЗначениеПоиска Из МассивЗначенийПоиска Цикл
ЗначениеПоиска = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(ТекущееЗначениеПоиска); ЗначениеПоиска = ЭлектроннаяПодписьКлиентСерверЛокализация.ПодготовитьЗначениеПоиска(ТекущееЗначениеПоиска);
Если Не ЗначениеЗаполнено(ЗначениеПоиска) Тогда Если Не ЗначениеЗаполнено(ЗначениеПоиска) Тогда
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="46d9a112-128a-4524-bcdd-e7e991a2b1f6"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4efe36f5-b178-4958-a26f-f549e1243965">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="8ccedcbf-9000-4d26-ab20-a9edec48cdf8"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="d16c264c-880f-477e-a983-86247ad01d0c"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="d7d135d7-9c09-4b9d-bf39-9ea484f0cbea"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="bda9ca33-dc73-46c2-93b9-3484a71e5a87"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="bd788b56-5121-495e-bdea-7ccabbd57b71"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="abdb29e6-9425-4979-beee-ff27b439b2aa"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="a0a5c60b-10c8-47b6-8ca5-b060a5f463cd"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="1ee52ac9-47ae-4c53-aba4-c2855a90cab4"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="88c72ae7-46a9-4d8b-8609-53ee855aefe0"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="042507bf-7080-4498-be28-fbd79ac7bd3d"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="b9dcf5f4-f32d-499a-bdc5-37341fe3dd91"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="041c4ea6-51d2-434a-aeea-81eec468f4ba"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="fa92b851-faa0-40a2-bed3-14b221b80160"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="bddaf223-9e94-4efb-8772-ab12246a5bc8"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.7.110</version> <version>3.1.7.123</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,3282cfbd-ca6e-4669-bce6-c738be4f827c,1,2ee48293-fbd0-49ab-91cb-0b1098b642a8,"3.1.7.110","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6757,1,0,46d9a112-128a-4524-bcdd-e7e991a2b1f6,46d9a112-128a-4524-bcdd-e7e991a2b1f6,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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-91c7Line truncated {6,1,1,1d3b400f-321b-4a0d-9220-f34cb9095dea,1,a4ace054-5c2c-4551-8927-d03035615a60,"3.1.7.123","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6757,1,0,4efe36f5-b178-4958-a26f-f549e1243965,4efe36f5-b178-4958-a26f-f549e1243965,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,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,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,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,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,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,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-91c7Line truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 42; Возврат 43;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.7.91"; Возврат "3.1.7.115";
КонецФункции КонецФункции
@@ -222,8 +222,9 @@
<Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/> <Item Calendar="06" Year="2021" DayType="Праздник" Date="20210721" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/> <Item Calendar="06" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="06" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/> <Item Calendar="06" Year="2022" DayType="Праздник" Date="20220709" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/> <Item Calendar="06" Year="2022" DayType="Праздник" Date="20220710" SwapDate=""/>
<Item Calendar="06" Year="2022" DayType="Праздник" Date="20220711" SwapDate=""/>
<Item Calendar="07" Year="2016" DayType="Праздник" Date="20160328" SwapDate=""/> <Item Calendar="07" Year="2016" DayType="Праздник" Date="20160328" SwapDate=""/>
<Item Calendar="07" Year="2016" DayType="Праздник" Date="20160521" SwapDate=""/> <Item Calendar="07" Year="2016" DayType="Праздник" Date="20160521" SwapDate=""/>
<Item Calendar="07" Year="2016" DayType="Нерабочий" Date="20160705" SwapDate=""/> <Item Calendar="07" Year="2016" DayType="Нерабочий" Date="20160705" SwapDate=""/>
@@ -269,9 +270,7 @@
<Item Calendar="07" Year="2021" DayType="Праздник" Date="20210920" SwapDate=""/> <Item Calendar="07" Year="2021" DayType="Праздник" Date="20210920" SwapDate=""/>
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220328" SwapDate=""/> <Item Calendar="07" Year="2022" DayType="Праздник" Date="20220328" SwapDate=""/>
<Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220521" SwapDate=""/> <Item Calendar="07" Year="2022" DayType="Нерабочий" Date="20220521" SwapDate=""/>
<Item Calendar="07" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="07" Year="2022" DayType="Праздник" Date="20220711" SwapDate=""/>
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/>
<Item Calendar="07" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/>
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220901" SwapDate=""/> <Item Calendar="07" Year="2022" DayType="Праздник" Date="20220901" SwapDate=""/>
<Item Calendar="07" Year="2022" DayType="Праздник" Date="20220920" SwapDate=""/> <Item Calendar="07" Year="2022" DayType="Праздник" Date="20220920" SwapDate=""/>
<Item Calendar="07" Year="2023" DayType="Предпраздничный" Date="20230327" SwapDate=""/> <Item Calendar="07" Year="2023" DayType="Предпраздничный" Date="20230327" SwapDate=""/>
@@ -383,7 +382,7 @@
<Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210720" SwapDate=""/> <Item Calendar="09" Year="2021" DayType="Нерабочий" Date="20210720" SwapDate=""/>
<Item Calendar="09" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220504"/> <Item Calendar="09" Year="2022" DayType="Праздник" Date="20220503" SwapDate="20220504"/>
<Item Calendar="09" Year="2022" DayType="Суббота" Date="20220504" SwapDate="20220101"/> <Item Calendar="09" Year="2022" DayType="Суббота" Date="20220504" SwapDate="20220101"/>
<Item Calendar="09" Year="2022" DayType="Нерабочий" Date="20220709" SwapDate=""/> <Item Calendar="09" Year="2022" DayType="Нерабочий" Date="20220711" SwapDate=""/>
<Item Calendar="09" Year="2023" DayType="Предпраздничный" Date="20230502" SwapDate=""/> <Item Calendar="09" Year="2023" DayType="Предпраздничный" Date="20230502" SwapDate=""/>
<Item Calendar="09" Year="2023" DayType="Праздник" Date="20230503" SwapDate=""/> <Item Calendar="09" Year="2023" DayType="Праздник" Date="20230503" SwapDate=""/>
<Item Calendar="11" Year="2016" DayType="Праздник" Date="20160822" SwapDate=""/> <Item Calendar="11" Year="2016" DayType="Праздник" Date="20160822" SwapDate=""/>
@@ -624,8 +623,9 @@
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/> <Item Calendar="20" Year="2022" DayType="Суббота" Date="20220418" SwapDate="20220416"/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220504" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/> <Item Calendar="20" Year="2022" DayType="Предпраздничный" Date="20220708" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate="20220711"/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220709" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Суббота" Date="20220711" SwapDate="20220709"/> <Item Calendar="20" Year="2022" DayType="Праздник" Date="20220710" SwapDate=""/>
<Item Calendar="20" Year="2022" DayType="Праздник" Date="20220711" SwapDate=""/>
<Item Calendar="20" Year="2023" DayType="Предпраздничный" Date="20230322" SwapDate=""/> <Item Calendar="20" Year="2023" DayType="Предпраздничный" Date="20230322" SwapDate=""/>
<Item Calendar="20" Year="2023" DayType="Праздник" Date="20230323" SwapDate=""/> <Item Calendar="20" Year="2023" DayType="Праздник" Date="20230323" SwapDate=""/>
<Item Calendar="20" Year="2023" DayType="Праздник" Date="20230416" SwapDate="20230417"/> <Item Calendar="20" Year="2023" DayType="Праздник" Date="20230416" SwapDate="20230417"/>
@@ -173,6 +173,7 @@
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>InputField</type>
<markRequiredComplete>true</markRequiredComplete>
<editMode>Enter</editMode> <editMode>Enter</editMode>
<showInHeader>true</showInHeader> <showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
@@ -181,6 +182,7 @@
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<autoMarkIncomplete>true</autoMarkIncomplete>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -253,6 +255,10 @@
<event>OnCreateAtServer</event> <event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name> <name>ПриСозданииНаСервере</name>
</handlers> </handlers>
<handlers>
<event>FillCheckProcessingAtServer</event>
<name>ОбработкаПроверкиЗаполненияНаСервере</name>
</handlers>
<windowOpeningMode>LockOwner</windowOpeningMode> <windowOpeningMode>LockOwner</windowOpeningMode>
<autoSaveDataInSettings>Use</autoSaveDataInSettings> <autoSaveDataInSettings>Use</autoSaveDataInSettings>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
@@ -315,6 +321,7 @@
<edit> <edit>
<common>true</common> <common>true</common>
</edit> </edit>
<fillChecking>ShowError</fillChecking>
<savedData>true</savedData> <savedData>true</savedData>
</attributes> </attributes>
<attributes> <attributes>
@@ -54,6 +54,17 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Если Не Элементы.Наименование.Видимость Тогда
ИсключаемыеРеквизиты = Новый Массив;
ИсключаемыеРеквизиты.Добавить("Наименование");
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, ИсключаемыеРеквизиты);
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
@@ -61,7 +72,11 @@
&НаКлиенте &НаКлиенте
Процедура ЗавершитьРедактирование(Команда) Процедура ЗавершитьРедактирование(Команда)
ОчиститьСообщения();
Если ПроверитьЗаполнение() Тогда
ПодключитьОбработчикОжидания("ЗакрытьФорму", 0.1, Истина); ПодключитьОбработчикОжидания("ЗакрытьФорму", 0.1, Истина);
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -290,7 +290,7 @@
КонецЕсли; КонецЕсли;
Если НЕ Модифицированность Тогда Если НЕ Модифицированность Тогда
ПеречитатьДанныеССервера(); ОбновитьОбъект();
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -305,7 +305,7 @@
Процедура СтандартнаяПеречитатьОтветПолучен(РезультатВопроса, ДополнительныеПараметры) Экспорт Процедура СтандартнаяПеречитатьОтветПолучен(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.Да Тогда Если РезультатВопроса = КодВозвратаДиалога.Да Тогда
ПеречитатьДанныеССервера(); ОбновитьОбъект();
Модифицированность = Ложь; Модифицированность = Ложь;
КонецЕсли; КонецЕсли;
@@ -1320,6 +1320,9 @@
ЗначениеВРеквизитФормы(ТекущаяСсылкаНаФайлСервер().ПолучитьОбъект(), "Объект"); ЗначениеВРеквизитФормы(ТекущаяСсылкаНаФайлСервер().ПолучитьОбъект(), "Объект");
УстановитьДоступностьКнопок(ЭтотОбъект, Элементы); УстановитьДоступностьКнопок(ЭтотОбъект, Элементы);
ДатаМодификации = МестноеВремя(ЭтотОбъект.Объект.ДатаМодификацииУниверсальная);
РаботаСФайламиСлужебный.ЗаполнитьСписокПодписей(ЭтотОбъект);
РаботаСФайламиСлужебный.ЗаполнитьСписокШифрования(ЭтотОбъект);
КонецПроцедуры КонецПроцедуры
@@ -1377,16 +1380,6 @@
КонецФункции КонецФункции
&НаСервере
Процедура ПеречитатьДанныеССервера()
ФайлОбъект = ТекущаяСсылкаНаФайлСервер().ПолучитьОбъект();
ЗначениеВРеквизитФормы(ФайлОбъект, "Объект");
РаботаСФайламиСлужебный.ЗаполнитьСписокПодписей(ЭтотОбъект);
РаботаСФайламиСлужебный.ЗаполнитьСписокШифрования(ЭтотОбъект);
КонецПроцедуры
&НаСервере &НаСервере
Функция ЗаписатьФайл(Знач ПараметрОбъект = Неопределено) Функция ЗаписатьФайл(Знач ПараметрОбъект = Неопределено)
@@ -360,9 +360,7 @@ function backupDB () {
} }
var fileDB = oFileSystemObject.GetFile(BaseFileName) var fileDB = oFileSystemObject.GetFile(BaseFileName)
requiredFreeSize = fileDB.size * 2 requiredFreeSize = fileDB.size * 2
if (drive.FreeSpace < requiredFreeSize) { if (drive.FreeSpace < requiredFreeSize) {
throw new Error( throw new Error(
format('[СообщениеДисковогоПространстваНедостаточно]', format('[СообщениеДисковогоПространстваНедостаточно]',
@@ -373,11 +371,18 @@ function backupDB () {
DriveTypeName(drive.DriveType) DriveTypeName(drive.DriveType)
) )
) )
} else {
log(format('[СообщениеДисковогоПространстваДостаточно]',
drive.DriveLetter,
drive.FreeSpace / 1024 / 1024,
fileDB.size / 1024 / 1024,
DriveTypeName(drive.DriveType)
),
false)
} }
oFileSystemObject.CopyFile(BaseFileName, backupFileName, true) oFileSystemObject.CopyFile(BaseFileName, backupFileName, true)
log('[СообщениеРезультатСозданияРезервнойКопииБазы]', false)
log(format('[СообщениеРезультатСозданияРезервнойКопииБазы]', ret), ret !== 0)
} catch (e) { } catch (e) {
CollectGarbage() CollectGarbage()
@@ -71,6 +71,22 @@
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступа"); Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступа");
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступаПоУмолчанию"); Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступаПоУмолчанию");
Если ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
ЭлементБлокировки = Блокировка.Добавить("Справочник.ПрофилиГруппДоступа");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ГруппыДоступа");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ИспользуемыеВидыДоступа");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Разделяемый;
Если ТранзакцияАктивна() Тогда
// АПК:1320-выкл - №783.1.3 Допустимо вызывать блокировку во внешней транзакции для файловой ИБ.
// Требуется для предотвращения взаимоблокировки из-за автоматической установки
// разделяемой блокировки в файловой ИБ на таблицу при чтении запросом в транзакции.
Блокировка.Заблокировать();
// АПК:1320-вкл.
КонецЕсли;
КонецЕсли;
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор(); ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
НачатьТранзакцию(); НачатьТранзакцию();
@@ -524,7 +524,7 @@
КонецЕсли; КонецЕсли;
УведомитьПользователей = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры( УведомитьПользователей = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(
Записи.ДополнительныеСвойства, "УведомитьПользователей", Истина); Записи.ДополнительныеСвойства, "УведомитьПользователей", Ложь);
Если Не УведомитьПользователей Тогда Если Не УведомитьПользователей Тогда
Возврат; Возврат;
@@ -597,7 +597,7 @@
<type>UsualButton</type> <type>UsualButton</type>
<commandName>Form.Command.Очистить</commandName> <commandName>Form.Command.Очистить</commandName>
<buttonImportance>Normal</buttonImportance> <buttonImportance>Normal</buttonImportance>
<representation>Auto</representation> <representation>PictureAndText</representation>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
@@ -716,6 +716,33 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:Button">
<name>ОбновитьСведения</name>
<id>151</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ОбновитьСведенияРасширеннаяПодсказка</name>
<id>152</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>UsualButton</type>
<commandName>Form.Command.ОбновитьСведения</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ИнформацияОРазмереФайлов</name> <name>ИнформацияОРазмереФайлов</name>
<id>130</id> <id>130</id>
@@ -1115,7 +1142,7 @@
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>Vertical</group> <group>Vertical</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<representation>WeakSeparation</representation> <representation>NormalSeparation</representation>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
<throughAlign>Auto</throughAlign> <throughAlign>Auto</throughAlign>
@@ -1966,11 +1993,14 @@
<id>9</id> <id>9</id>
<toolTip> <toolTip>
<key>ru</key> <key>ru</key>
<value>Очистить</value> <value>Очистить ненужные файлы</value>
</toolTip> </toolTip>
<use> <use>
<common>true</common> <common>true</common>
</use> </use>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Delete</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>Очистить</name> <name>Очистить</name>
@@ -2067,6 +2097,32 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ОбновитьСведения</name>
<title>
<key>ru</key>
<value>Обновить</value>
</title>
<id>14</id>
<toolTip>
<key>ru</key>
<value>Обновить сведения об удаляемых файлах</value>
</toolTip>
<use>
<common>true</common>
</use>
<picture xsi:type="core:PictureRef">
<picture>StdPicture.Refresh</picture>
</picture>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ОбновитьСведения</name>
</handler>
</action>
<representation>Picture</representation>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -27,10 +27,7 @@
КонецЕсли; КонецЕсли;
Элементы.СтраницыИтогиУдаляемыеФайлы.ТекущаяСтраница = Элементы.СтраницаПодсчетИтоговУдаляемыеФайлы; Элементы.СтраницыИтогиУдаляемыеФайлы.ТекущаяСтраница = Элементы.СтраницаПодсчетИтоговУдаляемыеФайлы;
РассчитатьСведенияОбУдаляемыхФайлах();
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ОписаниеРасчетаИтогов = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах");
РежимОчисткиФайлов = РаботаСФайламиСлужебный.РежимОчисткиФайлов(); РежимОчисткиФайлов = РаботаСФайламиСлужебный.РежимОчисткиФайлов();
НастроитьРежимыОчисткиФайлов(); НастроитьРежимыОчисткиФайлов();
@@ -38,14 +35,9 @@
&НаКлиенте &НаКлиенте
Процедура ПриОткрытии(Отказ) Процедура ПриОткрытии(Отказ)
Обработчик = Новый ОписаниеОповещения("ПриЗавершенииРасчетаИтогов", ЭтотОбъект); ОжидатьЗавершениеРасчетаСведенийОбУдаляемыхФайлах();
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Ложь;
ДлительныеОперацииКлиент.ОжидатьЗавершение(ОписаниеРасчетаИтогов, Обработчик, ПараметрыОжидания);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
@@ -179,7 +171,6 @@
Процедура ДеревоОбъектовМетаданныхДействиеОчистка(Элемент, СтандартнаяОбработка) Процедура ДеревоОбъектовМетаданныхДействиеОчистка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
УстановитьДействиеДляВыбранныхОбъектов( УстановитьДействиеДляВыбранныхОбъектов(
ПредопределенноеЗначение("Перечисление.ВариантыОчисткиФайлов.НеОчищать")); ПредопределенноеЗначение("Перечисление.ВариантыОчисткиФайлов.НеОчищать"));
@@ -308,12 +299,35 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСведения(Команда)
РассчитатьСведенияОбУдаляемыхФайлах();
ОжидатьЗавершениеРасчетаСведенийОбУдаляемыхФайлах();
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура РассчитатьСведенияОбУдаляемыхФайлах()
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ОписаниеРасчетаИтогов = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения,
"РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах");
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПриЗавершенииРасчетаИтогов(Результат, ДополнительныеПараметры) Экспорт Процедура ОжидатьЗавершениеРасчетаСведенийОбУдаляемыхФайлах()
Обработчик = Новый ОписаниеОповещения("ПриЗавершенииРасчетаСведенийОбУдаляемыхФайлах", ЭтотОбъект);
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ПараметрыОжидания.ВыводитьПрогрессВыполнения = Ложь;
ДлительныеОперацииКлиент.ОжидатьЗавершение(ОписаниеРасчетаИтогов, Обработчик, ПараметрыОжидания);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗавершенииРасчетаСведенийОбУдаляемыхФайлах(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда Если Результат = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -322,9 +336,9 @@
Итоги = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); // см. РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах Итоги = ПолучитьИзВременногоХранилища(Результат.АдресРезультата); // см. РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах
ОтобразитьИтоги(Итоги.ОбъемУдаляемыхФайлов, Итоги.ОбъемНенужныхФайлов); ОтобразитьИтоги(Итоги.ОбъемУдаляемыхФайлов, Итоги.ОбъемНенужныхФайлов);
Иначе Иначе
ОтобразитьИтоги(0,0); ОтобразитьИтоги(0, 0);
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Возникла ошибка при подсчете объема удаляемых файлов: НСтр("ru='Не удалось подсчитать объем удаляемых файлов:
|%1'"), |%1'"),
Результат.КраткоеПредставлениеОшибки); Результат.КраткоеПредставлениеОшибки);
ПоказатьПредупреждение(, ТекстПредупреждения); ПоказатьПредупреждение(, ТекстПредупреждения);
@@ -17,6 +17,7 @@
// * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * ИдентификаторВладельца - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * ЭтоНастройкаДляЭлементаСправочника - Булево // * ЭтоНастройкаДляЭлементаСправочника - Булево
// * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных // * ТипВладельцаФайла - СправочникСсылка.ИдентификаторыОбъектовМетаданных
// * ПравилоОтбора - ХранилищеЗначения
// * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов // * Действие - ПеречислениеСсылка.ВариантыОчисткиФайлов
// * ПериодОчистки - ПеречислениеСсылка.ПериодОчисткиФайлов // * ПериодОчистки - ПеречислениеСсылка.ПериодОчисткиФайлов
// * ЭтоФайл - Булево // * ЭтоФайл - Булево
@@ -71,9 +71,10 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление. Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
ОбновитьВспомогательныеДанныеРегистра(); ОбновитьВспомогательныеДанныеРегистра();
@@ -691,9 +692,10 @@
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); УжеИзменен = Ложь;
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина, УжеИзменен);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление. Если УжеИзменен Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли; КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
@@ -11,9 +11,10 @@
#Область СлужебныйПрограммныйИнтерфейс #Область СлужебныйПрограммныйИнтерфейс
// См. СтандартныеПодсистемыСервер.ПараметрРаботыРасширения // См. СтандартныеПодсистемыСервер.ПараметрРаботыРасширения
Функция ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь) Экспорт Функция ПараметрРаботыРасширения(ИмяПараметра, БезУчетаВерсииРасширений = Ложь, УжеИзменен = Неопределено) Экспорт
ВерсияРасширений = ?(БезУчетаВерсииРасширений, Справочники.ВерсииРасширений.ПустаяСсылка(), ПараметрыСеанса.ВерсияРасширений); ВерсияРасширений = ?(БезУчетаВерсииРасширений,
Справочники.ВерсииРасширений.ПустаяСсылка(), ПараметрыСеанса.ВерсияРасширений);
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ВерсияРасширений", ВерсияРасширений); Запрос.УстановитьПараметр("ВерсияРасширений", ВерсияРасширений);
@@ -30,20 +31,99 @@
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
Возврат Выборка.ХранилищеПараметра.Получить();
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь); УстановитьОтключениеБезопасногоРежима(Ложь);
Если Не Выборка.Следующий()
Или ТипЗнч(Выборка.ХранилищеПараметра) <> Тип("ХранилищеЗначения") Тогда
Возврат Неопределено; Возврат Неопределено;
КонецЕсли;
Содержимое = Выборка.ХранилищеПараметра.Получить();
Если Не БезУчетаВерсииРасширений
Или ТипЗнч(Содержимое) <> Тип("Структура")
Или Содержимое.Количество() <> 5
Или Не Содержимое.Свойство("НомерСеансаИзменившегоПараметр")
Или Не Содержимое.Свойство("НачалоСеансаИзменившегоПараметр")
Или Не Содержимое.Свойство("КлючКомпьютераСеансаИзменившегоПараметр")
Или Не Содержимое.Свойство("ОперативнаяОтметкаВремениСеансаИзменившегоПараметр")
Или Не Содержимое.Свойство("ЗначениеПараметра") Тогда
Возврат Содержимое;
КонецЕсли;
Если ТипЗнч(УжеИзменен) <> Тип("Булево") Тогда
Возврат Содержимое.ЗначениеПараметра;
КонецЕсли;
ОтметкаВремени = Справочники.ВерсииРасширений.ОперативнаяОтметкаВремениСеанса();
Если ТипЗнч(Содержимое.ОперативнаяОтметкаВремениСеансаИзменившегоПараметр) <> Тип("Дата")
Или Не ЗначениеЗаполнено(Содержимое.ОперативнаяОтметкаВремениСеансаИзменившегоПараметр) Тогда
УжеИзменен = Истина;
Иначе
СвойстваСеанса = СтандартныеПодсистемыПовтИсп.СвойстваТекущегоСеанса();
Если ОбщегоНазначения.ИнформационнаяБазаФайловая()
И СвойстваСеанса.КлючКомпьютера <> Содержимое.КлючКомпьютераСеансаИзменившегоПараметр Тогда
Сдвиг = 60*60;
Иначе
Сдвиг = 15;
КонецЕсли;
Если Содержимое.ОперативнаяОтметкаВремениСеансаИзменившегоПараметр
+ Сдвиг >= ОтметкаВремени Тогда
УжеИзменен = Истина;
КонецЕсли;
КонецЕсли;
Если УжеИзменен Тогда
КонфигурацияИзменена = КонфигурацияБазыДанныхИзмененаДинамически();
РасширенияИзменены = Справочники.ВерсииРасширений.РасширенияИзмененыДинамически();
Если КонфигурацияИзменена Или РасширенияИзменены Тогда
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При получении для изменения параметра работы версии расширений
|%1
|в текущем сеансе (с устаревшей версией метаданных: %2)
|%3
|обнаружено, что параметр был уже изменен в сеансе
|%4'"),
ИмяПараметра,
?(КонфигурацияИзменена И РасширенияИзменены, "Конфигурация, Расширения",
?(КонфигурацияИзменена, "Конфигурация", "Расширения")),
Формат(СвойстваСеанса.НачалоСеанса, "ДЛФ=DT;")
+ " " + Формат(СвойстваСеанса.НомерСеанса, "ЧН=0; ЧГ=;")
+ " [" + СвойстваСеанса.КлючКомпьютера + "]"
+ " (" + Формат(ОтметкаВремени, "ДЛФ=DT;") + ")",
Формат(Содержимое.НачалоСеансаИзменившегоПараметр, "ДЛФ=DT;")
+ " " + Формат(Содержимое.НомерСеансаИзменившегоПараметр, "ЧН=0; ЧГ=;")
+ " [" + Содержимое.КлючКомпьютераСеансаИзменившегоПараметр + "]"
+ " (" + Формат(Содержимое.ОперативнаяОтметкаВремениСеансаИзменившегоПараметр, "ДЛФ=DT;") + ")");
ИмяСобытия = НСтр("ru = 'Расширения конфигурации.Получение параметра работы расширений'",
ОбщегоНазначения.КодОсновногоЯзыка());
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Информация,,, Комментарий);
КонецЕсли;
КонецЕсли;
Возврат Содержимое.ЗначениеПараметра;
КонецФункции КонецФункции
// См. СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения. // См. СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения.
Процедура УстановитьПараметрРаботыРасширения(ИмяПараметра, Значение, БезУчетаВерсииРасширений = Ложь) Экспорт Процедура УстановитьПараметрРаботыРасширения(ИмяПараметра, Значение, БезУчетаВерсииРасширений = Ложь) Экспорт
ВерсияРасширений = ?(БезУчетаВерсииРасширений, Справочники.ВерсииРасширений.ПустаяСсылка(), ПараметрыСеанса.ВерсияРасширений); ВерсияРасширений = ?(БезУчетаВерсииРасширений,
Справочники.ВерсииРасширений.ПустаяСсылка(), ПараметрыСеанса.ВерсияРасширений);
Если БезУчетаВерсииРасширений Тогда
СвойстваСеанса = СтандартныеПодсистемыПовтИсп.СвойстваТекущегоСеанса();
Содержимое = Новый Структура;
Содержимое.Вставить("ЗначениеПараметра", Значение);
Содержимое.Вставить("НомерСеансаИзменившегоПараметр", СвойстваСеанса.НомерСеанса);
Содержимое.Вставить("НачалоСеансаИзменившегоПараметр", СвойстваСеанса.НачалоСеанса);
Содержимое.Вставить("КлючКомпьютераСеансаИзменившегоПараметр", СвойстваСеанса.КлючКомпьютера);
Содержимое.Вставить("ОперативнаяОтметкаВремениСеансаИзменившегоПараметр",
Справочники.ВерсииРасширений.ОперативнаяОтметкаВремениСеанса());
Иначе
Содержимое = Значение;
КонецЕсли;
НаборЗаписей = РегистрыСведений.ПараметрыРаботыПрограммы.СлужебныйНаборЗаписей( НаборЗаписей = РегистрыСведений.ПараметрыРаботыПрограммы.СлужебныйНаборЗаписей(
РегистрыСведений.ПараметрыРаботыВерсийРасширений); РегистрыСведений.ПараметрыРаботыВерсийРасширений);
@@ -54,7 +134,7 @@
НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.ВерсияРасширений = ВерсияРасширений; НоваяЗапись.ВерсияРасширений = ВерсияРасширений;
НоваяЗапись.ИмяПараметра = ИмяПараметра; НоваяЗапись.ИмяПараметра = ИмяПараметра;
НоваяЗапись.ХранилищеПараметра = Новый ХранилищеЗначения(Значение); НоваяЗапись.ХранилищеПараметра = Новый ХранилищеЗначения(Содержимое);
НаборЗаписей.Записать(); НаборЗаписей.Записать();
@@ -58,7 +58,15 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ПраваРолей.ОбновитьДанныеРегистра(ЕстьИзменения); ПараметрыОбновления = РегистрыСведений.ПараметрыРаботыПрограммы.ПараметрыОбновления();
ПараметрыОбновления.УправлениеДоступом.ПраваРолей.Обновлять = Истина;
РегистрыСведений.ПараметрыРаботыПрограммы.ВыполнитьОбновлениеНеразделенныхДанныхВФоне(
ПараметрыОбновления, УникальныйИдентификатор);
Если ПараметрыОбновления.УправлениеДоступом.ПраваРолей.ЕстьИзменения Тогда
ЕстьИзменения = Истина;
КонецЕсли;
Элементы.Список.Обновить(); Элементы.Список.Обновить();
@@ -41,7 +41,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений: // ТаблицаЗначений:
// * ВладелецФайла - ОпределяемыйТип.ВладелецФайлов // * ВладелецФайла - ОпределяемыйТип.ВладелецФайлов
// * ОбъемНенужныхФайлов - Число // * ОбъемНенужныхФайлов - Число - размер в байтах.
// //
Функция ТаблицаНенужныхФайлов() Экспорт Функция ТаблицаНенужныхФайлов() Экспорт
@@ -84,14 +84,14 @@
МассивИсключений = Новый Массив; МассивИсключений = Новый Массив;
КонецЕсли; КонецЕсли;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; НенужныеФайлы = РаботаСФайламиСлужебный.ВыбратьНенужныеФайлы(НастройкаОчистки, МассивИсключений);
ТаблицаЗначений = Новый ТаблицаЗначений; Для Каждого НенужныйФайл Из НенужныеФайлы.Строки Цикл
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
НенужныеФайлы = РаботаСФайламиСлужебный.ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода);
Для Каждого НенужныйФайл Из НенужныеФайлы Цикл
НоваяСтрока = ТаблицаНенужныхФайлов.Добавить(); НоваяСтрока = ТаблицаНенужныхФайлов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, НенужныйФайл); НоваяСтрока.ВладелецФайла = НенужныйФайл.ВладелецФайла;
НоваяСтрока.ОбъемНенужныхФайлов = ?(НенужныйФайл.Строки.Количество() > 0, 0, НенужныйФайл.Размер);
Для Каждого НенужнаяВерсияФайла Из НенужныйФайл.Строки Цикл
НоваяСтрока.ОбъемНенужныхФайлов = НоваяСтрока.ОбъемНенужныхФайлов + НенужнаяВерсияФайла.Размер;
КонецЦикла
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -48,14 +48,8 @@
Функция ОбъемДанныхВсего() Функция ОбъемДанныхВсего()
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос(РаботаСФайламиСлужебный.ТекстЗапросаПолногоОбъемаФайлов());
Запрос = Новый Запрос; Возврат Запрос.Выполнить().Выгрузить();
Запрос.Текст = РаботаСФайламиСлужебный.ТекстЗапросаПолногоОбъемаФайлов();
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Выгрузить();
КонецФункции КонецФункции
@@ -236,6 +236,36 @@
<dcsset:selection> <dcsset:selection>
<dcsset:item xsi:type="dcsset:SelectedItemAuto"/> <dcsset:item xsi:type="dcsset:SelectedItemAuto"/>
</dcsset:selection> </dcsset:selection>
<dcsset:conditionalAppearance>
<dcsset:item>
<dcsset:selection>
<dcsset:item>
<dcsset:field>ОбъемНужныхФайлов</dcsset:field>
</dcsset:item>
</dcsset:selection>
<dcsset:filter/>
<dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:parameter>ЦветВДиаграмме</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">web:SkyBlue</dcscor:value>
</dcscor:item>
</dcsset:appearance>
</dcsset:item>
<dcsset:item>
<dcsset:selection>
<dcsset:item>
<dcsset:field>ОбъемНужныхФайлов</dcsset:field>
</dcsset:item>
</dcsset:selection>
<dcsset:filter/>
<dcsset:appearance>
<dcscor:item xsi:type="dcsset:SettingsParameterValue">
<dcscor:parameter>ЦветВДиаграмме</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">web:DarkSalmon</dcscor:value>
</dcscor:item>
</dcsset:appearance>
</dcsset:item>
</dcsset:conditionalAppearance>
</dcsset:item> </dcsset:item>
<dcsset:item xsi:type="dcsset:StructureItemGroup"> <dcsset:item xsi:type="dcsset:StructureItemGroup">
<dcsset:groupItems> <dcsset:groupItems>
@@ -386,7 +386,9 @@
ДоступныеЗначения.Добавить("ОстаткиИОбороты", НСтр("ru = 'Остатки и обороты'")); ДоступныеЗначения.Добавить("ОстаткиИОбороты", НСтр("ru = 'Остатки и обороты'"));
ДоступныеЗначения.Добавить("Остатки", НСтр("ru = 'Остатки'")); ДоступныеЗначения.Добавить("Остатки", НСтр("ru = 'Остатки'"));
ДоступныеЗначения.Добавить("Обороты", НСтр("ru = 'Обороты'")); ДоступныеЗначения.Добавить("Обороты", НСтр("ru = 'Обороты'"));
Если ОбъектМетаданных.Корреспонденция Тогда
ДоступныеЗначения.Добавить("ОборотыДтКт", НСтр("ru = 'Обороты Дт/Кт'")); ДоступныеЗначения.Добавить("ОборотыДтКт", НСтр("ru = 'Обороты Дт/Кт'"));
КонецЕсли;
ДоступныеЗначения.Добавить("ДвиженияССубконто", НСтр("ru = 'Движения с субконто'")); ДоступныеЗначения.Добавить("ДвиженияССубконто", НСтр("ru = 'Движения с субконто'"));
ИначеЕсли ТипОбъектаМетаданных = "РегистрыРасчета" Тогда ИначеЕсли ТипОбъектаМетаданных = "РегистрыРасчета" Тогда
Если ОбъектМетаданных.ПериодДействия Тогда Если ОбъектМетаданных.ПериодДействия Тогда
@@ -1046,9 +1048,13 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если УточнятьСуффиксыПолей Если УточнятьСуффиксыПолей Тогда
И Не МетаданныеПоля.Балансовый Тогда Если МетаданныеПоля.Балансовый ИЛИ (ПараметрыОтчета.ТипОбъектаМетаданных = "РегистрыБухгалтерии"
И НЕ МетаданныеИсточника.Корреспонденция) Тогда
СуффиксыПолей = СтрРазделить("", "@");
Иначе
СуффиксыПолей = СтрРазделить("Дт@Кт", "@", Ложь); СуффиксыПолей = СтрРазделить("Дт@Кт", "@", Ложь);
КонецЕсли;
Иначе Иначе
СуффиксыПолей = СтрРазделить("", "@"); СуффиксыПолей = СтрРазделить("", "@");
КонецЕсли; КонецЕсли;
@@ -1535,93 +1535,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.УдалитьЛогинДоступаКСервисуMorpher</name> <name>Constant.УдалитьЛогинДоступаКСервисуMorpher</name>
<right> <right>
@@ -1818,6 +1731,93 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name> <name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right> <right>
@@ -655,33 +655,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ОтправлятьПисьмаВФорматеHTML</name> <name>Constant.ОтправлятьПисьмаВФорматеHTML</name>
<right> <right>
@@ -766,6 +739,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.УправлениеПодключениемDSS</name> <name>DataProcessor.УправлениеПодключениемDSS</name>
<right> <right>
@@ -2309,6 +2309,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.РазрешенныеНеаккредитованныеУЦ</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ИспользоватьРазделениеПоОбластямДанных</name> <name>Constant.ИспользоватьРазделениеПоОбластямДанных</name>
<right> <right>
@@ -539,33 +539,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ОтправлятьПисьмаВФорматеHTML</name> <name>Constant.ОтправлятьПисьмаВФорматеHTML</name>
<right> <right>
@@ -650,6 +623,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DataProcessor.ЗагрузкаДанныхИзФайла</name> <name>DataProcessor.ЗагрузкаДанныхИзФайла</name>
<right> <right>
@@ -10,6 +10,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.НастройкаОнлайнПоддержки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -37,13 +44,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.НастройкаОнлайнПоддержки</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.ПоискИсполняемогоФайлаОнлайнПоддержки</name> <name>CommonForm.ПоискИсполняемогоФайлаОнлайнПоддержки</name>
<right> <right>
@@ -173,6 +173,31 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ИнтерактивноеИзменениеВыгрузки</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.Синхронизировать</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>WebService.Exchange.Operation.DownloadData</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -200,31 +225,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ИнтерактивноеИзменениеВыгрузки</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>CommonCommand.Синхронизировать</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>WebService.Exchange.Operation.DownloadData</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>WebService.EnterpriseDataUpload_1_0_1_1.Operation.PutData</name> <name>WebService.EnterpriseDataUpload_1_0_1_1.Operation.PutData</name>
<right> <right>
@@ -72,6 +72,29 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -99,29 +122,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name> <name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right> <right>
@@ -10,6 +10,17 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ЗагрузкаКлассификатораБанков</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -37,17 +48,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ЗагрузкаКлассификатораБанков</name>
<right>
<name>Use</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.КлассификаторБанков</name> <name>Catalog.КлассификаторБанков</name>
<right> <right>
@@ -391,6 +391,24 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.СостоянияКонтактовВзаимодействий</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Document.ЭлектронноеПисьмоВходящее.Command.Переслать</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -418,24 +436,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>InformationRegister.СостоянияКонтактовВзаимодействий</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Document.ЭлектронноеПисьмоВходящее.Command.Переслать</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>DocumentJournal.Взаимодействия.Command.ЗапланироватьВзаимодействиеПоПредмету</name> <name>DocumentJournal.Взаимодействия.Command.ЗапланироватьВзаимодействиеПоПредмету</name>
<right> <right>
@@ -26,6 +26,29 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -53,29 +76,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>Catalog.ПроизводственныеКалендари</name> <name>Catalog.ПроизводственныеКалендари</name>
<right> <right>
@@ -158,6 +158,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ОтправитьПисьмо</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -185,13 +192,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonCommand.ОтправитьПисьмо</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.ОтправитьSMS</name> <name>CommonCommand.ОтправитьSMS</name>
<right> <right>
@@ -26,6 +26,21 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -53,21 +68,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </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>
</object>
<object> <object>
<name>Catalog.УчетныеЗаписиСинхронизацииФайлов</name> <name>Catalog.УчетныеЗаписиСинхронизацииФайлов</name>
<right> <right>
@@ -2221,45 +2221,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Constant.УдалитьЛогинДоступаКСервисуMorpher</name> <name>Constant.УдалитьЛогинДоступаКСервисуMorpher</name>
<right> <right>
@@ -2447,6 +2408,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Constant.СписокРасширенийТекстовыхФайлов</name> <name>Constant.СписокРасширенийТекстовыхФайлов</name>
<right> <right>
@@ -965,33 +965,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Constant.ОтправлятьПисьмаВФорматеHTML</name> <name>Constant.ОтправлятьПисьмаВФорматеHTML</name>
<right> <right>
@@ -1069,6 +1042,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.ТелефонныйЗвонокПрисоединенныеФайлы</name> <name>Catalog.ТелефонныйЗвонокПрисоединенныеФайлы</name>
<right> <right>
@@ -59,6 +59,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.StartExchangeExecutionInSecondDataBase</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -86,13 +93,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>WebService.RemoteAdministrationOfExchange_2_4_5_1.Operation.StartExchangeExecutionInSecondDataBase</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>WebService.RemoteAdministrationOfExchange.Operation.PrepareExchangeExecution</name> <name>WebService.RemoteAdministrationOfExchange.Operation.PrepareExchangeExecution</name>
<right> <right>
@@ -158,7 +158,7 @@
ПараметрыРедактированияФормулы = КонструкторФормулКлиент.ПараметрыРедактированияФормулы(); ПараметрыРедактированияФормулы = КонструкторФормулКлиент.ПараметрыРедактированияФормулы();
ПараметрыРедактированияФормулы.Операнды = НастройкиОтчета.АдресСхемы; ПараметрыРедактированияФормулы.Операнды = НастройкиОтчета.АдресСхемы;
ПараметрыРедактированияФормулы.ИмяКоллекцииСКДОперандов = ИмяКоллекцииПолей; ПараметрыРедактированияФормулы.ИмяКоллекцииСКДОперандов = ИмяКоллекцииПолей;
ПараметрыРедактированияФормулы.Наименование = ""; ПараметрыРедактированияФормулы.Наименование = НаименованиеНовогоПоля();
ПараметрыРедактированияФормулы.ДляЗапроса = Истина; ПараметрыРедактированияФормулы.ДляЗапроса = Истина;
Обработчик = Новый ОписаниеОповещения("ПослеДобавленияФормулы", ЭтотОбъект); Обработчик = Новый ОписаниеОповещения("ПослеДобавленияФормулы", ЭтотОбъект);
@@ -424,6 +424,31 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Функция НаименованиеНовогоПоля()
ЗаголовкиПолей = Новый Соответствие;
ПользовательскиеПоля = КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора.Элементы.Найти(Новый ПолеКомпоновкиДанных("ПользовательскиеПоля"));
Если ПользовательскиеПоля = Неопределено Тогда
Возврат НСтр("ru = 'Поле 1'");
КонецЕсли;
Для Каждого Поле Из ПользовательскиеПоля.Элементы Цикл
ЗаголовкиПолей.Вставить(Поле.Заголовок, Истина);
КонецЦикла;
Для НомерПоля = 1 По 100 Цикл
НаименованиеПоля = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Поле %1'"), НомерПоля);
Если ЗаголовкиПолей[НаименованиеПоля] = Неопределено Тогда
Возврат НаименованиеПоля;
КонецЕсли;
КонецЦикла;
Возврат НСтр("ru = 'Поле'");
КонецФункции
#Область Общее #Область Общее
&НаКлиентеНаСервереБезКонтекста &НаКлиентеНаСервереБезКонтекста