3_1_5_192

This commit is contained in:
Компания 1С committed 2021-09-16 13:14:00 +03:00
1 parent ebd39458e4
commit 8e46accf22
72 files changed
+1407 -670

No files matched your search

@@ -617,8 +617,8 @@
ИначеЕсли Форма.Отложен Тогда ИначеЕсли Форма.Отложен Тогда
ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач, ДатаОтложенногоСтартаСтрокой = ?(Форма.ИспользоватьДатуИВремяВСрокахЗадач,
Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D")); Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=DT"), Формат(Форма.ДатаОтложенногоСтарта, "ДЛФ=D"));
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено <a href=""ОткрытьНастройкуОтложенногоСтарта"">%1</a>'"), ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Задание будет запущено <a href=""%1"">%2</a>'"),
ДатаОтложенногоСтартаСтрокой); "ОткрытьНастройкуОтложенногоСтарта", ДатаОтложенногоСтартаСтрокой);
КонецЕсли; КонецЕсли;
Возврат ТекстСостояния; Возврат ТекстСостояния;
@@ -1623,6 +1623,11 @@
УточнениеСвойств.Добавить(НСтр("ru = 'Аутентификация ОС (включена)'")); УточнениеСвойств.Добавить(НСтр("ru = 'Аутентификация ОС (включена)'"));
КонецЕсли; КонецЕсли;
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
ВходВПрограммуРазрешен = Ложь;
УточнениеСвойств.Вставить(0, НСтр("ru = 'Вход в программу разрешен'"));
КонецЕсли;
Если ЗначениеЗаполнено(УточнениеСвойств) Тогда Если ЗначениеЗаполнено(УточнениеСвойств) Тогда
ПоказатьКомандыУстраненияРазличий = ПоказатьКомандыУстраненияРазличий =
УровеньДоступа.НастройкиДляВхода УровеньДоступа.НастройкиДляВхода
@@ -66,6 +66,15 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если Не ОценкаПроизводительностиВызовСервераПовтИсп.ВыполнятьЗамерыПроизводительности() Тогда
ИндексЦелевоеВремя = ПроверяемыеРеквизиты.Найти("ЦелевоеВремя");
Если ИндексЦелевоеВремя <> Неопределено Тогда
ПроверяемыеРеквизиты.Удалить(ИндексЦелевоеВремя);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Иначе #Иначе
@@ -678,6 +678,15 @@
&НаКлиенте &НаКлиенте
Процедура ЗаполнитьИзПользователяИБ(Команда) Процедура ЗаполнитьИзПользователяИБ(Команда)
Если УровеньДоступа.УправлениеСписком
И ДействияВФорме.СвойстваЭлемента = "Редактирование" Тогда
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
Объект.Недействителен = Ложь;
НедействителенПриИзменении(Элементы.Недействителен);
КонецЕсли;
КонецЕсли;
ЗаполнитьПоляПоПользователюИБНаСервере(); ЗаполнитьПоляПоПользователюИБНаСервере();
КонецПроцедуры КонецПроцедуры
@@ -2192,7 +2201,16 @@
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Полное имя ""%1""'"), УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Полное имя ""%1""'"),
ПользовательИБПолноеИмя)); ПользовательИБПолноеИмя));
КонецЕсли; КонецЕсли;
Если ПриЧтенииВходВПрограммуРазрешен И Объект.Недействителен Тогда
ВходВПрограммуРазрешен = Ложь;
ПоказатьКомандыУстраненияРазличий =
ПоказатьКомандыУстраненияРазличий
Или ДействияВФорме.СвойстваЭлемента = "Редактирование";
УточнениеСвойств.Вставить(0, НСтр("ru = 'Вход в программу разрешен'"));
КонецЕсли;
// Проверка на соответствие почты // Проверка на соответствие почты
Если УровеньДоступа.ИзменениеТекущего Тогда Если УровеньДоступа.ИзменениеТекущего Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтактнаяИнформация") Тогда
@@ -2211,8 +2229,8 @@
УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"), УточнениеСвойств.Вставить(0, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Почта для восстановления пароля ""%1""'"),
ПользовательИБАдресЭлектроннойПочты)); ПользовательИБАдресЭлектроннойПочты));
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли;
КонецЕсли; КонецЕсли;
Если УточнениеСвойств.Количество() > 0 Тогда Если УточнениеСвойств.Количество() > 0 Тогда
@@ -219,7 +219,7 @@
// При необходимости обновляет группы доступа обновленных профилей. // При необходимости обновляет группы доступа обновленных профилей.
// Создаются не найденные поставляемые папки профилей и профили групп доступа. // Создаются не найденные поставляемые папки профилей и профили групп доступа.
// //
// Особенности обновления настраиваются в процедуре ЗаполнитьПоставляемыеПрофилиГруппДоступа // Особенности обновления настраиваются в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа
// общего модуля УправлениеДоступомПереопределяемый (см. комментарий к процедуре). // общего модуля УправлениеДоступомПереопределяемый (см. комментарий к процедуре).
// //
// Параметры: // Параметры:
@@ -561,7 +561,7 @@
КонецФункции КонецФункции
// Проверяет изменен ли поставляемый профиль или папка профилей по сравнению с описанием из процедуры // Проверяет изменен ли поставляемый профиль или папка профилей по сравнению с описанием из процедуры
// УправлениеДоступомПереопределяемый.ЗаполнитьПоставляемыеПрофилиГруппДоступа(). // УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа().
// //
// Параметры: // Параметры:
// Профиль - СправочникСсылка.ПрофилиГруппДоступа // Профиль - СправочникСсылка.ПрофилиГруппДоступа
@@ -308,6 +308,10 @@
Процедура ЗаполнитьСертификатыШифрованияИзНабора(ОписаниеНабораСертификатов) Процедура ЗаполнитьСертификатыШифрованияИзНабора(ОписаниеНабораСертификатов)
Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеНабораСертификатов)) Тогда Если ОбщегоНазначения.ЭтоСсылка(ТипЗнч(ОписаниеНабораСертификатов)) Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульУправлениеДоступом = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом");
МодульУправлениеДоступом.ПроверитьЧтениеРазрешено(ОписаниеНабораСертификатов);
КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", ОписаниеНабораСертификатов); Запрос.УстановитьПараметр("Ссылка", ОписаниеНабораСертификатов);
Запрос.Текст = Запрос.Текст =
@@ -317,8 +321,10 @@
| РегистрСведений.СертификатыШифрования КАК СертификатыШифрования | РегистрСведений.СертификатыШифрования КАК СертификатыШифрования
|ГДЕ |ГДЕ
| СертификатыШифрования.ЗашифрованныйОбъект = &Ссылка"; | СертификатыШифрования.ЗашифрованныйОбъект = &Ссылка";
МассивСертификатов = Новый Массив; УстановитьПривилегированныйРежим(Истина);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
УстановитьПривилегированныйРежим(Ложь);
МассивСертификатов = Новый Массив;
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
МассивСертификатов.Добавить(Выборка.Сертификат.Получить()); МассивСертификатов.Добавить(Выборка.Сертификат.Получить());
КонецЦикла; КонецЦикла;
@@ -759,10 +759,10 @@
<usePurposes>MobileDevice</usePurposes> <usePurposes>MobileDevice</usePurposes>
</forms> </forms>
<templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9"> <templates uuid="5189beb9-b939-4f97-aca0-c2f3492ac8b9">
<name>КомпонентаXMLDSIG</name> <name>КомпонентаXMLDSig_3_0_1_23</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Компонента XMLDSIG</value> <value>Компонента XMLDSig 3.0.1.23</value>
</synonym> </synonym>
<templateType>AddIn</templateType> <templateType>AddIn</templateType>
</templates> </templates>
@@ -168,7 +168,7 @@
КонецЕсли; КонецЕсли;
СписокСтран = УправлениеКонтактнойИнформацией.СтраныУчастникиЕАЭС(); СписокСтран = УправлениеКонтактнойИнформацией.ПользовательскиеСтраныЕАЭС();
НоваяСтрока = СписокСтран.Добавить(); НоваяСтрока = СписокСтран.Добавить();
НоваяСтрока.Код = "203"; НоваяСтрока.Код = "203";
@@ -750,11 +750,29 @@
Процедура Освободить(Команда) Процедура Освободить(Команда)
Если ЭтоНовый() Если ЭтоНовый()
ИЛИ НЕ ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) Или Не ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
ИЛИ ЭтотОбъект.Объект.Редактирует <> ТекущийПользователь Тогда Или ЭтотОбъект.Объект.Редактирует <> ТекущийПользователь Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ОсвободитьЗавершение = Новый ОписаниеОповещения("ОсвободитьЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
ПоказатьВопрос(ОсвободитьЗавершение,
НСтр("ru = 'При отмене редактирования внесенные изменения будут утеряны. Продолжить?'"),
РежимДиалогаВопрос.ДаНет);
Иначе
ВыполнитьОбработкуОповещения(ОсвободитьЗавершение, КодВозвратаДиалога.Да);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОсвободитьЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ОсвободитьФайл(); ОсвободитьФайл();
ОповеститьОбИзменении(ЭтотОбъект.Объект.Ссылка); ОповеститьОбИзменении(ЭтотОбъект.Объект.Ссылка);
Оповестить("Запись_Файл", Новый Структура("Событие", "РедактированиеОтменено"), ЭтотОбъект.Объект.Ссылка); Оповестить("Запись_Файл", Новый Структура("Событие", "РедактированиеОтменено"), ЭтотОбъект.Объект.Ссылка);
@@ -22,9 +22,15 @@
// Проверка входных параметров. // Проверка входных параметров.
Если Не ЗначениеЗаполнено(Параметры.ИсточникДанных) Тогда Если Не ЗначениеЗаполнено(Параметры.ИсточникДанных) Тогда
ОбщегоНазначенияКлиентСервер.Проверить(ТипЗнч(Параметры.ПараметрКоманды) = Тип("Массив") Или ОбщегоНазначения.ЗначениеСсылочногоТипа(Параметры.ПараметрКоманды), ОбщегоНазначенияКлиентСервер.Проверить(ТипЗнч(Параметры.ПараметрКоманды) = Тип("Массив") Или ОбщегоНазначения.ЗначениеСсылочногоТипа(Параметры.ПараметрКоманды),
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Недопустимое значение параметра ПараметрКоманды при вызове метода УправлениеПечатьюКлиент.ВыполнитьКомандуПечати. СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
|Ожидалось: Массив, ЛюбаяСсылка. "ru = 'Недопустимое значение параметра %1 при вызове метода %2.
|Передано: %1'"), ТипЗнч(Параметры.ПараметрКоманды))); |Ожидалось: %3, %4.
|Передано: %5'"),
"ПараметрКоманды",
"УправлениеПечатьюКлиент.ВыполнитьКомандуПечати",
"Массив",
"ЛюбаяСсылка",
ТипЗнч(Параметры.ПараметрКоманды)));
КонецЕсли; КонецЕсли;
// Поддержка обратной совместимости с 2.1.3. // Поддержка обратной совместимости с 2.1.3.
@@ -2402,8 +2402,9 @@
УсловиеНормализованное = НРег(СтрЗаменить(Условие, "<", "&lt;")); УсловиеНормализованное = НРег(СтрЗаменить(Условие, "<", "&lt;"));
ШаблонФрагментаУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонФрагментаУсловия = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1<span style=""color: СкрытыйВариантОтчетаЦвет"">%2</span>%3'"), НСтр("ru = '%1<span style=""color: %2"">%3</span>%4'"),
ОтступДоУсловия, ОтступДоУсловия,
"СкрытыйВариантОтчетаЦвет",
УсловиеНормализованное, УсловиеНормализованное,
ОтступПослеУсловия); ОтступПослеУсловия);
@@ -2421,7 +2422,10 @@
Функция ФрагментСтрокиПоиска(СтрокаПоиска) Функция ФрагментСтрокиПоиска(СтрокаПоиска)
ШаблонФрагментаСтрокиПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонФрагментаСтрокиПоиска = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '<span style=""color: МоиВариантыОтчетовЦвет; font: ВажнаяНадписьШрифт"">%1</span>'"), СтрокаПоиска); НСтр("ru = '<span style=""color: %1; font: %2"">%3</span>'"),
"МоиВариантыОтчетовЦвет",
"ВажнаяНадписьШрифт",
СтрокаПоиска);
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска); ФрагментСтрокиПоиска = СтроковыеФункции.ФорматированнаяСтрока(ШаблонФрагментаСтрокиПоиска);
@@ -7801,8 +7801,8 @@
Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Дом, СтрокаПоиска) Тогда Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Дом, СтрокаПоиска) Тогда
ТекстПроДом = ОписаниеДома.НазваниеВладения + " " + ОписаниеДома.Дом; ТекстПроДом = ОписаниеДома.НазваниеВладения + " " + ОписаниеДома.Дом;
Иначе Иначе
ТекстПроДом = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%2</span>%3", ТекстПроДом = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color:%2; font:%3'>%4</span>%5",
ОписаниеДома.НазваниеВладения, СтрокаПоиска, Сред(ОписаниеДома.Дом, СтрДлина(СтрокаПоиска) + 1)); ОписаниеДома.НазваниеВладения, "РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Дом, СтрДлина(СтрокаПоиска) + 1));
КонецЕсли; КонецЕсли;
Иначе Иначе
@@ -7814,8 +7814,8 @@
Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Корпус, СтрокаПоиска) Тогда Если ПустаяСтрока(СтрокаПоиска) Или Не СтрНачинаетсяС(ОписаниеДома.Корпус, СтрокаПоиска) Тогда
ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус; ТекстПроСтроения = "корпус" + " " + ОписаниеДома.Корпус;
Иначе Иначе
ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("корпус <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%1</span>%2", ТекстПроСтроения = СтроковыеФункции.ФорматированнаяСтрока("корпус <span style='color:%1; font:%2'>%3</span>%4",
СтрокаПоиска, Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1)); "РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Корпус, СтрДлина(СтрокаПоиска) + 1));
КонецЕсли; КонецЕсли;
@@ -7835,8 +7835,8 @@
Разделитель = ?(ПустаяСтрока(ТекстПроСтроения), "", ", "); Разделитель = ?(ПустаяСтрока(ТекстПроСтроения), "", ", ");
Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(ОписаниеДома.Строение, СтрокаПоиска) Тогда Если ЗначениеЗаполнено(СтрокаПоиска) И СтрНачинаетсяС(ОписаниеДома.Строение, СтрокаПоиска) Тогда
НайденныйФрагментСтроения = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color: РезультатУспехЦвет; font: ВажнаяНадписьШрифт'>%2</span>%3", НайденныйФрагментСтроения = СтроковыеФункции.ФорматированнаяСтрока("%1 <span style='color:%2; font:%3'>%4</span>%5",
Разделитель + НазваниеСтроения, СтрокаПоиска, Сред(ОписаниеДома.Строение, СтрДлина(СтрокаПоиска) + 1)); Разделитель + НазваниеСтроения, "РезультатУспехЦвет", "ВажнаяНадписьШрифт", СтрокаПоиска, Сред(ОписаниеДома.Строение, СтрДлина(СтрокаПоиска) + 1));
Иначе Иначе
НайденныйФрагментСтроения = Разделитель + НазваниеСтроения + " " + ОписаниеДома.Строение; НайденныйФрагментСтроения = Разделитель + НазваниеСтроения + " " + ОписаниеДома.Строение;
КонецЕсли; КонецЕсли;
@@ -87,7 +87,6 @@
ГраницыРазделов = ГраницыРазделовОтчета(РезультатОтчета, РазрезСвойствЗаголовков); ГраницыРазделов = ГраницыРазделовОтчета(РезультатОтчета, РазрезСвойствЗаголовков);
ИндексСтруктурыОтчета = ИндексСтруктурыОтчета(Форма); ИндексСтруктурыОтчета = ИндексСтруктурыОтчета(Форма);
ДополнитьСвойстваЗаголовковОтчета(Форма, РезультатОтчета, Заголовки, РазрезСвойствЗаголовков, ИндексСтруктурыОтчета, ГраницыРазделов); ДополнитьСвойстваЗаголовковОтчета(Форма, РезультатОтчета, Заголовки, РазрезСвойствЗаголовков, ИндексСтруктурыОтчета, ГраницыРазделов);
Ячейка = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть; Ячейка = Элементы.ОтчетТабличныйДокумент.ТекущаяОбласть;
@@ -192,15 +191,10 @@
Для Каждого Элемент Из Поля.Элементы Цикл Для Каждого Элемент Из Поля.Элементы Цикл
Если Не Элемент.Использование Тогда Если Не Элемент.Использование
Продолжить; Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
КонецЕсли;
Если ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
ПредставлениеПолей.Добавить(НСтр("ru = 'Авто'"));
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
ОписаниеПоля = Поля.ДоступныеПоляПолейГруппировок.НайтиПоле(Элемент.Поле); ОписаниеПоля = Поля.ДоступныеПоляПолейГруппировок.НайтиПоле(Элемент.Поле);
@@ -357,24 +351,9 @@
Функция ИндексСтруктурыОтчета(Форма) Экспорт Функция ИндексСтруктурыОтчета(Форма) Экспорт
НастройкиОтчета = Форма.НастройкиОтчета; НастройкиОтчета = Форма.НастройкиОтчета;
АдресИндексаСтруктурыОтчета = НастройкиОтчета.СвойстваРезультата.АдресИндексаСтруктурыОтчета;
ИндексСтруктурыОтчета = Неопределено;
Если ЭтоАдресВременногоХранилища(АдресИндексаСтруктурыОтчета) Тогда
ИндексСтруктурыОтчета = ПолучитьИзВременногоХранилища(АдресИндексаСтруктурыОтчета);
КонецЕсли;
Если ИндексСтруктурыОтчета <> Неопределено И Не Форма.ВариантМодифицирован Тогда
Возврат ИндексСтруктурыОтчета;
КонецЕсли;
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; СвойстваРезультата = НастройкиОтчета.СвойстваРезультата;
КомпоновщикНастроекОтчета = Форма.Отчет.КомпоновщикНастроек; ИтоговыеНастройки = Форма.Отчет.КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроекОтчета.РазвернутьАвтоПоля();
ИтоговыеНастройки = КомпоновщикНастроекОтчета.ПолучитьНастройки();
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, НастройкиОтчета.АдресСхемы); ОтчетыСервер.ИнициализироватьКомпоновщикНастроек(КомпоновщикНастроек, НастройкиОтчета.АдресСхемы);
@@ -386,14 +365,25 @@
СвойстваРезультата.КомпоновщикНастроек = КомпоновщикНастроек; СвойстваРезультата.КомпоновщикНастроек = КомпоновщикНастроек;
СвойстваРезультата.РолиПолей = РолиПолейОтчета(НастройкиОтчета.АдресСхемы); СвойстваРезультата.РолиПолей = РолиПолейОтчета(НастройкиОтчета.АдресСхемы);
ИндексСтруктурыОтчета = ИндексСтруктурыОтчетаБезКонтекста(КомпоновщикНастроекОтчета, ИтоговыеНастройки); ИндексСтруктурыОтчета = Неопределено;
ОпределитьРолиПолей(ИндексСтруктурыОтчета, СвойстваРезультата.РолиПолей); Если ЭтоАдресВременногоХранилища(СвойстваРезультата.АдресИндексаСтруктурыОтчета) Тогда
УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета); ИндексСтруктурыОтчета = ПолучитьИзВременногоХранилища(СвойстваРезультата.АдресИндексаСтруктурыОтчета);
ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета); КонецЕсли;
СвойстваРезультата.АдресИндексаСтруктурыОтчета = ПоместитьВоВременноеХранилище( Если ИндексСтруктурыОтчета = Неопределено
ИндексСтруктурыОтчета, Форма.УникальныйИдентификатор); Или Форма.ВариантМодифицирован Тогда
ИндексСтруктурыОтчета = ИндексСтруктурыОтчетаБезКонтекста(КомпоновщикНастроек, ИтоговыеНастройки);
ОпределитьРолиПолей(ИндексСтруктурыОтчета, СвойстваРезультата.РолиПолей);
ОпределитьПоляФормулы(НастройкиОтчета.АдресСхемы, ИтоговыеНастройки, ИндексСтруктурыОтчета);
УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета);
ОпределитьДоступныеДействияПолейОтчета(ИндексСтруктурыОтчета);
СвойстваРезультата.АдресИндексаСтруктурыОтчета = ПоместитьВоВременноеХранилище(
ИндексСтруктурыОтчета, Форма.УникальныйИдентификатор);
КонецЕсли;
СвойстваРезультата.ИндексПолей = ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета); СвойстваРезультата.ИндексПолей = ИндексПолейСтруктурыОтчета(ИндексСтруктурыОтчета);
СвойстваРезультата.ОсновныеПоля = ОсновныеПоляОтчета(Форма); СвойстваРезультата.ОсновныеПоля = ОсновныеПоляОтчета(Форма);
@@ -486,10 +476,11 @@
ПорядокГруппировки = 0; ПорядокГруппировки = 0;
ПорядокПоля = 0; ПорядокПоля = 0;
ПоляСортировки = Новый Соответствие;
ПоляСортировки(Настройки, Настройки, ПоляСортировки);
Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда Если ТипЗнч(Раздел) = Тип("ТаблицаКомпоновкиДанных") Тогда
ПоляСортировки = Новый Соответствие;
ИндексироватьГруппировкиРазделаОтчета( ИндексироватьГруппировкиРазделаОтчета(
ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Строки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки); ИндексСтруктурыОтчета, ИндексРаздела, Настройки, Раздел.Строки, ПорядокГруппировки, ПорядокПоля, ПоляСортировки);
@@ -589,8 +580,16 @@
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если Замещать Или ПоляСортировки[Элемент.Поле] = Неопределено Тогда Если ТипЗнч(Элемент) = Тип("АвтоЭлементПорядкаКомпоновкиДанных")
И ТипГруппировки <> Тип("НастройкиКомпоновкиДанных") Тогда
ПоляСортировки(Настройки, Настройки, ПоляСортировки, Ложь);
ИначеЕсли ТипЗнч(Элемент) <> Тип("АвтоЭлементПорядкаКомпоновкиДанных")
И (Замещать Или ПоляСортировки[Элемент.Поле] = Неопределено) Тогда
ПоляСортировки.Вставить(Элемент.Поле, Элемент.ТипУпорядочивания); ПоляСортировки.Вставить(Элемент.Поле, Элемент.ТипУпорядочивания);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -653,6 +652,7 @@
ИспользуемыеПоляГруппировки = Новый Соответствие; ИспользуемыеПоляГруппировки = Новый Соответствие;
ИспользуетсяАвтоПоле = ИспользуетсяАвтоПоле(Группировка.Выбор);
ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка); ИспользуемыеНастройки = ИспользуемыеНастройкиГруппировкиОтчета(Настройки, Группировка);
ПоляГруппировки = Группировка.ПоляГруппировки; ПоляГруппировки = Группировка.ПоляГруппировки;
@@ -667,7 +667,8 @@
ИспользуемыеПоляГруппировки.Вставить(Элемент.Поле, Элемент); ИспользуемыеПоляГруппировки.Вставить(Элемент.Поле, Элемент);
Если Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле) Если ИспользуетсяАвтоПоле
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле)
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(ИспользуемыеНастройки.Выбор, Элемент.Поле) Тогда И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(ИспользуемыеНастройки.Выбор, Элемент.Поле) Тогда
ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, ПоляГруппировки, ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, ПоляГруппировки,
@@ -682,6 +683,22 @@
КонецПроцедуры КонецПроцедуры
Функция ИспользуетсяАвтоПоле(Поля)
Для Каждого Элемент Из Поля.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных")
Или ТипЗнч(Элемент) = Тип("АвтоПолеГруппировкиКомпоновкиДанных") Тогда
Возврат Элемент.Использование;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, Процедура ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Поля = Неопределено, Родитель = Неопределено) // АПК:134 реализация сложной логики для формирования индекса структуры отчета. Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Поля = Неопределено, Родитель = Неопределено) // АПК:134 реализация сложной логики для формирования индекса структуры отчета.
@@ -695,7 +712,18 @@
Для Каждого Элемент Из Поля.Элементы Цикл Для Каждого Элемент Из Поля.Элементы Цикл
Если ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда Если ТипЗнч(Элемент) = Тип("АвтоВыбранноеПолеКомпоновкиДанных") Тогда
ИндексироватьВыбранныеПоляНастроекОтчета(
ИндексСтруктурыОтчета,
ИндексГруппировки,
Настройки,
Группировка,
ПорядокПоля,
ПоляСортировки,
ИспользуемыеПоляГруппировки);
ИначеЕсли ТипЗнч(Элемент) = Тип("ГруппаВыбранныхПолейКомпоновкиДанных") Тогда
ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, ИндексироватьВыбранныеПоляГруппировкиОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель); Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель);
@@ -740,8 +768,9 @@
ИндексироватьВыбранныеПоляНастроекОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки, ИндексироватьВыбранныеПоляНастроекОтчета(ИндексСтруктурыОтчета, ИндексГруппировки, Настройки,
Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель); Группировка, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки, Элемент, Родитель);
ИначеЕсли РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле) ИначеЕсли ТипЭлемента <> Тип("АвтоВыбранноеПолеКомпоновкиДанных")
И РазрешеноИспользоватьПолеВГруппировке(Группировка, Элемент.Поле)
И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле, Ложь) Тогда И Не ВариантыОтчетовСлужебныйКлиентСервер.ПолеСодержитсяВГруппировкеОтчета(Группировка.Выбор, Элемент.Поле, Ложь) Тогда
ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, Родитель, Элемент, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки); ДобавитьПолеОтчетаВИндекс(ИндексСтруктурыОтчета, ИндексГруппировки, Родитель, Элемент, ПорядокПоля, ПоляСортировки, ИспользуемыеПоляГруппировки);
@@ -989,6 +1018,45 @@
КонецФункции КонецФункции
Процедура ОпределитьПоляФормулы(АдресСхемы, Настройки, ИндексСтруктурыОтчета)
Для Каждого Запись Из ИндексСтруктурыОтчета Цикл
Запись.ЭтоФормула = ЭтоПользовательскоеПоле(Настройки.ПользовательскиеПоля, Запись.Поле);
КонецЦикла;
Если Не ЭтоАдресВременногоХранилища(АдресСхемы) Тогда
Возврат;
КонецЕсли;
Схема = ПолучитьИзВременногоХранилища(АдресСхемы);
Если ТипЗнч(Схема) <> Тип("СхемаКомпоновкиДанных") Тогда
Возврат;
КонецЕсли;
НайденныеЗаписи = ИндексСтруктурыОтчета.НайтиСтроки(Новый Структура("ЭтоФормула", Ложь));
ВычисляемыеПоля = Схема.ВычисляемыеПоля;
Для Каждого Запись Из НайденныеЗаписи Цикл
Запись.ЭтоФормула = ВычисляемыеПоля.Найти(Строка(Запись.Поле)) <> Неопределено;
КонецЦикла;
КонецПроцедуры
Функция ЭтоПользовательскоеПоле(ПользовательскиеПоля, Поле)
Для Каждого Элемент Из ПользовательскиеПоля.Элементы Цикл
Если Элемент.ПутьКДанным = Строка(Поле) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
Процедура УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета) Процедура УстановитьИдентификаторыИндексаСтруктурыОтчета(ИндексСтруктурыОтчета)
Для Каждого Индекс Из ИндексСтруктурыОтчета Цикл Для Каждого Индекс Из ИндексСтруктурыОтчета Цикл
@@ -1192,6 +1260,7 @@
Индекс.Колонки.Добавить("Период", ОписаниеПризнака); Индекс.Колонки.Добавить("Период", ОписаниеПризнака);
Индекс.Колонки.Добавить("Измерение", ОписаниеПризнака); Индекс.Колонки.Добавить("Измерение", ОписаниеПризнака);
Индекс.Колонки.Добавить("Ресурс", ОписаниеПризнака); Индекс.Колонки.Добавить("Ресурс", ОписаниеПризнака);
Индекс.Колонки.Добавить("ЭтоФормула", ОписаниеПризнака);
Индекс.Колонки.Добавить("ТипЗначения", ОписаниеТипов); Индекс.Колонки.Добавить("ТипЗначения", ОписаниеТипов);
Индекс.Колонки.Добавить("ПолеСортируется", ОписаниеПризнака); Индекс.Колонки.Добавить("ПолеСортируется", ОписаниеПризнака);
@@ -1644,6 +1713,7 @@
Свойства.Вставить("Период", Ложь); Свойства.Вставить("Период", Ложь);
Свойства.Вставить("Измерение", Ложь); Свойства.Вставить("Измерение", Ложь);
Свойства.Вставить("Ресурс", Ложь); Свойства.Вставить("Ресурс", Ложь);
Свойства.Вставить("ЭтоФормула", Ложь);
Свойства.Вставить("ТипЗначения", Неопределено); Свойства.Вставить("ТипЗначения", Неопределено);
Свойства.Вставить("ТипПоля", Неопределено); Свойства.Вставить("ТипПоля", Неопределено);
@@ -1703,7 +1773,12 @@
Данные = ПолучитьИзВременногоХранилища(Форма.ОтчетДанныеРасшифровки); Данные = ПолучитьИзВременногоХранилища(Форма.ОтчетДанныеРасшифровки);
ЭлементРасшифровки = Данные.Элементы.Получить(Расшифровка); ЭлементРасшифровки = Данные.Элементы.Получить(Расшифровка);
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда Родители = ЭлементРасшифровки.ПолучитьРодителей();
Родитель = ?(Родители.Количество() = 0, Неопределено, Родители[0]);
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка")
Или ТипЗнч(Родитель) <> Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
ТипЭлементаРасшифровки = ВариантыОтчетовСлужебныйКлиентСервер.ТипЭлементаРасшифровкиГруппировка(); ТипЭлементаРасшифровки = ВариантыОтчетовСлужебныйКлиентСервер.ТипЭлементаРасшифровкиГруппировка();
Иначе Иначе
ТипЭлементаРасшифровки = ТипРеквизит(); ТипЭлементаРасшифровки = ТипРеквизит();
@@ -156,7 +156,7 @@
НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета НастройкиОтчета = Форма.НастройкиОтчета; // см. ВариантыОтчетов.НастройкиФормыОтчета
СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета СвойстваРезультата = НастройкиОтчета.СвойстваРезультата; // см. ВариантыОтчетовСлужебный.СвойстваРезультатаОтчета
Элементы = Форма.Элементы; Элементы = Форма.Элементы;
ПолеОтчета = Элементы.ОтчетТабличныйДокумент; // ПолеТабличногоДокумента ПолеОтчета = Элементы.ОтчетТабличныйДокумент; // ПолеФормы, РасширениеПоляФормыДляПоляТабличногоДокумента
СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя]; СвойстваЗаголовка = СвойстваРезультата.Заголовки[Область.Имя];
ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник ЭтоРасшифровка = Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник
@@ -1451,6 +1451,7 @@
Или ТипЭлемента = Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда Или ТипЭлемента = Тип("ГруппировкаТаблицыКомпоновкиДанных") Тогда
УдалитьЭлементыСортировки(Элемент.Порядок.Элементы); УдалитьЭлементыСортировки(Элемент.Порядок.Элементы);
СброситьСортировку(Настройки, СвойстваЗаголовка, Элемент.Структура);
КонецЕсли; КонецЕсли;
@@ -194,6 +194,7 @@
КонецЕсли; КонецЕсли;
Если ЭтоГруппировка Если ЭтоГруппировка
Или СвойстваЗаголовка.ЭтоФормула
Или СвойстваЗаголовка.КоличествоРазделов > 1 Тогда Или СвойстваЗаголовка.КоличествоРазделов > 1 Тогда
Раздел = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела); Раздел = ИспользуемыеНастройки.ПолучитьОбъектПоИдентификатору(СвойстваЗаголовка.ИдентификаторРаздела);
@@ -612,6 +612,93 @@
КонецПроцедуры КонецПроцедуры
Процедура ТекстЗапросаСпискаПредупрежденияВерсий(СписокТекстЗапроса) Экспорт
СписокТекстЗапроса =
"ВЫБРАТЬ
| НепринятаяВерсия.АвторВерсии,
| НепринятаяВерсия.Объект,
| НЕОПРЕДЕЛЕНО,
| НепринятаяВерсия.ТипВерсииОбъекта,
| ВЫБОР
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
| ТОГДА &НепринятыйСуществующий
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе)
| ТОГДА &НепринятыйНовый
| КОНЕЦ,
| НепринятаяВерсия.ДатаВерсии,
| НепринятаяВерсия.ПредупреждениеСинхронизации,
| НЕОПРЕДЕЛЕНО,
| НепринятаяВерсия.ВерсияПроигнорирована,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(НепринятаяВерсия.Комментарий КАК СТРОКА(1000))) = """"
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| НепринятаяВерсия.Комментарий,
| ЕСТЬNULL(НепринятаяВерсия.НомерВерсии, 0),
| ЕСТЬNULL(ТекущаяВерсия.НомерВерсии, 0),
| НЕОПРЕДЕЛЕНО,
| ВЫБОР
| КОГДА
| НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК НепринятаяВерсия
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ТекущаяВерсия
| ПО НепринятаяВерсия.Объект = ТекущаяВерсия.Объект
| И (НепринятаяВерсия.НомерВерсии = ТекущаяВерсия.НомерВерсии + 1)
|ГДЕ
| НепринятаяВерсия.ТипВерсииОбъекта В
| (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе),
| ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе))
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| ВерсииДругойПрограммы.АвторВерсии,
| ВерсииДругойПрограммы.Объект,
| НЕОПРЕДЕЛЕНО,
| ВерсииДругойПрограммы.ТипВерсииОбъекта,
| ВЫБОР
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
| ТОГДА &ПринятыеДанныеКоллизии
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии)
| ТОГДА &НепринятыеДанныеКоллизии
| КОНЕЦ,
| ВерсииДругойПрограммы.ДатаВерсии,
| ВерсииДругойПрограммы.ПредупреждениеСинхронизации,
| НЕОПРЕДЕЛЕНО,
| ВерсииДругойПрограммы.ВерсияПроигнорирована,
| ВЫБОР
| КОГДА (ВЫРАЗИТЬ(ВерсииДругойПрограммы.Комментарий КАК СТРОКА(1024))) = """"
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ,
| ВерсииДругойПрограммы.Комментарий,
| ЕСТЬNULL(ВерсииДругойПрограммы.НомерВерсии, 0),
| ЕСТЬNULL(ВерсииЭтойПрограммы.НомерВерсии, 0),
| ВЫБОР
| КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ,
| НЕОПРЕДЕЛЕНО
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК ВерсииДругойПрограммы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ВерсииЭтойПрограммы
| ПО ВерсииДругойПрограммы.Объект = ВерсииЭтойПрограммы.Объект
| И (ВерсииДругойПрограммы.НомерВерсии = ВерсииЭтойПрограммы.НомерВерсии + 1)
|ГДЕ
| ВерсииДругойПрограммы.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии),
| ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии))";
КонецПроцедуры
// Возвращает описание команды для добавления в отчете "Результаты проверки учета". // Возвращает описание команды для добавления в отчете "Результаты проверки учета".
// //
// Параметры: // Параметры:
@@ -8517,14 +8517,16 @@
Если ВключеноРегламентноеЗаданиеПолученияИОтправкиПисем() Тогда Если ВключеноРегламентноеЗаданиеПолученияИОтправкиПисем() Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РегламентныеЗадания") Тогда
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр( Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию. <a href = ""ПерейтиКНастройкеРегламентныхЗаданий"">Подробнее</a>'")); "ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию. <a href = ""%1"">Подробнее</a>'"),
"ПерейтиКНастройкеРегламентныхЗаданий");
Иначе Иначе
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр( Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию.'")); "ru = 'Регламентное задание <b>Получение и отправка писем</b> не было выполнено по расписанию.'"));
КонецЕсли; КонецЕсли;
Иначе Иначе
Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр( Возврат СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Регламентное задание <b>Получение и отправка писем</b> отключено, доставка писем не выполняется. <a href = ""ВключитьПолучениеИОтправкуПисем"">Включить</a>'")); "ru = 'Регламентное задание <b>Получение и отправка писем</b> отключено, доставка писем не выполняется. <a href = ""%1"">Включить</a>'"),
"ВключитьПолучениеИОтправкуПисем");
КонецЕсли; КонецЕсли;
КонецФункции КонецФункции
@@ -4007,6 +4007,7 @@
ЗарегистрироватьПакетДанных(ПараметрыРегистрации, ПараметрыРегистрации.ДанныеДляРегистрации); ЗарегистрироватьПакетДанных(ПараметрыРегистрации, ПараметрыРегистрации.ДанныеДляРегистрации);
Иначе Иначе
ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные); ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные);
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыРегистрации);
КонецЕсли; КонецЕсли;
УвеличитьКоличествоЗарегистрированныхДанных(ПараметрыРегистрации.Параметры, УвеличитьКоличествоЗарегистрированныхДанных(ПараметрыРегистрации.Параметры,
@@ -4041,9 +4042,7 @@
ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные); ПланыОбмена.ЗарегистрироватьИзменения(ПараметрыРегистрации.Узел, Данные);
Данные.Очистить(); Данные.Очистить();
Если ПараметрыРегистрации.Свойство("ПереиспользуемыеНаборы") Тогда ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыРегистрации);
ОсвободитьПереиспользуемыеНаборы(ПараметрыРегистрации.ПереиспользуемыеНаборы);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -4184,9 +4183,7 @@
ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные); ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные);
Данные.Очистить(); Данные.Очистить();
Если ПараметрыУдаления.Свойство("ПереиспользуемыеНаборы") Тогда ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыУдаления);
ОсвободитьПереиспользуемыеНаборы(ПараметрыУдаления.ПереиспользуемыеНаборы);
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -4208,6 +4205,7 @@
УдалитьРегистрациюИзмененийПакетаДанных(ПараметрыУдаления, ПараметрыУдаления.ДанныеДляУдаления); УдалитьРегистрациюИзмененийПакетаДанных(ПараметрыУдаления, ПараметрыУдаления.ДанныеДляУдаления);
Иначе Иначе
ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные); ПланыОбмена.УдалитьРегистрациюИзменений(ПараметрыУдаления.Узел, Данные);
ОсвободитьПереиспользуемыеНаборыВПараметрах(ПараметрыУдаления);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -4230,7 +4228,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Булево - Истина - быстрая пакетная регистрация доступна. // Булево - Истина - быстрая пакетная регистрация доступна.
// //
Функция ДоступнаПакетнаяРегистрация() Функция ДоступнаПакетнаяРегистрация() Экспорт
СистемнаяИнформация = Новый СистемнаяИнформация; СистемнаяИнформация = Новый СистемнаяИнформация;
@@ -4461,6 +4459,20 @@
КонецПроцедуры КонецПроцедуры
// Освободить ранее занятые переиспользуемые наборы на основе параметров.
//
// Параметры:
// Параметры - см. НовыеПараметрыРегистрации
// - см. НовыеПараметрыУдаленияРегистрации.
//
Процедура ОсвободитьПереиспользуемыеНаборыВПараметрах(Параметры)
Если Параметры.Свойство("ПереиспользуемыеНаборы") Тогда
ОсвободитьПереиспользуемыеНаборы(Параметры.ПереиспользуемыеНаборы);
КонецЕсли;
КонецПроцедуры
Функция УзлыМеньшейОчереди(Очередь) Функция УзлыМеньшейОчереди(Очередь)
Возврат ПланыОбмена.ОбновлениеИнформационнойБазы.УзлыМеньшейОчереди(Очередь); Возврат ПланыОбмена.ОбновлениеИнформационнойБазы.УзлыМеньшейОчереди(Очередь);
КонецФункции КонецФункции
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.180"; Описание.Версия = "3.1.5.192";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -902,6 +902,9 @@
ЗаписатьИнформацию(Сообщение); ЗаписатьИнформацию(Сообщение);
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика); ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
Если Обработчик.Многопоточный Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыОбработчикаСтруктура.ПараметрыВыборки);
КонецЕсли;
Исключение Исключение
ЗаписатьОшибку(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ЗаписатьОшибку(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При вызове процедуры заполнения данных НСтр("ru = 'При вызове процедуры заполнения данных
@@ -2246,11 +2249,14 @@
// //
Функция ВесВерсии(Знач Версия) Экспорт Функция ВесВерсии(Знач Версия) Экспорт
Если Версия = "" Если Версия = "" Тогда
Или СтрНачинаетсяС(Версия, "ОтладкаОбработчика") Тогда
Возврат 0; Возврат 0;
КонецЕсли; КонецЕсли;
Если СтрНачинаетсяС(Версия, "ОтладкаОбработчика") Тогда
Возврат 99000000000;
КонецЕсли;
Возврат ВесВерсииИзМассиваСтрок(СтрРазделить(Версия, ".")); Возврат ВесВерсииИзМассиваСтрок(СтрРазделить(Версия, "."));
КонецФункции КонецФункции
@@ -3134,7 +3140,9 @@
|ГДЕ |ГДЕ
| ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения | ОбработчикиОбновления.РежимВыполнения = &РежимВыполнения
| И (ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОбработчика | И (ОбработчикиОбновления.РежимВыполненияОтложенногоОбработчика = &РежимВыполненияОбработчика
| ИЛИ &БезФильтра)"; | ИЛИ &БезФильтра)
|УПОРЯДОЧИТЬ ПО
| ОбработчикиОбновления.ОчередьОтложеннойОбработки";
Обработчики = Запрос.Выполнить().Выгрузить(); Обработчики = Запрос.Выполнить().Выгрузить();
Возврат Обработчики; Возврат Обработчики;
@@ -3890,6 +3898,10 @@
ЗаполнитьЗначенияСвойств(ОписаниеОбрабатываемыхДанных, Результат); ЗаполнитьЗначенияСвойств(ОписаниеОбрабатываемыхДанных, Результат);
ОписаниеОбрабатываемыхДанных.Статус = "Выполнено"; ОписаниеОбрабатываемыхДанных.Статус = "Выполнено";
Если ЭтоОписаниеДанныхМногопоточногоОбработчика(ОписаниеОбрабатываемыхДанных) Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ОписаниеОбрабатываемыхДанных.ПараметрыВыборки);
КонецЕсли;
ОбрабатываемыеДанные = Новый ХранилищеЗначения(ОписаниеОбрабатываемыхДанных, Новый СжатиеДанных(9)); ОбрабатываемыеДанные = Новый ХранилищеЗначения(ОписаниеОбрабатываемыхДанных, Новый СжатиеДанных(9));
УстановитьСвойствоОбработчика(ОписаниеОбрабатываемыхДанных.ИмяОбработчика, "ОбрабатываемыеДанные", ОбрабатываемыеДанные); УстановитьСвойствоОбработчика(ОписаниеОбрабатываемыхДанных.ИмяОбработчика, "ОбрабатываемыеДанные", ОбрабатываемыеДанные);
@@ -7938,6 +7950,10 @@
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика); ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
Если Обработчик.Многопоточный Тогда
ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыОбработчикаСтруктура.ПараметрыВыборки);
КонецЕсли;
// Запись прогресса обновления. // Запись прогресса обновления.
Если Параметры.ВФоне Тогда Если Параметры.ВФоне Тогда
ХодВыполненияОбработчиков = Параметры.ХодВыполненияОбработчиков; ХодВыполненияОбработчиков = Параметры.ХодВыполненияОбработчиков;
@@ -7997,7 +8013,17 @@
УдалитьВсеПотокиОбновления(); УдалитьВсеПотокиОбновления();
Попытка Попытка
ДоступнаПакетнаяРегистрация = ОбновлениеИнформационнойБазы.ДоступнаПакетнаяРегистрация();
Если ДоступнаПакетнаяРегистрация Тогда
ТекущаяОчередь = ?(Обработчики.Количество() > 0, Обработчики[0].ОчередьОтложеннойОбработки, 0);
КонецЕсли;
Для Каждого Обработчик Из Обработчики Цикл Для Каждого Обработчик Из Обработчики Цикл
Если ДоступнаПакетнаяРегистрация И Обработчик.ОчередьОтложеннойОбработки > ТекущаяОчередь Тогда
ОжидатьЗавершениеВсехПотоков(Группы);
ТекущаяОчередь = Обработчик.ОчередьОтложеннойОбработки;
КонецЕсли;
ОписаниеОбрабатываемыхДанных = Обработчик.ОбрабатываемыеДанные.Получить(); ОписаниеОбрабатываемыхДанных = Обработчик.ОбрабатываемыеДанные.Получить();
Поток = ДобавитьПотокРегистрацииДанныхОтложенногоОбновления(ОписаниеОбрабатываемыхДанных); Поток = ДобавитьПотокРегистрацииДанныхОтложенногоОбновления(ОписаниеОбрабатываемыхДанных);
@@ -8419,4 +8445,52 @@
КонецФункции КонецФункции
// Исправить перечисленные через запятую полные имена объектов и регистров
// с помощью УникальныеЗначенияЧерезЗапятую, чтобы не сбивалась курсорная выборка данных.
//
// Параметры:
// ПараметрыВыборки - см. ОбновлениеИнформационнойБазы.ДополнительныеПараметрыВыборкиДанныхДляМногопоточнойОбработки
//
Процедура ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыВыборки)
ПараметрыВыборки.ПолныеИменаОбъектов = УникальныеЗначенияЧерезЗапятую(ПараметрыВыборки.ПолныеИменаОбъектов);
ПараметрыВыборки.ПолныеИменаРегистров = УникальныеЗначенияЧерезЗапятую(ПараметрыВыборки.ПолныеИменаРегистров);
КонецПроцедуры
// Оставить только уникальные значения, перечисленные через запятую и упорядочить их.
//
// Параметры:
// Строка - Строка - значения, перечисленные через запятую.
//
// Возвращаемое значение:
// Строка - только уникальные упорядоченные значения через запятую.
//
Функция УникальныеЗначенияЧерезЗапятую(Строка)
Если Строка = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Значения = СтрРазделить(Строка, ",");
Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Значение");
Для Каждого Значение Из Значения Цикл
ТочноеЗначение = СокрЛП(Значение);
Если Не ПустаяСтрока(ТочноеЗначение) Тогда
СтрокаТаблицы = Таблица.Добавить();
СтрокаТаблицы.Значение = ТочноеЗначение;
КонецЕсли;
КонецЦикла;
Таблица.Свернуть("Значение");
Таблица.Сортировать("Значение");
Значения = Таблица.ВыгрузитьКолонку("Значение");
Возврат СтрСоединить(Значения, ",");
КонецФункции
#КонецОбласти #КонецОбласти
@@ -264,7 +264,8 @@
Возврат Результат; Возврат Результат;
КонецЕсли; КонецЕсли;
Если Тип("Структура") = ТипЗнч(Реквизиты) Тогда Если Тип("Структура") = ТипЗнч(Реквизиты)
Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
Реквизиты = Новый Массив; Реквизиты = Новый Массив;
Для Каждого КлючИЗначение Из СтруктураПолей Цикл Для Каждого КлючИЗначение Из СтруктураПолей Цикл
ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
@@ -331,7 +332,8 @@
// Если реквизиты - массив, оставляем без изменений. // Если реквизиты - массив, оставляем без изменений.
// Если реквизиты - структура - конвертируем в массив. // Если реквизиты - структура - конвертируем в массив.
// В остальных случаях уже было бы выброшено исключение. // В остальных случаях уже было бы выброшено исключение.
Если Тип("Структура") = ТипЗнч(Реквизиты) Тогда Если Тип("Структура") = ТипЗнч(Реквизиты)
Или Тип("ФиксированнаяСтруктура") = ТипЗнч(Реквизиты) Тогда
Реквизиты = Новый Массив; Реквизиты = Новый Массив;
Для каждого КлючИЗначение Из СтруктураПолей Цикл Для каждого КлючИЗначение Из СтруктураПолей Цикл
ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение), ИмяПоля = ?(ЗначениеЗаполнено(КлючИЗначение.Значение),
@@ -2166,6 +2166,8 @@
// ПолеТабличногоДокумента - ПолеФормы // ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - элемент формы, // - ПолеТабличногоДокумента - элемент формы,
// данными которого является параметр ТабличныйДокумент. // данными которого является параметр ТабличныйДокумент.
// ПараметрыРасчета - Неопределено
// - см. ПараметрыРасчетаПоказателейЯчеек
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура - результаты расчета выделенных ячеек: // Структура - результаты расчета выделенных ячеек:
@@ -2176,9 +2178,11 @@
// * Минимум - Число - сумма выделенных ячеек с числами. // * Минимум - Число - сумма выделенных ячеек с числами.
// * Максимум - Число - максимум выделенных ячеек с числами. // * Максимум - Число - максимум выделенных ячеек с числами.
// //
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, Знач ПолеТабличногоДокумента) Экспорт Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, Знач ПолеТабличногоДокумента, ПараметрыРасчета = Неопределено) Экспорт
ПараметрыРасчета = ОбщегоНазначенияСлужебныйКлиентСервер.ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента); Если ПараметрыРасчета = Неопределено Тогда
ПараметрыРасчета = ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
КонецЕсли;
Если ПараметрыРасчета.РассчитатьНаСервере Тогда Если ПараметрыРасчета.РассчитатьНаСервере Тогда
Возврат СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек( Возврат СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек(
@@ -2190,6 +2194,75 @@
КонецФункции КонецФункции
// Формирует описание выделенных областей табличного документа.
//
// Параметры:
// ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - Документ
// значения ячеек которого участвуют в расчете.
//
// Возвращаемое значение:
// Структура:
// * ВыделенныеОбласти - Массив - содержит структуры со свойствами:
// * Верх - Число - номер строки верхней границы области.
// * Низ - Число - номер строки нижней границы области.
// * Лево - Число - номер колонки верхней границы области.
// * Право - Число - номер колонки нижней границы области.
// * ТипОбласти - ТипОбластиЯчеекТабличногоДокумента - Колонки, Прямоугольник, Строки, Таблица.
// * РассчитатьНаСервере - Булево - признак того, что расчет должен выполняться на сервере, если
// количество выбранных ячеек более или равно 1000,
// либо количество выделенных областей более или равно 100,
// либо выделено поле табличного документа целиком.
// В таких случаях расчет показателей на клиенте очень затратный.
//
Функция ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента) Экспорт
ПараметрыРасчетаПоказателей = Новый Структура;
ПараметрыРасчетаПоказателей.Вставить("ВыделенныеОбласти", Новый Массив);
ПараметрыРасчетаПоказателей.Вставить("РассчитатьНаСервере", Ложь);
ВыделенныеОбласти = ПараметрыРасчетаПоказателей.ВыделенныеОбласти;
ВыделенныеОбластиДокумента = ПолеТабличногоДокумента.ПолучитьВыделенныеОбласти();
КоличествоВыделенныхЯчеек = 0;
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбластиДокумента Цикл
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Продолжить;
КонецЕсли;
ГраницыОбласти = Новый Структура("Верх, Низ, Лево, Право, ТипОбласти");
ЗаполнитьЗначенияСвойств(ГраницыОбласти, ВыделеннаяОбласть);
ВыделенныеОбласти.Добавить(ГраницыОбласти);
КоличествоВыделенныхЯчеек = КоличествоВыделенныхЯчеек
+ (ВыделеннаяОбласть.Право - ВыделеннаяОбласть.Лево + 1)
* (ВыделеннаяОбласть.Низ - ВыделеннаяОбласть.Верх + 1);
КонецЦикла;
ВыделеноВсе = Ложь;
Если ВыделенныеОбласти.Количество() = 1 Тогда
ВыделеннаяОбласть = ВыделенныеОбласти[0];
ВыделеноВсе = Не Булево(
ВыделеннаяОбласть.Верх
+ ВыделеннаяОбласть.Низ
+ ВыделеннаяОбласть.Лево
+ ВыделеннаяОбласть.Право);
КонецЕсли;
ПараметрыРасчетаПоказателей.РассчитатьНаСервере = (ВыделеноВсе
Или ВыделенныеОбласти.Количество() >= 100
Или КоличествоВыделенныхЯчеек >= 1000);
Возврат ПараметрыРасчетаПоказателей;
КонецФункции
#КонецОбласти #КонецОбласти
#Область РегламентныеЗадания #Область РегламентныеЗадания
@@ -219,7 +219,7 @@
// ИмяТабличногоДокумента - Строка - имя реквизита формы типа ТабличныйДокумент, показатели которого рассчитываются. // ИмяТабличногоДокумента - Строка - имя реквизита формы типа ТабличныйДокумент, показатели которого рассчитываются.
// ТекущаяКоманда - Строка - имя команды расчета показателя, например, "РассчитатьСумму". // ТекущаяКоманда - Строка - имя команды расчета показателя, например, "РассчитатьСумму".
// Определяет, какой показатель является основным. // Определяет, какой показатель является основным.
// МинимальноеКоличество - Число // МинимальноеКоличество - Число
// //
Процедура РассчитатьПоказатели(Форма, ИмяТабличногоДокумента, ТекущаяКоманда = "", МинимальноеКоличество = 0) Экспорт Процедура РассчитатьПоказатели(Форма, ИмяТабличногоДокумента, ТекущаяКоманда = "", МинимальноеКоличество = 0) Экспорт
@@ -231,43 +231,38 @@
ТекущаяКоманда = ТекущаяКомандаРасчетаПоказателей(Элементы); ТекущаяКоманда = ТекущаяКомандаРасчетаПоказателей(Элементы);
КонецЕсли; КонецЕсли;
// Расчет показателей. ПараметрыРасчета = ОбщегоНазначенияКлиентСервер.ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента);
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
ТабличныйДокумент, ПолеТабличногоДокумента);
// Установка значений показателей. Если ПараметрыРасчета.РассчитатьНаСервере Тогда
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
ДлительнаяОперация = СтандартныеПодсистемыВызовСервера.РасчетныеПоказателиЯчеек(
// Переключение и форматирование показателей. ТабличныйДокумент, ПараметрыРасчета.ВыделенныеОбласти, Форма.УникальныйИдентификатор);
КомандыПоказателей = КомандыПоказателей();
Если ДлительнаяОперация = Неопределено Тогда
Для Каждого Команда Из КомандыПоказателей Цикл Возврат;
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь); КонецЕсли;
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
ПараметрыОжидания.ФормаВладелец = Форма;
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", Форма);
ДополнительныеПараметры.Вставить("ТекущаяКоманда", ТекущаяКоманда);
ДополнительныеПараметры.Вставить("МинимальноеКоличество", МинимальноеКоличество);
ОповещениеОЗавершении = Новый ОписаниеОповещения("ПродолжитьРасчетПоказателей", ЭтотОбъект, ДополнительныеПараметры);
ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
Иначе
РасчетныеПоказатели = ОбщегоНазначенияКлиентСервер.РасчетныеПоказателиЯчеек(
ТабличныйДокумент, ПолеТабличногоДокумента, ПараметрыРасчета);
ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели);
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
КонецЦикла;
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
// Вывод основного показателя.
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
Форма.Показатель = Форма[ТекущийПоказатель];
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
КонецЕсли; КонецЕсли;
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
// Кэширование состояния выбора показателей.
Форма.ОсновнойПоказатель = ТекущаяКоманда;
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
КонецПроцедуры КонецПроцедуры
// Управляет признаком видимости панели расчетных показателей. // Управляет признаком видимости панели расчетных показателей.
@@ -994,6 +989,65 @@
#Область ТабличныйДокумент #Область ТабличныйДокумент
Процедура ПродолжитьРасчетПоказателей(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Если Результат.Статус <> "Выполнено" Тогда
Возврат;
КонецЕсли;
РасчетныеПоказатели = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
ЗавершитьРасчетПоказателей(
ДополнительныеПараметры.Форма,
ДополнительныеПараметры.ТекущаяКоманда,
ДополнительныеПараметры.МинимальноеКоличество,
РасчетныеПоказатели);
КонецПроцедуры
Процедура ЗавершитьРасчетПоказателей(Форма, ТекущаяКоманда, МинимальноеКоличество, РасчетныеПоказатели)
Элементы = Форма.Элементы;
ЗаполнитьЗначенияСвойств(Форма, РасчетныеПоказатели);
КомандыПоказателей = КомандыПоказателей();
Для Каждого Команда Из КомандыПоказателей Цикл
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, Команда.Ключ, "Пометка", Ложь);
ЗначениеПоказателя = РасчетныеПоказатели[Команда.Значение];
Элементы[Команда.Значение].ФорматРедактирования = ФорматРедактированияПоказателя(ЗначениеПоказателя);
КонецЦикла;
ИзменитьСвойствоЭлементаРасчетаПоказателей(Элементы, ТекущаяКоманда, "Пометка", Истина);
ТекущийПоказатель = КомандыПоказателей[ТекущаяКоманда];
Если РасчетныеПоказатели.Количество >= МинимальноеКоличество Тогда
Форма.Показатель = Форма[ТекущийПоказатель];
Элементы.Показатель.ФорматРедактирования = Элементы[ТекущийПоказатель].ФорматРедактирования;
КонецЕсли;
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "КомандыВидовПоказателей", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
ИзменитьСвойствоЭлементаРасчетаПоказателей(
Элементы, "ВыбратьПоказатель", "Картинка", БиблиотекаКартинок[ТекущийПоказатель]);
Форма.ОсновнойПоказатель = ТекущаяКоманда;
Форма.РазвернутьОбластьПоказателей = Элементы.РассчитатьВсеПоказатели.Пометка;
КонецПроцедуры
Функция ТекущаяКомандаРасчетаПоказателей(ЭлементыФормы) Функция ТекущаяКомандаРасчетаПоказателей(ЭлементыФормы)
Перем ТекущаяКоманда; Перем ТекущаяКоманда;
@@ -714,63 +714,6 @@
#Область ТабличныйДокумент #Область ТабличныйДокумент
// Формирует описание выделенных областей табличного документа.
//
// Параметры:
// ПолеТабличногоДокумента - ПолеФормы
// - ПолеТабличногоДокумента - Документ
// значения ячеек которого участвуют в расчете.
//
// Возвращаемое значение:
// Структура:
// * ВыделенныеОбласти - Массив - содержит структуры со свойствами:
// * Верх - Число - номер строки верхней границы области.
// * Низ - Число - номер строки нижней границы области.
// * Лево - Число - номер колонки верхней границы области.
// * Право - Число - номер колонки нижней границы области.
// * ТипОбласти - ТипОбластиЯчеекТабличногоДокумента - Колонки, Прямоугольник, Строки, Таблица.
// * РассчитатьНаСервере - Булево - признак того, что расчет должен выполняться на сервере.
//
Функция ПараметрыРасчетаПоказателейЯчеек(ПолеТабличногоДокумента) Экспорт
ПараметрыРасчетаПоказателей = Новый Структура;
ПараметрыРасчетаПоказателей.Вставить("ВыделенныеОбласти", Новый Массив);
ПараметрыРасчетаПоказателей.Вставить("РассчитатьНаСервере", Ложь);
ВыделенныеОбласти = ПараметрыРасчетаПоказателей.ВыделенныеОбласти;
ВыделенныеОбластиДокумента = ПолеТабличногоДокумента.ПолучитьВыделенныеОбласти();
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбластиДокумента Цикл
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
Продолжить;
КонецЕсли;
ГраницыОбласти = Новый Структура("Верх, Низ, Лево, Право, ТипОбласти");
ЗаполнитьЗначенияСвойств(ГраницыОбласти, ВыделеннаяОбласть);
ВыделенныеОбласти.Добавить(ГраницыОбласти);
КонецЦикла;
ВыделеноВсе = Ложь;
Если ВыделенныеОбласти.Количество() = 1 Тогда
ВыделеннаяОбласть = ВыделенныеОбласти[0];
ВыделеноВсе = Не Булево(
ВыделеннаяОбласть.Верх
+ ВыделеннаяОбласть.Низ
+ ВыделеннаяОбласть.Лево
+ ВыделеннаяОбласть.Право);
КонецЕсли;
ПараметрыРасчетаПоказателей.РассчитатьНаСервере = (ВыделеноВсе Или ВыделенныеОбласти.Количество() >= 100);
Возврат ПараметрыРасчетаПоказателей;
КонецФункции
// Возвращает признак соответствия текста ячейки формату экспоненциальной записи. // Возвращает признак соответствия текста ячейки формату экспоненциальной записи.
// Это позволяет принять решение, рассчитывать ли данное значение методом ПривестиЗначение // Это позволяет принять решение, рассчитывать ли данное значение методом ПривестиЗначение
// или отказаться от расчета, поскольку приведение к числу может потребовать значительных // или отказаться от расчета, поскольку приведение к числу может потребовать значительных
@@ -1576,6 +1576,7 @@
ЭлементыНастроек = ПалитраКоллекцииЭлементовНастроек(); ЭлементыНастроек = ПалитраКоллекцииЭлементовНастроек();
НайтиЭлементыФормыНастроек(Форма, Элементы.Временная, ЭлементыНастроек, ОписаниеНастроек); НайтиЭлементыФормыНастроек(Форма, Элементы.Временная, ЭлементыНастроек, ОписаниеНастроек);
УдалитьЭлементыЗначенийФлажков(ЭлементыНастроек);
СводныеСведения = ЭлементыНастроек.Скопировать(); СводныеСведения = ЭлементыНастроек.Скопировать();
СводныеСведения.Свернуть("ИндексНастройки", "КонтрольнаяСумма"); СводныеСведения.Свернуть("ИндексНастройки", "КонтрольнаяСумма");
@@ -1600,7 +1601,12 @@
ГруппаЭлемента = Элемент.Поле.Родитель; ГруппаЭлемента = Элемент.Поле.Родитель;
Если Элементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено Если Элементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено
Или ГруппаЭлемента.ПодчиненныеЭлементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено Тогда Или ГруппаЭлемента.ПодчиненныеЭлементы.Найти(ИмяДополнительногоЭлемента) <> Неопределено Тогда
Продолжить;
Если Элемент.ЭтоФлажок Тогда
ИмяДополнительногоЭлемента = ИмяДополнительногоЭлемента + "Дополнительное";
Иначе
Продолжить;
КонецЕсли;
КонецЕсли; КонецЕсли;
ДополнительныйЭлемент = Элементы.Добавить(ИмяДополнительногоЭлемента, Тип("ДекорацияФормы"), ГруппаЭлемента); ДополнительныйЭлемент = Элементы.Добавить(ИмяДополнительногоЭлемента, Тип("ДекорацияФормы"), ГруппаЭлемента);
@@ -1718,6 +1724,15 @@
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
Процедура УдалитьЭлементыЗначенийФлажков(ЭлементыНастроек)
Поиск = Новый Структура("СвойствоНастройки, ЭтоФлажок", "Значение", Истина);
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Поиск);
Для Каждого Элемент Из НайденныеЭлементы Цикл
ЭлементыНастроек.Удалить(Элемент);
КонецЦикла;
КонецПроцедуры
Процедура НайтиЗначенияКакФлажки(Форма, ЭлементыНастроек, ИменаРеквизитов) Процедура НайтиЗначенияКакФлажки(Форма, ЭлементыНастроек, ИменаРеквизитов)
Поиск = Новый Структура; Поиск = Новый Структура;
Поиск.Вставить("ТипЗначения", Новый ОписаниеТипов("Булево")); Поиск.Вставить("ТипЗначения", Новый ОписаниеТипов("Булево"));
@@ -830,16 +830,13 @@
И ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда И ЗначениеЗаполнено(КомандаФормы.Картинка) Тогда
КомандаФормы.Отображение = ОтображениеКнопки.Картинка; КомандаФормы.Отображение = ОтображениеКнопки.Картинка;
КонецЕсли; КонецЕсли;
КомандаФормы.ИзменяетСохраняемыеДанные = Команда.ИзменяетВыбранныеОбъекты И ПараметрыРазмещения.ЭтоФормаОбъекта;
КнопкаФормы = Элементы.Добавить(Команда.ИмяВФорме, Тип("КнопкаФормы"), ГруппаФормы); КнопкаФормы = Элементы.Добавить(Команда.ИмяВФорме, Тип("КнопкаФормы"), ГруппаФормы);
КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели; КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
КнопкаФормы.ИмяКоманды = Команда.ИмяВФорме; КнопкаФормы.ИмяКоманды = Команда.ИмяВФорме;
КнопкаФормы.ТолькоВоВсехДействиях = Команда.ТолькоВоВсехДействиях; КнопкаФормы.ТолькоВоВсехДействиях = Команда.ТолькоВоВсехДействиях;
Если Команда.ИзменяетВыбранныеОбъекты И Форма.ТолькоПросмотр Тогда
КнопкаФормы.Доступность = Ложь;
КонецЕсли;
Если ЗначениеЗаполнено(Команда.ЗначениеПометки) И ЭтоПутьДоРеквизита(Команда.ЗначениеПометки) Тогда Если ЗначениеЗаполнено(Команда.ЗначениеПометки) И ЭтоПутьДоРеквизита(Команда.ЗначениеПометки) Тогда
Команда.ЗначениеПометки = ВыражениеВычислениеПометки(Команда.ЗначениеПометки); Команда.ЗначениеПометки = ВыражениеВычислениеПометки(Команда.ЗначениеПометки);
ПодключенныеКоманды.КомандыСПометкой.Добавить(ОписаниеКомандыНаКлиенте(Команда, КнопкаФормы)); ПодключенныеКоманды.КомандыСПометкой.Добавить(ОписаниеКомандыНаКлиенте(Команда, КнопкаФормы));
@@ -2345,24 +2345,26 @@
Если ДляВнешнихПользователей Тогда Если ДляВнешнихПользователей Тогда
Если ЕстьРазделАдминистрирование Тогда Если ЕстьРазделАдминистрирование Тогда
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно. Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа внешних пользователей</a> в разделе Администрирование, |См. <a href = ""%1"">Настройки входа внешних пользователей</a> в разделе Администрирование,
|пункт Настройки пользователей и прав.'"); |пункт Настройки пользователей и прав.'");
Иначе Иначе
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно. Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа внешних пользователей</a>.'"); |См. <a href = ""%1"">Настройки входа внешних пользователей</a>.'");
КонецЕсли; КонецЕсли;
Иначе Иначе
Если ЕстьРазделАдминистрирование Тогда Если ЕстьРазделАдминистрирование Тогда
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно. Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа пользователей</a> в разделе Администрирование, |См. <a href = ""%1"">Настройки входа пользователей</a> в разделе Администрирование,
|пункт Настройки пользователей и прав.'"); |пункт Настройки пользователей и прав.'");
Иначе Иначе
Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно. Подсказка = НСтр("ru = 'Требования к длине и сложности пароля задаются отдельно.
|См. <a href = ""НастройкиВходаПользователей"">Настройки входа пользователей</a>.'"); |См. <a href = ""%1"">Настройки входа пользователей</a>.'");
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат СтроковыеФункции.ФорматированнаяСтрока(Подсказка); Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
СтроковыеФункции.ФорматированнаяСтрока(Подсказка),
"НастройкиВходаПользователей");
КонецФункции КонецФункции
@@ -7583,10 +7585,14 @@
Идентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор; Идентификатор = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Идентификатор); ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(Идентификатор);
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
Недействителен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвторизованныйПользователь, "Недействителен");
Если ПользовательИБ = Неопределено Если ПользовательИБ = Неопределено
Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ) Тогда Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ)
Возврат; И (РолиАдминистратораДоступны(ПользовательИБ)
Или Недействителен <> Истина) Тогда
Возврат;
КонецЕсли; КонецЕсли;
ОшибкаАвторизации = ЗаголовокСообщенияАвторизацияНеВыполненаСПереводомСтроки() ОшибкаАвторизации = ЗаголовокСообщенияАвторизацияНеВыполненаСПереводомСтроки()
@@ -2040,32 +2040,17 @@
Для Каждого Настройка Из НастройкиОчисткиФайлов Цикл Для Каждого Настройка Из НастройкиОчисткиФайлов Цикл
Если Настройка.Действие = Перечисления.ВариантыОчисткиФайлов.НеОчищать Тогда
Продолжить;;
КонецЕсли;
МассивИсключений = Новый Массив; МассивИсключений = Новый Массив;
ДетализированныеНастройки = НастройкиОчистки.НайтиСтроки(Новый Структура( ДетализированныеНастройки = НастройкиОчистки.НайтиСтроки(Новый Структура(
"ИдентификаторВладельца, ЭтоНастройкаДляЭлементаСправочника", "ИдентификаторВладельца, ЭтоНастройкаДляЭлементаСправочника",
Настройка.ВладелецФайла, Настройка.ВладелецФайла,
Истина)); Истина));
Если ДетализированныеНастройки.Количество() > 0 Тогда Для Каждого ЭлементИсключение Из ДетализированныеНастройки Цикл
Для Каждого ЭлементИсключение Из ДетализированныеНастройки Цикл ОчиститьФайлыПоНастройке(ЭлементИсключение, МассивИсключений);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; КонецЦикла;
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
МассивИсключений.Добавить(ЭлементИсключение.ВладелецФайла);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
КонецЦикла;
КонецЕсли;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ОчиститьФайлыПоНастройке(Настройка, МассивИсключений);
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
КонецЦикла; КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -2734,6 +2719,19 @@
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
Процедура ОчиститьФайлыПоНастройке(Настройка, МассивИсключений)
Если Настройка.Действие = Перечисления.ВариантыОчисткиФайлов.НеОчищать Тогда
Возврат;
КонецЕсли;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ДеревоЗначений = Новый ДеревоЗначений;
ПроцессорВывода.УстановитьОбъект(ДеревоЗначений);
ДеревоВладельцев = ВыбратьДанныеПоПравилу(Настройка, МассивИсключений, ПроцессорВывода);
МассивИсключений.Добавить(Настройка.ВладелецФайла);
ОчиститьДанныеНенужныхФайлов(ДеревоВладельцев);
КонецПроцедуры
Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение) Функция ТекстЗапросаДляОчисткиФайлов(ВладелецФайла, Настройка, МассивИсключений, ЭлементИсключение)
ПолноеИмяСправочникаФайлов = Настройка.ТипВладельцаФайла.ПолноеИмя; ПолноеИмяСправочникаФайлов = Настройка.ТипВладельцаФайла.ПолноеИмя;
@@ -5613,7 +5611,14 @@
Перем Результат; Перем Результат;
Попытка Попытка
ЗаблокироватьДанныеДляРедактирования(ПрисоединенныйФайл); ЗаблокироватьДанныеДляРедактирования(ПрисоединенныйФайл);
ПрисоединенныйФайл.ПолучитьОбъект().УстановитьПометкуУдаления(Истина); ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
Если ОбщегоНазначения.ЕстьРеквизитОбъекта("Редактирует", ФайлОбъект.Метаданные())
И ЗначениеЗаполнено(ФайлОбъект.Редактирует) Тогда
Возврат Результат;
КонецЕсли;
ФайлОбъект.УстановитьПометкуУдаления(Истина);
Результат = ПрисоединенныйФайл; Результат = ПрисоединенныйФайл;
Исключение Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
@@ -5653,26 +5658,31 @@
Для Каждого ПрисоединенныйФайл Из УдаляемыеПрисоединенныеФайлы Цикл Для Каждого ПрисоединенныйФайл Из УдаляемыеПрисоединенныеФайлы Цикл
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТипХраненияФайла");
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(ПрисоединенныйФайл);
УдаляемыеФайлы.Добавить(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
КонецЕсли;
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
ТипХраненияФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ПрисоединенныйФайл, "ТипХраненияФайла");
Если ТипХраненияФайла= Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
СвойстваФайла = РаботаСФайламиВТомахСлужебный.СвойстваФайлаВТоме(ПрисоединенныйФайл);
УдаляемыеФайлы.Добавить(РаботаСФайламиВТомахСлужебный.ПолноеИмяФайлаВТоме(СвойстваФайла));
КонецЕсли;
УдалитьФайл(ПрисоединенныйФайл); УдалитьФайл(ПрисоединенныйФайл);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске
И УдаляемыеФайлы.Количество() > 0 Тогда
УдаляемыеФайлы.Удалить(УдаляемыеФайлы.ВГраница());
КонецЕсли;
ИнформацияОбОшибке = ИнформацияОбОшибке(); ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаписьЖурналаРегистрации(НСтр("ru='РаботаСФайлами.Удаление файла'", ОбщегоНазначения.КодОсновногоЯзыка()), ЗаписьЖурналаРегистрации(НСтр("ru='РаботаСФайлами.Удаление файла'", ОбщегоНазначения.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка, УровеньЖурналаРегистрации.Ошибка,
ПрисоединенныйФайл.Метаданные(), ПрисоединенныйФайл.Метаданные(),
ПрисоединенныйФайл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке)); ПрисоединенныйФайл, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
КонецПопытки; Продолжить;
КонецПопытки;
КонецЦикла; КонецЦикла;
Для Каждого Файл Из УдаляемыеФайлы Цикл Для Каждого Файл Из УдаляемыеФайлы Цикл
@@ -5689,7 +5699,7 @@
// Параметры: // Параметры:
// ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл // ПрисоединенныйФайл - ОпределяемыйТип.ПрисоединенныйФайл
// //
Процедура УдалитьФайл(ПрисоединенныйФайл) Функция УдалитьФайл(ПрисоединенныйФайл)
Блокировка = Новый БлокировкаДанных(); Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить(ПрисоединенныйФайл.Метаданные().ПолноеИмя()); ЭлементБлокировки = Блокировка.Добавить(ПрисоединенныйФайл.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ПрисоединенныйФайл); ЭлементБлокировки.УстановитьЗначение("Ссылка", ПрисоединенныйФайл);
@@ -5698,6 +5708,11 @@
ПрисоединенныйФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект(); ПрисоединенныйФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
Если ТипЗнч(ПрисоединенныйФайл) <> Тип("СправочникСсылка.ВерсииФайлов")
И ЗначениеЗаполнено(ПрисоединенныйФайлОбъект.Редактирует) Тогда
Возврат Ложь;
КонецЕсли;
Том = ПрисоединенныйФайлОбъект.Том; Том = ПрисоединенныйФайлОбъект.Том;
Если ЗначениеЗаполнено(Том) Тогда Если ЗначениеЗаполнено(Том) Тогда
ТомОбъект = Том.ПолучитьОбъект(); ТомОбъект = Том.ПолучитьОбъект();
@@ -5706,7 +5721,9 @@
КонецЕсли; КонецЕсли;
ПрисоединенныйФайлОбъект.Удалить(); ПрисоединенныйФайлОбъект.Удалить();
КонецПроцедуры
Возврат Истина;
КонецФункции
Функция ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода) Экспорт Функция ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода) Экспорт
@@ -210,10 +210,18 @@
Функция ОсвободитьФайлы(Знач Файлы) Экспорт Функция ОсвободитьФайлы(Знач Файлы) Экспорт
ВерсииФайлов = Новый Соответствие;
Для Каждого ПрисоединенныйФайл Из Файлы Цикл Для Каждого ПрисоединенныйФайл Из Файлы Цикл
РаботаСФайламиСлужебный.ОсвободитьФайл(ПрисоединенныйФайл); РаботаСФайламиСлужебный.ОсвободитьФайл(ПрисоединенныйФайл);
ДанныеФайла = ДанныеФайла(ПрисоединенныйФайл);
ВерсииФайлов.Вставить(ПрисоединенныйФайл, ДанныеФайла.ТекущаяВерсия);
КонецЦикла; КонецЦикла;
Возврат РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов();
Результат = Новый Структура;
Результат.Вставить("КоличествоЗанятыхФайлов", РаботаСФайламиСлужебный.КоличествоЗанятыхФайлов());
Результат.Вставить("ВерсииФайлов", ВерсииФайлов);
Возврат Результат;
КонецФункции КонецФункции
@@ -1737,8 +1737,17 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
КоличествоЗанятыхФайлов = РаботаСФайламиСлужебныйВызовСервера.ОсвободитьФайлы(МассивФайлов); ДанныеФайлов = РаботаСФайламиСлужебныйВызовСервера.ОсвободитьФайлы(МассивФайлов);
СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента("КоличествоЗанятыхФайлов", КоличествоЗанятыхФайлов);
// Удаляем файлы из рабочего каталога, чтобы не подхватить измененные файлы при новом редактировании.
Обработчик = Новый ОписаниеОповещения;
Для Каждого Файл Из МассивФайлов Цикл
ВерсияФайла = ДанныеФайлов.ВерсииФайлов.Получить(Файл);
УдалитьФайлИзРабочегоКаталога(Обработчик, ВерсияФайла, Истина);
КонецЦикла;
СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента("КоличествоЗанятыхФайлов",
ДанныеФайлов.КоличествоЗанятыхФайлов);
Если МассивФайлов.Количество() > 1 Тогда Если МассивФайлов.Количество() > 1 Тогда
ОповеститьОбИзменении(ТипЗнч(МассивФайлов[0])); ОповеститьОбИзменении(ТипЗнч(МассивФайлов[0]));
Оповестить("Запись_Файл", Новый Структура, Неопределено); Оповестить("Запись_Файл", Новый Структура, Неопределено);
@@ -1148,19 +1148,30 @@
Результат = ""; Результат = "";
Если ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_СМС") Тогда Если ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_СМС") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СодержаниеПредставленияТелефона(НастройкиПользователя, КодЯзыка)); Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СодержаниеПредставленияТелефона(НастройкиПользователя, КодЯзыка));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ЭлектроннаяПочта") Тогда ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ЭлектроннаяПочта") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СодержаниеПредставленияПочты(НастройкиПользователя, КодЯзыка)); Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СодержаниеПредставленияПочты(НастройкиПользователя, КодЯзыка));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_МобильноеПриложение") Тогда ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_МобильноеПриложение") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Мобильное приложение <span style=""font: ВыделенныйЗаголовокПодтвержденияШрифт"">КриптоПро myDSS</span>'", КодЯзыка)); ТекстСообщения = НСтр("ru = 'Мобильное приложение'") + " " +
"<span style=""font: %1"">" + НСтр("ru = 'КриптоПро'") + " myDSS</span>";
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
"ВыделенныйЗаголовокПодтвержденияШрифт"));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_AirKeyLite") Тогда ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_AirKeyLite") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru='Мобильное приложение <span style=""font: ВыделенныйЗаголовокПодтвержденияШрифт"">AirKey DSS</span>'", КодЯзыка)); ТекстСообщения = НСтр("ru = 'Мобильное приложение'") + " " +
"<span style=""font: %1"">" + "AirKey DSS</span>";
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения,
"ВыделенныйЗаголовокПодтвержденияШрифт"));
ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ОфлайнПодтверждение") Тогда ИначеЕсли ВторичнаяАвторизация = ПредопределенноеЗначение("Перечисление.СпособыАвторизацииDSS.Вторичный_ОфлайнПодтверждение") Тогда
Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(НСтр("ru = 'Офлайн-подтверждение через приложение'", КодЯзыка)); Результат = СтроковыеФункцииКлиент.ФорматированнаяСтрока(
НСтр("ru = 'Офлайн-подтверждение через приложение'", КодЯзыка));
КонецЕсли; КонецЕсли;
@@ -3463,11 +3463,15 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
РегистрЗаписи = РегистрыСведений.СертификатыПользователяDSS.СоздатьНаборЗаписей(); РегистрЗаписи = РегистрыСведений.СертификатыПользователяDSS.СоздатьНаборЗаписей();
РегистрЗаписи.Отбор.УчетнаяЗаписьDSS.Установить(СсылкаУчетнойЗаписи); РегистрЗаписи.Отбор.УчетнаяЗаписьDSS.Установить(СсылкаУчетнойЗаписи);
РегистрЗаписи.Очистить(); РегистрЗаписи.Очистить();
РегистрЗаписи.Записать(Истина); РегистрЗаписи.Записать(Истина);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры КонецПроцедуры
// Возвращает сведения о сертификате зарегистрированный на сервере DSS. // Возвращает сведения о сертификате зарегистрированный на сервере DSS.
@@ -80,9 +80,20 @@
КонецПроцедуры КонецПроцедуры
// См. ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек. // См. ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек.
Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, ВыделенныеОбласти) Экспорт Функция РасчетныеПоказателиЯчеек(Знач ТабличныйДокумент, ВыделенныеОбласти, УникальныйИдентификатор = Неопределено) Экспорт
Возврат ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек(ТабличныйДокумент, ВыделенныеОбласти); Если УникальныйИдентификатор = Неопределено Тогда
Возврат ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек(ТабличныйДокумент, ВыделенныеОбласти);
КонецЕсли;
ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Расчет показателей ячеек'");
Возврат ДлительныеОперации.ВыполнитьФункцию(
ПараметрыВыполнения,
"ОбщегоНазначенияСлужебныйКлиентСервер.РасчетныеПоказателиЯчеек",
ТабличныйДокумент,
ВыделенныеОбласти);
КонецФункции КонецФункции
@@ -24,7 +24,7 @@
// ПоставляемыйПрофиль - Строка - строка идентификатора поставляемого профиля. // ПоставляемыйПрофиль - Строка - строка идентификатора поставляемого профиля.
// - СправочникСсылка.ПрофилиГруппДоступа - ссылка на профиль, который // - СправочникСсылка.ПрофилиГруппДоступа - ссылка на профиль, который
// создан по описанию в модуле УправлениеДоступомПереопределяемый // создан по описанию в модуле УправлениеДоступомПереопределяемый
// в процедуре ЗаполнитьПоставляемыеПрофилиГруппДоступа. // в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа.
// Профили с непустым списком видов доступа не поддерживаются. // Профили с непустым списком видов доступа не поддерживаются.
// Профиль групп доступа Администратор не поддерживается. // Профиль групп доступа Администратор не поддерживается.
// //
@@ -3352,7 +3352,7 @@
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа(); СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами; ЗначенияДоступаСГруппами = СвойстваВидовДоступа.ЗначенияДоступаСГруппами;
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() И НЕ ТолькоКэшРеквизиты Тогда Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() И НЕ ТолькоКэшРеквизиты Тогда
// Заполнение групп значений доступа в регистре сведений ГруппыЗначенийДоступа. // Заполнение групп значений доступа в регистре сведений ГруппыЗначенийДоступа.
Для Каждого ИмяТаблицы Из ЗначенияДоступаСГруппами.ИменаТаблицДляОбновления Цикл Для Каждого ИмяТаблицы Из ЗначенияДоступаСГруппами.ИменаТаблицДляОбновления Цикл
@@ -3816,7 +3816,8 @@
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(); РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(, Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
Если ОграничениеДоступаНаУровнеЗаписейВключено Тогда Если ОграничениеДоступаНаУровнеЗаписейВключено Тогда
ЗаписьЖурналаРегистрации( ЗаписьЖурналаРегистрации(
@@ -11497,7 +11498,7 @@
УстановитьОтключениеБезопасногоРежима(Истина); УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(); РегистрыСведений.ИспользуемыеВидыДоступа.ОбновитьДанныеРегистра(, Истина);
ДатаОбновленияВерсииРасширений = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ДатаОбновления; ДатаОбновленияВерсииРасширений = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ДатаОбновления;
@@ -11522,11 +11523,16 @@
ДатаАктуальностиПараметровОграниченияДоступа = ДатаСозданияПараметровОграниченияДоступа; ДатаАктуальностиПараметровОграниченияДоступа = ДатаСозданияПараметровОграниченияДоступа;
КонецЕсли; КонецЕсли;
ИспользованиеВидовДоступаИзменено = ИспользованиеВидовДоступаИзменено(ДействующиеПараметры);
Если ДатаОбновленияВерсииРасширений > ДатаАктуальностиПараметровОграниченияДоступа Если ДатаОбновленияВерсииРасширений > ДатаАктуальностиПараметровОграниченияДоступа
Или ДатаОбновленияВсехПараметровРаботыПрограммы > ДатаАктуальностиПараметровОграниченияДоступа Или ДатаОбновленияВсехПараметровРаботыПрограммы > ДатаАктуальностиПараметровОграниченияДоступа
Или ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений > ДатаАктуальностиПараметровОграниченияДоступа Или ДатаПоследнегоЗаполненияВсехПараметровРаботыРасширений > ДатаАктуальностиПараметровОграниченияДоступа
Или ИспользованиеВидовДоступаИзменено(ДействующиеПараметры) Тогда Или ИспользованиеВидовДоступаИзменено Тогда
Если ИспользованиеВидовДоступаИзменено Тогда
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
КонецЕсли;
ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений(); ОбновитьТаблицыГруппДоступаДляПодключенныхРасширений();
Если ПараметрыСеанса.ПараметрыОграниченияДоступа.Версия > 100000000000000 Тогда Если ПараметрыСеанса.ПараметрыОграниченияДоступа.Версия > 100000000000000 Тогда
УменьшитьНомераВерсийПараметровОграниченияДоступа(); УменьшитьНомераВерсийПараметровОграниченияДоступа();
@@ -20982,32 +20988,34 @@
Результат = "Ложь"; Результат = "Ложь";
ИначеЕсли Контекст.РассчитыватьПраваПользователей Тогда ИначеЕсли Контекст.РассчитыватьПраваПользователей Тогда
Если Условие.Узел = "ЧтениеОбъектаРазрешено" Тогда Если Условие.Узел = "ЧтениеОбъектаРазрешено"
Результат = Новый Соответствие; Или Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда
Результат.Вставить(КлючИЗначение.Ключ, Истина);
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа
Или КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
Результат.Вставить(Контекст.ГруппаДоступа, Истина);
КонецЕсли;
КонецЦикла;
ИначеЕсли Условие.Узел = "ИзменениеОбъектаРазрешено" Тогда
Результат = Новый Соответствие; Результат = Новый Соответствие;
ПроверятьПравоИзменение = Условие.Узел <> "ЧтениеОбъектаРазрешено";
Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл Для Каждого КлючИЗначение Из ПраваНаВедущийКлючДоступа Цикл
Если Не КлючИЗначение.Значение Тогда Если ПроверятьПравоИзменение И Не КлючИЗначение.Значение Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда Если ТипЗнч(КлючИЗначение.Ключ) <> Контекст.ТипГруппыДоступа Тогда
Результат.Вставить(КлючИЗначение.Ключ, Истина); Результат.Вставить(КлючИЗначение.Ключ, Истина);
ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа ИначеЕсли КлючИЗначение.Ключ = Контекст.ГруппаДоступа Тогда
Или КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда УчастникиГруппыДоступа = Контекст.УчастникиГруппДоступа.Получить(
Контекст.ГруппаДоступа);
Результат.Вставить(Контекст.ГруппаДоступа, Истина); Если УчастникиГруппыДоступа <> Неопределено Тогда
Если Результат.Количество() = 0 Тогда
Результат = Новый Соответствие(
Новый ФиксированноеСоответствие(УчастникиГруппыДоступа));
Иначе
Для Каждого ОписаниеУчастника Из УчастникиГруппыДоступа Цикл
Результат.Вставить(ОписаниеУчастника.Ключ, Истина);
КонецЦикла;
КонецЕсли;
КонецЕсли;
ИначеЕсли КлючИЗначение.Ключ = Контекст.ПустаяГруппаДоступа Тогда
Результат = "Истина";
Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Иначе Иначе
@@ -21155,7 +21163,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если УчастникиГруппыДоступа.Получить(ГруппаПользователей) = Неопределено Тогда Если УчастникиГруппыДоступа.Получить(ГруппаПользователей) <> Неопределено Тогда
Результат = Новый Соответствие; Результат = Новый Соответствие;
Результат.Вставить(ГруппаПользователей, Истина); Результат.Вставить(ГруппаПользователей, Истина);
Возврат; Возврат;
@@ -21163,7 +21171,7 @@
ГруппыПользователейГруппыДоступа = Контекст.ГруппыПользователейГруппДоступа.Получить(Контекст.ГруппаДоступа); ГруппыПользователейГруппыДоступа = Контекст.ГруппыПользователейГруппДоступа.Получить(Контекст.ГруппаДоступа);
Если ГруппыПользователейГруппыДоступа = Неопределено Тогда Если ГруппыПользователейГруппыДоступа = Неопределено Тогда
Возврат; ГруппыПользователейГруппыДоступа = Новый Соответствие;
КонецЕсли; КонецЕсли;
ПользователиГруппы = Контекст.ПользователиГруппПользователей.Получить(ГруппаПользователей); ПользователиГруппы = Контекст.ПользователиГруппПользователей.Получить(ГруппаПользователей);
@@ -22692,31 +22700,33 @@
Возврат ИспользуемыеТипыЗначений; Возврат ИспользуемыеТипыЗначений;
КонецЕсли; КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|
|УПОРЯДОЧИТЬ ПО
| ТипЗначенийДоступа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица КАК Таблица,
| ИспользуемыеВидыДоступаПоТаблицам.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступаПоТаблицам КАК ИспользуемыеВидыДоступаПоТаблицам
|ГДЕ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица,
| ТипЗначенийДоступа";
Если ВсеВидыДоступаИспользуются <> Истина Тогда Если ВсеВидыДоступаИспользуются <> Истина Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИспользуемыеВидыДоступа.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
|ГДЕ
| &ОграничиватьДоступНаУровнеЗаписей
|
|УПОРЯДОЧИТЬ ПО
| ТипЗначенийДоступа
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица КАК Таблица,
| ИспользуемыеВидыДоступаПоТаблицам.ТипЗначенийДоступа КАК ТипЗначенийДоступа
|ИЗ
| РегистрСведений.ИспользуемыеВидыДоступаПоТаблицам КАК ИспользуемыеВидыДоступаПоТаблицам
|ГДЕ
| ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица
|
|УПОРЯДОЧИТЬ ПО
| Таблица,
| ТипЗначенийДоступа";
Если ПолноеИмя <> Неопределено Тогда Если ПолноеИмя <> Неопределено Тогда
Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя, Ложь); Идентификатор = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ПолноеИмя, Ложь);
Если Идентификатор <> Null Тогда Если Идентификатор <> Null Тогда
@@ -22727,11 +22737,17 @@
Запрос.Текст = СтрЗаменить(Запрос.Текст, Запрос.Текст = СтрЗаменить(Запрос.Текст,
"ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица", "ИСТИНА"); "ИспользуемыеВидыДоступаПоТаблицам.Таблица = &Таблица", "ИСТИНА");
КонецЕсли; КонецЕсли;
СтрокаОграничениеДоступаВключено =
?(Константы.ОграничиватьДоступНаУровнеЗаписей.Получить(), "ИСТИНА", "ЛОЖЬ");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОграничиватьДоступНаУровнеЗаписей",
СтрокаОграничениеДоступаВключено);
РезультатыЗапроса = Запрос.ВыполнитьПакет(); РезультатыЗапроса = Запрос.ВыполнитьПакет();
Используемые = РезультатыЗапроса[0].Выгрузить(); Используемые = РезультатыЗапроса[0].Выгрузить();
ИспользуемыеПоТаблицам = РезультатыЗапроса[1].Выгрузить(); ИспользуемыеПоТаблицам = РезультатыЗапроса[1].Выгрузить();
Если ПолноеИмя = Неопределено Тогда Если ПолноеИмя = Неопределено Тогда
Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256); Хеширование = Новый ХешированиеДанных(ХешФункция.SHA256);
Хеширование.Добавить(СтрокаОграничениеДоступаВключено);
Хеширование.Добавить(СтрокаДанныхДляХеширования(Используемые)); Хеширование.Добавить(СтрокаДанныхДляХеширования(Используемые));
Хеширование.Добавить(СтрокаДанныхДляХеширования(ИспользуемыеПоТаблицам)); Хеширование.Добавить(СтрокаДанныхДляХеширования(ИспользуемыеПоТаблицам));
ИспользуемыеТипыЗначений.ХешСумма = Base64Строка(Хеширование.ХешСумма); ИспользуемыеТипыЗначений.ХешСумма = Base64Строка(Хеширование.ХешСумма);
@@ -29723,11 +29739,8 @@
ИспользуемыеТипыЗначений = Контекст.ИспользуемыеТипыЗначений.ПоТаблицам.Получить(Контекст.Список); ИспользуемыеТипыЗначений = Контекст.ИспользуемыеТипыЗначений.ПоТаблицам.Получить(Контекст.Список);
Если ИспользуемыеТипыЗначений = Неопределено Тогда Возврат ИспользуемыеТипыЗначений <> Неопределено
ИспользуемыеТипыЗначений = Контекст.ИспользуемыеТипыЗначений.ДляИБ; И ИспользуемыеТипыЗначений.Получить(ТипЗначений) <> Неопределено;
КонецЕсли;
Возврат ИспользуемыеТипыЗначений.Получить(ТипЗначений) <> Неопределено;
КонецФункции КонецФункции
@@ -30240,7 +30253,9 @@
Если СвойстваВидовДоступа.ПоТипамЗначений.Получить(Тип) = Неопределено Тогда Если СвойстваВидовДоступа.ПоТипамЗначений.Получить(Тип) = Неопределено Тогда
// Тип группы значений доступа. // Тип группы значений доступа.
Если Контекст.Список = Метаданные.НайтиПоТипу(Тип).ПолноеИмя() Тогда Если Контекст.Список = Метаданные.НайтиПоТипу(Тип).ПолноеИмя()
Или Контекст.ТипыПользователя.Найти(Тип) <> Неопределено Тогда
Свойства.ТипыСохраненияЗначений.Добавить(Тип); Свойства.ТипыСохраненияЗначений.Добавить(Тип);
Иначе Иначе
Свойства.ТипыСохраненияТипаРазрешенный.Добавить(Тип); Свойства.ТипыСохраненияТипаРазрешенный.Добавить(Тип);
@@ -31322,17 +31337,35 @@
КонецЕсли; КонецЕсли;
СписокНедостающихТипов.СортироватьПоЗначению(); СписокНедостающихТипов.СортироватьПоЗначению();
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для списка %1 Если ЗначениеЗаполнено(Контекст.ИмяОтдельногоРегистраКлючей) Тогда
|не удалось подготовить параметры ограничения доступа к работе, так как ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|в определяемом типе ПолеРегистраКлючейДоступаКРегистрам не хватает типов: НСтр("ru = 'Для списка %1
| - %2, |не удалось подготовить параметры ограничения доступа к работе,
|имеющихся у полей (%3) в ограничении доступа: |так как в измерениях регистра сведений
| %4'"), | %2
Контекст.Список, |не хватает типов:
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "), | - %3,
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "), |имеющихся у полей (%4) в ограничении доступа:
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " ")); | %5'"),
Контекст.Список,
Контекст.ИмяОтдельногоРегистраКлючей,
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "),
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "),
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " "));
Иначе
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Для списка %1
|не удалось подготовить параметры ограничения доступа к работе, так как
|в определяемом типе ПолеРегистраКлючейДоступаКРегистрам не хватает типов:
| - %2,
|имеющихся у полей (%3) в ограничении доступа:
| %4'"),
Контекст.Список,
СтрСоединить(СписокНедостающихТипов.ВыгрузитьЗначения(), "," + Символы.ПС + " - "),
СтрСоединить(СписокПолей.ВыгрузитьЗначения(), ", "),
ТекстСОтступом(Контекст.ОписанияОграничений.Получить(Контекст.Список).Текст, " "));
КонецЕсли;
ВызватьИсключение ТекстОшибки; ВызватьИсключение ТекстОшибки;
@@ -32884,7 +32917,9 @@
ИначеЕсли Не Контекст.ЭтоСсылочныйТип Тогда ИначеЕсли Не Контекст.ЭтоСсылочныйТип Тогда
Если Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователей Тогда Если Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователейИГруппДоступа
Или Свойства.ОграничениеВШаблонахЧерезКлючиДоступаПользователей Тогда
Если Контекст.ДляВнешнихПользователей Тогда Если Контекст.ДляВнешнихПользователей Тогда
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1 "ВЫБРАТЬ ПЕРВЫЕ 1
@@ -1578,6 +1578,8 @@
КонецФункции КонецФункции
// Возвращает список стран Евразийского экономического союза (ЕАЭС). // Возвращает список стран Евразийского экономического союза (ЕАЭС).
// Вызов функции может инициировать http-запрос к веб-сервису по работе с классификаторами
// для получения актуального списка всех стран участников ЕАЭС.
// //
// Возвращаемое значение: // Возвращаемое значение:
// - ТаблицаЗначений - список стран Евразийского экономического союза (ЕАЭС): // - ТаблицаЗначений - список стран Евразийского экономического союза (ЕАЭС):
@@ -1591,22 +1593,7 @@
// //
Функция СтраныУчастникиЕАЭС() Экспорт Функция СтраныУчастникиЕАЭС() Экспорт
Запрос = Новый Запрос; СтраныЕАЭС = ПользовательскиеСтраныЕАЭС();
Запрос.Текст =
"ВЫБРАТЬ
| СтраныМира.Ссылка КАК Ссылка,
| СтраныМира.Наименование КАК Наименование,
| СтраныМира.Код КАК Код,
| СтраныМира.НаименованиеПолное КАК НаименованиеПолное,
| СтраныМира.КодАльфа2 КАК КодАльфа2,
| СтраныМира.МеждународноеНаименование КАК МеждународноеНаименование,
| СтраныМира.КодАльфа3 КАК КодАльфа3
|ИЗ
| Справочник.СтраныМира КАК СтраныМира
|ГДЕ
| СтраныМира.УчастникЕАЭС = ИСТИНА";
СтраныЕАЭС = Запрос.Выполнить().Выгрузить();
Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") = Неопределено Тогда Если Метаданные.ОбщиеМодули.Найти("РаботаСАдресами") = Неопределено Тогда
Возврат СтраныЕАЭС; Возврат СтраныЕАЭС;
@@ -5855,6 +5842,34 @@
Возврат Результат Возврат Результат
КонецФункции КонецФункции
// Страны ЕАЭС добавленные пользователем в справочник СтраныМира.
//
// Возвращаемое значение:
// см. СтраныУчастникиЕАЭС
//
Функция ПользовательскиеСтраныЕАЭС() Экспорт
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтраныМира.Ссылка КАК Ссылка,
| СтраныМира.Наименование КАК Наименование,
| СтраныМира.Код КАК Код,
| СтраныМира.НаименованиеПолное КАК НаименованиеПолное,
| СтраныМира.КодАльфа2 КАК КодАльфа2,
| СтраныМира.МеждународноеНаименование КАК МеждународноеНаименование,
| СтраныМира.КодАльфа3 КАК КодАльфа3
|ИЗ
| Справочник.СтраныМира КАК СтраныМира
|ГДЕ
| СтраныМира.УчастникЕАЭС = ИСТИНА";
СтраныЕАЭС = Запрос.Выполнить().Выгрузить();
Возврат СтраныЕАЭС;
КонецФункции
Функция СформироватьТекстЗапроса(Знач ЕстьКолонкаИдентификаторСтрокиТабличнойЧасти, Знач ТекстЗапросаИсторическаяИнформация, Знач ЭтоОсновнойЯзык) Функция СформироватьТекстЗапроса(Знач ЕстьКолонкаИдентификаторСтрокиТабличнойЧасти, Знач ТекстЗапросаИсторическаяИнформация, Знач ЭтоОсновнойЯзык)
Если ЭтоОсновнойЯзык Тогда Если ЭтоОсновнойЯзык Тогда
@@ -71,6 +71,10 @@
// //
Функция ИнициализироватьПечатнуюФорму(Макет) Экспорт Функция ИнициализироватьПечатнуюФорму(Макет) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог(); ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог();
КопироватьСодержимоеКаталога(Макет.ИмяКаталога, ИмяВременногоКаталога); КопироватьСодержимоеКаталога(Макет.ИмяКаталога, ИмяВременногоКаталога);
@@ -98,13 +102,18 @@
// //
Функция МакетИзДвоичныхДанных(ДвоичныеДанныеМакета) Экспорт Функция МакетИзДвоичныхДанных(ДвоичныеДанныеМакета) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
Расширение = ОпределитьРасширениеФайлаДанныхПоСигнатуре(ДвоичныеДанныеМакета); Расширение = ОпределитьРасширениеФайлаДанныхПоСигнатуре(ДвоичныеДанныеМакета);
Если НЕ Расширение = "docx" Тогда Если НЕ Расширение = "docx" Тогда
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", НСтр("ru = 'Макет шаблона офисного документа имеет не верный формат.'")); ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", НСтр("ru = 'Макет шаблона офисного документа имеет не верный формат.'"));
ВызватьИсключение(НСтр("ru = 'Ошибка анализа макета шаблона. Макет шаблона офисного документа имеет не верный формат.'")); ВызватьИсключение(НСтр("ru = 'Ошибка анализа макета шаблона. Макет шаблона офисного документа имеет не верный формат.'"));
КонецЕсли; КонецЕсли;
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("docx"); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("docx");
ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог(); ИмяВременногоКаталога = ФайловаяСистема.СоздатьВременныйКаталог();
ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла); ДвоичныеДанныеМакета.Записать(ИмяВременногоФайла);
@@ -132,6 +141,10 @@
Процедура ЗакрытьСоединение(ПечатнаяФорма) Экспорт Процедура ЗакрытьСоединение(ПечатнаяФорма) Экспорт
Попытка Попытка
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
ФайловаяСистема.УдалитьВременныйКаталог(ПечатнаяФорма.ИмяКаталога); ФайловаяСистема.УдалитьВременныйКаталог(ПечатнаяФорма.ИмяКаталога);
Исключение Исключение
ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); ЗаписатьСобытияВЖурналРегистрации(СобытиеЖурналаРегистрации(), "Ошибка", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -152,6 +165,10 @@
// //
Функция СформироватьДокумент(ПечатнаяФорма) Экспорт Функция СформироватьДокумент(ПечатнаяФорма) Экспорт
Если БезопасныйРежим() <> Ложь Тогда
УстановитьОтключениеБезопасногоРежима(Истина);
КонецЕсли;
КоличествоОбластей = ПечатнаяФорма.СтруктураДокумента.ПрисоединенныеОбласти.Количество(); КоличествоОбластей = ПечатнаяФорма.СтруктураДокумента.ПрисоединенныеОбласти.Количество();
Если КоличествоОбластей = 0 Тогда Если КоличествоОбластей = 0 Тогда
@@ -3100,9 +3117,9 @@
КонецЕсли; КонецЕсли;
Если ДвоичныеДанныеМакета = Неопределено Тогда Если ДвоичныеДанныеМакета = Неопределено Тогда
Возврат Неопределено; Возврат Неопределено;
КонецЕсли; КонецЕсли;
ПотокДанных = ДвоичныеДанныеМакета.ОткрытьПотокДляЧтения(); ПотокДанных = ДвоичныеДанныеМакета.ОткрытьПотокДляЧтения();
ЧтениеДанных = Новый ЧтениеДанных(ПотокДанных); ЧтениеДанных = Новый ЧтениеДанных(ПотокДанных);
@@ -1698,14 +1698,7 @@
Функция ХешСуммаПочтовогоСообщения(Сообщение) Функция ХешСуммаПочтовогоСообщения(Сообщение)
МассивСтрок = Новый Массив; Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СокрЛП(Сообщение.Заголовок), ХешФункция.CRC32);
Если ТипЗнч(Сообщение.Отправитель) = Тип("ИнтернетПочтовыйАдрес") Тогда
МассивСтрок.Добавить(Сообщение.Отправитель.Адрес);
КонецЕсли;
МассивСтрок.Добавить(Сообщение.ДатаОтправления);
МассивСтрок.Добавить(Сообщение.Тема);
Возврат ОбщегоНазначения.КонтрольнаяСуммаСтрокой(СтрСоединить(МассивСтрок));
КонецФункции КонецФункции
@@ -734,7 +734,21 @@
КонецЕсли; КонецЕсли;
Для Каждого КлючИЗначение Из ДополнительныеПараметры Цикл Для Каждого КлючИЗначение Из ДополнительныеПараметры Цикл
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение); Если КлючИЗначение.Ключ = "Пользователь" Тогда
Если ЗначениеЗаполнено(КлючИЗначение.Значение) Тогда
Если ЗначениеЗаполнено(СертификатОбъект.Пользователь) И СертификатОбъект.Пользователь <> КлючИЗначение.Значение Тогда
ДобавитьПользователяВСертификат(СертификатОбъект.Пользователь, СертификатОбъект.Пользователи);
ДобавитьПользователяВСертификат(КлючИЗначение.Значение, СертификатОбъект.Пользователи);
СертификатОбъект.Пользователь = Неопределено;
ИначеЕсли СертификатОбъект.Пользователи.Количество() > 0 Тогда
ДобавитьПользователяВСертификат(КлючИЗначение.Значение, СертификатОбъект.Пользователи);
Иначе
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение);
КонецЕсли;
КонецЕсли;
Иначе
ОбновитьЗначение(СертификатОбъект[КлючИЗначение.Ключ], КлючИЗначение.Значение);
КонецЕсли;
КонецЦикла; КонецЦикла;
Если СертификатОбъект.Модифицированность() Тогда Если СертификатОбъект.Модифицированность() Тогда
@@ -1532,7 +1546,7 @@
ЗаявлениеДоступно = ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно; ЗаявлениеДоступно = ОбщиеНастройки().ЗаявлениеНаВыпускСертификатаДоступно;
Возврат Новый Структура("ДляОрганизаций, ДляФизическихЛиц", Возврат Новый Структура("ДляОрганизаций, ДляФизическихЛиц",
ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) < '20211201', ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) < '20220101',
ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) >= '20210401'); ЗаявлениеДоступно И НачалоДня(МосковскоеВремя) >= '20210401');
КонецФункции КонецФункции
@@ -1845,6 +1859,20 @@
КонецПроцедуры КонецПроцедуры
// Для процедуры ЗаписатьСертификатВСправочник.
//
// Параметры:
// Пользователь - СправочникСсылка.Пользователи - пользователь
// Пользователи - СправочникТабличнаяЧасть.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи - пользователи
//
Процедура ДобавитьПользователяВСертификат(Пользователь, Пользователи)
Если Пользователи.Найти(Пользователь, "Пользователь") = Неопределено Тогда
Пользователи.Добавить().Пользователь = Пользователь;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьПараметрОбъект(Объект, ИмяПроцедуры, ТолькоСсылки = Ложь) Процедура ПроверитьПараметрОбъект(Объект, ИмяПроцедуры, ТолькоСсылки = Ложь)
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Объект", Объект, ОбщегоНазначенияКлиентСервер.ПроверитьПараметр(ИмяПроцедуры, "Объект", Объект,
@@ -287,6 +287,7 @@
НастройкиПодсистемы = Новый Структура; НастройкиПодсистемы = Новый Структура;
НастройкиПодсистемы.Вставить("ПерсональныеНастройки", ЭлектроннаяПодпись.ПерсональныеНастройки()); НастройкиПодсистемы.Вставить("ПерсональныеНастройки", ЭлектроннаяПодпись.ПерсональныеНастройки());
НастройкиПодсистемы.Вставить("ОбщиеНастройки", ЭлектроннаяПодпись.ОбщиеНастройки()); НастройкиПодсистемы.Вставить("ОбщиеНастройки", ЭлектроннаяПодпись.ОбщиеНастройки());
НастройкиПодсистемы.Вставить("ОписаниеКомпоненты", ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты());
НастройкиПодсистемы = Новый ФиксированнаяСтруктура(НастройкиПодсистемы); НастройкиПодсистемы = Новый ФиксированнаяСтруктура(НастройкиПодсистемы);
Параметры.Вставить("ЭлектроннаяПодпись", НастройкиПодсистемы); Параметры.Вставить("ЭлектроннаяПодпись", НастройкиПодсистемы);
КонецЕсли; КонецЕсли;
@@ -2009,7 +2010,7 @@
Функция ОбъектВнешнейКомпонентыXMLDSig() Функция ОбъектВнешнейКомпонентыXMLDSig()
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты(); ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты();
ОбъектКомпоненты = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта, ОбъектКомпоненты = ОбщегоНазначения.ПодключитьКомпонентуИзМакета(ОписаниеКомпоненты.ИмяОбъекта,
ОписаниеКомпоненты.ПолноеИмяМакета); ОписаниеКомпоненты.ПолноеИмяМакета);
@@ -78,7 +78,7 @@
Запрос.УстановитьПараметр("Отпечатки", ТаблицаСвойствСертификатов.Скопировать(, "Отпечаток")); Запрос.УстановитьПараметр("Отпечатки", ТаблицаСвойствСертификатов.Скопировать(, "Отпечаток"));
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| Отпечатки.Отпечаток | Отпечатки.Отпечаток КАК Отпечаток
|ПОМЕСТИТЬ Отпечатки |ПОМЕСТИТЬ Отпечатки
|ИЗ |ИЗ
| &Отпечатки КАК Отпечатки | &Отпечатки КАК Отпечатки
@@ -86,31 +86,85 @@
| |
|//////////////////////////////////////////////////////////////////////////////// |////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ |ВЫБРАТЬ
| Сертификаты.Отпечаток, | Отпечатки.Отпечаток КАК Отпечаток,
| Сертификаты.Наименование КАК Наименование, | Сертификаты.Наименование КАК Наименование,
| Сертификаты.Организация, | Сертификаты.Организация КАК Организация,
| Сертификаты.Ссылка, | Сертификаты.Пользователь КАК Пользователь,
| Сертификаты.ДанныеСертификата | Сертификаты.Ссылка КАК Ссылка,
| Сертификаты.ДанныеСертификата КАК ДанныеСертификата
|ПОМЕСТИТЬ ВсеСертификаты
|ИЗ |ИЗ
| Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты | Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования КАК Сертификаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отпечатки КАК Отпечатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Отпечатки КАК Отпечатки
| ПО Сертификаты.Отпечаток = Отпечатки.Отпечаток | ПО Сертификаты.Отпечаток = Отпечатки.Отпечаток
|ГДЕ |ГДЕ
| НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка) | НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)
| И НЕ Сертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) | И Сертификаты.Организация = &Организация
| И Сертификаты.Организация = &Организация"; |;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Сертификаты.Отпечаток КАК Отпечаток,
| Сертификаты.Наименование КАК Наименование,
| Сертификаты.Организация КАК Организация,
| Сертификаты.Ссылка КАК Ссылка,
| Сертификаты.ДанныеСертификата КАК ДанныеСертификата
|ИЗ
| ВсеСертификаты КАК Сертификаты
|ГДЕ
| Сертификаты.Ссылка В
| (ВЫБРАТЬ
| ВсеСертификаты.Ссылка КАК Ссылка
| ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ГДЕ
| ВсеСертификаты.Пользователь = &Пользователь
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ВсеСертификаты.Ссылка
| ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи
| ПО
| ВсеСертификаты.Ссылка = СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка
| ГДЕ
| СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Пользователь = &Пользователь)";
Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
Если Не Отбор.ТолькоСертификатыСЗаполненнойПрограммой Тогда Если Не Отбор.ТолькоСертификатыСЗаполненнойПрограммой Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИСТИНА"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ Сертификаты.Программа = ЗНАЧЕНИЕ(Справочник.ПрограммыЭлектроннойПодписиИШифрования.ПустаяСсылка)", "ИСТИНА");
КонецЕсли; КонецЕсли;
Если Отбор.ВключатьСертификатыСПустымПользователем Тогда Если Отбор.ВключатьСертификатыСПустымПользователем Тогда
Запрос.Текст = СтрЗаменить(Запрос.Текст, "НЕ Сертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)", "ИСТИНА");
Запрос.Текст = Запрос.Текст + "
|ОБЪЕДИНИТЬ ВСЕ
|" +
"ВЫБРАТЬ
| ВсеСертификаты.Отпечаток КАК Отпечаток,
| ВсеСертификаты.Наименование КАК Наименование,
| ВсеСертификаты.Организация КАК Организация,
| ВсеСертификаты.Ссылка КАК Ссылка,
| ВсеСертификаты.ДанныеСертификата КАК ДанныеСертификата
|ИЗ
| ВсеСертификаты КАК ВсеСертификаты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Пользователи КАК СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи
| ПО ВсеСертификаты.Ссылка = СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка
|ГДЕ
| ВсеСертификаты.Пользователь = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| И СертификатыКлючейЭлектроннойПодписиИШифрованияПользователи.Ссылка ЕСТЬ NULL";
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(Отбор.Организация) Тогда Если ЗначениеЗаполнено(Отбор.Организация) Тогда
Запрос.УстановитьПараметр("Организация", Отбор.Организация); Запрос.УстановитьПараметр("Организация", Отбор.Организация);
Иначе Иначе
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Сертификаты.Организация = &Организация", "ИСТИНА"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "Сертификаты.Организация = &Организация", "ИСТИНА");
КонецЕсли; КонецЕсли;
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
МассивЛичныхСертификатов = Новый Массив; МассивЛичныхСертификатов = Новый Массив;
@@ -3166,6 +3166,13 @@
КонецПроцедуры КонецПроцедуры
// См. ЭлектроннаяПодписьСлужебныйПовтИсп.ОписаниеКомпоненты
Функция ОписаниеКомпоненты() Экспорт
Возврат СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().ЭлектроннаяПодпись.ОписаниеКомпоненты;
КонецФункции
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Общие процедуры и функции управляемых форм. // Общие процедуры и функции управляемых форм.
@@ -4618,7 +4625,7 @@
ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты(); ПараметрыПодключения = ОбщегоНазначенияКлиент.ПараметрыПодключенияКомпоненты();
ПараметрыПодключения.ТекстПояснения = ТекстПояснения; ПараметрыПодключения.ТекстПояснения = ТекстПояснения;
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты(); ОписаниеКомпоненты = ОписаниеКомпоненты();
ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета( ОбщегоНазначенияКлиент.ПодключитьКомпонентуИзМакета(
Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст), Новый ОписаниеОповещения("ПослеПодключенияКомпоненты", ЭтотОбъект, Контекст),
@@ -1322,24 +1322,6 @@
КонецФункции КонецФункции
// Описание подключения внешней компоненты (XMLDSIG).
//
// Возвращаемое значение:
// Структура:
// * ПолноеИмяМакета - Строка
// * ИмяОбъекта - Строка
//
Функция ОписаниеКомпоненты() Экспорт
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "XMLDSignAddIn");
Параметры.Вставить("ПолноеИмяМакета",
"Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет.КомпонентаXMLDSig");
Возврат Параметры;
КонецФункции
Функция ИдентификаторыАлгоритмовХешированияИОткрытогоКлюча() Экспорт Функция ИдентификаторыАлгоритмовХешированияИОткрытогоКлюча() Экспорт
Идентификаторы = Новый Массив; Идентификаторы = Новый Массив;
@@ -123,6 +123,71 @@
КонецФункции КонецФункции
// Возвращаемое значение:
// ФиксированнаяСтруктура:
// * ИмяОбъекта - Строка
// * ПолноеИмяМакета - Строка
//
Функция ОписаниеКомпоненты() Экспорт
ИменаМакетовБезВерсии = Новый Массив;
ИменаМакетовБезВерсии.Добавить("КомпонентаExtraCryptoAPI");
ИменаМакетовБезВерсии.Добавить("КомпонентаXMLDSig");
ВерсииМакетов = Новый Соответствие;
Для Каждого Макет Из Метаданные.Справочники.СертификатыКлючейЭлектроннойПодписиИШифрования.Макеты Цикл
Если Макет.ТипМакета <> Метаданные.СвойстваОбъектов.ТипМакета.ВнешняяКомпонента Тогда
Продолжить;
КонецЕсли;
ИмяМакета = Макет.Имя;
Для Каждого ИмяМакетаБезВерсии Из ИменаМакетовБезВерсии Цикл
Если СтрНачинаетсяС(ВРег(ИмяМакета), ВРег(ИмяМакетаБезВерсии)) Тогда
Версия = Сред(ИмяМакета, СтрДлина(ИмяМакетаБезВерсии) + 1);
ЧастиВерсии = СтрРазделить(Версия, "_", Ложь);
РасширенныеЧастиВерсии = Новый Массив;
Для Каждого ЧастьВерсии Из ЧастиВерсии Цикл
РасширенныеЧастиВерсии.Добавить(ВРег(Прав("0000" + ЧастьВерсии, 5)));
КонецЦикла;
РасширеннаяВерсия = СтрСоединить(РасширенныеЧастиВерсии, "_");
ВерсииМакета = ВерсииМакетов.Получить(ИмяМакетаБезВерсии);
Если ВерсииМакета = Неопределено Тогда
ВерсииМакета = Новый СписокЗначений;
ВерсииМакетов.Вставить(ИмяМакетаБезВерсии, ВерсииМакета);
КонецЕсли;
ВерсииМакета.Добавить(РасширеннаяВерсия, ИмяМакета);
КонецЕсли;
КонецЦикла;
КонецЦикла;
ВерсииМакета = Неопределено;
Для Каждого ИмяМакетаБезВерсии Из ИменаМакетовБезВерсии Цикл
ВерсииМакета = ВерсииМакетов.Получить(ИмяМакетаБезВерсии);
Если ВерсииМакета <> Неопределено Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если ВерсииМакета = Неопределено Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось найти макет внешней компоненты в метаданных справочника
|%1.'"),
"СертификатыКлючейЭлектроннойПодписиИШифрования");
ВызватьИсключение ТекстОшибки;
КонецЕсли;
ВерсииМакета.СортироватьПоЗначению(НаправлениеСортировки.Убыв);
ПолноеИмяМакета = "Справочник.СертификатыКлючейЭлектроннойПодписиИШифрования.Макет."
+ ВерсииМакета[0].Представление;
Параметры = Новый Структура;
Параметры.Вставить("ИмяОбъекта", "XMLDSignAddIn");
Параметры.Вставить("ПолноеИмяМакета", ПолноеИмяМакета);
Возврат Новый ФиксированнаяСтруктура(Параметры);
КонецФункции
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Структура:
// * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования // * Ссылка - СправочникСсылка.ПрограммыЭлектроннойПодписиИШифрования
+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="bcd40b64-0cf0-11ec-d08f-0242ac110002"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4a72826e-16d5-11ec-e398-0242ac110002">
<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="bcd40b65-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="4a728278-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="bcd40b96-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="4a7282aa-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="bcd40b97-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="4a7282b4-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="bcd40ba0-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="4a7282b5-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="bcd40ba1-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="4a7282be-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="bcd40baa-0cf0-11ec-d08f-0242ac110002"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="4a7282c8-16d5-11ec-e398-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="73ddf94f-5b41-42e9-b7b6-91ee67097b59"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ef1f8629-e2de-4040-b221-53ef4cd3cdf3"/>
<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.5.180</version> <version>3.1.5.192</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,1e8813be-0cf1-11ec-9d8d-0242ac110002,1,058a5bec-0cf1-11ec-319a-0242ac110002,"3.1.5.180","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6466,1,0,bcd40b64-0cf0-11ec-d08f-0242ac110002,bcd40b64-0cf0-11ec-d08f-0242ac110002,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,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-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated {6,1,1,ad0e7d92-16d5-11ec-6794-0242ac110002,1,94040bb4-16d5-11ec-059c-0242ac110002,"3.1.5.192","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6466,1,0,4a72826e-16d5-11ec-e398-0242ac110002,4a72826e-16d5-11ec-e398-0242ac110002,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,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-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -41,8 +41,14 @@
КонецЕсли; КонецЕсли;
Если ОграничениеДоступаНаУровнеЗаписейИзменено Тогда Если ОграничениеДоступаНаУровнеЗаписейИзменено Тогда
УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей( ОбновитьПовторноИспользуемыеЗначения();
ОграничениеДоступаНаУровнеЗаписейВключено); Попытка
УправлениеДоступомСлужебный.ПриИзмененииОграниченияДоступаНаУровнеЗаписей(
ОграничениеДоступаНаУровнеЗаписейВключено);
Исключение
ОбновитьПовторноИспользуемыеЗначения();
ВызватьИсключение;
КонецПопытки;
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -18,8 +18,9 @@
Если Параметры.СостояниеЗаявления <> Перечисления.СостоянияЗаявленияНаВыпускСертификата.Исполнено Тогда Если Параметры.СостояниеЗаявления <> Перечисления.СостоянияЗаявленияНаВыпускСертификата.Исполнено Тогда
Элементы.ДекорацияСертификаты.Видимость = Ложь; Элементы.ДекорацияСертификаты.Видимость = Ложь;
Элементы.ДекорацияИнформацияДляПоддержки.Заголовок = СтроковыеФункции.ФорматированнаяСтрока( Элементы.ДекорацияИнформацияДляПоддержки.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'В случае ошибки обратитесь в службу поддержки фирмы ""1С"", предоставив <a href = ""ИнформацияДляПоддержки"">техническую информацию о возникшей проблеме</a>.'")); НСтр("ru = 'В случае ошибки обратитесь в службу поддержки фирмы ""1С"", предоставив <a href = ""%1"">техническую информацию о возникшей проблеме</a>.'"),
"ИнформацияДляПоддержки"));
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -576,16 +576,17 @@
|4. Копия документа, удостоверяющего личность владельца сертификата. |4. Копия документа, удостоверяющего личность владельца сертификата.
|5. Копия страхового свидетельства обязательного пенсионного страхования (СНИЛС) владельца сертификата или уведомления о регистрации в системе персонифицированного учета (Форма АДИ-РЕГ).'"); |5. Копия страхового свидетельства обязательного пенсионного страхования (СНИЛС) владельца сертификата или уведомления о регистрации в системе персонифицированного учета (Форма АДИ-РЕГ).'");
Иначе Иначе
ТекстПредупреждения = СтроковыеФункцииКлиент.ФорматированнаяСтрока( ТекстПредупреждения = СтроковыеФункцииКлиент.ФорматированнаяСтрока(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Комплект документов: НСтр("ru = 'Комплект документов:
|1. Заявление на выпуск сертификата (подготовленное на предыдущем шаге). |1. Заявление на выпуск сертификата (подготовленное на предыдущем шаге).
|2. Копия* свидетельства о постановке на учет в налоговом органе (ИНН). |2. Копия* свидетельства о постановке на учет в налоговом органе (ИНН).
|3. Копия* свидетельства о государственной регистрации юридического лица (ОГРН) или лист записи ЕГРЮЛ (Форма № Р50007). |3. Копия* свидетельства о государственной регистрации юридического лица (ОГРН) или лист записи ЕГРЮЛ (Форма № Р50007).
|4. Копия* документа, удостоверяющего личность представителя организации, указанного для выпуска сертификата. |4. Копия* документа, удостоверяющего личность представителя организации, указанного для выпуска сертификата.
|5. Копия* страхового свидетельства обязательного пенсионного страхования (СНИЛС) представителя организации, указанного для выпуска сертификата. |5. Копия* страхового свидетельства обязательного пенсионного страхования (СНИЛС) представителя организации, указанного для выпуска сертификата.
|6. Копия* документа, подтверждающего полномочия представителя организации, указанного для выпуска сертификата (решение собственника, протокол собрания учредителей, выписка ЕГРЮЛ или <a href=""http://ca.1c.ru/doc/doverennost_p3.rtf"">доверенность</a>). |6. Копия* документа, подтверждающего полномочия представителя организации, указанного для выпуска сертификата (решение собственника, протокол собрания учредителей, выписка ЕГРЮЛ или <a href=""%1"">доверенность</a>).
| |
|* Копии документов заверяются подписью руководителя и печатью организации.'")); |* Копии документов заверяются подписью руководителя и печатью организации.'"),
"http://ca.1c.ru/doc/doverennost_p3.rtf"));
КонецЕсли; КонецЕсли;
ПоказатьПредупреждение(, ТекстПредупреждения); ПоказатьПредупреждение(, ТекстПредупреждения);
@@ -4705,7 +4706,7 @@
&НаКлиенте &НаКлиенте
Процедура УстановитьПараметрыКомпоненты(ПолноеИмяМакета, ПараметрыПодключения) Процедура УстановитьПараметрыКомпоненты(ПолноеИмяМакета, ПараметрыПодключения)
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты(); ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиент.ОписаниеКомпоненты();
ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета; ПолноеИмяМакета = ОписаниеКомпоненты.ПолноеИмяМакета;
ПараметрыПодключения.ИдентификаторыСозданияОбъектов.Добавить(ОписаниеКомпоненты.ИмяОбъекта); ПараметрыПодключения.ИдентификаторыСозданияОбъектов.Добавить(ОписаниеКомпоненты.ИмяОбъекта);
@@ -4745,7 +4746,7 @@
&НаКлиенте &НаКлиенте
Процедура УстановитьПодключенныеМодули(РаботаСДвоичнымиДанными, Криптография, РезультатПодключения) Процедура УстановитьПодключенныеМодули(РаботаСДвоичнымиДанными, Криптография, РезультатПодключения)
ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиентСервер.ОписаниеКомпоненты(); ОписаниеКомпоненты = ЭлектроннаяПодписьСлужебныйКлиент.ОписаниеКомпоненты();
ОбъектКомпоненты = РезультатПодключения.ПодключаемыйМодуль.Получить(ОписаниеКомпоненты.ИмяОбъекта); ОбъектКомпоненты = РезультатПодключения.ПодключаемыйМодуль.Получить(ОписаниеКомпоненты.ИмяОбъекта);
РаботаСДвоичнымиДанными = ОбъектКомпоненты; РаботаСДвоичнымиДанными = ОбъектКомпоненты;
Криптография = ОбъектКомпоненты; Криптография = ОбъектКомпоненты;
@@ -3880,6 +3880,11 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>БИПДлительностьОперацииПлатежнойСистемы</name> <name>БИПДлительностьОперацииПлатежнойСистемы</name>
<id>1945</id> <id>1945</id>
<title>
<key>ru</key>
<value>Длительность
операции</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -3888,12 +3893,7 @@
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>БИПДлительностьОперацииПлатежнойСистемы</segments> <segments>БИПДлительностьОперацииПлатежнойСистемы</segments>
</dataPath> </dataPath>
<toolTip> <toolTipRepresentation>Button</toolTipRepresentation>
<key>ru</key>
<value>Длительность ожидания подтверждения
оплаты покупателем. (количество секунд)</value>
</toolTip>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<handlers> <handlers>
<event>OnChange</event> <event>OnChange</event>
<name>БИПДлительностьОперацииПлатежнойСистемыПриИзменении</name> <name>БИПДлительностьОперацииПлатежнойСистемыПриИзменении</name>
@@ -3919,7 +3919,6 @@
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:InputFieldExtInfo">
<width>14</width>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
@@ -3929,6 +3928,46 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:Decoration">
<name>БИПДекорацияЕдинициИзмерения</name>
<id>1955</id>
<title>
<key>ru</key>
<value>секунд</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<toolTip>
<key>ru</key>
<value>Длительность ожидания подтверждения
оплаты покупателем.</value>
</toolTip>
<toolTipRepresentation>Button</toolTipRepresentation>
<extendedTooltip>
<name>БИПДекорацияЕдинициИзмеренияРасширеннаяПодсказка</name>
<id>1957</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>БИПДекорацияЕдинициИзмеренияКонтекстноеМеню</name>
<id>1956</id>
<autoFill>true</autoFill>
</contextMenu>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</items>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -3950,7 +3989,7 @@
</extendedTooltip> </extendedTooltip>
<type>UsualGroup</type> <type>UsualGroup</type>
<extInfo xsi:type="form:UsualGroupExtInfo"> <extInfo xsi:type="form:UsualGroupExtInfo">
<group>HorizontalIfPossible</group> <group>AlwaysHorizontal</group>
<behavior>Auto</behavior> <behavior>Auto</behavior>
<showLeftMargin>true</showLeftMargin> <showLeftMargin>true</showLeftMargin>
<united>true</united> <united>true</united>
@@ -3872,7 +3872,8 @@
Уровни = СопоставлениеУровняАдресаИНаименования(Адрес.AddressType, ВключатьУлицу); Уровни = СопоставлениеУровняАдресаИНаименования(Адрес.AddressType, ВключатьУлицу);
Для каждого Уровень Из Уровни Цикл Для каждого Уровень Из Уровни Цикл
УровеньКлюч = ?(Уровень.Ключ < 10, Уровень.Ключ * 10, Уровень.Ключ); УровеньКлюч = УровеньАдреса(Уровень.Ключ, Адрес.AddressType);
Если УровеньКлюч > МаксимальныйУровень Если УровеньКлюч > МаксимальныйУровень
И Адрес.Свойство(Уровень.Значение + "Id") И Адрес.Свойство(Уровень.Значение + "Id")
И ЗначениеЗаполнено(Адрес[Уровень.Значение + "Id"]) Тогда И ЗначениеЗаполнено(Адрес[Уровень.Значение + "Id"]) Тогда
@@ -3886,6 +3887,20 @@
КонецФункции КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция УровеньАдреса(Знач Уровень, Знач ТипАдреса)
Если РаботаСАдресамиКлиентСервер.ЭтоМуниципальныйАдрес(ТипАдреса)
И Уровень = 4 Тогда
Возврат 45; // В мун. адресах город следует после поселений (уровень 41)
КонецЕсли;
Уровень = ?(Уровень < 10, Уровень * 10, Уровень);
Возврат Уровень;
КонецФункции
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция НайтиИндексУДома(АдресныйОбъект, Дом) Функция НайтиИндексУДома(АдресныйОбъект, Дом)
@@ -81,6 +81,7 @@
НастройкиОтбора = Настройки["ОтборМетаданных"]; НастройкиОтбора = Настройки["ОтборМетаданных"];
Если ЗначениеЗаполнено(НастройкиОтбора) Тогда Если ЗначениеЗаполнено(НастройкиОтбора) Тогда
ОтборМетаданных = ОтборМетаданныхТолькоСуществующие(НастройкиОтбора);
Элементы.НастроитьОтбор.Заголовок = ПредставлениеОтбораМетаданных(НастройкиОтбора); Элементы.НастроитьОтбор.Заголовок = ПредставлениеОтбораМетаданных(НастройкиОтбора);
ИначеЕсли ЗначениеЗаполнено(Параметры.ОтборМетаданных) Тогда ИначеЕсли ЗначениеЗаполнено(Параметры.ОтборМетаданных) Тогда
ОтборМетаданных = Параметры.ОтборМетаданных; ОтборМетаданных = Параметры.ОтборМетаданных;
@@ -1004,6 +1005,21 @@
#Область СобытияФормы #Область СобытияФормы
&НаСервереБезКонтекста
Функция ОтборМетаданныхТолькоСуществующие(ОтборМетаданных)
Результат = Новый СписокЗначений;
Для каждого ВыбранныеМетаданные Из ОтборМетаданных Цикл
Если Метаданные.НайтиПоПолномуИмени(ВыбранныеМетаданные.Значение) = Неопределено Тогда
Продолжить;
КонецЕсли;
Результат.Добавить(ВыбранныеМетаданные.Значение, ВыбранныеМетаданные.Представление);
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере &НаСервере
Процедура УстановитьПереданныйОтборМетаданных() Процедура УстановитьПереданныйОтборМетаданных()
Перем Элемент; Перем Элемент;
@@ -229,6 +229,7 @@
<key>ru</key> <key>ru</key>
<value>Макет файла обновления конфигурации</value> <value>Макет файла обновления конфигурации</value>
</synonym> </synonym>
<comment>АПК:450 Для читабельности журнала обновления конфигурации.</comment>
<templateType>TextDocument</templateType> <templateType>TextDocument</templateType>
</templates> </templates>
<templates uuid="45d79e4d-8c2a-432b-abb8-fb9046abea40"> <templates uuid="45d79e4d-8c2a-432b-abb8-fb9046abea40">
@@ -11,6 +11,8 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИнформационнаяБазаФайловая = ОбщегоНазначения.ИнформационнаяБазаФайловая();
ОтправлятьПисьмаВФорматеHTML = ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML"); ОтправлятьПисьмаВФорматеHTML = ПолучитьФункциональнуюОпцию("ОтправлятьПисьмаВФорматеHTML");
НастройкиХранилище = Взаимодействия.ПолучитьНастройкуРаботаСПочтой(); НастройкиХранилище = Взаимодействия.ПолучитьНастройкуРаботаСПочтой();
@@ -44,9 +46,9 @@
ВключатьТелоИсходногоПисьма = ?(НастройкиХранилище.Свойство("ВключатьТелоИсходногоПисьма"), ВключатьТелоИсходногоПисьма = ?(НастройкиХранилище.Свойство("ВключатьТелоИсходногоПисьма"),
НастройкиХранилище.ВключатьТелоИсходногоПисьма,Ложь); НастройкиХранилище.ВключатьТелоИсходногоПисьма,Ложь);
ОтправлятьСообщенияСразу = ?(НастройкиХранилище.Свойство("ОтправлятьСообщенияСразу"), ОтправлятьСообщенияСразу = ?(НастройкиХранилище.Свойство("ОтправлятьСообщенияСразу"),
НастройкиХранилище.ОтправлятьСообщенияСразу,Ложь); НастройкиХранилище.ОтправлятьСообщенияСразу,Ложь) И ИнформационнаяБазаФайловая;
Элементы.ОтправлятьСообщенияСразу.Видимость = ОбщегоНазначения.ИнформационнаяБазаФайловая(); Элементы.ОтправлятьСообщенияСразу.Видимость = ИнформационнаяБазаФайловая;
Элементы.ПодписьПриОтвете.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьПриОтветеПересылке); Элементы.ПодписьПриОтвете.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьПриОтветеПересылке);
Элементы.ПодписьДляНового.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьДляНовыхСообщений); Элементы.ПодписьДляНового.Картинка = Взаимодействия.КартинкаСтраницыПодписи(ВключатьПодписьДляНовыхСообщений);
@@ -4226,9 +4226,11 @@
Процедура СФормироватьДекорациюТолькоЗначимыеКонтакты() Процедура СФормироватьДекорациюТолькоЗначимыеКонтакты()
Если ТолькоЗначимыеКонтакты Тогда Если ТолькоЗначимыеКонтакты Тогда
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Контакты с взаимодействиями по отбору, <a href = ""ИзменитьТолькоЗначимыеКонтакты"">изменить</a>'")); ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Контакты с взаимодействиями по отбору, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеКонтакты");
Иначе Иначе
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все контакты, <a href = ""ИзменитьТолькоЗначимыеКонтакты"">изменить</a>'")); ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все контакты, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеКонтакты");
КонецЕсли; КонецЕсли;
Элементы.ДекорацияТолькоЗначимыеКонтакты.Заголовок = ТекстЗаголовка; Элементы.ДекорацияТолькоЗначимыеКонтакты.Заголовок = ТекстЗаголовка;
@@ -4239,9 +4241,11 @@
Процедура СФормироватьДекорациюТолькоЗначимыеПредметы() Процедура СФормироватьДекорациюТолькоЗначимыеПредметы()
Если ТолькоЗначимыеПредметы Тогда Если ТолькоЗначимыеПредметы Тогда
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Предметы с взаимодействиями по отбору, <a href = ""ИзменитьТолькоЗначимыеПредметы"">изменить</a>'")); ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Предметы с взаимодействиями по отбору, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеПредметы");
Иначе Иначе
ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все предметы, <a href = ""ИзменитьТолькоЗначимыеПредметы"">изменить</a>'")); ТекстЗаголовка = СтроковыеФункции.ФорматированнаяСтрока(НСтр("ru='Отображаются все предметы, <a href = ""%1"">изменить</a>'"),
"ИзменитьТолькоЗначимыеПредметы");
КонецЕсли; КонецЕсли;
Элементы.ДекорацияТолькоЗначимыеПредметы.Заголовок = ТекстЗаголовка; Элементы.ДекорацияТолькоЗначимыеПредметы.Заголовок = ТекстЗаголовка;
@@ -353,14 +353,14 @@
Иначе Иначе
Если ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Если ФорматСообщения = Перечисления.СпособыРедактированияЭлектронныхПисем.HTML Тогда
И ДокументHTMLТекущегоПисьмаПодготовлен Тогда
ТекущийОбъект.ТекстHTML = Взаимодействия.ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML); Если ДокументHTMLТекущегоПисьмаПодготовлен Тогда
ТекущийОбъект.Текст = Взаимодействия.ПолучитьОбычныйТекстИзHTML(ТекущийОбъект.ТекстHTML);
Иначе
ТекущийОбъект.ТекстHTML = Взаимодействия.ПолучитьТекстHTMLИзОбъектаДокументHTML(ДокументHTML);
КонецЕсли;
ТекущийОбъект.Текст = Взаимодействия.ПолучитьОбычныйТекстИзHTML(ТекущийОбъект.ТекстHTML); ТекущийОбъект.Текст = Взаимодействия.ПолучитьОбычныйТекстИзHTML(ТекущийОбъект.ТекстHTML);
КонецЕсли; КонецЕсли;
@@ -658,7 +658,7 @@
// Подготовка новых записей для обновления. // Подготовка новых записей для обновления.
НовыеЗаписи = СоздатьНаборЗаписей().Выгрузить(); НовыеЗаписи = СоздатьНаборЗаписей().Выгрузить();
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() Тогда Если Константы.ОграничиватьДоступНаУровнеЗаписей.Получить() Тогда
// Добавление групп значений. // Добавление групп значений.
Если СвойстваВидаДоступа.ТипГруппЗначений = Тип("Неопределено") Тогда Если СвойстваВидаДоступа.ТипГруппЗначений = Тип("Неопределено") Тогда
@@ -80,11 +80,14 @@
ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаПользователи", Новый ОписаниеТипов("Булево")); ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаПользователи", Новый ОписаниеТипов("Булево"));
ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаВнешниеПользователи", Новый ОписаниеТипов("Булево")); ИспользуемыеВидыДоступа.Колонки.Добавить("ВидДоступаВнешниеПользователи", Новый ОписаниеТипов("Булево"));
ОграничениеДоступаВключено = Константы.ОграничиватьДоступНаУровнеЗаписей.Получить();
Если УправлениеДоступом.ОграничиватьДоступНаУровнеЗаписей() <> ОграничениеДоступаВключено Тогда
ОбновитьПовторноИспользуемыеЗначения();
КонецЕсли;
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа(); СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
Для Каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл Для Каждого СвойстваВидаДоступа Из СвойстваВидовДоступа.Массив Цикл
Если Не УправлениеДоступомСлужебный.ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка) Если Не УправлениеДоступомСлужебный.ВидДоступаИспользуется(СвойстваВидаДоступа.Ссылка) Тогда
И Не СвойстваВидаДоступа.Имя = "ДополнительныеОтчетыИОбработки" Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
НоваяСтрока = ИспользуемыеВидыДоступа.Добавить(); НоваяСтрока = ИспользуемыеВидыДоступа.Добавить();
@@ -16,7 +16,11 @@
// ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись, // ЕстьИзменения - Булево - (возвращаемое значение) - если производилась запись,
// устанавливается Истина, иначе не изменяется. // устанавливается Истина, иначе не изменяется.
// //
Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено) Экспорт // БезОбновленияЗависимыхДанных - Булево - если Истина, тогда
// не вызвать процедуру ПриИзмененииИспользованияВидовДоступа и
// не планировать обновление параметров ограничения доступа.
//
Процедура ОбновитьДанныеРегистра(ЕстьИзменения = Неопределено, БезОбновленияЗависимыхДанных = Ложь) Экспорт
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа(); СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
ИспользуемыеВидыДоступа = СоздатьНаборЗаписей().Выгрузить(); ИспользуемыеВидыДоступа = СоздатьНаборЗаписей().Выгрузить();
@@ -83,7 +87,9 @@
Если ЕстьТекущиеИзменения Тогда Если ЕстьТекущиеИзменения Тогда
ЕстьИзменения = Истина; ЕстьИзменения = Истина;
ПриИзмененииИспользованияВидовДоступа(); Если Не БезОбновленияЗависимыхДанных Тогда
ПриИзмененииИспользованияВидовДоступа(Истина);
КонецЕсли;
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
@@ -144,20 +150,22 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПриИзмененииИспользованияВидовДоступа(); ПриИзмененииИспользованияВидовДоступа(Истина);
Справочники.ГруппыДоступа.ЗарегистрироватьСсылки("ИспользуемыеВидыДоступа", Null); Справочники.ГруппыДоступа.ЗарегистрироватьСсылки("ИспользуемыеВидыДоступа", Null);
КонецПроцедуры КонецПроцедуры
// Для процедур ОбновитьДанныеРегистра, ОбработатьИзменениеЗарегистрированноеПриЗагрузке. // Для процедур ОбновитьДанныеРегистра, ОбработатьИзменениеЗарегистрированноеПриЗагрузке.
Процедура ПриИзмененииИспользованияВидовДоступа() Процедура ПриИзмененииИспользованияВидовДоступа(ПланироватьОбновлениеПараметровОграниченияДоступа = Ложь) Экспорт
РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра(); РегистрыСведений.ЗначенияГруппДоступа.ОбновитьДанныеРегистра();
РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ОбновитьДанныеРегистра(); РегистрыСведений.ИспользуемыеВидыДоступаПоТаблицам.ОбновитьДанныеРегистра();
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа( Если ПланироватьОбновлениеПараметровОграниченияДоступа Тогда
"ПриИзмененииИспользованияВидовДоступа"); УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"ПриИзмененииИспользованияВидовДоступа");
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -35,12 +35,9 @@
| &ПодстановкаПоляВидИзмененияСтроки | &ПодстановкаПоляВидИзмененияСтроки
|ИЗ |ИЗ
| РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияГруппДоступаПоУмолчанию | РегистрСведений.ЗначенияГруппДоступаПоУмолчанию КАК ЗначенияГруппДоступаПоУмолчанию
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ИспользуемыеВидыДоступа КАК ИспользуемыеВидыДоступа
| ПО (ИспользуемыеВидыДоступа.ТипЗначенийДоступа = ЗначенияГруппДоступаПоУмолчанию.ТипЗначенийДоступа)
| И (НЕ ЗначенияГруппДоступаПоУмолчанию.ВсеРазрешеныБезИсключений)
| И (&УсловиеОтбораТиповЗначений1)
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ТаблицыГруппДоступа КАК ТаблицыГруппДоступа
| ПО (ТаблицыГруппДоступа.ГруппаДоступа = ЗначенияГруппДоступаПоУмолчанию.ГруппаДоступа) | ПО (ТаблицыГруппДоступа.ГруппаДоступа = ЗначенияГруппДоступаПоУмолчанию.ГруппаДоступа)
| И (НЕ ЗначенияГруппДоступаПоУмолчанию.ВсеРазрешеныБезИсключений)
| И (ВЫБОР | И (ВЫБОР
| КОГДА ТаблицыГруппДоступа.ПравоДобавление | КОГДА ТаблицыГруппДоступа.ПравоДобавление
| ТОГДА НЕ ТаблицыГруппДоступа.ПравоДобавлениеБезОграничения | ТОГДА НЕ ТаблицыГруппДоступа.ПравоДобавлениеБезОграничения
@@ -48,6 +45,7 @@
| ТОГДА НЕ ТаблицыГруппДоступа.ПравоИзменениеБезОграничения | ТОГДА НЕ ТаблицыГруппДоступа.ПравоИзменениеБезОграничения
| ИНАЧЕ НЕ ТаблицыГруппДоступа.ПравоЧтениеБезОграничения | ИНАЧЕ НЕ ТаблицыГруппДоступа.ПравоЧтениеБезОграничения
| КОНЕЦ) | КОНЕЦ)
| И (&УсловиеОтбораТиповЗначений1)
| И (&УсловиеОтбораТаблиц1)"; | И (&УсловиеОтбораТаблиц1)";
// Подготовка выбираемых полей с необязательным отбором. // Подготовка выбираемых полей с необязательным отбором.
@@ -34,9 +34,9 @@
ОписаниеРасчетаИтогов = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах"); ОписаниеРасчетаИтогов = ДлительныеОперации.ВыполнитьФункцию(ПараметрыВыполнения, "РаботаСФайламиСлужебный.СведенияОбОчищаемыхФайлах");
РежимОчисткиФайлов = РаботаСФайламиСлужебный.РежимОчисткиФайлов(); РежимОчисткиФайлов = РаботаСФайламиСлужебный.РежимОчисткиФайлов();
ИспользоватьТома = РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске();
НастроитьРежимОчисткиФайлов(); НастроитьРежимОчисткиФайлов();
ОтобразитьИзмененияРежимОчисткиФайлов(ЭтотОбъект); ОтобразитьИзмененияРежимОчисткиФайлов(ЭтотОбъект);
ИспользоватьТома = РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске();
КонецПроцедуры КонецПроцедуры
@@ -28,8 +28,9 @@
НадписьИмяУзла = НСтр("ru = 'Не удалось установить обновление программы, полученное из НадписьИмяУзла = НСтр("ru = 'Не удалось установить обновление программы, полученное из
|""%1"". |""%1"".
|Техническую информацию см. в <a href = ""ЖурналРегистрации"">Журнале регистрации</a>.'"); |Техническую информацию см. в <a href = ""%2"">Журнале регистрации</a>.'");
Элементы.ИнформационнаяНадписьИмяУзла.Заголовок = СтроковыеФункции.ФорматированнаяСтрока(НадписьИмяУзла, УзелИнформационнойБазы.Наименование); Элементы.ИнформационнаяНадписьИмяУзла.Заголовок =
СтроковыеФункции.ФорматированнаяСтрока(НадписьИмяУзла, УзелИнформационнойБазы.Наименование, "ЖурналРегистрации");
УстановитьОтображениеЭлементовФормы(); УстановитьОтображениеЭлементовФормы();
@@ -66,8 +66,12 @@
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.1") > 0 Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.249") < 0 И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.2.249") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.1") > 0 Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.4") < 0 Тогда И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.3.4") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.376") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.188") < 0 Тогда
ЕстьТекущиеИзменения = Истина; ЕстьТекущиеИзменения = Истина;
КонецЕсли; КонецЕсли;
@@ -166,6 +170,15 @@
ЗапланироватьОбновление_00_00263154("ПереходНаВерсиюБСП_3.0.3.190"); ЗапланироватьОбновление_00_00263154("ПереходНаВерсиюБСП_3.0.3.190");
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.4.376") < 0
Или ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.1") > 0
И ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.1.5.188") < 0 Тогда
РегистрыСведений.ИспользуемыеВидыДоступа.ПриИзмененииИспользованияВидовДоступа();
ЗапланироватьОбновление(Ложь, Истина, "ПереходНаВерсиюБСП_3.1.4.376");
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Для процедуры ОбновитьДанныеРегистраПоИзменениямКонфигурации. // Для процедуры ОбновитьДанныеРегистраПоИзменениямКонфигурации.
@@ -185,7 +185,6 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>НепринятыеДанныеПоКоллизии</name> <name>НепринятыеДанныеПоКоллизии</name>
<id>7</id> <id>7</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -219,7 +218,6 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ПринятыеДанныеПоКоллизии</name> <name>ПринятыеДанныеПоКоллизии</name>
<id>37</id> <id>37</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -253,7 +251,6 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе</name> <name>НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе</name>
<id>10</id> <id>10</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -287,7 +284,6 @@
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>НепринятыйПоДатеЗапретаОбъектСуществуетВБазе</name> <name>НепринятыйПоДатеЗапретаОбъектСуществуетВБазе</name>
<id>40</id> <id>40</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -648,7 +644,7 @@
<name>ОшибкаПроверкиПередОтправкойXTDO</name> <name>ОшибкаПроверкиПередОтправкойXTDO</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Ошибка проверки перед отправкой (XTDO)</value> <value>Ошибка проверки перед отправкой (XDTO)</value>
</title> </title>
<id>7</id> <id>7</id>
<valueType> <valueType>
@@ -30,6 +30,11 @@
КэшЗначений.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе; КэшЗначений.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе;
КэшЗначений.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе; КэшЗначений.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе = МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе;
Элементы.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе.Видимость = Истина;
Элементы.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе.Видимость = Истина;
Элементы.ПринятыеДанныеПоКоллизии.Видимость = Истина;
Элементы.НепринятыеДанныеПоКоллизии.Видимость = Истина;
КонецЕсли; КонецЕсли;
Параметры.Свойство("ОтборТипыПредупреждений", ОтборТипыПредупреждений); Параметры.Свойство("ОтборТипыПредупреждений", ОтборТипыПредупреждений);
@@ -837,7 +837,6 @@
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>СписокКоллизии</name> <name>СписокКоллизии</name>
<id>238</id> <id>238</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -863,7 +862,6 @@
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>СписокЗапретЗагрузкиПоДате</name> <name>СписокЗапретЗагрузкиПоДате</name>
<id>240</id> <id>240</id>
<visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
@@ -1880,116 +1878,45 @@
<main>true</main> <main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo"> <extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ <queryText>ВЫБРАТЬ
РегистрСведенийРезультатыОбменаДанными.УзелИнформационнойБазы КАК УзелИнформационнойБазы, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.УзелИнформационнойБазы КАК УзелИнформационнойБазы,
РегистрСведенийРезультатыОбменаДанными.ПроблемныйОбъект КАК ПроблемныйОбъект, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ПроблемныйОбъект КАК ПроблемныйОбъект,
РегистрСведенийРезультатыОбменаДанными.ОбъектМетаданных КАК ОбъектМетаданных, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ОбъектМетаданных КАК ОбъектМетаданных,
РегистрСведенийРезультатыОбменаДанными.ТипПроблемы КАК ТипПредупреждения, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы КАК ТипПредупреждения,
ВЫБОР ВЫБОР
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НепроведенныйДокумент) КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НепроведенныйДокумент)
ТОГДА &amp;НепроведенныйДокумент ТОГДА &amp;НепроведенныйДокумент
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты) КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.НезаполненныеРеквизиты)
ТОГДА &amp;ПустыеРеквизиты ТОГДА &amp;ПустыеРеквизиты
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта) КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаПроверкиСконвертированногоОбъекта)
ТОГДА &amp;ПроверкаПередОтправкой ТОГДА &amp;ПроверкаПередОтправкой
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных) КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриОтправкеДанных)
ТОГДА &amp;ТехническаяОшибкаОтправка ТОГДА &amp;ТехническаяОшибкаОтправка
КОГДА РегистрСведенийРезультатыОбменаДанными.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных) КОГДА
РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ТипПроблемы = ЗНАЧЕНИЕ(Перечисление.ТипыПроблемОбменаДанными.ОшибкаВыполненияКодаОбработчиковПриПолученииДанных)
ТОГДА &amp;ТехническаяОшибкаПолучение ТОГДА &amp;ТехническаяОшибкаПолучение
КОНЕЦ КАК ПредставлениеТипаПредупреждения, КОНЕЦ КАК ПредставлениеТипаПредупреждения,
РегистрСведенийРезультатыОбменаДанными.ДатаВозникновения КАК ДатаВозникновения, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.ДатаВозникновения КАК ДатаВозникновения,
ВЫРАЗИТЬ(РегистрСведенийРезультатыОбменаДанными.Причина КАК СТРОКА(1000)) КАК Описание, ВЫРАЗИТЬ(РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Причина КАК СТРОКА(1000)) КАК Описание,
РегистрСведенийРезультатыОбменаДанными.КлючУникальности КАК КлючУникальности, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.КлючУникальности КАК КлючУникальности,
РегистрСведенийРезультатыОбменаДанными.Пропущена КАК СкрытьПредупреждение, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Пропущена КАК СкрытьПредупреждение,
ВЫБОР ВЫБОР
КОГДА РегистрСведенийРезультатыОбменаДанными.Комментарий = &quot;&quot; КОГДА РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Комментарий = &quot;&quot;
ТОГДА ЛОЖЬ ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА ИНАЧЕ ИСТИНА
КОНЕЦ КАК ЕстьКомментарий, КОНЕЦ КАК ЕстьКомментарий,
РегистрСведенийРезультатыОбменаДанными.Комментарий КАК КомментарийПредупреждения, РегистрСведенийРезультатыОбменаДаннымиПереопределяемый.Комментарий КАК КомментарийПредупреждения,
НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммы, НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммы,
НЕОПРЕДЕЛЕНО КАК ВерсияЭтойПрограммы, НЕОПРЕДЕЛЕНО КАК ВерсияЭтойПрограммы,
НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммыПринята, НЕОПРЕДЕЛЕНО КАК ВерсияИзДругойПрограммыПринята,
НЕОПРЕДЕЛЕНО КАК ЭтоНовыйОбъект НЕОПРЕДЕЛЕНО КАК ЭтоНовыйОбъект
ИЗ ИЗ
РегистрСведений.РезультатыОбменаДанными КАК РегистрСведенийРезультатыОбменаДанными РегистрСведений.РезультатыОбменаДанными КАК РегистрСведенийРезультатыОбменаДаннымиПереопределяемый</queryText>
<mainTable>InformationRegister.РезультатыОбменаДанными</mainTable>
ОБЪЕДИНИТЬ ВСЕ <dynamicDataRead>true</dynamicDataRead>
ВЫБРАТЬ
НепринятаяВерсия.АвторВерсии,
НепринятаяВерсия.Объект,
НЕОПРЕДЕЛЕНО,
НепринятаяВерсия.ТипВерсииОбъекта,
ВЫБОР
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
ТОГДА &amp;НепринятыйСуществующий
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе)
ТОГДА &amp;НепринятыйНовый
КОНЕЦ,
НепринятаяВерсия.ДатаВерсии,
НепринятаяВерсия.ПредупреждениеСинхронизации,
НЕОПРЕДЕЛЕНО,
НепринятаяВерсия.ВерсияПроигнорирована,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(НепринятаяВерсия.Комментарий КАК СТРОКА(1000))) = &quot;&quot;
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ,
НепринятаяВерсия.Комментарий,
ЕСТЬNULL(НепринятаяВерсия.НомерВерсии, 0),
ЕСТЬNULL(ТекущаяВерсия.НомерВерсии, 0),
НЕОПРЕДЕЛЕНО,
ВЫБОР
КОГДА НепринятаяВерсия.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе)
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ
ИЗ
РегистрСведений.ВерсииОбъектов КАК НепринятаяВерсия
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ТекущаяВерсия
ПО НепринятаяВерсия.Объект = ТекущаяВерсия.Объект
И (НепринятаяВерсия.НомерВерсии = ТекущаяВерсия.НомерВерсии + 1)
ГДЕ
НепринятаяВерсия.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе), ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе))
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ВерсииДругойПрограммы.АвторВерсии,
ВерсииДругойПрограммы.Объект,
НЕОПРЕДЕЛЕНО,
ВерсииДругойПрограммы.ТипВерсииОбъекта,
ВЫБОР
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
ТОГДА &amp;ПринятыеДанныеКоллизии
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии)
ТОГДА &amp;НепринятыеДанныеКоллизии
КОНЕЦ,
ВерсииДругойПрограммы.ДатаВерсии,
ВерсииДругойПрограммы.ПредупреждениеСинхронизации,
НЕОПРЕДЕЛЕНО,
ВерсииДругойПрограммы.ВерсияПроигнорирована,
ВЫБОР
КОГДА (ВЫРАЗИТЬ(ВерсииДругойПрограммы.Комментарий КАК СТРОКА(1024))) = &quot;&quot;
ТОГДА ЛОЖЬ
ИНАЧЕ ИСТИНА
КОНЕЦ,
ВерсииДругойПрограммы.Комментарий,
ЕСТЬNULL(ВерсииДругойПрограммы.НомерВерсии, 0),
ЕСТЬNULL(ВерсииЭтойПрограммы.НомерВерсии, 0),
ВЫБОР
КОГДА ВерсииДругойПрограммы.ТипВерсииОбъекта = ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ,
НЕОПРЕДЕЛЕНО
ИЗ
РегистрСведений.ВерсииОбъектов КАК ВерсииДругойПрограммы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ВерсииОбъектов КАК ВерсииЭтойПрограммы
ПО ВерсииДругойПрограммы.Объект = ВерсииЭтойПрограммы.Объект
И (ВерсииДругойПрограммы.НомерВерсии = ВерсииЭтойПрограммы.НомерВерсии + 1)
ГДЕ
ВерсииДругойПрограммы.ТипВерсииОбъекта В (ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии), ЗНАЧЕНИЕ(Перечисление.ТипыВерсийОбъекта.НеПринятыеДанныеПоКоллизии))</queryText>
<autoFillAvailableFields>true</autoFillAvailableFields> <autoFillAvailableFields>true</autoFillAvailableFields>
<customQuery>true</customQuery> <customQuery>true</customQuery>
<autoSaveUserSettings>true</autoSaveUserSettings> <autoSaveUserSettings>true</autoSaveUserSettings>
@@ -20,7 +20,8 @@
КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", Неопределено); КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", Неопределено);
КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", Неопределено); КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", Неопределено);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда ПодсистемаВерсионированияСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов");
Если ПодсистемаВерсионированияСуществует Тогда
МенеджерПеречисления = Перечисления["ТипыВерсийОбъекта"]; МенеджерПеречисления = Перечисления["ТипыВерсийОбъекта"];
КэшЗначений.Вставить("НепринятыйПоДатеЗапретаОбъектСуществуетВБазе", МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе); КэшЗначений.Вставить("НепринятыйПоДатеЗапретаОбъектСуществуетВБазе", МенеджерПеречисления.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе);
@@ -28,6 +29,11 @@
КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", МенеджерПеречисления.НепринятыеДанныеПоКоллизии); КэшЗначений.Вставить("НепринятыеДанныеПоКоллизии", МенеджерПеречисления.НепринятыеДанныеПоКоллизии);
КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", МенеджерПеречисления.ПринятыеДанныеПоКоллизии); КэшЗначений.Вставить("ПринятыеДанныеПоКоллизии", МенеджерПеречисления.ПринятыеДанныеПоКоллизии);
ДинамическийСписокСПредупреждениямиВерсионирования();
Элементы.СписокКоллизии.Видимость = Истина;
Элементы.СписокЗапретЗагрузкиПоДате.Видимость = Истина;
КонецЕсли; КонецЕсли;
ОтборыПоПереданнымПараметрам(); ОтборыПоПереданнымПараметрам();
@@ -44,10 +50,15 @@
Список.Параметры.УстановитьЗначениеПараметра("ПроверкаПередОтправкой", НСтр("ru ='Проверка перед отправкой'", ОбщегоНазначения.КодОсновногоЯзыка())); Список.Параметры.УстановитьЗначениеПараметра("ПроверкаПередОтправкой", НСтр("ru ='Проверка перед отправкой'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаОтправка", НСтр("ru ='Тех. ошибка (отправка)'", ОбщегоНазначения.КодОсновногоЯзыка())); Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаОтправка", НСтр("ru ='Тех. ошибка (отправка)'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаПолучение", НСтр("ru ='Тех. ошибка (получение)'", ОбщегоНазначения.КодОсновногоЯзыка())); Список.Параметры.УстановитьЗначениеПараметра("ТехническаяОшибкаПолучение", НСтр("ru ='Тех. ошибка (получение)'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйСуществующий", НСтр("ru ='Непринятый, существующий'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйНовый", НСтр("ru ='Непринятый, новый'", ОбщегоНазначения.КодОсновногоЯзыка())); Если ПодсистемаВерсионированияСуществует Тогда
Список.Параметры.УстановитьЗначениеПараметра("ПринятыеДанныеКоллизии", НСтр("ru ='Приняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыеДанныеКоллизии", НСтр("ru ='Неприняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка())); Список.Параметры.УстановитьЗначениеПараметра("НепринятыйСуществующий", НСтр("ru ='Непринятый, существующий'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыйНовый", НСтр("ru ='Непринятый, новый'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("ПринятыеДанныеКоллизии", НСтр("ru ='Приняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
Список.Параметры.УстановитьЗначениеПараметра("НепринятыеДанныеКоллизии", НСтр("ru ='Неприняты данные коллизии'", ОбщегоНазначения.КодОсновногоЯзыка()));
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -597,6 +608,22 @@
КонецПроцедуры КонецПроцедуры
&НаСервере
Процедура ДинамическийСписокСПредупреждениямиВерсионирования()
ТекстЗапроса = "";
МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов");
МодульВерсионированиеОбъектов.ТекстЗапросаСпискаПредупрежденияВерсий(ТекстЗапроса);
// ОбщегоНазначения.УстановитьСвойстваДинамическогоСписка() нельзя использовать из-за того,
// что метод не умеет очищать свойство динамического списка "ОсновнаяТаблица"
Список.ТекстЗапроса = Список.ТекстЗапроса + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + ТекстЗапроса;
Список.ОсновнаяТаблица = "";
Список.ДинамическоеСчитываниеДанных = Ложь;
КонецПроцедуры
&НаСервере &НаСервере
Процедура ДобавитьПоляОформления(ЭлементУсловногоОформления, ИменаПолейОформления) Процедура ДобавитьПоляОформления(ЭлементУсловногоОформления, ИменаПолейОформления)
@@ -89,9 +89,9 @@
ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);
НенужныеФайлы = РаботаСФайламиСлужебный.ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода); НенужныеФайлы = РаботаСФайламиСлужебный.ВыбратьДанныеПоПравилу(НастройкаОчистки, МассивИсключений, ПроцессорВывода);
Для Каждого Стр Из НенужныеФайлы Цикл Для Каждого НенужныйФайл Из НенужныеФайлы Цикл
НоваяСтрока = ТаблицаНенужныхФайлов.Добавить(); НоваяСтрока = ТаблицаНенужныхФайлов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Стр); ЗаполнитьЗначенияСвойств(НоваяСтрока, НенужныйФайл);
КонецЦикла; КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -1653,6 +1653,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>InformationRegister.ПричиныИзмененияАдресныхСведений</name> <name>InformationRegister.ПричиныИзмененияАдресныхСведений</name>
<right> <right>
@@ -3852,93 +3939,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>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name> <name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
<right> <right>
@@ -21,6 +21,37 @@
<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>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name> <name>Catalog.РассылкиОтчетов.Command.ВыполнитьСейчас</name>
<right> <right>
@@ -76,37 +107,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>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate> <restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name> <name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "") <condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -12,6 +12,15 @@
<right> <right>
<name>Insert</name> <name>Insert</name>
<value>true</value> <value>true</value>
<restrictionByCondition>
<condition>#Если &amp;ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляОбъекта("")
#Иначе
#ПоЗначениям( "Справочник.УчетныеЗаписиDSS", "","",
"Условие", "Т.Автор = &amp;ТекущийПользователь",
"","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","")
#КонецЕсли</condition>
</restrictionByCondition>
</right> </right>
<right> <right>
<name>Update</name> <name>Update</name>
@@ -2288,6 +2288,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>Catalog.ВерсииРасширений</name> <name>Catalog.ВерсииРасширений</name>
<right> <right>
@@ -5407,45 +5446,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>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name> <name>DataProcessor.НастройкиЦентраМониторинга.Command.НастройкаОтправкиОтчетовОбОшибках</name>
<right> <right>