Compare commits
4
Commits
SSL_3_2_1
...
SSL_3_1_11
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e8df8e3264 | ||
|
|
86d87fb195 | ||
|
|
ac5c0a91d6 | ||
|
|
4dea4e8409 |
No files matched your search
@@ -335,7 +335,9 @@
|
||||
|
||||
ПараметрыЗадания = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ВерсияРасширений);
|
||||
|
||||
ФоновыеЗадания.Выполнить(ИмяПроцедуры, ПараметрыЗадания,, НаименованиеЗадания);
|
||||
// Имя процедуры должно быть, как указано в переменной ИмяПроцедуры.
|
||||
ФоновыеЗадания.Выполнить("СтандартныеПодсистемыСервер.ОбновитьДатуПоследнегоИспользованияВерсииРасширений",
|
||||
ПараметрыЗадания,, НаименованиеЗадания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -827,7 +829,9 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ЗначениеЗаполнено(НайденныеЗадания) Тогда
|
||||
ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяПроцедуры, ПараметрыЗадания,, НаименованиеЗадания);
|
||||
// Имя процедуры должно быть, как указано в переменной ИмяПроцедуры.
|
||||
ФоновоеЗадание = ФоновыеЗадания.Выполнить("СтандартныеПодсистемыСервер.ДобавитьНовуюВерсиюРасширений",
|
||||
ПараметрыЗадания,, НаименованиеЗадания);
|
||||
НайденныеЗадания.Добавить(ФоновоеЗадание);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -957,14 +961,13 @@
|
||||
Если ВерсияНайдена(Выборка, ОписаниеРасширений) Тогда
|
||||
ВерсияРасширений = Выборка.Ссылка;
|
||||
Иначе
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Если Выборка.Следующий() И Выборка.Количество() = 1 Тогда
|
||||
ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина);
|
||||
КонецЕсли;
|
||||
Объект = СлужебныйЭлемент();
|
||||
Объект.ОписаниеМетаданных = ОписаниеРасширений;
|
||||
Объект.ДатаПоследнегоИспользования = ОкругленнаяДатаНачалаСеанса;
|
||||
Объект.Записать();
|
||||
Если Выборка.Количество() = 1 Тогда
|
||||
ВключитьЗаданиеУдалениеУстаревшихПараметровРаботыВерсийРасширений(Истина);
|
||||
КонецЕсли;
|
||||
ВерсияРасширений = Объект.Ссылка;
|
||||
КонецЕсли;
|
||||
ЗафиксироватьТранзакцию();
|
||||
@@ -1259,7 +1262,9 @@
|
||||
|
||||
ПараметрыЗадания = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ВерсияРасширений);
|
||||
|
||||
ФоновыеЗадания.Выполнить(ИмяПроцедуры, ПараметрыЗадания,, НаименованиеЗадания);
|
||||
// Имя процедуры должно быть, как указано в переменной ИмяПроцедуры.
|
||||
ФоновыеЗадания.Выполнить("СтандартныеПодсистемыСервер.УстановитьПоследнююВерсиюРасширений",
|
||||
ПараметрыЗадания,, НаименованиеЗадания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -2988,6 +2988,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьПрофильГруппыДоступаАдминистраторы");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
+1
-1
@@ -548,7 +548,7 @@
|
||||
Функция ПроверитьСведенияОФизическомЛице()
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСведенияОбОрганизации(
|
||||
Параметры.Назначение, ЭтотОбъект, СведенияОФизическомЛице);
|
||||
Параметры.Назначение, ЭтотОбъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -564,7 +564,7 @@
|
||||
Функция ПроверитьСведенияОбОрганизации()
|
||||
|
||||
Возврат МашиночитаемыеДоверенностиФНССлужебный.ПроверитьСведенияОбОрганизации(
|
||||
Параметры.Назначение, ЭтотОбъект, СведенияОбОрганизации);
|
||||
Параметры.Назначение, ЭтотОбъект);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -609,6 +609,13 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбработатьНаборыСвойствДляПереходаНаНовуюВерсию");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
// АПК:361-выкл нет обращения к серверному коду.
|
||||
|
||||
@@ -179,6 +179,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбработатьОбщиеВнешниеКомпоненты");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -5027,6 +5027,7 @@
|
||||
<name>ВыбратьФотографию</name>
|
||||
</handler>
|
||||
</action>
|
||||
<modifiesStoredData>true</modifiesStoredData>
|
||||
<currentRowUse>Auto</currentRowUse>
|
||||
<selectedRowsUse>Auto</selectedRowsUse>
|
||||
</formCommands>
|
||||
|
||||
@@ -1142,6 +1142,10 @@
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_КонтактнаяИнформацияПриИзменении(Элемент)
|
||||
|
||||
Если Не ВозможноИзменитьЗначениеКонтактнойИнформации(Элемент) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульУправлениеКонтактнойИнформациейКлиент =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
|
||||
МодульУправлениеКонтактнойИнформациейКлиент.НачатьИзменение(ЭтотОбъект, Элемент);
|
||||
@@ -1153,6 +1157,11 @@
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_КонтактнаяИнформацияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
|
||||
|
||||
Если Не ВозможноИзменитьЗначениеКонтактнойИнформации(Элемент,, Истина) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульУправлениеКонтактнойИнформациейКлиент =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
|
||||
МодульУправлениеКонтактнойИнформациейКлиент.НачатьВыбор(ЭтотОбъект, Элемент,, СтандартнаяОбработка);
|
||||
@@ -1182,6 +1191,11 @@
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_КонтактнаяИнформацияОчистка(Элемент, СтандартнаяОбработка)
|
||||
|
||||
Если Не ВозможноИзменитьЗначениеКонтактнойИнформации(Элемент, Истина) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
МодульУправлениеКонтактнойИнформациейКлиент =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиент");
|
||||
МодульУправлениеКонтактнойИнформациейКлиент.НачатьОчистку(ЭтотОбъект, Элемент.Имя);
|
||||
@@ -1682,6 +1696,106 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КонтактнаяИнформацияНачалоВыбораЗавершение(Результат, Контекст) Экспорт
|
||||
|
||||
ТекущееЗначение = ЭтотОбъект[Результат.Элемент.Имя];
|
||||
|
||||
ЭтотОбъект[Результат.Элемент.Имя] = Результат.НовоеЗначение;
|
||||
Если Не ВозможноИзменитьЗначениеКонтактнойИнформации(Результат.Элемент) Тогда
|
||||
Результат.Отказ = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ЭтотОбъект[Результат.Элемент.Имя] = ТекущееЗначение;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция ВозможноИзменитьЗначениеКонтактнойИнформации(Элемент, ПередОчисткой = Ложь, НачалоВыбора = Ложь)
|
||||
|
||||
МодульУправлениеКонтактнойИнформациейКлиентСервер =
|
||||
ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеКонтактнойИнформациейКлиентСервер");
|
||||
|
||||
ТаблицаКИ = МодульУправлениеКонтактнойИнформациейКлиентСервер.ОписаниеКонтактнойИнформацииНаФорме(ЭтотОбъект);
|
||||
ИмяРеквизитаКИ = Элемент.Имя;
|
||||
НайденныеСтроки = ТаблицаКИ.НайтиСтроки(Новый Структура("ИмяРеквизита", ИмяРеквизитаКИ));
|
||||
Если НайденныеСтроки.Количество() <> 1 Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ВидКИ = НайденныеСтроки[0].Вид;
|
||||
Если ВидКИ = ВидКонтактнойИнформацииEmailПользователя Тогда
|
||||
ИмяРеквизитаПервойКИ = "КонтактнаяИнформацияПолеEmailПользователя";
|
||||
ИначеЕсли ВидКИ = ВидКонтактнойИнформацииТелефонПользователя Тогда
|
||||
ИмяРеквизитаПервойКИ = "КонтактнаяИнформацияПолеТелефонПользователя";
|
||||
Иначе
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ВсеСтрокиЭтогоВида = ТаблицаКИ.НайтиСтроки(Новый Структура("Вид", ВидКИ));
|
||||
|
||||
СтароеЗначение = "";
|
||||
ЕстьВтороеЗначение = Ложь;
|
||||
Для Каждого СтрокаВида Из ВсеСтрокиЭтогоВида Цикл
|
||||
Если СтрокаВида.ИмяРеквизита = ИмяРеквизитаКИ Тогда
|
||||
СтароеЗначение = СтрокаВида.Представление;
|
||||
ИначеЕсли ЗначениеЗаполнено(ЭтотОбъект[СтрокаВида.ИмяРеквизита]) Тогда
|
||||
ЕстьВтороеЗначение = Истина;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
НовоеЗначение = ЭтотОбъект[ИмяРеквизитаКИ];
|
||||
ПриИзменении = Не ПередОчисткой И Не НачалоВыбора;
|
||||
|
||||
Если ИмяРеквизитаКИ = ИмяРеквизитаПервойКИ Тогда
|
||||
Если Не ЕстьВтороеЗначение
|
||||
Или НачалоВыбора
|
||||
Или Не ЗначениеЗаполнено(СтароеЗначение)
|
||||
Или ПриИзменении
|
||||
И ЗначениеЗаполнено(НовоеЗначение) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
Если ВидКИ = ВидКонтактнойИнформацииEmailПользователя Тогда
|
||||
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Перед очисткой электронной почты на вкладке ""%1"", нужно очистить всю дополнительную электронную почту на вкладке ""%2"".'"),
|
||||
Элементы.Главное.Заголовок,
|
||||
Элементы.КонтактнаяИнформация.Заголовок));
|
||||
Иначе
|
||||
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Перед очисткой телефона на вкладке ""%1"", нужно очистить все дополнительные телефоны на вкладке ""%2"".'"),
|
||||
Элементы.Главное.Заголовок,
|
||||
Элементы.КонтактнаяИнформация.Заголовок));
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
Если ЕстьВтороеЗначение
|
||||
Или ПередОчисткой
|
||||
Или ПриИзменении
|
||||
И Не ЗначениеЗаполнено(НовоеЗначение)
|
||||
Или НачалоВыбора
|
||||
И ЗначениеЗаполнено(НовоеЗначение) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
Если ВидКИ = ВидКонтактнойИнформацииEmailПользователя Тогда
|
||||
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Перед заполнением дополнительной электронной почты на вкладке ""%1"", нужно заполнить электронную почту на вкладке ""%2"".'"),
|
||||
Элементы.КонтактнаяИнформация.Заголовок,
|
||||
Элементы.Главное.Заголовок));
|
||||
Иначе
|
||||
ПоказатьПредупреждение(, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Перед заполнением дополнительного телефона на вкладке ""%1"", нужно заполнить телефон на вкладке ""%2"".'"),
|
||||
Элементы.КонтактнаяИнформация.Заголовок,
|
||||
Элементы.Главное.Заголовок));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПриИзменении Тогда
|
||||
ЭтотОбъект[ИмяРеквизитаКИ] = СтароеЗначение;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
&НаКлиенте
|
||||
Процедура КонтактнаяИнформацияПриИзменении()
|
||||
|
||||
|
||||
@@ -217,4 +217,15 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПрименитьПравила", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -79,9 +79,7 @@
|
||||
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьСписокСертификатовНаСервере(СертификатыСтрокой, Ошибки)
|
||||
|
||||
Сертификаты.Очистить();
|
||||
|
||||
|
||||
Для Каждого Сертификат Из СертификатыСтрокой Цикл
|
||||
|
||||
Сертификат = СтрЗаменить(Сертификат, "-----BEGIN CERTIFICATE-----", "");
|
||||
|
||||
@@ -368,6 +368,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьНачальныеНастройки");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -1561,6 +1561,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьПроизводственныеКалендариПоУмолчаниюДлительнаяОперация", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -1507,6 +1507,14 @@
|
||||
Возврат НСтр("ru = 'Проверка подключения к почтовому серверу'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПроверитьНастройкиУчетнойЗаписи", Истина);
|
||||
Методы.Вставить("ОпределитьНастройкиУчетнойЗаписи", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -98,6 +98,13 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьПоставляемыеЯзыки");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -154,7 +154,7 @@
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -994,6 +994,13 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ИзменитьНастройкуСвойства", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -1439,7 +1439,7 @@
|
||||
|
||||
Для Каждого Токен Из Результат.Токены Цикл
|
||||
|
||||
Найдено = Программы.НайтиСтроки(Новый Структура("ИмяПрограммы",Токен.СерийныйНомер));
|
||||
Найдено = Программы.НайтиСтроки(Новый Структура("Наименование",Токен.Представление));
|
||||
|
||||
Если Найдено.Количество() = 0 Тогда
|
||||
НоваяСтрока = Программы.Добавить();
|
||||
|
||||
@@ -1263,7 +1263,8 @@
|
||||
Для Каждого СтруктураФайла Из ПечатныеФормыДокументов Цикл
|
||||
|
||||
ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + СтруктураФайла.Представление;
|
||||
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СтруктураФайла.Представление);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
|
||||
ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
|
||||
ДанныеФайла.Записать(ПолноеИмяФайла);
|
||||
|
||||
@@ -1330,6 +1331,10 @@
|
||||
ФайлыОфисныхДокументов = ОбщегоНазначения.ЗначениеИзСтрокиXML(НастройкаПечатнойФормы.ОфисныеДокументы);
|
||||
|
||||
Для Каждого ФайлОфисногоДокумента Из ФайлыОфисныхДокументов Цикл
|
||||
Если Не ЗначениеЗаполнено(ФайлОфисногоДокумента.Ключ) Или Не ЭтоАдресВременногоХранилища(ФайлОфисногоДокумента.Ключ) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяФайла = УправлениеПечатью.ИмяФайлаОфисногоДокумента(ФайлОфисногоДокумента.Значение);
|
||||
ОписаниеФайла = Новый Структура;
|
||||
ОписаниеФайла.Вставить("Представление", ИмяФайла);
|
||||
|
||||
@@ -1267,7 +1267,8 @@
|
||||
Для Каждого СтруктураФайла Из ПечатныеФормыДокументов Цикл
|
||||
|
||||
ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + СтруктураФайла.Представление;
|
||||
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СтруктураФайла.Представление);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
|
||||
ДанныеФайла.Записать(ПолноеИмяФайла);
|
||||
|
||||
ОбъектПечати = ?(УстанавливатьОбъектПечати И ЗначениеЗаполнено(СтруктураФайла.ОбъектПечати), СтруктураФайла.ОбъектПечати, Неопределено);
|
||||
|
||||
@@ -44,6 +44,10 @@
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:SpreadSheetDocFieldExtInfo">
|
||||
<handlers>
|
||||
<event>OnActivate</event>
|
||||
<name>ТаблицаОтчетаПриАктивизации</name>
|
||||
</handlers>
|
||||
<width>50</width>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<height>10</height>
|
||||
|
||||
@@ -27,6 +27,37 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ТаблицаОтчетаПриАктивизации(Элемент)
|
||||
|
||||
ВыбранныеСтроки = Новый Массив;
|
||||
|
||||
ВыделенныеОбласти = Элементы.ТаблицаОтчета.ПолучитьВыделенныеОбласти();
|
||||
|
||||
Для Каждого ВыделеннаяОбласть Из ВыделенныеОбласти Цикл
|
||||
|
||||
Если ТипЗнч(ВыделеннаяОбласть) <> Тип("ОбластьЯчеекТабличногоДокумента") Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НоваяОбласть = ТаблицаОтчета.Область(ВыделеннаяОбласть.Верх, ,ВыделеннаяОбласть.Низ);
|
||||
ВыбранныеСтроки.Добавить(НоваяОбласть);
|
||||
КонецЦикла;
|
||||
|
||||
Если ВыбранныеСтроки.Количество() = 0 Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВыбранныеСтроки = ОбщегоНазначенияКлиентСервер.СвернутьМассив(ВыбранныеСтроки);
|
||||
|
||||
Элементы.ТаблицаОтчета.УстановитьВыделенныеОбласти(ВыбранныеСтроки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
&НаКлиенте
|
||||
@@ -39,12 +70,14 @@
|
||||
&НаКлиенте
|
||||
Процедура ВывестиДляТекущего(Команда)
|
||||
|
||||
ТекущийОбъект = Элементы.ТаблицаОтчета.ТекущаяОбласть.Расшифровка;
|
||||
ТекущаяОбласть = Элементы.ТаблицаОтчета.ТекущаяОбласть;
|
||||
|
||||
Если ТекущийОбъект = Неопределено Тогда
|
||||
ТекущийОбъект = РасшифровкаПервогоПоляСтроки(Элементы.ТаблицаОтчета.ТекущаяОбласть.Имя);
|
||||
Если ТекущаяОбласть = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ТекущийОбъект = РасшифровкаПервогоПоляСтроки(ТекущаяОбласть.Верх);
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТекущийОбъект) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -70,6 +103,8 @@
|
||||
|
||||
Сценарий = СценарийИзмененияПометкиУдаления(ВыбранныеЭлементы, Статистика);
|
||||
Сценарий.Вставить("ВыбранныеЭлементы", ВыбранныеЭлементы);
|
||||
ПредставленияВыбранныхЭлементов = ?(Сценарий.Пометка, Статистика.БезПометкиНаУдаление, Статистика.СПометкойНаУдаление);
|
||||
Сценарий.Вставить("ПредставленияВыбранныхЭлементов", ПредставленияВыбранныхЭлементов);
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ВыполнитьСценарийИзмененияПометкиУдаления", ЭтотОбъект, Сценарий);
|
||||
ПоказатьВопрос(Обработчик, Сценарий.Вопрос, РежимДиалогаВопрос.ДаНет);
|
||||
@@ -1098,7 +1133,7 @@
|
||||
Расшифровка = Ячейка.Расшифровка;
|
||||
|
||||
Если Не ЗначениеЗаполнено(Расшифровка) Тогда
|
||||
Расшифровка = РасшифровкаПервогоПоляСтроки(Ячейка.Имя);
|
||||
Расшифровка = РасшифровкаПервогоПоляСтроки(Ячейка.Верх);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Расшифровка) Тогда
|
||||
@@ -1264,7 +1299,7 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Ошибки = ИзменитьПометкуУдаленияЭлементов(Сценарий.ВыбранныеЭлементы, Сценарий.Пометка);
|
||||
Ошибки = ИзменитьПометкуУдаленияЭлементов(Сценарий.ПредставленияВыбранныхЭлементов, Сценарий.Пометка);
|
||||
Если Ошибки.Количество() > 0 Тогда
|
||||
ПредупредитьОбОшибкеПриИзмененииЭлементов(Ошибки, "ПометкаУдаления");
|
||||
Иначе
|
||||
@@ -1281,8 +1316,28 @@
|
||||
&НаСервере
|
||||
Функция ИзменитьПометкуУдаленияЭлементов(ВыбранныеЭлементы, Пометка)
|
||||
|
||||
ШаблонОшибки = ?(Пометка,
|
||||
НСтр("ru = 'Недостаточно прав на пометку на удаление ""%1"".'"),
|
||||
Нстр("ru = 'Недостаточно прав на снятие пометки на удаление ""%1"".'"));
|
||||
|
||||
Ошибки = Новый Массив;
|
||||
Для Каждого Элемент Из ВыбранныеЭлементы Цикл
|
||||
Для Каждого СвойстваЭлемента Из ВыбранныеЭлементы Цикл
|
||||
|
||||
Элемент = СвойстваЭлемента.Ключ;
|
||||
|
||||
ДоступноИзменение = Ложь;
|
||||
Если Пометка Тогда
|
||||
ДоступноИзменение = ПравоДоступа("ИнтерактивнаяПометкаУдаления", Элемент.Метаданные());
|
||||
Иначе
|
||||
ДоступноИзменение = ПравоДоступа("ИнтерактивноеСнятиеПометкиУдаления", Элемент.Метаданные());
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ДоступноИзменение Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки,
|
||||
СвойстваЭлемента.Значение);
|
||||
Ошибки.Добавить(ТекстОшибки);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
НачатьТранзакцию();
|
||||
|
||||
@@ -1361,6 +1416,7 @@
|
||||
|
||||
ОбработанныеДокументы = Новый Соответствие;
|
||||
Индекс = ВыбранныеДокументы.ВГраница();
|
||||
ЗапрещенныеКИзменениюПроведенияДокументы = Новый Массив;
|
||||
Пока Индекс >= 0 Цикл
|
||||
|
||||
МетаданныеОбъекта = ВыбранныеДокументы[Индекс].Метаданные();
|
||||
@@ -1370,11 +1426,30 @@
|
||||
Или МетаданныеОбъекта.Проведение <> ПроведениеРазрешено Тогда
|
||||
|
||||
ВыбранныеДокументы.Удалить(Индекс);
|
||||
Иначе
|
||||
Если Режим = РежимЗаписиДокумента.Проведение Тогда
|
||||
ИнтерактивноеПраво = "ИнтерактивноеПроведение";
|
||||
ИначеЕсли Режим = РежимЗаписиДокумента.ОтменаПроведения Тогда
|
||||
ИнтерактивноеПраво = "ИнтерактивнаяОтменаПроведения";
|
||||
Иначе
|
||||
ИнтерактивноеПраво = Неопределено;
|
||||
КонецЕсли;
|
||||
Если ЗначениеЗаполнено(ИнтерактивноеПраво) И Не ПравоДоступа(ИнтерактивноеПраво, МетаданныеОбъекта) Тогда
|
||||
ЗапрещенныеКИзменениюПроведенияДокументы.Добавить(ВыбранныеДокументы[Индекс]);
|
||||
ВыбранныеДокументы.Удалить(Индекс);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Индекс = Индекс - 1;
|
||||
КонецЦикла;
|
||||
|
||||
СвойстваДокументов = ОбщегоНазначения.ЗначенияРеквизитовОбъектов(ЗапрещенныеКИзменениюПроведенияДокументы, "Представление");
|
||||
ШаблонОшибки = ?(Режим = РежимЗаписиДокумента.Проведение, НСтр("ru = 'Недостаточно прав на проведение ""%1"".'"), Нстр("ru = 'Недостаточно прав на отмену проведения ""%1"".'"));
|
||||
Для Каждого СвойствоДокумента Из СвойстваДокументов Цикл
|
||||
ПредставлениеДокумента = СвойствоДокумента.Значение.Представление;
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПредставлениеДокумента);
|
||||
Ошибки.Добавить(ТекстОшибки);
|
||||
КонецЦикла;
|
||||
|
||||
Если ВыбранныеДокументы.Количество() = 0 Тогда
|
||||
Возврат ОбработанныеДокументы;
|
||||
КонецЕсли;
|
||||
@@ -1449,34 +1524,21 @@
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Функция РасшифровкаПервогоПоляСтроки(ИмяТекущейОбласти)
|
||||
Функция РасшифровкаПервогоПоляСтроки(НомерСтроки)
|
||||
|
||||
ПозицияКолонки = СтрНайти(ИмяТекущейОбласти, "C");
|
||||
Если ПозицияКолонки = 0 Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
НачалоИмениОбласти = Лев(ИмяТекущейОбласти, ПозицияКолонки);
|
||||
НомерКолонкиСтрокой = Сред(ИмяТекущейОбласти, ПозицияКолонки +1);
|
||||
НомерРазделителя = СтрНайти(НомерКолонкиСтрокой, ":");
|
||||
Если НомерРазделителя <> 0 Тогда
|
||||
НомерКолонкиСтрокой = Лев(НомерКолонкиСтрокой, НомерРазделителя -1);
|
||||
КонецЕсли;
|
||||
НомерТекущейКолонки = Число(НомерКолонкиСтрокой);
|
||||
|
||||
ИмяСтроки = Сред(ИмяТекущейОбласти, 1,ПозицияКолонки -1);
|
||||
ИмяСтроки = Сред(ИмяСтроки, 2);
|
||||
НомерСтроки = Число(ИмяСтроки);
|
||||
|
||||
Если НомерТекущейКолонки <= 1 Тогда
|
||||
Если НомерСтроки = Неопределено Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Расшифровка = Неопределено;
|
||||
Пока НомерТекущейКолонки<>1 Цикл
|
||||
НомерТекущейКолонки = НомерТекущейКолонки - 1;
|
||||
ИмяНовойОбласти = НачалоИмениОбласти + НомерТекущейКолонки;
|
||||
|
||||
НомерТекущейКолонки = 1;
|
||||
МаксимальныйНомерКолонки = 100;
|
||||
Пока НомерТекущейКолонки <> МаксимальныйНомерКолонки Цикл
|
||||
Ячейка = ТаблицаОтчета.Область(НомерСтроки, НомерТекущейКолонки, НомерСтроки, НомерТекущейКолонки);
|
||||
|
||||
НомерТекущейКолонки = НомерТекущейКолонки + 1;
|
||||
|
||||
Если Ячейка = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -581,7 +581,9 @@
|
||||
|
||||
ДанныеФайла = ПолучитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
|
||||
УдалитьИзВременногоХранилища(СтруктураФайла.АдресВоВременномХранилище);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + СтруктураФайла.Представление;
|
||||
|
||||
ИмяФайла = ОбщегоНазначенияКлиентСервер.ЗаменитьНедопустимыеСимволыВИмениФайла(СтруктураФайла.Представление);
|
||||
ПолноеИмяФайла = ИмяВременногоКаталога + ИмяФайла;
|
||||
ПолноеИмяФайла = ФайловаяСистема.УникальноеИмяФайла(ПолноеИмяФайла);
|
||||
ДанныеФайла.Записать(ПолноеИмяФайла);
|
||||
|
||||
|
||||
@@ -2627,10 +2627,14 @@
|
||||
Список = ПолеЗначения.СписокВыбора;
|
||||
Список.Очистить();
|
||||
|
||||
Если Строка.ДоступныеЗначения <> Неопределено Тогда
|
||||
Если Строка.ДоступныеЗначения <> Неопределено Тогда
|
||||
|
||||
Для Каждого ДоступноеЗначение Из Строка.ДоступныеЗначения Цикл
|
||||
ЗаполнитьЗначенияСвойств(Список.Добавить(), ДоступноеЗначение);
|
||||
Список.Добавить(
|
||||
ДоступноеЗначение.Значение,
|
||||
ДоступноеЗначение.Представление,
|
||||
ДоступноеЗначение.Пометка,
|
||||
ДоступноеЗначение.Картинка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -12355,4 +12355,15 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ВыполнитьНачальноеЗаполнение");
|
||||
Методы.Вставить("ДоступныеВерсииАдресныхСведений", Истина);
|
||||
Методы.Вставить("ЗагрузкаРегионаАдресногоКлассификатораССайта", Истина);
|
||||
Методы.Вставить("ЗагрузитьДанныеКлассификатораАдресовИзФайла", Истина);
|
||||
Методы.Вставить("ФоновоеЗаданиеОчисткиКлассификатораАдресов", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -3385,4 +3385,15 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьОтветственногоЗаКонтрольИсполнения");
|
||||
Методы.Вставить("ОбновитьИспользованиеРегламентныхЗаданий");
|
||||
Методы.Вставить("ЗаполнитьНаименованиеПредопределенногоЭлементаВсеОбъектыАдресации");
|
||||
Методы.Вставить("УведомитьИсполнителейОНовыхЗадачах", Истина);
|
||||
Методы.Вставить("ПроконтролироватьЗадачи", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -120,4 +120,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("СтартОтложенныхПроцессов", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -708,4 +708,12 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПриУстановкеПараметровСеанса");
|
||||
Методы.Вставить("ОбновитьПараметрыБлокировкиРаботыСВнешнимиРесурсами");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2175,6 +2175,7 @@
|
||||
ПодсистемыОтчетов = РазмещениеОтчетовВПодсистемах();
|
||||
КэшФлажкаХранилища = Неопределено;
|
||||
|
||||
ОписаниеОбъектовМетаданных = Новый Массив;
|
||||
Для Каждого ОтчетМетаданные Из Метаданные.Отчеты Цикл
|
||||
Если Не ДоступноИспользованиеРазделенныхДанных И ОтчетМетаданные.РасширениеКонфигурации() <> Неопределено Тогда
|
||||
Продолжить;
|
||||
@@ -2184,8 +2185,16 @@
|
||||
И Не ОтчетПодключенКХранилищу(ОтчетМетаданные, КэшФлажкаХранилища) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ОписаниеОбъектовМетаданных.Добавить(ОтчетМетаданные);
|
||||
КонецЦикла;
|
||||
|
||||
ИдентификаторыОтчетов = ОбщегоНазначения.ИдентификаторыОбъектовМетаданных(ОписаниеОбъектовМетаданных);
|
||||
|
||||
Для Каждого ОтчетМетаданные Из ОписаниеОбъектовМетаданных Цикл
|
||||
|
||||
ПолноеИмяОтчета = ОтчетМетаданные.ПолноеИмя();
|
||||
ОтчетСсылка = ИдентификаторыОтчетов.Получить(ПолноеИмяОтчета);
|
||||
|
||||
ОтчетСсылка = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(ОтчетМетаданные);
|
||||
ОтчетТип = ТипОтчетаСтрокой(ОтчетСсылка);
|
||||
Если ТипОтчетов <> Неопределено И ТипОтчетов <> ОтчетТип Тогда
|
||||
Продолжить;
|
||||
@@ -2289,7 +2298,7 @@
|
||||
|
||||
// Обработка отчетов, включенных в состав подсистемы ПодключаемыеОтчетыИОбработки.
|
||||
Если ЕстьПодключаемыеКоманды И СоставПодключаемыхОтчетовИОбработок.Содержит(ОтчетМетаданные) Тогда
|
||||
НастройкиПоставщика = МодульПодключаемыеКоманды.НастройкиПодключаемогоОбъекта(ОтчетМетаданные.ПолноеИмя());
|
||||
НастройкиПоставщика = МодульПодключаемыеКоманды.НастройкиПодключаемогоОбъекта(ПолноеИмяОтчета);
|
||||
Если НастройкиПоставщика <> Неопределено Тогда
|
||||
Если НастройкиПоставщика.ОпределитьНастройкиФормы Тогда
|
||||
ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;
|
||||
@@ -9926,4 +9935,18 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьИндексПоискаПользовательскихВариантовОтчетов");
|
||||
Методы.Вставить("ОперативноеОбновлениеОбщихДанныхКонфигурации");
|
||||
Методы.Вставить("ОперативноеОбновлениеСлужебногоПользователя");
|
||||
Методы.Вставить("ОбновитьИндексПоискаПредопределенныхВариантовОтчетов");
|
||||
Методы.Вставить("ОперативноеОбновлениеРазделенныхДанныхКонфигурации");
|
||||
Методы.Вставить("НайтиВариантыОтчетовДляВывода", Истина);
|
||||
Методы.Вставить("СформироватьОтчетВФоне", Истина);
|
||||
Методы.Вставить("ЗаполнитьПредставленияПредопределенныхВариантовОтчетов", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2060,12 +2060,22 @@
|
||||
Родители = ЭлементРасшифровки.ПолучитьРодителей();
|
||||
Родитель = ?(Родители.Количество() = 0, Неопределено, Родители[0]);
|
||||
|
||||
РасшифровкаДоступна = Истина;
|
||||
|
||||
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка")
|
||||
Или ТипЗнч(Родитель) <> Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
|
||||
|
||||
ТипЭлементаРасшифровки = ВариантыОтчетовСлужебныйКлиентСервер.ТипЭлементаРасшифровкиГруппировка();
|
||||
Иначе
|
||||
ТипЭлементаРасшифровки = ВариантыОтчетовСлужебныйКлиентСервер.ТипРеквизит();
|
||||
Если ТипЗнч(Родитель) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
|
||||
Для Каждого Группировка Из Данные.Настройки.Структура Цикл
|
||||
Если СтрСравнить(Родитель.Группировка, Группировка.Идентификатор) = 0 Тогда
|
||||
РасшифровкаДоступна = Группировка.ПоляГруппировки.Элементы.Количество() > 0;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
ДанныеЭлементаРасшифровки = Новый Структура;
|
||||
@@ -2073,6 +2083,7 @@
|
||||
ДанныеЭлементаРасшифровки.Вставить("Настройки", Данные.Настройки);
|
||||
ДанныеЭлементаРасшифровки.Вставить("Отбор", ОтборЭлементаРасшифровки(ЭлементРасшифровки));
|
||||
ДанныеЭлементаРасшифровки.Вставить("Отборы", ОтборыВыделенныхЭлементовРасшифровки(Документ, ВыделенныеОбластиДокумента, Данные));
|
||||
ДанныеЭлементаРасшифровки.Вставить("РасшифровкаДоступна", РасшифровкаДоступна);
|
||||
|
||||
Поля = ЭлементРасшифровки.ПолучитьПоля();
|
||||
|
||||
@@ -2599,4 +2610,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьЗначенияФильтра", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -635,6 +635,10 @@
|
||||
|
||||
Процедура СнятьФильтр(Форма, СвойстваЗаголовка, ДанныеРасшифровки = Неопределено) Экспорт
|
||||
|
||||
Если Не ДействиеДоступно(Форма, , СвойстваЗаголовка) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЭтоГруппировка = (ДанныеРасшифровки <> Неопределено
|
||||
И ДанныеРасшифровки.Тип = ВариантыОтчетовСлужебныйКлиентСервер.ТипЭлементаРасшифровкиГруппировка());
|
||||
|
||||
@@ -3252,8 +3256,7 @@
|
||||
|
||||
Процедура ОткрытьФормуОтчета(Форма, ПараметрыОткрытия)
|
||||
|
||||
Если ПараметрыОткрытия.Данные <> Неопределено
|
||||
И ПараметрыОткрытия.Данные.Тип = ВариантыОтчетовСлужебныйКлиентСервер.ТипРеквизит() Тогда
|
||||
Если ПараметрыОткрытия.Данные <> Неопределено И Не ПараметрыОткрытия.Данные.РасшифровкаДоступна Тогда
|
||||
ПоказатьПредупреждение(, НСтр("ru = 'Действие недоступно. Нельзя расшифровывать детальные записи.'"));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -3718,4 +3718,14 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("УстановитьНастройкиРегламентногоЗаданияОчисткиУстаревшихВерсийОбъектов");
|
||||
Методы.Вставить("ИнформацияОбУстаревшихВерсиях", Истина);
|
||||
Методы.Вставить("ОчиститьУстаревшиеВерсииОбъектов", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -3308,6 +3308,8 @@
|
||||
| &ИмяТаблицыСправочника КАК Файлы
|
||||
|ГДЕ
|
||||
| Файлы.ВладелецФайла = &ВладелецФайла
|
||||
|И
|
||||
| НЕ Файлы.ПометкаУдаления
|
||||
|;
|
||||
|
|
||||
|//////////////////////////////////////////////////////////////////////
|
||||
@@ -9042,4 +9044,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОтключитьПодсистемуВМоделиСервиса");
|
||||
Методы.Вставить("ОбновлениеСтатусовДоставкиSMS", Истина);
|
||||
Методы.Вставить("ОтправитьSMS", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -275,4 +275,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УдалениеНеиспользуемыхВнешнихКомпонент", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1607,4 +1607,12 @@
|
||||
|
||||
// Конец ИнтернетПоддержкаПользователей.ПолучениеВнешнихКомпонент
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("НоваяКомпонентаСПортала", Истина);
|
||||
Методы.Вставить("ОбновитьКомпонентыСПортала", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2790,4 +2790,17 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ОбновитьРазделыДатЗапретаИзменения");
|
||||
Методы.Вставить("ДополнитьНастройкиУказанныхАдресатов");
|
||||
Методы.Вставить("ЗаменитьРазделыДатЗапретаНаНовые");
|
||||
Методы.Вставить("ОчиститьПредопределенныеЭлементыРазделовДатЗапрета");
|
||||
Методы.Вставить("УстановитьНачальнуюДатуЗапретаИзменения");
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -96,6 +96,9 @@
|
||||
Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, Знач Параметр4 = Неопределено,
|
||||
Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, Знач Параметр7 = Неопределено) Экспорт
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяФункции,
|
||||
"ИмяФункции", "ДлительныеОперации.ВыполнитьФункцию", ПараметрыВыполнения);
|
||||
|
||||
ПараметрыВызова = СписокПараметров(Параметр1, Параметр2, Параметр3, Параметр4,
|
||||
Параметр5, Параметр6, Параметр7);
|
||||
|
||||
@@ -190,6 +193,9 @@
|
||||
Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено, Знач Параметр4 = Неопределено,
|
||||
Знач Параметр5 = Неопределено, Знач Параметр6 = Неопределено, Знач Параметр7 = Неопределено) Экспорт
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяПроцедуры,
|
||||
"ИмяПроцедуры", "ДлительныеОперации.ВыполнитьФункцию", ПараметрыВыполнения);
|
||||
|
||||
ПараметрыВызова = СписокПараметров(Параметр1, Параметр2, Параметр3, Параметр4,
|
||||
Параметр5, Параметр6, Параметр7);
|
||||
ПараметрыВыполнения = ПодготовитьПараметрыВыполнения(ПараметрыВыполнения, "Процедура");
|
||||
@@ -241,6 +247,9 @@
|
||||
//
|
||||
Функция ВыполнитьФункциюВНесколькоПотоков(ИмяФункции, ПараметрыВыполнения, НаборПараметровФункции = Неопределено) Экспорт
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяФункции,
|
||||
"ИмяФункции", "ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков", ПараметрыВыполнения);
|
||||
|
||||
Возврат ВыполнитьМетодВНесколькоПотоков(ИмяФункции, ПараметрыВыполнения, НаборПараметровФункции, Истина);
|
||||
|
||||
КонецФункции
|
||||
@@ -283,6 +292,9 @@
|
||||
//
|
||||
Функция ВыполнитьПроцедуруВНесколькоПотоков(ИмяПроцедуры, ПараметрыВыполнения, НаборПараметровПроцедуры = Неопределено) Экспорт
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяПроцедуры,
|
||||
"ИмяПроцедуры", "ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков", ПараметрыВыполнения);
|
||||
|
||||
Возврат ВыполнитьМетодВНесколькоПотоков(ИмяПроцедуры, ПараметрыВыполнения, НаборПараметровПроцедуры, Ложь);
|
||||
|
||||
КонецФункции
|
||||
@@ -486,7 +498,10 @@
|
||||
// КонецПроцедуры
|
||||
//
|
||||
Функция ВыполнитьВФоне(Знач ИмяПроцедуры, Знач ПараметрыПроцедуры, Знач ПараметрыВыполнения) Экспорт
|
||||
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяПроцедуры,
|
||||
"ИмяПроцедуры", "ДлительныеОперации.ВыполнитьВФоне", ПараметрыВыполнения);
|
||||
|
||||
// Обратная совместимость
|
||||
НовыеПараметрыВыполнения = ПараметрыВыполненияВФоне();
|
||||
ЗаполнитьЗначенияСвойств(НовыеПараметрыВыполнения, ПараметрыВыполнения);
|
||||
@@ -1002,6 +1017,9 @@
|
||||
Функция ЗапуститьВыполнениеВФоне(Знач ИдентификаторФормы, Знач ИмяЭкспортнойПроцедуры, Знач Параметры,
|
||||
Знач НаименованиеЗадания = "", ИспользоватьДополнительноеВременноеХранилище = Ложь) Экспорт
|
||||
|
||||
ПроверитьИмяПроцедуры(ИмяЭкспортнойПроцедуры,
|
||||
"ИмяЭкспортнойПроцедуры", "ДлительныеОперации.ЗапуститьВыполнениеВФоне");
|
||||
|
||||
АдресХранилища = ПоместитьВоВременноеХранилище(Неопределено, ИдентификаторФормы);
|
||||
|
||||
Результат = Новый Структура;
|
||||
@@ -1175,6 +1193,9 @@
|
||||
Обработка = Обработки[Параметры.ИмяОбработки].Создать();
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьИмяПроцедуры(Параметры.ИмяМетода,
|
||||
"Параметры.ИмяМетода", "ВыполнитьПроцедуруМодуляОбъектаОбработки",, Обработка);
|
||||
|
||||
Если БезопасныйРежим() = Ложь И БезопасныйРежим <> Ложь Тогда
|
||||
УстановитьБезопасныйРежим(БезопасныйРежим);
|
||||
КонецЕсли;
|
||||
@@ -1211,6 +1232,9 @@
|
||||
Отчет = Отчеты[Параметры.ИмяОтчета].Создать();
|
||||
КонецЕсли;
|
||||
|
||||
ПроверитьИмяПроцедуры(Параметры.ИмяМетода,
|
||||
"Параметры.ИмяМетода", "ВыполнитьПроцедуруМодуляОбъектаОтчета",, Отчет);
|
||||
|
||||
Если БезопасныйРежим() = Ложь И БезопасныйРежим <> Ложь Тогда
|
||||
УстановитьБезопасныйРежим(БезопасныйРежим);
|
||||
КонецЕсли;
|
||||
@@ -1535,11 +1559,8 @@
|
||||
ПараметрыПроцедурыФоновогоЗадания = Новый Массив;
|
||||
ПараметрыПроцедурыФоновогоЗадания.Добавить(ВсеПараметры);
|
||||
|
||||
ИмяПроцедурыФоновогоЗадания = ИмяПроцедурыФоновогоЗаданияДлительнойОперации();
|
||||
|
||||
Возврат ВыполнитьФоновоеЗадание(ПараметрыВыполнения,
|
||||
ИмяПроцедурыФоновогоЗадания, ПараметрыПроцедурыФоновогоЗадания,
|
||||
КлючФоновогоЗадания, НаименованиеФоновогоЗадания);
|
||||
ПараметрыПроцедурыФоновогоЗадания, КлючФоновогоЗадания, НаименованиеФоновогоЗадания);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -1712,32 +1733,41 @@
|
||||
ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
|
||||
ЭтоПроцедураМодуляОбработки = (ЧастиИмени.Количество() = 4) И ВРег(ЧастиИмени[2]) = "МОДУЛЬОБЪЕКТА";
|
||||
Если Не ЭтоПроцедураМодуляОбработки Тогда
|
||||
ПроверитьИмяПроцедуры(ИмяПроцедуры, "ИмяПроцедуры", "ВызватьПроцедуру");
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ОбработкаОтчетОбъект = ОбработкаОтчетОбъект(ИмяПроцедуры,
|
||||
ЧастиИмени, ПараметрыВыполнения, "ИмяПроцедуры", "ВызватьПроцедуру");
|
||||
|
||||
ПроверитьИмяПроцедуры(ЧастиИмени[3], "ИмяПроцедуры", "ВызватьПроцедуру",, ОбработкаОтчетОбъект);
|
||||
|
||||
ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОбработкаОтчетОбъект(Имя, ЧастиИмени, ПараметрыВыполнения, ИмяПараметраМетода, ИмяМетода)
|
||||
|
||||
ЭтоОбработка = ВРег(ЧастиИмени[0]) = "ОБРАБОТКА";
|
||||
ЭтоОтчет = ВРег(ЧастиИмени[0]) = "ОТЧЕТ";
|
||||
Если ЭтоОбработка Или ЭтоОтчет Тогда
|
||||
МенеджерОбъекта = ?(ЭтоОтчет, Отчеты, Обработки);
|
||||
ОбработкаОтчетОбъект = МенеджерОбъекта[ЧастиИмени[1]].Создать();
|
||||
ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова);
|
||||
Возврат;
|
||||
Возврат МенеджерОбъекта[ЧастиИмени[1]].Создать();
|
||||
КонецЕсли;
|
||||
|
||||
ЭтоВнешняяОбработка = ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА";
|
||||
ЭтоВнешнийОтчет = ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ";
|
||||
Если ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет Тогда
|
||||
ОбработкаОтчетОбъект = ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]);
|
||||
ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова);
|
||||
Возврат;
|
||||
Возврат ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]);
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверный формат параметра %2 (переданное значение: %1)'"), ИмяПроцедуры, "ИмяПроцедуры"),
|
||||
НСтр("ru = 'Неверный формат параметра %1 (%2) в %3.'"),
|
||||
Имя, ИмяПараметраМетода, ИмяМетода),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
|
||||
КонецПроцедуры
|
||||
КонецФункции
|
||||
|
||||
Функция ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ИмяПодключеннойОбработкиОтчета)
|
||||
|
||||
@@ -1818,33 +1848,19 @@
|
||||
ЧастиИмени = СтрРазделить(ИмяФункции, ".");
|
||||
ЭтоПроцедураМодуляОбработки = (ЧастиИмени.Количество() = 4) И ВРег(ЧастиИмени[2]) = "МОДУЛЬОБЪЕКТА";
|
||||
Если Не ЭтоПроцедураМодуляОбработки Тогда
|
||||
ПроверитьИмяПроцедуры(ИмяФункции, "ИмяФункции", "ВызватьФункцию");
|
||||
Результат = ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяФункции, ПараметрыПроцедуры, Истина);
|
||||
УстановитьРезультатВызоваФункции(Результат, ПараметрыВыполнения);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЭтоОбработка = ВРег(ЧастиИмени[0]) = "ОБРАБОТКА";
|
||||
ЭтоОтчет = ВРег(ЧастиИмени[0]) = "ОТЧЕТ";
|
||||
Если ЭтоОбработка Или ЭтоОтчет Тогда
|
||||
МенеджерОбъекта = ?(ЭтоОтчет, Отчеты, Обработки);
|
||||
ОбработкаОтчетОбъект = МенеджерОбъекта[ЧастиИмени[1]].Создать();
|
||||
Результат = ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры, Истина);
|
||||
УстановитьРезультатВызоваФункции(Результат, ПараметрыВыполнения);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ОбработкаОтчетОбъект = ОбработкаОтчетОбъект(ИмяФункции,
|
||||
ЧастиИмени, ПараметрыВыполнения, "ИмяФункции", "ВызватьФункцию");
|
||||
|
||||
ЭтоВнешняяОбработка = ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА";
|
||||
ЭтоВнешнийОтчет = ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ";
|
||||
Если ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет Тогда
|
||||
ОбработкаОтчетОбъект = ВнешняяОбработкаОтчетОбъект(ЭтоВнешнийОтчет, ПараметрыВыполнения, ЧастиИмени[1]);
|
||||
Результат = ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры, Истина);
|
||||
УстановитьРезультатВызоваФункции(Результат, ПараметрыВыполнения);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ПроверитьИмяПроцедуры(ЧастиИмени[3], "ИмяФункции", "ВызватьФункцию",, ОбработкаОтчетОбъект);
|
||||
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверный формат параметра %2 (переданное значение: %1)'"), ИмяФункции, "ИмяФункции"),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
Результат = ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры, Истина);
|
||||
УстановитьРезультатВызоваФункции(Результат, ПараметрыВыполнения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -2209,7 +2225,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьФоновоеЗадание(ПараметрыВыполнения, ИмяМетода, Параметры, Ключ, Наименование)
|
||||
Функция ВыполнитьФоновоеЗадание(ПараметрыВыполнения, Параметры, Ключ, Наименование)
|
||||
|
||||
Если ТекущийРежимЗапуска() = Неопределено
|
||||
И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
|
||||
@@ -2225,14 +2241,17 @@
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Имя процедуры должно быть, как указано в функции ИмяПроцедурыФоновогоЗаданияДлительнойОперации.
|
||||
Если ПараметрыВыполнения.БезРасширений Тогда
|
||||
Возврат РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(ИмяМетода, Параметры, Ключ, Наименование);
|
||||
Возврат РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений(
|
||||
"ДлительныеОперации.ВыполнитьСКонтекстомКлиента", Параметры, Ключ, Наименование);
|
||||
|
||||
ИначеЕсли ПараметрыВыполнения.СРасширениямиБазыДанных Тогда
|
||||
Возврат РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(ИмяМетода, Параметры,
|
||||
Ключ, Наименование);
|
||||
Возврат РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
|
||||
"ДлительныеОперации.ВыполнитьСКонтекстомКлиента", Параметры, Ключ, Наименование);
|
||||
Иначе
|
||||
Возврат ФоновыеЗадания.Выполнить(ИмяМетода, Параметры, Ключ, Наименование);
|
||||
Возврат ФоновыеЗадания.Выполнить("ДлительныеОперации.ВыполнитьСКонтекстомКлиента",
|
||||
Параметры, Ключ, Наименование);
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
@@ -2262,6 +2281,45 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьИмяПроцедуры(ИмяПроцедуры, ИмяПараметраМетода, ИмяМетода,
|
||||
ПараметрыВыполнения = Неопределено, Объект = Неопределено)
|
||||
|
||||
ПроверяемоеИмяПроцедуры = ИмяПроцедуры;
|
||||
|
||||
Если Объект = Неопределено Тогда
|
||||
ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".", Истина);
|
||||
|
||||
Если ЧастиИмени.Количество() = 4 И ВРег(ЧастиИмени[2]) = "МОДУЛЬОБЪЕКТА" Тогда
|
||||
Параметры = Новый Структура("ВнешнийОтчетОбработка, ЗапуститьНеВФоне");
|
||||
Если ТипЗнч(ПараметрыВыполнения) = Тип("Структура") Тогда
|
||||
ЗаполнитьЗначенияСвойств(Параметры, ПараметрыВыполнения);
|
||||
КонецЕсли;
|
||||
Параметры.ЗапуститьНеВФоне = Истина;
|
||||
Объект = ОбработкаОтчетОбъект(ИмяПроцедуры,
|
||||
ЧастиИмени, Параметры, "ИмяПроцедуры", "ВызватьПроцедуру");
|
||||
ПроверяемоеИмяПроцедуры = ЧастиИмени[3];
|
||||
|
||||
ИначеЕсли ЧастиИмени.Количество() < 2 Или ЧастиИмени.Количество() > 3 Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Некорректное значение параметра %1 (%2) в %3.'"),
|
||||
ИмяПараметраМетода, ИмяПроцедуры, ИмяМетода);
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
СтандартныеПодсистемыСервер.ПроверитьМетодДляВызоваКакПроизвольныйКод(ПроверяемоеИмяПроцедуры, Истина, Объект);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Некорректное значение параметра %1 (%2) в %3:'"),
|
||||
ИмяПараметраМетода, ИмяПроцедуры, ИмяМетода);
|
||||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки);
|
||||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПодготовитьПараметрыВыполнения(ПереданныйПараметр, ЭтоФункция)
|
||||
|
||||
Результат = ОбщиеПараметрыВыполненияВФоне();
|
||||
@@ -3458,8 +3516,9 @@
|
||||
СтатусДлительнойОперации().Выполняется,, ПараметрыВыполнения.АдресРезультата);
|
||||
ЗапланироватьЗапускПотоковДлительныхОпераций(РезультатЗапуска, ПараметрыМногопоточнойОперации);
|
||||
|
||||
// Имя процедуры должно быть, как указано в функции ИмяМетодаМногопоточногоПроцесса.
|
||||
РезультатЗапуска = ВыполнитьФункцию(ПараметрыВыполнения,
|
||||
ИмяМетодаМногопоточногоПроцесса(), ПараметрыМногопоточнойОперации);
|
||||
"ДлительныеОперации.ВыполнитьМногопоточныйПроцесс", ПараметрыМногопоточнойОперации);
|
||||
|
||||
Если РезультатЗапуска.Статус <> СтатусДлительнойОперации().Выполняется Тогда
|
||||
УдалитьДанныеОПотоках(ИдентификаторПроцесса);
|
||||
@@ -3564,8 +3623,9 @@
|
||||
ПараметрыВыполнения.ЗапуститьВФоне = Истина;
|
||||
ПараметрыВыполнения.ЭтоПерезапускУправляющегоПотока = Истина;
|
||||
|
||||
// Имя процедуры должно быть, как указано в функции ИмяМетодаМногопоточногоПроцесса.
|
||||
РезультатЗапуска = ВыполнитьФункцию(ПараметрыВыполнения,
|
||||
ИмяМетодаМногопоточногоПроцесса(), ПараметрыОперации);
|
||||
"ДлительныеОперации.ВыполнитьМногопоточныйПроцесс", ПараметрыОперации);
|
||||
|
||||
Если Не ЗначениеЗаполнено(РезультатЗапуска.ИдентификаторЗадания) Тогда
|
||||
ВызватьИсключение(НСтр("ru = 'Пустой идентификатор фонового задания.'"),
|
||||
@@ -3731,4 +3791,86 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьФункцию";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Возврат ВыполнитьВФоне(ИмяФункции, ПараметрыВызова, ПараметрыВыполнения)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПроцедуру";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Возврат ВыполнитьВФоне(ИмяПроцедуры, ПараметрыВызова, ПараметрыВыполнения)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьПроцедуру";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьПроцедуру";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыВызова)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьФункцию";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Результат = ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяФункции, ПараметрыПроцедуры, Истина)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьФункцию";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Результат = ОбщегоНазначения.ВыполнитьМетодОбъекта(ОбработкаОтчетОбъект, ЧастиИмени[3], ПараметрыПроцедуры, Истина)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьМногопоточныйПроцесс";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяМетодаПолученияПорций, ПараметрыПолученияПорций)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПоток";
|
||||
ИсключениеПроверки.ФрагментСодержания = "РезультатЗапуска = ВыполнитьВФоне(ПараметрыОперации.ИмяМетода, ПараметрыМетода, ПараметрыВыполнения)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПроцедуруМодуляОбъектаОтчета";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодОбъекта(Отчет, Параметры.ИмяМетода, ПараметрыМетода)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПроцедуруМодуляОбъектаОбработки";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодОбъекта(Обработка, Параметры.ИмяМетода, ПараметрыМетода)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ЗапуститьВыполнениеВФоне";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяЭкспортнойПроцедуры, ПараметрыЭкспортнойПроцедуры)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ДлительныеОперации";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ЗапуститьВыполнениеВФоне";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяЭкспортнойПроцедуры, ПараметрыЭкспортнойПроцедуры)";
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОбработки", Истина);
|
||||
Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОтчета", Истина);
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.ДлительныеОперации", Методы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ВыполнитьМногопоточныйПроцесс", Истина);
|
||||
Методы.Вставить("ВыполнитьСКонтекстомКлиента", Истина);
|
||||
Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОбработки", Истина);
|
||||
Методы.Вставить("ВыполнитьПроцедуруМодуляОбъектаОтчета", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1828,6 +1828,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("ОбработчикКомандыЗаполнения");
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.ДополнительныеОтчетыИОбработки", Методы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ДополнительныеОтчетыИОбработкиОбновляются(Очередь) Экспорт
|
||||
Возврат ОбновлениеИнформационнойБазы.ЕстьЗаблокированныеПредыдущимиОчередямиДанные(Очередь, "Справочник.ДополнительныеОтчетыИОбработки");
|
||||
КонецФункции
|
||||
@@ -3421,4 +3430,14 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ОбработчикКомандыЗаполнения");
|
||||
Методы.Вставить("ВыполнитьКоманду", Истина);
|
||||
Методы.Вставить("ВыполнитьОбработкуПоРегламентномуЗаданию", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -77,4 +77,35 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ДоступноПроведение(Ссылки) Экспорт
|
||||
|
||||
ТипыСсылок = Новый Соответствие;
|
||||
|
||||
Для Каждого Ссылка Из Ссылки Цикл
|
||||
Если Ссылка = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Тип = ТипЗнч(Ссылка);
|
||||
Если ТипыСсылок[Тип] = Неопределено Тогда
|
||||
ТипыСсылок[Тип] = Новый Массив;
|
||||
КонецЕсли;
|
||||
ТипыСсылок[Тип].Добавить(Ссылка);
|
||||
КонецЦикла;
|
||||
|
||||
Если Не ЗначениеЗаполнено(ТипыСсылок) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ТипСсылок Из ТипыСсылок Цикл
|
||||
ОбъектМетаданных = Метаданные.НайтиПоТипу(ТипСсылок.Ключ);
|
||||
Если ОбъектМетаданных = Неопределено Или Не ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных)
|
||||
Или ОбъектМетаданных.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -249,7 +249,7 @@
|
||||
ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы(
|
||||
ПечатаемыеОбъекты, СтандартнаяОбработка);
|
||||
|
||||
Если СтандартнаяОбработка Тогда
|
||||
Если СтандартнаяОбработка И ДополнительныеОтчетыИОбработкиВызовСервера.ДоступноПроведение(ПечатаемыеОбъекты) Тогда
|
||||
ПараметрыВыполнения.ТребуетсяПроведение = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -1760,4 +1760,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПрочитатьСобытияЖурналаРегистрации", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -245,4 +245,15 @@
|
||||
Возврат НСтр("ru = 'Да'");
|
||||
КонецФункции
|
||||
|
||||
// Имя событие для записи в журнал регистрации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - событие журнала регистрации
|
||||
//
|
||||
Функция СобытиеЖурналаРегистрации() Экспорт
|
||||
|
||||
Возврат НСтр("ru = 'Загрузка данных из файла'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2925,4 +2925,21 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаполнитьДанныеОбновленияРегистровДляУничтоженияПерсональныхДанных");
|
||||
Методы.Вставить("УстановитьРасписаниеРегламентногоЗаданияРасчетСроковХраненияПерсональныхДанных");
|
||||
Методы.Вставить("ПеренестиЗащищаемыеОбластиПерсональныхДанных");
|
||||
Методы.Вставить("ЗаполнитьДанныеОбновленияРасписанияРегламентногоЗаданияРасчетСроковХраненияПерсональныхДанных");
|
||||
Методы.Вставить("ЗаполнитьРегистрыДляУничтоженияПерсональныхДанных");
|
||||
Методы.Вставить("ЗаполнитьДанныеОбновленияОбластейПерсональныхДанных");
|
||||
Методы.Вставить("ОбновитьСрокХраненияПерсональныхДанныхСубъекта", Истина);
|
||||
Методы.Вставить("ОбновитьСрокиХраненияПерсональныхДанных", Истина);
|
||||
Методы.Вставить("ПрочитатьСобытияДоступаКПерсональнымДанным", Истина);
|
||||
Методы.Вставить("ИзменитьНастройкиУничтоженияПерсональныхДанных", Истина);
|
||||
Методы.Вставить("РассчитатьСрокиХраненияПерсональныхДанных", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -40,6 +40,7 @@
|
||||
События.Вставить("ПередЗапускомПрограммы", Ложь);
|
||||
События.Вставить("ПриДобавленииСерверныхОповещений", Ложь);
|
||||
События.Вставить("ПриПериодическомПолученииДанныхКлиентаНаСервере", Ложь);
|
||||
События.Вставить("ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод", Ложь);
|
||||
|
||||
// Банки
|
||||
События.Вставить("ПриОпределенииНастроекЗагрузкиКлассификатораБанков");
|
||||
@@ -2377,6 +2378,60 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
СтандартныеПодсистемыСервер.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
ДлительныеОперации.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
ОбновлениеИнформационнойБазыСлужебный.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
|
||||
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
|
||||
МодульДополнительныеОтчетыИОбработки.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
|
||||
МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный");
|
||||
МодульКонтрольВеденияУчетаСлужебный.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.НастройкаПорядкаЭлементов") Тогда
|
||||
МодульНастройкаПорядкаЭлементов = ОбщегоНазначения.ОбщийМодуль("НастройкаПорядкаЭлементов");
|
||||
МодульНастройкаПорядкаЭлементов.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПодключаемыеКоманды") Тогда
|
||||
МодульПодключаемыеКоманды = ОбщегоНазначения.ОбщийМодуль("ПодключаемыеКоманды");
|
||||
МодульПодключаемыеКоманды.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодписьСервисаDSS") Тогда
|
||||
МодульСервисКриптографииDSSСлужебный = ОбщегоНазначения.ОбщийМодуль("СервисКриптографииDSSСлужебный");
|
||||
МодульСервисКриптографииDSSСлужебный.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод Тогда
|
||||
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
|
||||
МодульИнтеграцияПодсистемБТС.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБИП().ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод Тогда
|
||||
МодульИнтеграцияПодсистемБИП = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБИП");
|
||||
МодульИнтеграцияПодсистемБИП.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиПлюс().ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод Тогда
|
||||
МодульИнтеграцияПодсистемПлюс = МодульИнтеграцияПодсистемПлюс();
|
||||
МодульИнтеграцияПодсистемПлюс.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБЭД().ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод Тогда
|
||||
МодульИнтеграцияПодсистемБЭД = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБЭД");
|
||||
МодульИнтеграцияПодсистемБЭД.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Банки
|
||||
|
||||
@@ -459,4 +459,11 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОперативноеОбновлениеОбщихДанных");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1520,4 +1520,18 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьИспользованиеНесколькихПроизводственныхКалендарей");
|
||||
Методы.Вставить("ОбновитьДанныеПроизводственныхКалендарей");
|
||||
Методы.Вставить("ЗаполнитьДанныеОбновленияДанныхЗависимыхОтПроизводственныхКалендарей");
|
||||
Методы.Вставить("ОбновитьДанныеЗависимыеОтПроизводственныхКалендарей");
|
||||
Методы.Вставить("СброситьВерсиюКлассификатора");
|
||||
Методы.Вставить("ОбновитьПроизводственныеКалендари");
|
||||
Методы.Вставить("ИсправитьДанныеЗависимыхКалендарей");
|
||||
Методы.Вставить("ОбновитьДанныеЗависимыхПроизводственныхКалендарей");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -3130,4 +3130,11 @@
|
||||
ШрифтыСтиля.ВажнаяНадписьШрифт, ЦветаСтиля.РезультатУспехЦвет, ПоискСУчетомУровней);
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗапуститьПоискВСпискеПолей", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1312,4 +1312,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ВыполнитьПроверку", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -176,6 +176,28 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
ИменаПроцедур = Новый Соответствие;
|
||||
|
||||
ОписаниеПроверок = КонтрольВеденияУчетаСлужебныйПовтИсп.ПроверкиВеденияУчета();
|
||||
Для Каждого Проверка Из ОписаниеПроверок.Проверки Цикл
|
||||
ИменаПроцедур.Вставить(Проверка.ОбработчикПроверки);
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить();
|
||||
ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур;
|
||||
ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик проверки ведения учета ""%1"".'");
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.КонтрольВеденияУчетаСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПроверку";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(СтрокаПроверки.ОбработчикПроверки, ПараметрыОбработчика)";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обновляет состав системных проверок ведения учета при изменении конфигурации.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -4761,4 +4783,22 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации");
|
||||
Методы.Вставить("ПроверитьНезаполненныеОбязательныеРеквизиты");
|
||||
Методы.Вставить("ПроверитьНаличиеПредопределенныхУзловПлановОбмена");
|
||||
Методы.Вставить("ПроверитьДублированиеПредопределенныхЭлементов");
|
||||
Методы.Вставить("ПроверитьОтсутствующиеПредопределенныеЭлементы");
|
||||
Методы.Вставить("ПроверитьЦиклическиеСсылки");
|
||||
Методы.Вставить("ПроверитьСсылочнуюЦелостность");
|
||||
Методы.Вставить("ВыполнитьПроверки", Истина);
|
||||
Методы.Вставить("ВыполнитьПроверку", Истина);
|
||||
Методы.Вставить("ПроверитьОбъект", Истина);
|
||||
Методы.Вставить("ИсправитьПроблемуЦиклическихСсылокВФоновомЗадании", Истина);
|
||||
Методы.Вставить("ПроверитьВедениеУчета", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -40,4 +40,29 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПаспортныеДанныеПредставителяДоверенностиНеобязательны() Экспорт
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЭлектроннаяПодпись") Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
АккредитованныеУдостоверяющиеЦентры = Неопределено;
|
||||
|
||||
МодульЭлектроннаяПодписьЛокализация = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодписьЛокализация");
|
||||
МодульЭлектроннаяПодписьЛокализация.ПриПолученииАккредитованныхУдостоверяющихЦентров(АккредитованныеУдостоверяющиеЦентры);
|
||||
|
||||
Если АккредитованныеУдостоверяющиеЦентры = Неопределено Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ПаспортныеДанныеПредставителяДоверенностиНеобязательны = АккредитованныеУдостоверяющиеЦентры.ДругиеНастройки.Получить(
|
||||
"ПаспортныеДанныеПредставителяДоверенностиНеобязательны");
|
||||
Если ПаспортныеДанныеПредставителяДоверенностиНеобязательны = Неопределено Тогда
|
||||
Возврат Истина;
|
||||
Иначе
|
||||
Возврат ПаспортныеДанныеПредставителяДоверенностиНеобязательны;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1092,9 +1092,10 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(НастройкаПоДоверенности) = Тип("Булево") Тогда
|
||||
НастройкаПоДоверенности = Новый Соответствие;
|
||||
НастройкаПоДоверенности.Вставить(Неопределено,
|
||||
НоваяНастройкаПоДоверенности = Новый Соответствие;
|
||||
НоваяНастройкаПоДоверенности.Вставить(Неопределено,
|
||||
Новый Структура("ПоДоверенности, Доверенность", НастройкаПоДоверенности));
|
||||
Возврат НоваяНастройкаПоДоверенности;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НастройкаПоДоверенности;
|
||||
@@ -2543,6 +2544,8 @@
|
||||
Если ПустаяСтрока(ТекстСообщения) Тогда
|
||||
ТекстСообщения = ПроверитьАдрес(ЗначениеРеквизита, ЭтоФЛ);
|
||||
ПродолжитьПриОшибке = Истина;
|
||||
ИначеЕсли Форма.ИмяФормы <> "Справочник.МашиночитаемыеДоверенности.Форма.СведенияОбОрганизации" Тогда
|
||||
ПродолжитьПриОшибке = ТекстСообщения = НСтр("ru = 'Не указан номер дома'");
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ИмяРеквизита = "АдресРегистрации" Тогда
|
||||
@@ -5751,4 +5754,14 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановитьПараметрСеансаПараметрыАвторизацииВРаспределенномРеестре");
|
||||
Методы.Вставить("ОбновитьИПрочитатьСтатусДоверенностей", Истина);
|
||||
Методы.Вставить("ОбновлениеСтатусовМЧД", Истина);
|
||||
Методы.Вставить("ОбновитьКлассификаторыМЧД", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
Функция РеквизитыПредставителяСталиНеобязательными() Экспорт
|
||||
|
||||
Возврат Ложь;
|
||||
Возврат МашиночитаемыеДоверенностиФНСПовтИсп.ПаспортныеДанныеПредставителяДоверенностиНеобязательны();
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
||||
@@ -3290,4 +3290,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ИзменитьЯзыкВМультиязычныхРеквизитахКонфигурации", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -182,6 +182,15 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("Подключаемый_ПереместитьЭлемент");
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.НастройкаПорядкаЭлементов", Методы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НаправлениеПеремещенияЭлементаВверх() Экспорт
|
||||
Возврат "Вверх";
|
||||
КонецФункции
|
||||
@@ -239,4 +248,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("Подключаемый_ПереместитьЭлемент");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -157,6 +157,10 @@
|
||||
Процедура ИнтернетПоддержкаИСервисыРазрешитьОтправлятьДанныеПриИзменении(Форма, Элемент, ПараметрыОперации) Экспорт
|
||||
Перем РезультатЗапуска;
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Элементы = Форма.Элементы;
|
||||
|
||||
РазрешенДоступКИнтернетСервисам = ОбщегоНазначения.РазрешенДоступКИнтернетСервисам();
|
||||
|
||||
@@ -54,16 +54,19 @@
|
||||
// * РезультатЗапуска - см. ДлительныеОперации.ВыполнитьВФоне
|
||||
//
|
||||
Процедура ИнтернетПоддержкаИСервисыРазрешитьОтправлятьДанныеПриИзменении(Форма, Элемент, ПараметрыОперации) Экспорт
|
||||
|
||||
Если ПараметрыОперации.РезультатЗапуска <> Неопределено Тогда
|
||||
Форма.ЦентрМониторингаИдентификаторЗадания = ПараметрыОперации.РезультатЗапуска.ИдентификаторЗадания;
|
||||
Форма.ЦентрМониторингаАдресРезультатаЗадания = ПараметрыОперации.РезультатЗапуска.АдресРезультата;
|
||||
МодульЦентрМониторингаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиент");
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеОбновленияИдентификатора", МодульЦентрМониторингаКлиент);
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ПараметрыОперации.РезультатЗапуска, Оповещение, ПараметрыОжидания);
|
||||
|
||||
Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга")
|
||||
Или ПараметрыОперации.РезультатЗапуска = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Форма.ЦентрМониторингаИдентификаторЗадания = ПараметрыОперации.РезультатЗапуска.ИдентификаторЗадания;
|
||||
Форма.ЦентрМониторингаАдресРезультатаЗадания = ПараметрыОперации.РезультатЗапуска.АдресРезультата;
|
||||
МодульЦентрМониторингаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦентрМониторингаКлиент");
|
||||
Оповещение = Новый ОписаниеОповещения("ПослеОбновленияИдентификатора", МодульЦентрМониторингаКлиент);
|
||||
ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(Форма);
|
||||
ПараметрыОжидания.ВыводитьОкноОжидания = Ложь;
|
||||
ДлительныеОперацииКлиент.ОжидатьЗавершение(ПараметрыОперации.РезультатЗапуска, Оповещение, ПараметрыОжидания);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
||||
@@ -338,8 +338,13 @@
|
||||
ИначеЕсли ТипЗнч(Данные) = Тип("Строка") Тогда
|
||||
Обработан = Ложь;
|
||||
Иначе
|
||||
Обработан = ОбщегоНазначения.ВыполнитьМетодКонфигурации(СвойстваОбработчика.ПроцедураПроверки,
|
||||
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МетаданныеИОтбор), Истина);
|
||||
Если СвойстваОбработчика.ПроцедураПроверки = ОбновлениеИнформационнойБазыСлужебный.СтандартноеИмяПроцедурыПроверки() Тогда
|
||||
//@skip-check query-in-loop - проверка должна выполняться для каждого обработчика отдельно.
|
||||
Обработан = ДанныеОбновленыНаНовуюВерсиюПрограммы(МетаданныеИОтбор);
|
||||
Иначе
|
||||
Обработан = ОбщегоНазначения.ВыполнитьМетодКонфигурации(СвойстваОбработчика.ПроцедураПроверки,
|
||||
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МетаданныеИОтбор), Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Результат.Обработан = Обработан И Результат.Обработан;
|
||||
@@ -2994,6 +2999,8 @@
|
||||
// для остальных заполнение не требуется. Полные имена объектов через запятую,
|
||||
// которые следует блокировать от изменения до завершения процедуры обработки данных.
|
||||
// Если заполнено, то также требуется заполнить и свойство ПроцедураПроверки.
|
||||
// Важно: Свойство игнорируется для обработчиков с порядком Некритичный, такие
|
||||
// обработчики не должны блокировать работу пользователей с объектом.
|
||||
// * НовыеОбъекты - Строка - необходимо заполнять для обработчиков отложенного обновления,
|
||||
// для остальных заполнение не требуется. Полные имена объектов через запятую,
|
||||
// которые создаются при работе обработчика обновления.
|
||||
@@ -7082,4 +7089,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПерезапуститьОтложенноеОбновление", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -44,7 +44,7 @@
|
||||
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
|
||||
|
||||
Описание.Имя = "СтандартныеПодсистемы";
|
||||
Описание.Версия = "3.1.11.415";
|
||||
Описание.Версия = "3.1.11.466";
|
||||
Описание.ИдентификаторИнтернетПоддержки = "SSL";
|
||||
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
|
||||
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
|
||||
|
||||
@@ -1021,7 +1021,7 @@
|
||||
Обработчик.ИмяОбработчика);
|
||||
ЗаписатьИнформацию(Сообщение);
|
||||
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
|
||||
ВыполнитьПроцедуру(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчикаСтруктура, "РегистрацияДанных");
|
||||
Если Обработчик.Многопоточный Тогда
|
||||
ИсправитьПолныеИменаВПараметрахВыборки(ПараметрыОбработчикаСтруктура.ПараметрыВыборки);
|
||||
КонецЕсли;
|
||||
@@ -1916,6 +1916,117 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
Обработчики = ОбновлениеИнформационнойБазы.НоваяТаблицаОбработчиковОбновления();
|
||||
ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем();
|
||||
|
||||
Для Каждого ИмяПодсистемы Из ОписанияПодсистем.Порядок Цикл
|
||||
ОписаниеПодсистемы = ОписанияПодсистем.ПоИменам.Получить(ИмяПодсистемы);
|
||||
Если Не ЗначениеЗаполнено(ОписаниеПодсистемы.ОсновнойСерверныйМодуль) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Модуль = ОбщегоНазначения.ОбщийМодуль(ОписаниеПодсистемы.ОсновнойСерверныйМодуль);
|
||||
Модуль.ПриДобавленииОбработчиковОбновления(Обработчики);
|
||||
КонецЦикла;
|
||||
|
||||
ИменаПроцедур = Новый Соответствие;
|
||||
Для Каждого Обработчик Из Обработчики Цикл
|
||||
// Оперативные и монопольные обработчики.
|
||||
Если Обработчик.РежимВыполнения <> "Отложенно"
|
||||
И ЗначениеЗаполнено(Обработчик.Процедура) Тогда
|
||||
ИменаПроцедур.Вставить(Обработчик.Процедура);
|
||||
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
// Отложенные обработчики.
|
||||
Если ЗначениеЗаполнено(Обработчик.Процедура)
|
||||
И Не СтрЗаканчиваетсяНа(Обработчик.Процедура, СтандартноеИмяПроцедурыОтложенногоОбработчика()) Тогда
|
||||
ИменаПроцедур.Вставить(Обработчик.Процедура);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Обработчик.ПроцедураЗаполненияДанныхОбновления)
|
||||
И Не СтрЗаканчиваетсяНа(Обработчик.ПроцедураЗаполненияДанныхОбновления, СтандартноеИмяПроцедурыРегистрации()) Тогда
|
||||
ИменаПроцедур.Вставить(Обработчик.ПроцедураЗаполненияДанныхОбновления);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Обработчик.ПроцедураПроверки)
|
||||
И Обработчик.ПроцедураПроверки <> СтандартноеИмяПроцедурыПроверки() Тогда
|
||||
ИменаПроцедур.Вставить(Обработчик.ПроцедураПроверки);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить();
|
||||
ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур;
|
||||
ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик обновления информационной базы ""%1"".'");
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПроцедуру";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ПолноеИмяПроцедуры, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметры))";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ПерейтиСДругойПрограммы";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ПерейтиСДругойПрограммы";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьОбработчикОбновления";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.Процедура, ПараметрыОбработчика)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ОтменитьВыполнениеВсехПотоков";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОписаниеПотока.ПриОтменеПотока, ПараметрыВызова)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ЗавершитьПотокиВыполнившиеФЗ";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОписаниеПотока.ПроцедураЗавершения, ПараметрыВызова)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ЗавершитьПотокиВыполнившиеФЗ";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОписаниеПотока.ПриАварийномЗавершении, ПараметрыВызова)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьПоток";
|
||||
ИсключениеПроверки.ФрагментСодержания = "РезультатЗапуска = ДлительныеОперации.ВыполнитьВФоне(ОписаниеПотока.Процедура,
|
||||
| Поток.ПараметрыПроцедуры,
|
||||
| ПараметрыВыполнения)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбновлениеИнформационнойБазы";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ОбъектОбработан";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Обработан = ОбщегоНазначения.ВыполнитьМетодКонфигурации(СвойстваОбработчика.ПроцедураПроверки,
|
||||
| ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МетаданныеИОтбор), Истина)";
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("ПриАварийномЗавершенииПотокаОтложенногоОбработчика");
|
||||
Методы.Вставить("ПриОтменеПотокаОтложенногоОбработчика");
|
||||
Методы.Вставить("ПриАварийномЗавершенииПотокаПоискаПорцииДляОбновления");
|
||||
Методы.Вставить("ПриОтменеПотокаПоискаПорцииДляОбновления");
|
||||
Методы.Вставить("ЗаполнитьДанныеОтложенногоОбработчика", Истина);
|
||||
Методы.Вставить("ЗавершитьРегистрациюДанныхОтложенногоОбновления", Истина);
|
||||
Методы.Вставить("ВыполнитьОтложенныйОбработчик", Истина);
|
||||
Методы.Вставить("ЗавершитьВыполнениеОтложенногоОбработчика", Истина);
|
||||
Методы.Вставить("НайтиПорциюДляОбновления", Истина);
|
||||
Методы.Вставить("ЗавершитьПоискПорцииДляОбновления", Истина);
|
||||
Методы.Вставить("УстаревшиеДанныеПриЗапросеПорцийВФоне", Истина);
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный", Методы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция НастройкиПодсистемы() Экспорт
|
||||
|
||||
ПараметрыСообщенияОНевыполненныхОтложенныхОбработчиках = Новый Структура;
|
||||
@@ -2591,6 +2702,19 @@
|
||||
Возврат Результат;
|
||||
КонецФункции
|
||||
|
||||
Функция ЗагрузитьИУстановитьИсправления() Экспорт
|
||||
|
||||
Результат = Неопределено;
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.ПолучениеОбновленийПрограммы") Тогда
|
||||
МодульПолучениеОбновленийПрограммы = ОбщегоНазначения.ОбщийМодуль("ПолучениеОбновленийПрограммы");
|
||||
Результат = МодульПолучениеОбновленийПрограммы.ЗагрузитьИУстановитьИсправления();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОпределитьДанныеЗаполнения(Знач ПредопределенныеДанные, Знач СтрокаТаблицы, Знач ПоляИсключения, Знач ЗаполняемыеРеквизиты = Неопределено)
|
||||
|
||||
ТолькоЗаполняемыеРеквизиты = ?(ТипЗнч(ЗаполняемыеРеквизиты) = Тип("Соответствие"), ЗаполняемыеРеквизиты.Количество() > 0, Ложь);
|
||||
@@ -3847,6 +3971,52 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьПроцедуру(ПолноеИмяПроцедуры, Параметры, Действие)
|
||||
|
||||
Если Действие = "РегистрацияДанных" Тогда
|
||||
ПредопределенноеИмяПроцедуры = СтандартноеИмяПроцедурыРегистрации();
|
||||
ИначеЕсли Действие = "ОтложеннаяОбработка" Тогда
|
||||
ПредопределенноеИмяПроцедуры = СтандартноеИмяПроцедурыОтложенногоОбработчика();
|
||||
Иначе
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Указано недопустимое значение параметра ""%1"": %2'"),
|
||||
"Действие", Действие);
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПроцедурыЧастями = СтрРазделить(ПолноеИмяПроцедуры, ".");
|
||||
Если ИмяПроцедурыЧастями.Получить(ИмяПроцедурыЧастями.ВГраница()) <> ПредопределенноеИмяПроцедуры Тогда
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ПолноеИмяПроцедуры, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Параметры));
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ИмяПроцедурыЧастями.Удалить(ИмяПроцедурыЧастями.ВГраница());
|
||||
Менеджер = ОбщегоНазначения.ОбщийМодуль(СтрСоединить(ИмяПроцедурыЧастями, "."));
|
||||
Если Действие = "РегистрацияДанных" Тогда
|
||||
Менеджер.ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры);
|
||||
Иначе
|
||||
Менеджер.ОбработатьДанныеДляПереходаНаНовуюВерсию(Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СтандартноеИмяПроцедурыРегистрации()
|
||||
|
||||
Возврат "ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтандартноеИмяПроцедурыОтложенногоОбработчика()
|
||||
|
||||
Возврат "ОбработатьДанныеДляПереходаНаНовуюВерсию";
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СтандартноеИмяПроцедурыПроверки() Экспорт
|
||||
|
||||
Возврат "ОбновлениеИнформационнойБазы.ДанныеОбновленыНаНовуюВерсиюПрограммы";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Область ПротоколированиеХодаОбновления
|
||||
|
||||
// Возвращает строковую константу для формирования сообщений журнала регистрации.
|
||||
@@ -5236,8 +5406,6 @@
|
||||
ПодсистемаСуществует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом");
|
||||
ОтключитьОбновлениеКлючейДоступа(Истина, ПодсистемаСуществует);
|
||||
Попытка
|
||||
ПараметрыВызова = Новый Массив;
|
||||
ПараметрыВызова.Добавить(КонтекстОбработчика.Параметры);
|
||||
Результат = НовыйРезультатВыполненияОтложенногоОбработчика();
|
||||
|
||||
Если КонтекстОбработчика.Параметры.Свойство("ОбновляемыеДанные") Тогда
|
||||
@@ -5248,7 +5416,7 @@
|
||||
Результат.ПереданоДанныхДляОбработки = ВсегоДанных;
|
||||
КонецЕсли;
|
||||
Результат.НачалоПроцедурыОбработчика = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(КонтекстОбработчика.ИмяОбработчика, ПараметрыВызова);
|
||||
ВыполнитьПроцедуру(КонтекстОбработчика.ИмяОбработчика, КонтекстОбработчика.Параметры, "ОтложеннаяОбработка");
|
||||
Результат.ЗавершениеПроцедурыОбработчика = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
Результат.Параметры = КонтекстОбработчика.Параметры;
|
||||
@@ -11427,6 +11595,11 @@
|
||||
ПроцедураПроверки = Обработчик.ПроцедураПроверки;
|
||||
БлокируемыеОбъекты = Обработчик.БлокируемыеОбъекты;
|
||||
Если ЗначениеЗаполнено(ПроцедураПроверки) И ЗначениеЗаполнено(БлокируемыеОбъекты) Тогда
|
||||
Если Обработчик.Порядок = Перечисления.ПорядокОбработчиковОбновления.Некритичный Тогда
|
||||
// Некритичные обработчики работу с объектом не должны блокировать.
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
СвойстваОбработчика = Новый Структура;
|
||||
СвойстваОбработчика.Вставить("Выполнен", Ложь);
|
||||
СвойстваОбработчика.Вставить("ПроцедураПроверки", ПроцедураПроверки);
|
||||
@@ -11572,9 +11745,7 @@
|
||||
Иначе
|
||||
ПараметрыОбработчикаСтруктура.ПараметрыВыборки = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОбработчика = Новый Массив;
|
||||
ПараметрыОбработчика.Добавить(ПараметрыОбработчикаСтруктура);
|
||||
|
||||
Попытка
|
||||
Сообщение = НСтр("ru = 'Выполняется процедура заполнения данных
|
||||
|""%1""
|
||||
@@ -11586,7 +11757,7 @@
|
||||
ЗаписатьИнформацию(Сообщение);
|
||||
|
||||
НачалоРегистрации = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчика);
|
||||
ВыполнитьПроцедуру(Обработчик.ПроцедураЗаполненияДанныхОбновления, ПараметрыОбработчикаСтруктура, "РегистрацияДанных");
|
||||
КонецРегистрации = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
ДлительностьРегистрации = (КонецРегистрации - НачалоРегистрации) / 1000;
|
||||
@@ -11734,9 +11905,6 @@
|
||||
ПараметрыОтметкиКОбработке.ПараметрыВыборки = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыОбработчика = Новый Массив;
|
||||
ПараметрыОбработчика.Добавить(ПараметрыОтметкиКОбработке);
|
||||
|
||||
ШаблонСообщения = НСтр(
|
||||
"ru = 'Выполняется процедура заполнения данных
|
||||
|""%1""
|
||||
@@ -11749,7 +11917,7 @@
|
||||
|
||||
Попытка
|
||||
НачалоРегистрации = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(ОписаниеОбрабатываемыхДанных.ПроцедураЗаполнения, ПараметрыОбработчика);
|
||||
ВыполнитьПроцедуру(ОписаниеОбрабатываемыхДанных.ПроцедураЗаполнения, ПараметрыОтметкиКОбработке, "РегистрацияДанных");
|
||||
КонецРегистрации = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
|
||||
@@ -12602,4 +12770,40 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ЗаписатьПодтверждениеЛегальностиПолученияОбновлений");
|
||||
Методы.Вставить("ПустаяПроцедураРегистрации");
|
||||
Методы.Вставить("НачальноеЗаполнениеПредопределенныхДанных");
|
||||
Методы.Вставить("УстановитьКлючРегламентногоЗадания");
|
||||
Методы.Вставить("ОчиститьУстаревшиеДанныеПолностью");
|
||||
Методы.Вставить("ПриАварийномЗавершенииПотокаОтложенногоОбработчика");
|
||||
Методы.Вставить("ПриОтменеПотокаОтложенногоОбработчика");
|
||||
Методы.Вставить("ПриАварийномЗавершенииПотокаПоискаПорцииДляОбновления");
|
||||
Методы.Вставить("ПриОтменеПотокаПоискаПорцииДляОбновления");
|
||||
Методы.Вставить("ОбработчикПроверкиВеденияУчета");
|
||||
|
||||
Методы.Вставить("ЗаполнитьДанныеОтложенногоОбработчика", Истина);
|
||||
Методы.Вставить("ЗавершитьРегистрациюДанныхОтложенногоОбновления", Истина);
|
||||
Методы.Вставить("ВыполнитьОтложенныйОбработчик", Истина);
|
||||
Методы.Вставить("ЗавершитьВыполнениеОтложенногоОбработчика", Истина);
|
||||
Методы.Вставить("НайтиПорциюДляОбновления", Истина);
|
||||
Методы.Вставить("ЗавершитьПоискПорцииДляОбновления", Истина);
|
||||
Методы.Вставить("УстаревшиеДанныеПриЗапросеПорцийВФоне", Истина);
|
||||
Методы.Вставить("УстаревшиеДанныеПриОчисткеПорцииВФоне", Истина);
|
||||
Методы.Вставить("ОбновлениеПодОграниченнымиПравами", Истина);
|
||||
Методы.Вставить("ЗапускРегистрацииДанныхОтложенногоОбновления", Истина);
|
||||
Методы.Вставить("СформироватьСписокУстаревшихДанныхВФоне", Истина);
|
||||
Методы.Вставить("ОчиститьУстаревшиеДанныеВФоне", Истина);
|
||||
Методы.Вставить("ВыполнитьОбновлениеИнформационнойБазыВФоне", Истина);
|
||||
Методы.Вставить("Пауза", Истина);
|
||||
Методы.Вставить("УстановитьПорядокОтложенногоОбновления", Истина);
|
||||
Методы.Вставить("ВыполнитьОтложенноеОбновление", Истина);
|
||||
Методы.Вставить("ЗагрузитьИУстановитьИсправления", Истина);
|
||||
Методы.Вставить("ОчисткаУстаревшихДанных", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+9
-1
@@ -794,9 +794,10 @@
|
||||
Если Не МонопольныйРежим() Тогда
|
||||
ОбъектМетаданных = Метаданные.РегламентныеЗадания.Найти("ОбновлениеОбластейДанных");
|
||||
Задание = РегламентныеЗаданияСервер.ПолучитьРегламентноеЗадание(ОбъектМетаданных);
|
||||
ИмяЗадания = ОбъектМетаданных.Имя;
|
||||
// АПК:280-выкл обработка исключения не требуется
|
||||
Попытка
|
||||
ФоновыеЗадания.Выполнить(Задание.Метаданные.ИмяМетода, , Задание.Ключ, Задание.Наименование);
|
||||
ФоновыеЗадания.Выполнить(Метаданные.РегламентныеЗадания[ИмяЗадания].ИмяМетода,, Задание.Ключ, Задание.Наименование);
|
||||
Исключение
|
||||
// Значит задание уже запущено.
|
||||
// Обработка исключения не требуется.
|
||||
@@ -1391,4 +1392,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновлениеОбластейДанных", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1449,4 +1449,11 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОписанияНовыхПатчей", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -360,4 +360,12 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаблокироватьНедействительныхПользователейВСистемеВзаимодействий");
|
||||
Методы.Вставить("ПользователиДляБлокировкиВСистемеВзаимодействий");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1793,7 +1793,8 @@
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверное значение параметра %1 в %2. Общий модуль ""%3"" не существует.'"),
|
||||
"Имя", "ОбщегоНазначения.ОбщийМодуль", Имя),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КатегорияОшибки.ОшибкаКонфигурации,
|
||||
"СтандартныеПодсистемы.БазоваяФункциональность.ЭтоОшибкаПолученияОбщегоМодуляПоИмени");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Модуль;
|
||||
@@ -3430,6 +3431,8 @@
|
||||
|
||||
Если ИмяCOMСоединителя = "v83.COMConnector" Тогда
|
||||
Возврат "181E893D-73A4-4722-B61D-D604B3D67D47";
|
||||
ИначеЕсли ИмяCOMСоединителя = "v85.COMConnector" Тогда
|
||||
Возврат "BBAB44B3-6C80-43B1-AFEC-3094B12122BE";
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
@@ -6505,6 +6508,17 @@
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецПопытки;
|
||||
|
||||
Попытка
|
||||
СтандартныеПодсистемыСервер.ПроверитьМетодДляВызоваКакПроизвольныйКод(ИмяМетода,, Объект);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неправильное значение параметра %1 (%2) в %3:'"),
|
||||
"ИмяМетода", ИмяМетода, "ОбщегоНазначения.ВыполнитьМетодОбъекта");
|
||||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки);
|
||||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
|
||||
КонецПопытки;
|
||||
|
||||
ПрофильБезопасностиИБ = СтандартныеПодсистемыСервер.ПрофильБезопасностиДляВыполнитьВычислить();
|
||||
Если ЗначениеЗаполнено(ПрофильБезопасностиИБ) Тогда
|
||||
УстановитьБезопасныйРежим(ПрофильБезопасностиИБ);
|
||||
@@ -9855,7 +9869,8 @@
|
||||
ВызватьИсключение(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неверное значение параметра %1 в функции %2. Объект метаданных ""%3"" не существует.'"),
|
||||
"Имя", "ОбщегоНазначения.СерверныйМодульМенеджера", Имя),
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КатегорияОшибки.ОшибкаКонфигурации,
|
||||
"СтандартныеПодсистемы.БазоваяФункциональность.ЭтоОшибкаПолученияМодуляМенеджераПоИмени");
|
||||
КонецЕсли;
|
||||
|
||||
// АПК:488-выкл ВычислитьВБезопасномРежиме не используется, чтобы избежать вызова ОбщийМодуль рекурсивно.
|
||||
@@ -10513,6 +10528,17 @@
|
||||
КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецПопытки;
|
||||
|
||||
Попытка
|
||||
СтандартныеПодсистемыСервер.ПроверитьМетодДляВызоваКакПроизвольныйКод(ИмяПроцедуры);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Неправильное значение параметра %1 (передано значение: ""%2"") в %3:'"),
|
||||
"ИмяПроцедуры", ИмяПроцедуры, "ОбщегоНазначения.ВыполнитьМетодКонфигурации");
|
||||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки);
|
||||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает менеджер объекта по имени.
|
||||
@@ -11076,6 +11102,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЕстьСсылкиНаОбъект", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
@@ -462,4 +462,54 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Уточняет проверку методов, используемых при статическом поиске имен процедур и функций,
|
||||
// которые указываются в параметрах процедур и функций, описанных в комментарии к процедуре
|
||||
// СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод.
|
||||
// Используется в отчете ПроверкаВнедренийБСП, чтобы учесть случаи, когда
|
||||
// подсистемы допускают передачу полных имен обработчиков в качестве параметров,
|
||||
// например, обработчиков установки параметров сеанса, обработчиков обновления
|
||||
// информационной базы и др.
|
||||
// Смотри также ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
//
|
||||
// Параметры:
|
||||
// Настройки - Структура:
|
||||
// * ОписаниеОбработчиков - ТаблицаЗначений:
|
||||
// ** ИменаПроцедур - Соответствие из КлючИЗначение
|
||||
// *** Ключ - см. ОбщегоНазначения.ВыполнитьМетодКонфигурации.ИмяМетода
|
||||
// *** Значение - Неопределено, Булево - если Истина, тогда требуется разрешение на запуск в фоне.
|
||||
// ** ЗаголовокОшибки - Строка - заголовок ошибки с параметром для полного имени процедуры обработчика.
|
||||
// * ИсключенияПроверки - ТаблицаЗначений:
|
||||
// ** ПолноеИмяОбъекта - Строка - имя общего модуля, например, "ОбщийМодуль.ОбщегоНазначения",
|
||||
// имя объекта метаданных (модуль менеджера), например, "Справочник.Организации",
|
||||
// или имя модуля объекта обработки или отчета, например, "Отчет.ПроверкаВнедренияБСП.МодульОбъекта".
|
||||
// ** ИмяПроцедуры - Строка - имя процедуры или функции, объявленной в модуле.
|
||||
// ** ФрагментСодержания - Строка - фрагмент содержания места вызова, которые нужно пропустить.
|
||||
// Фрагменты содержания указаны в подробном тексте ошибки отчета ПроверкаВнедренияБСП.
|
||||
// * ОшибкаКогдаУказанныйМетодНеВызывается - Булево - начальное значение Истина.
|
||||
// Если Истина, тогда отчет ПроверкаВнедренийБСП добавит ошибки,
|
||||
// когда метод указанный в процедуре ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод,
|
||||
// не найден среди вызываемых методов, которые нашел отчет (с учетом способа вызова - в фоне / не в фоне).
|
||||
// * ИсключенияКогдаУказанныйМетодНеВызывается - Соответствие из КлючИЗначение:
|
||||
// ** Ключ - Строка - имя общего модуля, например, "ОбщийМодуль.ОбщегоНазначения",
|
||||
// имя объекта метаданных (модуль менеджера), например, "Справочник.Организации",
|
||||
// или имя модуля объекта обработки или отчета, например, "Отчет.ПроверкаВнедренияБСП.МодульОбъекта".
|
||||
// ** Значение - см. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод.Методы
|
||||
//
|
||||
// Пример:
|
||||
// Обработчики = Новый Соответствие;
|
||||
// ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики);
|
||||
//
|
||||
// ИменаПроцедур = Новый Соответствие;
|
||||
// Для Каждого КлючИЗначение Из Обработчики Цикл
|
||||
// ИменаПроцедур.Вставить(КлючИЗначение.Значение);
|
||||
// КонецЦикла;
|
||||
//
|
||||
// ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить();
|
||||
// ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур;
|
||||
// ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик установки параметров сеанса ""%1"".'");
|
||||
//
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -18,33 +18,35 @@
|
||||
// Возвращаемое значение:
|
||||
// Строка
|
||||
//
|
||||
Функция БезопаснаяСтрокаКоманды(КомандаЗапуска) Экспорт
|
||||
Функция БезопаснаяСтрокаКоманды(КомандаЗапуска, Знач ЭтоАдминистратор = Ложь) Экспорт
|
||||
|
||||
Результат = "";
|
||||
Если ТипЗнч(КомандаЗапуска) = Тип("Строка") Тогда
|
||||
ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска, ЭтоАдминистратор);
|
||||
Возврат КомандаЗапуска;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(КомандаЗапуска) = Тип("Строка") Тогда
|
||||
|
||||
ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска);
|
||||
Результат = КомандаЗапуска;
|
||||
|
||||
ИначеЕсли ТипЗнч(КомандаЗапуска) = Тип("Массив") Тогда
|
||||
|
||||
Если КомандаЗапуска.Количество() > 0 Тогда
|
||||
ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска[0]);
|
||||
Результат = МассивВСтрокуКоманды(КомандаЗапуска);
|
||||
Иначе
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ожидалось, что первый элемент массива %1 будет командой или путем к исполняемому файлу.'"),
|
||||
"КомандаЗапуска");
|
||||
КонецЕсли;
|
||||
|
||||
Иначе
|
||||
Если ТипЗнч(КомандаЗапуска) <> Тип("Массив") Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ожидалось, что значение %1 будет типа %2 или %3.'"),
|
||||
"КомандаЗапуска", "Строка", "Массив");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат
|
||||
|
||||
Если КомандаЗапуска.Количество() = 0 Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Ожидалось, что первый элемент массива %1 будет командой или путем к исполняемому файлу.'"),
|
||||
"КомандаЗапуска");
|
||||
КонецЕсли;
|
||||
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
//@skip-check bsl-legacy-check-for-each-statetement-collection
|
||||
Для Каждого Элемент Из КомандаЗапуска Цикл
|
||||
ПроверитьСодержитНебезопасныеДействия(Элемент, ЭтоАдминистратор);
|
||||
КонецЦикла;
|
||||
#Иначе
|
||||
ПроверитьСодержитНебезопасныеДействия(КомандаЗапуска[0], ЭтоАдминистратор);
|
||||
#КонецЕсли
|
||||
|
||||
Возврат МассивВСтрокуКоманды(КомандаЗапуска);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -489,19 +491,16 @@
|
||||
|
||||
#Область БезопаснаяСтрокаКоманды
|
||||
|
||||
Функция СодержитНебезопасныеДействия(Знач СтрокаКоманды)
|
||||
Процедура ПроверитьСодержитНебезопасныеДействия(Знач КомандаЗапуска, ЭтоАдминистратор)
|
||||
|
||||
Возврат СтрНайти(СтрокаКоманды, "${") <> 0
|
||||
Или СтрНайти(СтрокаКоманды, "$(") <> 0
|
||||
Или СтрНайти(СтрокаКоманды, "`") <> 0
|
||||
Или СтрНайти(СтрокаКоманды, "|") <> 0
|
||||
Или СтрНайти(СтрокаКоманды, ";") <> 0
|
||||
Или СтрНайти(СтрокаКоманды, "&") <> 0;
|
||||
ЕстьНебезопасныеДействия = СтрНайти(КомандаЗапуска, "${") <> 0
|
||||
Или СтрНайти(КомандаЗапуска, "$(") <> 0
|
||||
Или СтрНайти(КомандаЗапуска, "`") <> 0
|
||||
Или СтрНайти(КомандаЗапуска, "|") <> 0
|
||||
Или (СтрНайти(КомандаЗапуска, ";") <> 0 И Не ЭтоАдминистратор)
|
||||
Или СтрНайти(КомандаЗапуска, "&") <> 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПроверитьСодержитНебезопасныеДействия(Знач КомандаЗапуска)
|
||||
Если СодержитНебезопасныеДействия(КомандаЗапуска) Тогда
|
||||
Если ЕстьНебезопасныеДействия Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не удалось запустить приложение. Недопустимая строка команды:
|
||||
|%1
|
||||
@@ -746,6 +745,19 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// АПК:547-выкл инструкция препроцессора допустима, так как в выполняемом коде нет обращения к модулям.
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("РасчетныеПоказателиЯчеек", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
// АПК:547-вкл
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1451,4 +1451,12 @@
|
||||
КонецЕсли;
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЭкспортОценкиПроизводительности", Истина);
|
||||
Методы.Вставить("ОчиститьРегистрыЗамерыВремени", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -979,4 +979,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("УстановитьЗначенияКонстанты_3_1_3_38");
|
||||
Методы.Вставить("ПервоначальноеЗаполнение");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -557,6 +557,17 @@
|
||||
Возврат ОперативноеОбновлениеОбщихДанных(Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений"));
|
||||
КонецФункции
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ПодключаемыеКоманды";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьКоманду";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик, ПараметрыЭкспортнойПроцедуры)";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбновлениеИнформационнойБазы
|
||||
@@ -950,6 +961,7 @@
|
||||
ИначеЕсли СведенияОПодменюКоманды.КоличествоКоманд = 1 И ТипЗнч(ГруппаФормы.Родитель) <> Тип("ФормаКлиентскогоПриложения")
|
||||
И Не КомандаВидаКоманднаяПанель Тогда
|
||||
КнопкаФормы = Элементы.Вставить(Команда.ИмяВФорме, Тип("КнопкаФормы"), СведенияОПодменюКоманды.Подменю.Родитель, ГруппаФормы.Родитель);
|
||||
ИмяКорневогоЭлемента = Команда.ИмяВФорме;
|
||||
Иначе
|
||||
КнопкаФормы = Элементы.Добавить(Команда.ИмяВФорме, Тип("КнопкаФормы"), ГруппаФормы);
|
||||
КонецЕсли;
|
||||
@@ -1791,4 +1803,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОперативноеОбновлениеОбщихДанныхКонфигурации");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -184,9 +184,9 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ПараметрыВыполнения.МассивСсылок.Количество() = 0 Тогда
|
||||
ПараметрыВыполнения.МассивСсылок = ВыбранныеОбъекты(Источник, ОписаниеКоманды);
|
||||
КонецЕсли;
|
||||
ПараметрыВыполнения.МассивСсылок = ?(ТипЗнч(Источник) = Тип("ДанныеФормыСтруктура"),
|
||||
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Источник.Ссылка),
|
||||
ВыбранныеОбъекты(Источник, ОписаниеКоманды));
|
||||
|
||||
Если ОписаниеКоманды.МножественныйВыбор Тогда
|
||||
ПараметрКоманды = ПараметрыВыполнения.МассивСсылок;
|
||||
@@ -204,6 +204,8 @@
|
||||
// Запись в форме объекта.
|
||||
Если ПараметрыВыполнения.ТребуетсяЗапись Тогда
|
||||
ПараметрыВыполнения.ТребуетсяЗапись = Ложь;
|
||||
ПараметрыВыполнения.ТребуетсяПроведение = ПараметрыВыполнения.ТребуетсяПроведение И Источник.Свойство("Проведен");
|
||||
|
||||
Если Источник.Ссылка.Пустая()
|
||||
Или (ОписаниеКоманды.РежимЗаписи <> "ЗаписыватьТолькоНовые" И ПараметрыВыполнения.Форма.Модифицированность)
|
||||
Или ПараметрыВыполнения.ТребуетсяПроведение И Не Источник.Проведен Тогда
|
||||
|
||||
@@ -919,12 +919,8 @@
|
||||
ОписаниеПодчиненногоОбъекта, ИспользуемыеСвязи);
|
||||
КонецЦикла;
|
||||
|
||||
ПараметрыМетодаПоиска = Новый Массив;
|
||||
ПараметрыМетодаПоиска.Добавить(ПарыЗамен);
|
||||
ПараметрыМетодаПоиска.Добавить(НеподобранныеЗамены);
|
||||
ОбщегоНазначения.ВыполнитьМетодКонфигурации(
|
||||
ОписаниеПодчиненногоОбъекта.ИмяМодуляМетодаПоиска + ".ПриПоискеЗаменыСсылок",
|
||||
ПараметрыМетодаПоиска);
|
||||
Модуль = ОбщегоНазначения.ОбщийМодуль(ОписаниеПодчиненногоОбъекта.ИмяМодуляМетодаПоиска);
|
||||
Модуль.ПриПоискеЗаменыСсылок(ПарыЗамен, НеподобранныеЗамены);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@@ -938,4 +934,12 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ЗаменитьСсылки", Истина);
|
||||
Методы.Вставить("ОпределитьМестаИспользования", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -596,4 +596,13 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ИнициализироватьФункциональнуюОпциюПолнотекстовыйПоиск");
|
||||
Методы.Вставить("ОбновлениеИндексаППДПоРасписанию", Истина);
|
||||
Методы.Вставить("СлияниеИндексаППДПоРасписанию", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -9438,6 +9438,10 @@
|
||||
Пропустить = Ложь;
|
||||
Возврат ВыборкаНастроек.Следующий();
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
Если ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории(КатегорияОшибки.НарушениеПравДоступа) Тогда
|
||||
ВызватьИсключение;
|
||||
КонецЕсли;
|
||||
Пропустить = Истина;
|
||||
Возврат Истина;
|
||||
КонецПопытки;
|
||||
@@ -9548,8 +9552,9 @@
|
||||
//
|
||||
Процедура СкопироватьНастройкиПользователяИБ(ПользовательОбъект, ПараметрыОбработки)
|
||||
|
||||
Если НЕ ПараметрыОбработки.Свойство("ЗначениеКопирования")
|
||||
ИЛИ НЕ ПараметрыОбработки.НовыйПользовательИБСуществует Тогда
|
||||
Если Не ПараметрыОбработки.Свойство("ЗначениеКопирования")
|
||||
Или Не ПараметрыОбработки.НовыйПользовательИБСуществует
|
||||
Или Не ПравоДоступа("АдминистрированиеДанных", Метаданные) Тогда
|
||||
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
@@ -12069,4 +12074,17 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ЗаполнитьИерархиюГруппПользователей");
|
||||
Методы.Вставить("ОбновитьПредопределенныеВидыКонтактнойИнформацииПользователей");
|
||||
Методы.Вставить("ПереименоватьКлючХраненияРешенияПоОткрытиюВнешнихОтчетовИОбработок");
|
||||
Методы.Вставить("ПеренестиНастройкиДлиныИСложностиПаролейКонфигуратора");
|
||||
Методы.Вставить("ЗаполнитьСпискиНастроек", Истина);
|
||||
Методы.Вставить("ЗаполнитьПочтуДляВосстановленияПароляУПользователейВФоне", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -650,4 +650,53 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область НастройкаРазрешенийНаИспользованиеВнешнихРесурсов
|
||||
|
||||
Процедура ВыполнитьОбработкуЗапросов(Знач ИдентификаторыЗапросов, Знач АдресВременногоХранилища,
|
||||
Знач АдресВременногоХранилищаСостояния, Знач ДобавитьОчисткуЗапросовПередПрименением = Ложь) Экспорт
|
||||
|
||||
Обработки.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.ВыполнитьОбработкуЗапросов(
|
||||
ИдентификаторыЗапросов,
|
||||
АдресВременногоХранилища,
|
||||
АдресВременногоХранилищаСостояния,
|
||||
ДобавитьОчисткуЗапросовПередПрименением);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьОбработкуЗапросовОбновления(Знач АдресВременногоХранилища,
|
||||
Знач АдресВременногоХранилищаСостояния) Экспорт
|
||||
|
||||
Обработки.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.ВыполнитьОбработкуЗапросовОбновления(
|
||||
АдресВременногоХранилища, АдресВременногоХранилищаСостояния);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьОбработкуЗапросовОтключения(Знач АдресВременногоХранилища,
|
||||
Знач АдресВременногоХранилищаСостояния) Экспорт
|
||||
|
||||
Обработки.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.ВыполнитьОбработкуЗапросовОтключения(
|
||||
АдресВременногоХранилища, АдресВременногоХранилищаСостояния);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВыполнитьОбработкуЗапросовВосстановления(Знач АдресВременногоХранилища,
|
||||
Знач АдресВременногоХранилищаСостояния) Экспорт
|
||||
|
||||
Обработки.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.ВыполнитьОбработкуЗапросовВосстановления(
|
||||
АдресВременногоХранилища, АдресВременногоХранилищаСостояния);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ВыполнитьОбработкуЗапросов", Истина);
|
||||
Методы.Вставить("ВыполнитьОбработкуЗапросовОбновления", Истина);
|
||||
Методы.Вставить("ВыполнитьОбработкуЗапросовОтключения", Истина);
|
||||
Методы.Вставить("ВыполнитьОбработкуЗапросовВосстановления", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2688,11 +2688,12 @@
|
||||
АдресПоПолям.ТипАдреса = АдресИзJSON.AddressType;
|
||||
АдресПоПолям.Страна = АдресИзJSON.Country;
|
||||
АдресПоПолям.КодСтраны = КодыСтраны(АдресИзJSON);
|
||||
НаименованиеРегиона = СокрЛП(АдресИзJSON["area"] + " " +АдресИзJSON["areaType"]);
|
||||
|
||||
НазваниеОсновнойСтраны = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(РаботаСАдресамиКлиентСервер.ОсновнаяСтрана(), "Наименование");
|
||||
ЭтоНациональныйАдрес = ?(СтрСравнить(АдресИзJSON.Country, НазваниеОсновнойСтраны) = 0, Истина, Ложь);
|
||||
АдресПоПолям.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(НаименованиеРегиона), "");
|
||||
Если ЭтоНациональныйАдрес Тогда
|
||||
АдресПоПолям.КодРегиона = КодРегиона(АдресИзJSON.areaValue, АдресИзJSON.area, АдресИзJSON.areaType);
|
||||
КонецЕсли;
|
||||
|
||||
ИдентификаторАдресногоОбъекта = "";
|
||||
МаксимальныйУровеньИдентификатора = 0;
|
||||
@@ -2731,7 +2732,7 @@
|
||||
|
||||
// Коды мун. уровней
|
||||
АдресПоПолям.КодМуниципальногоРайона = КодМуниципальногоРайона(АдресИзJSON.munDistrictType, АдресИзJSON.oktmo,
|
||||
ЭтоГородФедеральногоЗначения(НаименованиеРегиона));
|
||||
ЭтоГородФедеральногоЗначения(СокрЛП(АдресИзJSON.area + " " + АдресИзJSON.areaType)));
|
||||
АдресПоПолям.КодПоселения = КодПоселения(АдресИзJSON.settlementType);
|
||||
|
||||
Если Параметры.КодыАдреса Тогда
|
||||
@@ -3226,23 +3227,34 @@
|
||||
|
||||
// Возвращает код региона по его полному наименованию.
|
||||
//
|
||||
// Параметры:
|
||||
// НаименованиеРегиона - Строка - полное наименование региона с сокращением.
|
||||
// Параметры:
|
||||
// ПолноеНаименование - Строка - полное официальное наименование региона.
|
||||
// НаименованиеАдресногоЭлемента - Строка - наименование адресного элемента региона, например "Тверская".
|
||||
// ТипАдресногоЭлемента - Строка - вид адресного элемента региона.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - код региона из двух цифр. Пустая строка, если наименование определить не удалось.
|
||||
// Неопределено - если нет ни одной подсистемы адресного классификатора.
|
||||
//
|
||||
Функция КодРегиона(Знач ПолноеНаименование) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор");
|
||||
Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(ПолноеНаименование);
|
||||
Возврат Формат(Код, "ЧЦ=2; ЧН=; ЧВН=");
|
||||
// Строка - код региона из двух цифр; пустая строка, если код региона по наименованию определить не удалось.
|
||||
// Неопределено - если нет подсистемы адресного классификатора.
|
||||
//
|
||||
Функция КодРегиона(Знач ПолноеНаименование, НаименованиеАдресногоЭлемента = "", ТипАдресногоЭлемента = "") Экспорт
|
||||
|
||||
Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
МодульАдресныйКлассификатор = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификатор");
|
||||
|
||||
Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(ПолноеНаименование);
|
||||
|
||||
Если Не ЗначениеЗаполнено(Код) И ЗначениеЗаполнено(НаименованиеАдресногоЭлемента) Тогда
|
||||
Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеАдресногоЭлемента);
|
||||
Если Не ЗначениеЗаполнено(Код) И ЗначениеЗаполнено(ТипАдресногоЭлемента) Тогда
|
||||
Код = МодульАдресныйКлассификатор.КодРегионаПоНаименованию(НаименованиеАдресногоЭлемента + " " + ТипАдресногоЭлемента);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
Возврат Формат(Код, "ЧЦ=2; ЧН=; ЧВН=");
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет коды по структуре адреса.
|
||||
@@ -5379,4 +5391,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ВыявитьУстаревшиеАдреса");
|
||||
Методы.Вставить("ПроверитьАдресаНаСоответствиеАдресномуКлассификатору");
|
||||
Методы.Вставить("ПроверитьАдресаНаТипЗданияЛитер");
|
||||
|
||||
Методы.Вставить("ИсправитьУстаревшиеАдресаВФоне", Истина);
|
||||
Методы.Вставить("ИсправитьНекорректныеАдресаВФоне", Истина);
|
||||
Методы.Вставить("ИсправитьТипЗданияЛитерВАдресахВФоне", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -583,4 +583,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьКурсВалюты", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -183,10 +183,10 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Локализация
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Локализация
|
||||
|
||||
// Возвращает список разрешений для загрузки курсов валют из внешних ресурсов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
@@ -200,7 +200,15 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Конец Локализация
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПриЗагрузкеАктуальныхКурсов", Истина);
|
||||
// Локализация
|
||||
// Конец Локализация
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -234,8 +234,7 @@
|
||||
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных.
|
||||
Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт
|
||||
|
||||
Если ОбщегоНазначения.ПодсистемаСуществует("ТехнологияСервиса.ПоставляемыеДанные") Тогда
|
||||
// Создаем связи между разделенными и неразделенными валютами, копируем курсы.
|
||||
Если ОбщегоНазначения.РазделениеВключено() Тогда
|
||||
ОбновитьКурсыВалют();
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
@@ -1321,23 +1321,8 @@
|
||||
Результат = Новый Массив;
|
||||
Для Каждого Вложение Из КоллекцияВложений Цикл
|
||||
ОписаниеВложения = ОписаниеВложения();
|
||||
Если ТипЗнч(КоллекцияВложений) = Тип("СписокЗначений") Тогда
|
||||
ОписаниеВложения.Представление = Вложение.Представление;
|
||||
ДвоичныеДанные = Неопределено;
|
||||
Если ТипЗнч(Вложение.Значение) = Тип("ДвоичныеДанные") Тогда
|
||||
ДвоичныеДанные = Вложение.Значение;
|
||||
Иначе
|
||||
Если ЭтоАдресВременногоХранилища(Вложение.Значение) Тогда
|
||||
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.Значение);
|
||||
Иначе
|
||||
ПутьКФайлу = Вложение.Значение;
|
||||
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Иначе // ТипЗнч(Параметры.Вложения) = "массив структур"
|
||||
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище);
|
||||
ЗаполнитьЗначенияСвойств(ОписаниеВложения, Вложение, , "АдресВоВременномХранилище");
|
||||
КонецЕсли;
|
||||
ДвоичныеДанные = ПолучитьИзВременногоХранилища(Вложение.АдресВоВременномХранилище);
|
||||
ЗаполнитьЗначенияСвойств(ОписаниеВложения, Вложение, , "АдресВоВременномХранилище");
|
||||
ОписаниеВложения.АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый УникальныйИдентификатор);
|
||||
Результат.Добавить(ОписаниеВложения);
|
||||
КонецЦикла;
|
||||
@@ -2913,4 +2898,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ПолучениеСтатусовЭлектронныхПисем", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2469,4 +2469,14 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьПутьТомаLinux");
|
||||
Методы.Вставить("ЗаполнитьНастройкиХраненияФайлов");
|
||||
Методы.Вставить("УстановитьСпособФормированияПутиТома");
|
||||
Методы.Вставить("ПроверкаСсылокНаНесуществующиеФайлыВТоме");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4549,7 +4549,7 @@
|
||||
Исключение
|
||||
ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(
|
||||
НСтр("ru = 'Работа с файлами.Ошибка установки времени изменения'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
"Ошибка", ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
КонецПроцедуры
|
||||
@@ -9649,6 +9649,20 @@
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
БезопасноеРасширение = РасширениеДляИзвлеченияТекстаКорректное(Расширение);
|
||||
|
||||
Если Не БезопасноеРасширение Тогда
|
||||
Результат.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
|
||||
Результат.ТекстХранилище = Новый ХранилищеЗначения("");
|
||||
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииИзвлеченияТекста(),
|
||||
УровеньЖурналаРегистрации.Предупреждение,,,
|
||||
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку
|
||||
(НСтр("ru = 'Попытка извлечения текста из файла с недопустимым расширением: %1'"), Расширение));
|
||||
|
||||
Возврат Результат;
|
||||
КонецЕсли;
|
||||
|
||||
// Текст извлекается сразу, а не в регламентном задании.
|
||||
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение);
|
||||
ДвоичныеДанные.Записать(ИмяВременногоФайла);
|
||||
@@ -9656,7 +9670,7 @@
|
||||
Попытка
|
||||
УдалитьФайлы(ИмяВременногоФайла);
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Извлечение текста'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииИзвлеченияТекста(),
|
||||
УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
@@ -9664,6 +9678,22 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция РасширениеДляИзвлеченияТекстаКорректное(Расширение)
|
||||
|
||||
Если Расширение = Неопределено Или ПустаяСтрока(Расширение) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
НедопустимыеСимволы = ОбщегоНазначенияКлиентСервер.НайтиНедопустимыеСимволыВИмениФайла(Расширение);
|
||||
Если НедопустимыеСимволы.Количество() > 0
|
||||
Или СтрДлина(Расширение) > 20 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Истина;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИзвлечьТекстИзФайлаНаДиске(Знач ИмяФайла, Знач Кодировка = Неопределено) Экспорт
|
||||
|
||||
ИзвлеченныйТекст = "";
|
||||
@@ -9739,7 +9769,7 @@
|
||||
Попытка
|
||||
УдалитьФайлы(ИмяВременногоФайла);
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(НСтр("ru = 'Файлы.Извлечение текста'", ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
ЗаписьЖурналаРегистрации(СобытиеЖурналаРегистрацииИзвлеченияТекста(),
|
||||
УровеньЖурналаРегистрации.Ошибка,,, ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
@@ -9815,6 +9845,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СобытиеЖурналаРегистрацииИзвлеченияТекста()
|
||||
|
||||
Возврат НСтр("ru = 'Файлы.Извлечение текста'", ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиПодписокНаСобытия
|
||||
@@ -10080,4 +10116,21 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("КоличествоВерсийСНеизвлеченнымТекстом", Истина);
|
||||
Методы.Вставить("СведенияОбОчищаемыхФайлах", Истина);
|
||||
Методы.Вставить("СоздатьСерверныйНачальныйОбразНаСервере", Истина);
|
||||
Методы.Вставить("СоздатьФайловыйНачальныйОбразНаСервере", Истина);
|
||||
Методы.Вставить("ОсвободитьЗахваченныеФайлыФон", Истина);
|
||||
Методы.Вставить("ИзвлечьТекстИзФайловНаСервере", Истина);
|
||||
Методы.Вставить("ОчиститьНенужныеФайлы", Истина);
|
||||
Методы.Вставить("РегламентнаяСинхронизацияФайловWebdav", Истина);
|
||||
Методы.Вставить("ОбновитьСписокЗапрещенныхРасширений");
|
||||
Методы.Вставить("ОбновитьСписокРасширенийТекстовыхФайлов");
|
||||
Методы.Вставить("ОбновитьСписокЗапрещенныхРасширенийВОбластиДанных");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -501,4 +501,11 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбработатьОчередьИзвлеченияТекста", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -5441,4 +5441,17 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановитьКоличествоМесяцевХраненияИсторииРассылкиОтчетов");
|
||||
Методы.Вставить("РезультатФормированияПорцииОтчетов", Истина);
|
||||
Методы.Вставить("ВыполнитьОчисткуИсторииРассылкиОтчетовВФоновомЗадании", Истина);
|
||||
Методы.Вставить("ВыполнитьРассылкиВФоновомЗадании", Истина);
|
||||
Методы.Вставить("ВыполнитьРассылкиSMSСПаролямиАрхивовРассылкиОтчетовВФоновомЗадании", Истина);
|
||||
Методы.Вставить("ОчиститьУстаревшиеЗаписиИсторииРассылкиОтчетов", Истина);
|
||||
Методы.Вставить("ВыполнитьРассылкуПоРасписанию", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -11,8 +11,17 @@
|
||||
Процедура ПриИзмененииХранитьИсториюРассылкиОтчетов() Экспорт
|
||||
|
||||
Если ПолучитьФункциональнуюОпцию("ХранитьИсториюРассылкиОтчетов") Тогда
|
||||
УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПолучениеСтатусовЭлектронныхПисем, Истина);
|
||||
УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОчисткаИсторииРассылкиОтчетов, Истина);
|
||||
// Каждый день; каждые 1 800 секунд
|
||||
Расписание = Новый РасписаниеРегламентногоЗадания;
|
||||
Расписание.ПериодПовтораДней = 1;
|
||||
Расписание.ПериодПовтораВТечениеДня = 1800;
|
||||
УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.ПолучениеСтатусовЭлектронныхПисем, Истина, Расписание);
|
||||
// Каждый день; с 2:00:00 один раз в день, завершать после 5:00:00
|
||||
Расписание = Новый РасписаниеРегламентногоЗадания;
|
||||
Расписание.ПериодПовтораДней = 1;
|
||||
Расписание.ВремяНачала = '00010101020000';
|
||||
Расписание.ВремяКонца = '00010101050000';
|
||||
УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОчисткаИсторииРассылкиОтчетов, Истина, Расписание);
|
||||
Иначе
|
||||
УстановитьИспользованиеРегламентногоЗадания(Метаданные.РегламентныеЗадания.ОчисткаИсторииРассылкиОтчетов, Ложь);
|
||||
КонецЕсли;
|
||||
@@ -96,7 +105,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УстановитьИспользованиеРегламентногоЗадания(МетаданныеЗадание, Использование)
|
||||
Процедура УстановитьИспользованиеРегламентногоЗадания(МетаданныеЗадание, Использование, Расписание = Неопределено)
|
||||
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
ПараметрыЗадания.Вставить("Метаданные", МетаданныеЗадание);
|
||||
@@ -108,6 +117,9 @@
|
||||
ПараметрыЗадания = Новый Структура;
|
||||
ПараметрыЗадания.Вставить("Использование", Использование);
|
||||
ПараметрыЗадания.Вставить("Метаданные", МетаданныеЗадание);
|
||||
Если Расписание <> Неопределено Тогда
|
||||
ПараметрыЗадания.Вставить("Расписание", Расписание);
|
||||
КонецЕсли;
|
||||
РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
|
||||
Иначе
|
||||
ПараметрыЗадания = Новый Структура("Использование", Использование);
|
||||
|
||||
@@ -679,7 +679,12 @@
|
||||
Иначе
|
||||
НаименованиеФоновогоЗадания = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Запуск вручную: %1'"), ПредставлениеРегламентногоЗадания(Задание));
|
||||
// Не используются длительные операции, т.к. делается вызов метода регламентного задания.
|
||||
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(Задание.Метаданные.ИмяМетода, Задание.Параметры, Строка(Задание.УникальныйИдентификатор), НаименованиеФоновогоЗадания);
|
||||
ИмяЗадания = Задание.Метаданные.Имя;
|
||||
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
|
||||
Метаданные.РегламентныеЗадания[ИмяЗадания].ИмяМетода,
|
||||
Задание.Параметры,
|
||||
Строка(Задание.УникальныйИдентификатор),
|
||||
НаименованиеФоновогоЗадания);
|
||||
ПараметрыВыполнения.ИдентификаторФоновогоЗадания = Строка(ФоновоеЗадание.УникальныйИдентификатор);
|
||||
ПараметрыВыполнения.МоментЗапуска = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ФоновоеЗадание.УникальныйИдентификатор).Начало;
|
||||
ПараметрыВыполнения.ЗапускВыполнен = Истина;
|
||||
@@ -1114,4 +1119,12 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("СформироватьТаблицуРегламентныхЗаданий", Истина);
|
||||
Методы.Вставить("ЗаполнитьТаблицуСвойствФоновыхЗаданийВФоне", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -76,6 +76,7 @@
|
||||
// - Соответствие из КлючИЗначение:
|
||||
// * Ключ - УникальныйИдентификатор - идентификатор пользователя ИБ.
|
||||
// * Значение - Массив из см. СерверныеОповещения.КлючСеанса
|
||||
// - Массив из Строка - если в массиве есть "*", тогда для всех сеансов пользователя.
|
||||
//
|
||||
// ОтправитьСразу - Булево - если Истина, попытаться сразу отправить сообщение
|
||||
// через систему взаимодействия перед добавлением в очередь.
|
||||
@@ -1757,7 +1758,8 @@
|
||||
Формат(ТекущийСеанс.НомерСеанса, "ЧГ="),
|
||||
Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")";
|
||||
|
||||
ФоновыеЗадания.Выполнить(ИмяМетодаЗаданияДоставкиСерверныхОповещенийСОтсрочкой(),,, НаименованиеЗадания);
|
||||
// Имя процедуры должно быть, как указано в функции ИмяМетодаЗаданияДоставкиСерверныхОповещенийСОтсрочкой.
|
||||
ФоновыеЗадания.Выполнить("СерверныеОповещения.ДоставкаСерверныхОповещенийСОтсрочкой",,, НаименованиеЗадания);
|
||||
|
||||
Запущено = Истина;
|
||||
|
||||
@@ -2903,4 +2905,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОтправкаСерверныхОповещенийКлиентам", Истина);
|
||||
Методы.Вставить("ДоставкаСерверныхОповещенийСОтсрочкой", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -189,6 +189,80 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.СервисКриптографииDSSСлужебный";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьВФоне";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Возврат ДлительныеОперации.ВыполнитьВФоне(ИмяПроцедуры, ПараметрыПроцедуры, ПараметрыВыполнения)";
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("ОбновитьКэшСертификатов");
|
||||
Методы.Вставить("АутентификацияПоСертификату", Истина);
|
||||
Методы.Вставить("АутентификацияПоЛогину", Истина);
|
||||
Методы.Вставить("Зашифровать", Истина);
|
||||
Методы.Вставить("СертификатыРасшифрования", Истина);
|
||||
Методы.Вставить("ХешированиеДанных", Истина);
|
||||
Методы.Вставить("СоздатьТранзакцию", Истина);
|
||||
Методы.Вставить("Расшифровать", Истина);
|
||||
Методы.Вставить("Подписать", Истина);
|
||||
Методы.Вставить("ПодписатьПакет", Истина);
|
||||
Методы.Вставить("УсовершенствоватьПодпись", Истина);
|
||||
Методы.Вставить("ВалидацияПинКодаСертификата", Истина);
|
||||
Методы.Вставить("ПолучитьДанныеСертификата", Истина);
|
||||
Методы.Вставить("ПолучитьСвойстваСертификата", Истина);
|
||||
Методы.Вставить("ОбновитьДанныеСертификатов", Истина);
|
||||
Методы.Вставить("СоздатьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("СписокЗапросовНаСертификат", Истина);
|
||||
Методы.Вставить("ПолучитьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("УдалитьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("УстановитьСертификат", Истина);
|
||||
Методы.Вставить("НазначитьОсновнымСертификат", Истина);
|
||||
Методы.Вставить("СменитьПинКодСертификата", Истина);
|
||||
Методы.Вставить("ПроверитьСертификат", Истина);
|
||||
Методы.Вставить("ПолучитьСведенияОПодписантах", Истина);
|
||||
Методы.Вставить("ПроверитьПодпись", Истина);
|
||||
Методы.Вставить("ОбновитьПолитикуПользователя", Истина);
|
||||
Методы.Вставить("ПолучитьОписаниеСервиса", Истина);
|
||||
Методы.Вставить("ВыполнитьЗапросКСервису", Истина);
|
||||
Методы.Вставить("НайтиСертификат", Истина);
|
||||
Методы.Вставить("СостояниеУчетнойЗаписи", Истина);
|
||||
Методы.Вставить("ПодготовитьТранзакцию", Истина);
|
||||
Методы.Вставить("ПолучитьЗаписиАудита", Истина);
|
||||
Методы.Вставить("ЗагрузитьДокумент", Истина);
|
||||
Методы.Вставить("ЗагрузитьПакетДокументов", Истина);
|
||||
Методы.Вставить("ИнформацияОДокументеПоИдентификатору", Истина);
|
||||
Методы.Вставить("ИнформацияОДокументеПоХешу", Истина);
|
||||
Методы.Вставить("ПолучитьОбработанныйДокумент", Истина);
|
||||
Методы.Вставить("ИзменитьИнформациюОДокументе", Истина);
|
||||
Методы.Вставить("ПривязатьДокумент", Истина);
|
||||
Методы.Вставить("ПолучитьИнформациюДокументаКонвертации", Истина);
|
||||
Методы.Вставить("УдалитьДокумент", Истина);
|
||||
Методы.Вставить("СоздатьЗакрытыйКлюч", Истина);
|
||||
Методы.Вставить("УстановитьПараметрЗакрытогоКлюча", Истина);
|
||||
Методы.Вставить("ПолучитьПараметрЗакрытогоКлюча", Истина);
|
||||
Методы.Вставить("ПодписатьАсинхронно", Истина);
|
||||
Методы.Вставить("ПолучитьОбработанныеДокументы", Истина);
|
||||
Методы.Вставить("ЗашифроватьАсинхронно", Истина);
|
||||
Методы.Вставить("РасшифроватьАсинхронно", Истина);
|
||||
Методы.Вставить("СертификатыРасшифрованияАсинхронно", Истина);
|
||||
Методы.Вставить("СведенияОбОперации", Истина);
|
||||
Методы.Вставить("ПолучитьТокенПоКодуАвторизации", Истина);
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("ОбщийМодуль.СервисКриптографииDSSСлужебный", Методы);
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Методы.Вставить("ОбменССерверомАктивироватьУчетнуюЗапись", Истина);
|
||||
Методы.Вставить("ОбменССерверомАктивироватьКлючПриложенияУчетнойЗаписи", Истина);
|
||||
Методы.Вставить("ОбменССерверомОтправитьКодАктивацииКлюча", Истина);
|
||||
Методы.Вставить("ПолучитьТикетИнтернетПоддержкиПользователя", Истина);
|
||||
Методы.Вставить("ОтправитьЗаявлениеНаПортал", Истина);
|
||||
Методы.Вставить("ОбменССерверомСписокСерверовОблачнойПодписи", Истина);
|
||||
Настройки.ИсключенияКогдаУказанныйМетодНеВызывается.Вставить("Обработка.УправлениеПодключениемDSS", Методы);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ПоставляемыеДанные
|
||||
@@ -7468,4 +7542,62 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ОбновитьКэшСертификатов");
|
||||
Методы.Вставить("АутентификацияПоСертификату", Истина);
|
||||
Методы.Вставить("АутентификацияПоЛогину", Истина);
|
||||
Методы.Вставить("Зашифровать", Истина);
|
||||
Методы.Вставить("СертификатыРасшифрования", Истина);
|
||||
Методы.Вставить("ХешированиеДанных", Истина);
|
||||
Методы.Вставить("СоздатьТранзакцию", Истина);
|
||||
Методы.Вставить("Расшифровать", Истина);
|
||||
Методы.Вставить("Подписать", Истина);
|
||||
Методы.Вставить("ПодписатьПакет", Истина);
|
||||
Методы.Вставить("УсовершенствоватьПодпись", Истина);
|
||||
Методы.Вставить("ВалидацияПинКодаСертификата", Истина);
|
||||
Методы.Вставить("ПолучитьДанныеСертификата", Истина);
|
||||
Методы.Вставить("ПолучитьСвойстваСертификата", Истина);
|
||||
Методы.Вставить("ОбновитьДанныеСертификатов", Истина);
|
||||
Методы.Вставить("СоздатьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("СписокЗапросовНаСертификат", Истина);
|
||||
Методы.Вставить("ПолучитьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("УдалитьЗапросНаСертификат", Истина);
|
||||
Методы.Вставить("УстановитьСертификат", Истина);
|
||||
Методы.Вставить("НазначитьОсновнымСертификат", Истина);
|
||||
Методы.Вставить("СменитьПинКодСертификата", Истина);
|
||||
Методы.Вставить("ПроверитьСертификат", Истина);
|
||||
Методы.Вставить("ПолучитьСведенияОПодписантах", Истина);
|
||||
Методы.Вставить("ПроверитьПодпись", Истина);
|
||||
Методы.Вставить("ОбновитьПолитикуПользователя", Истина);
|
||||
Методы.Вставить("ПолучитьОписаниеСервиса", Истина);
|
||||
Методы.Вставить("ВыполнитьЗапросКСервису", Истина);
|
||||
Методы.Вставить("НайтиСертификат", Истина);
|
||||
Методы.Вставить("СостояниеУчетнойЗаписи", Истина);
|
||||
Методы.Вставить("ПодготовитьТранзакцию", Истина);
|
||||
Методы.Вставить("ПолучитьЗаписиАудита", Истина);
|
||||
Методы.Вставить("ЗагрузитьДокумент", Истина);
|
||||
Методы.Вставить("ЗагрузитьПакетДокументов", Истина);
|
||||
Методы.Вставить("ИнформацияОДокументеПоИдентификатору", Истина);
|
||||
Методы.Вставить("ИнформацияОДокументеПоХешу", Истина);
|
||||
Методы.Вставить("ПолучитьОбработанныйДокумент", Истина);
|
||||
Методы.Вставить("ИзменитьИнформациюОДокументе", Истина);
|
||||
Методы.Вставить("ПривязатьДокумент", Истина);
|
||||
Методы.Вставить("ПолучитьИнформациюДокументаКонвертации", Истина);
|
||||
Методы.Вставить("УдалитьДокумент", Истина);
|
||||
Методы.Вставить("СоздатьЗакрытыйКлюч", Истина);
|
||||
Методы.Вставить("УстановитьПараметрЗакрытогоКлюча", Истина);
|
||||
Методы.Вставить("ПолучитьПараметрЗакрытогоКлюча", Истина);
|
||||
Методы.Вставить("ПодписатьАсинхронно", Истина);
|
||||
Методы.Вставить("ПолучитьОбработанныеДокументы", Истина);
|
||||
Методы.Вставить("ЗашифроватьАсинхронно", Истина);
|
||||
Методы.Вставить("РасшифроватьАсинхронно", Истина);
|
||||
Методы.Вставить("СертификатыРасшифрованияАсинхронно", Истина);
|
||||
Методы.Вставить("СведенияОбОперации", Истина);
|
||||
Методы.Вставить("ПолучитьТокенПоКодуАвторизации", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2380,5 +2380,14 @@
|
||||
Возврат СтрСоединить(RestЗапрос, Символы.ПС);
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановитьПараметрСеансаПараметрыАвторизацииВСервисеМобильнойПодписи");
|
||||
Методы.Вставить("ОтправитьНаПодписание", Истина);
|
||||
Методы.Вставить("ПолучениеРезультатовИзСервисаМобильнойПодписи", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -943,4 +943,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ДанныеСклонения", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -754,9 +754,9 @@
|
||||
Иначе
|
||||
ТекстСообщения = ТекстСообщения + НСтр("ru = '%1
|
||||
|Для того чтобы разрешить работу пользователей, воспользуйтесь консолью кластера серверов или запустите ""1С:Предприятие"" с параметрами:
|
||||
|ENTERPRISE %2 /C%3 /UC%4'");
|
||||
|ENTERPRISE %2 /C %3 /UC %4'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, СоединенияИБКлиентСервер.ТекстДляАдминистратора(),
|
||||
СтрокаПутиКИнформационнойБазе, ИмяПараметра, НСтр("ru = '<код разрешения>'"));
|
||||
СтрокаПутиКИнформационнойБазе, ИмяПараметра, "КодРазрешения");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ТекстСообщения;
|
||||
|
||||
@@ -403,23 +403,25 @@
|
||||
И ТекущийРежим.Параметр = СерверныеОповещенияКлиент.КлючСеанса() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВремяНачалаБлокировки = ТекущийРежим.Начало;
|
||||
ВремяОкончанияБлокировки = ТекущийРежим.Конец;
|
||||
|
||||
// ИнтервалЗакрытьСЗапросом и ИнтервалПрекратить имеют отрицательное значение,
|
||||
// поэтому, когда идет сравнение этих параметров с разницей (ВремяНачалаБлокировки - ТекущийМомент),
|
||||
// то используется "<=", так как данная разница постоянно уменьшается.
|
||||
ИнтервалПредупреждения = ТекущийРежим.ИнтервалОжиданияЗавершенияРаботыПользователей;
|
||||
ИнтервалЗакрытьСЗапросом = ИнтервалПредупреждения / 3;
|
||||
ИнтервалПрекратитьВМоделиСервиса = 60; // За минуту до начала блокировки.
|
||||
ИнтервалПрекратить = 0; // В момент установки блокировки.
|
||||
ТекущийМомент = ТекущийРежим.ТекущаяДатаСеанса;
|
||||
ТекущийМомент = ТекущийРежим.ТекущаяДатаСеанса;
|
||||
ВремяОкончанияБлокировки = ТекущийРежим.Конец;
|
||||
|
||||
Если ВремяОкончанияБлокировки <> '00010101' И ТекущийМомент > ВремяОкончанияБлокировки Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
РазделениеВключено = ОбщегоНазначенияКлиент.РазделениеВключено();
|
||||
|
||||
ВремяНачалаБлокировки = ТекущийРежим.Начало;
|
||||
ИнтервалПредупреждения = ТекущийРежим.ИнтервалОжиданияЗавершенияРаботыПользователей;
|
||||
|
||||
ИнтервалПрекратитьВМоделиСервиса = 60; // За минуту до начала блокировки.
|
||||
ИнтервалПрекратить = 0; // В момент установки блокировки.
|
||||
ИнтервалЗакрытьСЗапросом = 60 + ?(РазделениеВключено, ИнтервалПрекратитьВМоделиСервиса, ИнтервалПрекратить);
|
||||
ИнтервалПредупреждения = ?(ИнтервалПредупреждения - 60 > ИнтервалЗакрытьСЗапросом,
|
||||
ИнтервалПредупреждения, ИнтервалЗакрытьСЗапросом + 60);
|
||||
|
||||
ДатаВремениНачалаБлокировки = Формат(ВремяНачалаБлокировки, "ДЛФ=DD");
|
||||
ВремяВремениНачалаБлокировки = Формат(ВремяНачалаБлокировки, "ДЛФ=T");
|
||||
|
||||
@@ -428,7 +430,6 @@
|
||||
|%3'");
|
||||
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон, ДатаВремениНачалаБлокировки, ВремяВремениНачалаБлокировки, ТекстСообщения);
|
||||
|
||||
РазделениеВключено = ОбщегоНазначенияКлиент.РазделениеВключено();
|
||||
Если Не РазделениеВключено
|
||||
И (Не ЗначениеЗаполнено(ВремяНачалаБлокировки) Или ВремяНачалаБлокировки - ТекущийМомент < ИнтервалПрекратить) Тогда
|
||||
|
||||
@@ -677,18 +678,21 @@
|
||||
ПараметрыИнформирования.ОповещениеПоказано = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПараметрыИнформирования.ПоказатьПредупреждениеИлиВопрос Тогда
|
||||
Если ПараметрыИнформирования.ПредупреждениеПоказано Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПоказатьПредупреждение(, ТекстСообщения, 30);
|
||||
|
||||
ПараметрыИнформирования.ПредупреждениеПоказано = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращаемое значение:
|
||||
// Структура:
|
||||
// * ОповещениеПоказано - Булево
|
||||
// * ПоказатьПредупреждениеИлиВопрос - Булево
|
||||
// * ПредупреждениеПоказано - Булево
|
||||
// * ВопросПоказан - Булево
|
||||
//
|
||||
Функция ПараметрыИнформирования(ВремяНачалаБлокировки)
|
||||
|
||||
@@ -697,20 +701,12 @@
|
||||
Если Свойства = Неопределено Или Свойства.ВремяНачалаБлокировки <> ВремяНачалаБлокировки Тогда
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("ОповещениеПоказано", Ложь);
|
||||
Свойства.Вставить("ПоказатьПредупреждениеИлиВопрос", Ложь);
|
||||
Свойства.Вставить("ДатаПоследнегоПредупрежденияИлиВопроса", '00010101');
|
||||
Свойства.Вставить("ПредупреждениеПоказано", Ложь);
|
||||
Свойства.Вставить("ВопросПоказан", Ложь);
|
||||
Свойства.Вставить("ВремяНачалаБлокировки", ВремяНачалаБлокировки);
|
||||
ПараметрыПриложения.Вставить(ИмяПараметра, Свойства);
|
||||
КонецЕсли;
|
||||
|
||||
ДатаСеанса = ОбщегоНазначенияКлиент.ДатаСеанса();
|
||||
Если Свойства.ДатаПоследнегоПредупрежденияИлиВопроса + 50 < ДатаСеанса Тогда
|
||||
Свойства.ДатаПоследнегоПредупрежденияИлиВопроса = ДатаСеанса;
|
||||
Свойства.ПоказатьПредупреждениеИлиВопрос = Истина;
|
||||
Иначе
|
||||
Свойства.ПоказатьПредупреждениеИлиВопрос = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Свойства;
|
||||
|
||||
КонецФункции
|
||||
@@ -739,7 +735,7 @@
|
||||
ПараметрыИнформирования.ОповещениеПоказано = Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Если Не ПараметрыИнформирования.ПоказатьПредупреждениеИлиВопрос Тогда
|
||||
Если ПараметрыИнформирования.ВопросПоказан Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -749,6 +745,8 @@
|
||||
ОписаниеОповещения = Новый ОписаниеОповещения("ЗадатьВопросПриЗавершенииРаботыЗавершение", ЭтотОбъект);
|
||||
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Да);
|
||||
|
||||
ПараметрыИнформирования.ВопросПоказан = Истина;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗадатьВопросПриЗавершенииРаботыЗавершение(Ответ, ДополнительныеПараметры) Экспорт
|
||||
|
||||
@@ -1160,4 +1160,18 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Параметры:
|
||||
// ИмяМодуля - Строка
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированноеСоответствие, Неопределено
|
||||
//
|
||||
Функция МетодыРазрешенныеДляВызоваКакПроизвольныйКод(ИмяМодуля) Экспорт
|
||||
|
||||
Модуль = ОбщегоНазначения.ОбщийМодуль(ИмяМодуля);
|
||||
|
||||
Возврат СтандартныеПодсистемыСервер.МетодыРазрешенныеДляВызоваКакПроизвольныйКод(Модуль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
@@ -610,6 +610,89 @@
|
||||
|
||||
#Область ДляВызоваИзДругихПодсистем
|
||||
|
||||
// Возвращает настройки, используемые при статическом поиске имен процедур и функций,
|
||||
// которые указываются в параметрах процедур и функций, описанных в комментарии
|
||||
// к процедуре ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод.
|
||||
// Используется в отчете ПроверкаВнедренийБСП.erf, чтобы учесть случаи, когда
|
||||
// подсистемы допускают передачу полных имен обработчиков в качестве параметров,
|
||||
// например, обработчиков установки параметров сеанса, обработчиков обновления
|
||||
// информационной базы и др.
|
||||
// Смотри также ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.Настройки
|
||||
//
|
||||
Функция НастройкиПроверкиМетодовВызываемыхКакПроизвольныйКод() Экспорт
|
||||
|
||||
ОписаниеОбработчиков = Новый ТаблицаЗначений;
|
||||
ОписаниеОбработчиков.Колонки.Добавить("ИменаПроцедур", Новый ОписаниеТипов("Соответствие"));
|
||||
ОписаниеОбработчиков.Колонки.Добавить("ЗаголовокОшибки", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
ИсключенияПроверки = Новый ТаблицаЗначений;
|
||||
ИсключенияПроверки.Колонки.Добавить("ПолноеИмяОбъекта", Новый ОписаниеТипов("Строка"));
|
||||
ИсключенияПроверки.Колонки.Добавить("ИмяПроцедуры", Новый ОписаниеТипов("Строка"));
|
||||
ИсключенияПроверки.Колонки.Добавить("ФрагментСодержания", Новый ОписаниеТипов("Строка"));
|
||||
|
||||
Настройки = Новый Структура;
|
||||
Настройки.Вставить("ОписаниеОбработчиков", ОписаниеОбработчиков);
|
||||
Настройки.Вставить("ИсключенияПроверки", ИсключенияПроверки);
|
||||
Настройки.Вставить("ОшибкаКогдаУказанныйМетодНеВызывается", Истина);
|
||||
Настройки.Вставить("ИсключенияКогдаУказанныйМетодНеВызывается", Новый Соответствие);
|
||||
|
||||
ИнтеграцияПодсистемБСП.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
Попытка
|
||||
ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ПроцедураУказана = СтрНайти(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
"(" + "ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод" + ")") = 0;
|
||||
Если ПроцедураУказана Тогда
|
||||
ВызватьИсключение;
|
||||
КонецЕсли;
|
||||
КонецПопытки;
|
||||
|
||||
Возврат Настройки;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет имена процедур и функций модуля, которые можно вызывать как по имени,
|
||||
// как произвольный код, или запускать в фоне.
|
||||
// Процедуры и функции могут вызываться по имени, как произвольный код, из
|
||||
// • ОбщегоНазначения.ВыполнитьМетодКонфигурации,
|
||||
// • ОбщегоНазначения.ВыполнитьМетодОбъекта.
|
||||
// Процедуры и функции могут запускаться в фоне из
|
||||
// • ДлительныеОперации.ВыполнитьВФоне,
|
||||
// • ДлительныеОперации.ВыполнитьФункцию,
|
||||
// • ДлительныеОперации.ВыполнитьПроцедуру,
|
||||
// • ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков,
|
||||
// • ДлительныеОперации.ВыполнитьПроцедуруВНесколькоПотоков,
|
||||
// • ФоновыеЗадания.Выполнить,
|
||||
// • РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных,
|
||||
// • РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеБезРасширений.
|
||||
//
|
||||
// Параметры:
|
||||
// Методы - Соответствие:
|
||||
// * Ключ - Строка - имя процедуры или функции в модуле.
|
||||
// * Значение - Неопределено, Булево - если Истина, тогда можно запускать в фоне.
|
||||
//
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ВключитьКонстантуДоставлятьСерверныеОповещенияБезСистемыВзаимодействия");
|
||||
Методы.Вставить("ПометитьЗаписиКэшаВерсийНеактуальными");
|
||||
Методы.Вставить("УстановитьРасписаниеЗапускаСервисовИнтеграции");
|
||||
Методы.Вставить("ВключитьКонстантуРазрешитьДоступКИнтернетСервисам");
|
||||
Методы.Вставить("УстановитьКонстантуНеИспользоватьРазделениеПоОбластямДанных");
|
||||
Методы.Вставить("СравнитьТаблицы", Истина);
|
||||
Методы.Вставить("ОбновитьДатуПоследнегоИспользованияВерсииРасширений", Истина);
|
||||
Методы.Вставить("ДобавитьНовуюВерсиюРасширений", Истина);
|
||||
Методы.Вставить("УстановитьПоследнююВерсиюРасширений", Истина);
|
||||
Методы.Вставить("ЗаполнитьВсеПараметрыРаботыРасширенийФоновоеЗадание", Истина);
|
||||
Методы.Вставить("ЗаполнениеПараметровРаботыРасширений", Истина);
|
||||
Методы.Вставить("УдалениеУстаревшихПараметровРаботыВерсийРасширенийОбработчикЗадания", Истина);
|
||||
Методы.Вставить("ОбработкаСервисовИнтеграции", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Добавляет показатель производительности в обработчиках события
|
||||
// ПриДобавленииПараметровРаботыКлиентаПриЗапуске, ПриДобавленииПараметровРаботыКлиента.
|
||||
//
|
||||
@@ -2606,6 +2689,56 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// См. ОбщегоНазначенияПереопределяемый.ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод.
|
||||
Процедура ПриНастройкеПроверкиМетодовВызываемыхКакПроизвольныйКод(Настройки) Экспорт
|
||||
|
||||
// Обработчики установки параметров сеанса.
|
||||
ИменаПроцедур = Новый Соответствие;
|
||||
|
||||
Обработчики = Новый Соответствие;
|
||||
ИнтеграцияПодсистемБСП.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики);
|
||||
Для Каждого КлючИЗначение Из Обработчики Цикл
|
||||
ИменаПроцедур.Вставить(КлючИЗначение.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Обработчики = Новый Соответствие;
|
||||
ОбщегоНазначенияПереопределяемый.ПриДобавленииОбработчиковУстановкиПараметровСеанса(Обработчики);
|
||||
Для Каждого КлючИЗначение Из Обработчики Цикл
|
||||
ИменаПроцедур.Вставить(КлючИЗначение.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить();
|
||||
ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур;
|
||||
ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик установки параметров сеанса ""%1"".'");
|
||||
|
||||
// Обработчики регламентных заданий.
|
||||
ИменаПроцедур = Новый Соответствие;
|
||||
Для Каждого РегламентноеЗадание Из Метаданные.РегламентныеЗадания Цикл
|
||||
ИменаПроцедур.Вставить(РегламентноеЗадание.ИмяМетода, Истина);
|
||||
КонецЦикла;
|
||||
|
||||
ОписаниеОбработчика = Настройки.ОписаниеОбработчиков.Добавить();
|
||||
ОписаниеОбработчика.ИменаПроцедур = ИменаПроцедур;
|
||||
ОписаниеОбработчика.ЗаголовокОшибки = НСтр("ru = 'Обработчик регламентного задания (ручной запуск) ""%1"".'");
|
||||
|
||||
// Исключения.
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьФункциюКонфигурации";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Возврат ВыполнитьМетодКонфигурации(ИмяМетода, Параметры, Истина)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.ОбщегоНазначения";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВызватьФункциюОбъекта";
|
||||
ИсключениеПроверки.ФрагментСодержания = "Возврат ВыполнитьМетодОбъекта(Объект, ИмяМетода, Параметры, Истина)";
|
||||
|
||||
ИсключениеПроверки = Настройки.ИсключенияПроверки.Добавить();
|
||||
ИсключениеПроверки.ПолноеИмяОбъекта = "ОбщийМодуль.СтандартныеПодсистемыСервер";
|
||||
ИсключениеПроверки.ИмяПроцедуры = "ВыполнитьОбработчикиУстановкиПараметровСеанса";
|
||||
ИсключениеПроверки.ФрагментСодержания = "ОбщегоНазначения.ВыполнитьМетодКонфигурации(Обработчик, ПараметрыОбработчика)";
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Формирует текст для вывода пользователю при необходимости динамического обновления.
|
||||
//
|
||||
// Параметры:
|
||||
@@ -5971,6 +6104,179 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// Параметры:
|
||||
// ПолноеИмяМетода - Строка
|
||||
// ВФоне - Булево
|
||||
// Объект - Произвольный
|
||||
// Текст - Произвольный - если указан не Null, тогда установить текст ошибки и не вызывать исключение.
|
||||
//
|
||||
Процедура ПроверитьМетодДляВызоваКакПроизвольныйКод(ПолноеИмяМетода, ВФоне = Ложь, Объект = Неопределено, Текст = Null) Экспорт
|
||||
|
||||
Если Не ПроверятьВызовыМетодовКакПроизвольныйКод() И Текст = Null Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект <> Неопределено Тогда
|
||||
Результат = МетодыРазрешенныеДляВызоваКакПроизвольныйКод(Объект);
|
||||
ИмяМетода = ПолноеИмяМетода;
|
||||
Иначе
|
||||
ЧастиИмени = СтрРазделить(ПолноеИмяМетода, ".", Истина);
|
||||
|
||||
Если ЧастиИмени.Количество() = 3 Тогда
|
||||
ИмяМодуля = ЧастиИмени[0] + "." + ЧастиИмени[1];
|
||||
ИмяМетода = ЧастиИмени[2];
|
||||
Иначе
|
||||
ИмяМодуля = ЧастиИмени[0];
|
||||
ИмяМетода = ЧастиИмени[1];
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
Результат = СтандартныеПодсистемыПовтИсп.МетодыРазрешенныеДляВызоваКакПроизвольныйКод(ИмяМодуля);
|
||||
Исключение
|
||||
Если Текст <> Null И ОбщегоНазначенияКлиентСервер.ЭтоИсключениеСКодомОшибки(ИнформацияОбОшибке(),
|
||||
"СтандартныеПодсистемы.БазоваяФункциональность.ЭтоОшибкаПолученияОбщегоМодуляПоИмени
|
||||
|СтандартныеПодсистемы.БазоваяФункциональность.ЭтоОшибкаПолученияМодуляМенеджераПоИмени") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(Результат) = Тип("ФиксированноеСоответствие") Тогда
|
||||
ИспользованиеМетода = Результат.Получить(ИмяМетода);
|
||||
Если ВФоне И ИспользованиеМетода = Истина
|
||||
Или Не ВФоне И ИспользованиеМетода <> Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
ПроцедураОпределена = Истина;
|
||||
Иначе
|
||||
ПроцедураОпределена = Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ВызовЗапрещен = Текст <> Null Или ЗапрещенВызовЛюбыхМетодовКакПроизвольныйКод(ПроцедураОпределена);
|
||||
|
||||
Если Не ВызовЗапрещен И Не ПроцедураОпределена Тогда
|
||||
УровеньЖурнала = УровеньРегистрацииВызововНеуказанныхМетодовКакПроизвольныйКод();
|
||||
Если УровеньЖурнала = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
УровеньЖурнала = УровеньЖурналаРегистрации.Ошибка;
|
||||
КонецЕсли;
|
||||
|
||||
Если Объект <> Неопределено Тогда
|
||||
ИмяМодуля = Объект.Метаданные().ПолноеИмя() + "." + "МодульОбъекта";
|
||||
КонецЕсли;
|
||||
|
||||
Если ВФоне И ПроцедураОпределена Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Метод ""%1"" не разрешен для запуска в фоне в процедуре ""%2"" модуля ""%3"".'"),
|
||||
ИмяМетода, "ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод", ИмяМодуля);
|
||||
ИначеЕсли Не ВФоне И ПроцедураОпределена Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Метод ""%1"" не разрешен для вызова, как произвольный код, в процедуре ""%2"" модуля ""%3"".'"),
|
||||
ИмяМетода, "ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод", ИмяМодуля);
|
||||
ИначеЕсли ВФоне И Не ПроцедураОпределена Тогда
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Метод ""%1"" не разрешен для запуска в фоне в процедуре ""%2"" модуля ""%3"" (процедура не определена).'"),
|
||||
ИмяМетода, "ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод", ИмяМодуля);
|
||||
Иначе
|
||||
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Метод ""%1"" не разрешен для вызова, как произвольный код, в процедуре ""%2"" модуля ""%3"" (процедура не определена).'"),
|
||||
ИмяМетода, "ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод", ИмяМодуля);
|
||||
КонецЕсли;
|
||||
|
||||
Если Текст <> Null Тогда
|
||||
Текст = ТекстОшибки;
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Если ВызовЗапрещен Тогда
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ВызватьИсключение(ТекстОшибки, КатегорияОшибки.ОшибкаКонфигурации);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
КонецПопытки;
|
||||
|
||||
ИмяСобытия = НСтр("ru = 'Безопасность.Метод не разрешен для вызова, как произвольный код'",
|
||||
ОбщегоНазначения.КодОсновногоЯзыка());
|
||||
|
||||
ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурнала,, ИмяМодуля + "." + ИмяМетода,
|
||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Параметры:
|
||||
// Модуль - Произвольный - ссылка на общий модуль, модуль менеджера, объект.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированноеСоответствие, Неопределено
|
||||
//
|
||||
Функция МетодыРазрешенныеДляВызоваКакПроизвольныйКод(Модуль) Экспорт
|
||||
|
||||
Методы = Новый Соответствие;
|
||||
Попытка
|
||||
Модуль.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы);
|
||||
Исключение
|
||||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||||
ПроцедураНеУказана = СтрНайти(ОбработкаОшибок.КраткоеПредставлениеОшибки(ИнформацияОбОшибке),
|
||||
"(" + "ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод" + ")") > 0;
|
||||
Если ПроцедураНеУказана Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
Для Каждого КлючИЗначение Из Методы Цикл
|
||||
Результат.Вставить(КлючИЗначение.Ключ, КлючИЗначение.Значение = Истина);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Новый ФиксированноеСоответствие(Результат);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Включает проверку вызовов методов в режиме 1С:Предприятие и в отчете ПроверкаВнедренияБСП.
|
||||
// Можно переопределить с помощью расширения для обнаружения мест, требующих настройки.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ПроверятьВызовыМетодовКакПроизвольныйКод() Экспорт
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
// Позволяет блокировать вызов методов, которые не разрешены для вызова, как произвольный код.
|
||||
// Требуется указать Истина в функции ПроверятьВызовыМетодовКакПроизвольныйКод.
|
||||
//
|
||||
// Параметры:
|
||||
// ПроцедураОпределена - Булево - если Ложь, тогда в модуле еще не определена
|
||||
// процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод, что позволяет
|
||||
// включить запрет только тогда, когда процедура определена в модуле, а не безусловно.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево
|
||||
//
|
||||
Функция ЗапрещенВызовЛюбыхМетодовКакПроизвольныйКод(ПроцедураОпределена)
|
||||
Возврат Ложь;
|
||||
КонецФункции
|
||||
|
||||
// Возвращает уровень журнала регистрации, если требуется регистрировать вызываемые методы,
|
||||
// когда не определена процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод.
|
||||
// Можно переопределить с помощью расширения для обнаружения случаев (путем автоматизированного
|
||||
// тестирования), которые нельзя обнаружить статическим анализом кода с помощью
|
||||
// отчета ПроверкаВнедренияБСП.erf (смотри ПроверятьВызовыМетодовКакПроизвольныйКод).
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// УровеньЖурналаРегистрации, Неопределено
|
||||
//
|
||||
Функция УровеньРегистрацииВызововНеуказанныхМетодовКакПроизвольныйКод()
|
||||
Возврат УровеньЖурналаРегистрации.Ошибка;
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
@@ -389,4 +389,11 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("СформироватьСписокТекущихДелПользователя", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -1759,4 +1759,18 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ВключитьУдалениеПомеченныхОбъектов");
|
||||
Методы.Вставить("УстановитьРасписаниеУдаленияПомеченных");
|
||||
Методы.Вставить("ПомеченныеНаУдаление", Истина);
|
||||
Методы.Вставить("ВыполнитьОбработкуПричинНеудаления", Истина);
|
||||
Методы.Вставить("УдалитьПомеченныеОбъекты", Истина);
|
||||
Методы.Вставить("КонтрольУдаленияПомеченныхОбъектов", Истина);
|
||||
Методы.Вставить("УдалениеПомеченныхПоРасписанию", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -2784,12 +2784,6 @@
|
||||
|
||||
// Конец ТехнологияСервиса.ПользователиСервиса
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Требуется в файловой ИБ для предотвращения взаимоблокировок связанных с работой файловой СУБД,
|
||||
// в случаях, когда выполняется чтение с ограничением (RLS) в транзакции или перед записью
|
||||
// до срабатывания подписки на событие ПроверитьДоступПередЗаписью.
|
||||
@@ -2825,6 +2819,8 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Дополнение к процедуре ЗаполнитьНаборыЗначенийДоступа.
|
||||
|
||||
@@ -13188,8 +13188,9 @@
|
||||
Формат(ТекущийСеанс.НомерСеанса, "ЧГ="),
|
||||
Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")";
|
||||
|
||||
// Имя процедуры должно быть, как указано в функции ИмяМетодаЗаданияОбновленияДоступа.
|
||||
ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
|
||||
ИмяМетодаЗаданияОбновленияДоступа(), ПараметрыЗадания,, НаименованиеЗадания);
|
||||
Метаданные.РегламентныеЗадания.ОбновлениеДоступаНаУровнеЗаписей.ИмяМетода, ПараметрыЗадания,, НаименованиеЗадания);
|
||||
|
||||
Результат.ИдентификаторФоновогоЗадания = ФоновоеЗадание.УникальныйИдентификатор;
|
||||
|
||||
@@ -15764,7 +15765,9 @@
|
||||
СвободныйПоток = НовыйПоток();
|
||||
Параметры = Новый Массив;
|
||||
Параметры.Добавить(Контекст.ОписаниеОсновногоСеанса);
|
||||
СвободныйПоток.ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяМетодаПотокаОбновленияДоступа(), Параметры,,
|
||||
// Имя процедуры должно быть, как указано в функции ИмяМетодаПотокаОбновленияДоступа.
|
||||
СвободныйПоток.ФоновоеЗадание = ФоновыеЗадания.Выполнить(
|
||||
"УправлениеДоступомСлужебный.ВыполнитьОбновлениеДоступаСпискаВФоне", Параметры,,
|
||||
НСтр("ru = 'Управление доступом: Поток обновления доступа на уровне записей'",
|
||||
ОбщегоНазначения.КодОсновногоЯзыка()));
|
||||
СвободныйПоток.ИдентификаторПотока = СвободныйПоток.ФоновоеЗадание.УникальныйИдентификатор;
|
||||
@@ -24626,7 +24629,19 @@
|
||||
ИначеЕсли УточнениеСравнения.Ключ = "ПустаяСсылка" Тогда
|
||||
Если Значение = Перечисления.ДополнительныеЗначенияДоступа.ПустаяСсылкаЛюбогоТипа
|
||||
Или Значение.Пустая() Тогда
|
||||
ТекущийРезультат = УточнениеСравнения.Значение;
|
||||
ЗначенияОдногоТипа = Null;
|
||||
Если Условие.Узел = "ЗначениеРазрешено" Тогда
|
||||
Если Контекст.ЗначенияГруппыДоступа = Неопределено Тогда
|
||||
ЗначенияОдногоТипа = Неопределено;
|
||||
Иначе
|
||||
ЗначенияОдногоТипа = Контекст.ЗначенияГруппыДоступа.Получить(ТипЗнч(Значение));
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Если ЗначенияОдногоТипа = Неопределено Тогда
|
||||
ТекущийРезультат = "Пусто";
|
||||
Иначе
|
||||
ТекущийРезультат = УточнениеСравнения.Значение;
|
||||
КонецЕсли;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
ИначеЕсли УточнениеСравнения.Ключ = ТипЗнч(Значение) Тогда
|
||||
@@ -27850,7 +27865,11 @@
|
||||
ОбщегоНазначения.КодОсновногоЯзыка()),
|
||||
Формат(ТекущийСеанс.НомерСеанса, "ЧГ="),
|
||||
Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT"));
|
||||
ФоновоеЗадание = ФоновыеЗадания.Выполнить(ИмяПроцедуры, ПараметрыПроцедуры,, НаименованиеЗадания);
|
||||
// Имя процедуры должно быть, как указано
|
||||
// в функции ИмяПроцедурыЗаданияЗаписиНовойВерсииПараметровОграниченияДоступа.
|
||||
ФоновоеЗадание = ФоновыеЗадания.Выполнить(
|
||||
"УправлениеДоступомСлужебный.ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне",
|
||||
ПараметрыПроцедуры,, НаименованиеЗадания);
|
||||
ФоновоеЗадание = ФоновоеЗадание.ОжидатьЗавершенияВыполнения(60);
|
||||
Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
|
||||
ЗаголовокОшибки = НСтр("ru = 'Не удалось записать новую версию параметров ограничения доступа по причине:'");
|
||||
@@ -28535,7 +28554,7 @@
|
||||
|
||||
// Число нужно увеличивать при внесении изменений в состав параметров кэша
|
||||
// (в том числе при изменении версии шаблонов).
|
||||
Возврат "28.2" + ВерсияПеревода();
|
||||
Возврат "29.1" + ВерсияПеревода();
|
||||
|
||||
КонецФункции
|
||||
|
||||
@@ -47358,4 +47377,23 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("ОбновитьВспомогательныеДанныеПоИзменениямКонфигурации");
|
||||
Методы.Вставить("ОбновитьДанныеПрофиляОткрытиеВнешнихОтчетовИОбработок");
|
||||
Методы.Вставить("ЗаполнитьОбработчикиРазделенныхДанных");
|
||||
Методы.Вставить("ЗаписатьНовуюВерсиюПараметровОграниченияДоступаВФоне", Истина);
|
||||
Методы.Вставить("ОбновитьПрогрессВФоне", Истина);
|
||||
Методы.Вставить("ОбновлениеДоступаНаУровнеЗаписей", Истина);
|
||||
Методы.Вставить("ЗаполнениеДанныхДляОграниченияДоступаОбработчикЗадания", Истина);
|
||||
Методы.Вставить("ВключитьРегламентноеЗаданиеОбновленияДоступа", Истина);
|
||||
Методы.Вставить("ОтключитьРегламентноеЗаданиеОбновленияДоступа", Истина);
|
||||
Методы.Вставить("ЗаписатьПланированиеОбновленияПараметровОграниченияДоступа", Истина);
|
||||
Методы.Вставить("ОбновитьВспомогательныеДанныеГруппДоступа", Истина);
|
||||
Методы.Вставить("ВыполнитьОбновлениеДоступаСпискаВФоне", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -464,4 +464,14 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ОбновитьИспользованиеРегламентныхЗаданий");
|
||||
Методы.Вставить("ОбновлениеАгрегатовОбработчикЗадания", Истина);
|
||||
Методы.Вставить("ПерестроениеАгрегатовОбработчикЗадания", Истина);
|
||||
Методы.Вставить("УстановкаПериодаРассчитанныхИтоговОбработчикЗадания", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4572,9 +4572,11 @@
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
Иначе
|
||||
ОбъектКонтактнойИнформации.ИмяРеквизита = "КонтактнаяИнформацияПоле" + ОбъектКонтактнойИнформации.ИмяПредопределенногоВида;
|
||||
ИмяВида = ?(ЗначениеЗаполнено(ОбъектКонтактнойИнформации.ИмяПредопределенныхДанных),
|
||||
ОбъектКонтактнойИнформации.ИмяПредопределенныхДанных, ОбъектКонтактнойИнформации.ИмяПредопределенногоВида);
|
||||
ОбъектКонтактнойИнформации.ИмяРеквизита = "КонтактнаяИнформацияПоле" + ИмяВида;
|
||||
Если ЕстьПолеКомментарий Тогда
|
||||
ОбъектКонтактнойИнформации.ИмяРеквизитаКомментарий = "КомментарийКонтактнаяИнформацияПоле" + ОбъектКонтактнойИнформации.ИмяПредопределенногоВида;
|
||||
ОбъектКонтактнойИнформации.ИмяРеквизитаКомментарий = "КомментарийКонтактнаяИнформацияПоле" + ИмяВида;
|
||||
КонецЕсли;
|
||||
СозданныеРеквизиты.Удалить(СозданныйРеквизит);
|
||||
КонецЕсли;
|
||||
|
||||
@@ -925,6 +925,19 @@
|
||||
ТекстПредставления = РезультатЗакрытия.Представление;
|
||||
Комментарий = РезультатЗакрытия.Комментарий;
|
||||
|
||||
Если Форма.ИмяФормы = "Справочник.Пользователи.Форма.ФормаЭлемента" Тогда
|
||||
Оповещение = Новый ОписаниеОповещения("КонтактнаяИнформацияНачалоВыбораЗавершение",
|
||||
ДополнительныеПараметры.Форма);
|
||||
ТекущийРезультат = Новый Структура;
|
||||
ТекущийРезультат.Вставить("Элемент", Элемент);
|
||||
ТекущийРезультат.Вставить("НовоеЗначение", ТекстПредставления);
|
||||
ТекущийРезультат.Вставить("Отказ", Ложь);
|
||||
ВыполнитьОбработкуОповещения(Оповещение, ТекущийРезультат);
|
||||
Если ТекущийРезультат.Отказ Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Если ДанныеНаФорме.Свойство("ХранитьИсториюИзменений") И ДанныеНаФорме.ХранитьИсториюИзменений Тогда
|
||||
КонтактнаяИнформацияОписаниеДополнительныхРеквизитов = ДанныеЗаполнения.КонтактнаяИнформацияОписаниеДополнительныхРеквизитов;
|
||||
Отбор = Новый Структура("Вид", ДанныеНаФорме.Вид);
|
||||
|
||||
@@ -3274,4 +3274,17 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("УстановкаПараметровСеанса");
|
||||
Методы.Вставить("УстановитьЗначениеПризнакаИспользуется");
|
||||
Методы.Вставить("ОбновитьНастройкуДобавочногоНомераТелефона");
|
||||
Методы.Вставить("ОбновитьСуществующиеСтраныМира");
|
||||
Методы.Вставить("ПроверитьВидыКонтактнойИнформации");
|
||||
Методы.Вставить("ИсправитьВидыКонтактнойИнформацииВФоне", Истина);
|
||||
Методы.Вставить("ИсправлениеУстаревшихАдресов", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
@@ -4409,7 +4409,19 @@
|
||||
// Предполагается одна печатная форма, но для обратной совместимости принимается вся коллекция.
|
||||
Для Каждого ВременнаяПечатнаяФорма Из ВременнаяКоллекцияДляОднойПечатнойФормы Цикл
|
||||
|
||||
Если НЕ ВременнаяПечатнаяФорма.ОфисныеДокументы = Неопределено Тогда
|
||||
Если ТипЗнч(ВременнаяПечатнаяФорма.ОфисныеДокументы) = Тип("Соответствие") Тогда
|
||||
КоличествоФайлов = 0;
|
||||
|
||||
Для Каждого ОфисныйДокумент Из ВременнаяПечатнаяФорма.ОфисныеДокументы Цикл
|
||||
Если ЭтоАдресВременногоХранилища(ОфисныйДокумент.Ключ) Тогда
|
||||
КоличествоФайлов = КоличествоФайлов + 1;
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Если КоличествоФайлов = 0 Тогда
|
||||
ВременнаяПечатнаяФорма.ОфисныеДокументы = Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
ВременнаяПечатнаяФорма.ТабличныйДокумент = Новый ТабличныйДокумент;
|
||||
КонецЕсли;
|
||||
|
||||
@@ -8183,4 +8195,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// См. СтандартныеПодсистемыСервер.ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод
|
||||
Процедура ПриОпределенииМетодовРазрешенныхДляВызоваКакПроизвольныйКод(Методы) Экспорт
|
||||
|
||||
Методы.Вставить("ДобавитьРольРедактированиеПечатныхФормВПрофилиСБазовымиПравами");
|
||||
Методы.Вставить("СформироватьПечатныеФормыВФоне", Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
Loaded 100 of 204 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user