3_1_6_198

This commit is contained in:
Компания 1С committed 2022-04-19 15:04:00 +03:00
1 parent 5b5aa608ea
commit f54d3317c8
89 files changed
+1210 -1066

No files matched your search

@@ -1497,12 +1497,8 @@
КонецЕсли; КонецЕсли;
Если Не ТолькоПроверка Тогда Если Не ТолькоПроверка Тогда
Если ЕстьТекущиеИзменения Тогда Если Не ОбъектыРасширений И ЕстьТекущиеИзменения Тогда
Если Не ОбъектыРасширений Тогда СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
ИначеЕсли Справочники.ВерсииРасширений.РасширенияИзмененыДинамически() Тогда
СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияРасширенийПрограммы();
КонецЕсли;
КонецЕсли; КонецЕсли;
Если ЗначениеЗаполнено(СписокКритичныхИзменений) Тогда Если ЗначениеЗаполнено(СписокКритичныхИзменений) Тогда
ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(?(ОбъектыРасширений, ЖурналРегистрации.ДобавитьСообщениеДляЖурналаРегистрации(?(ОбъектыРасширений,
@@ -2009,6 +2005,14 @@
ОбъектыРасширений = ЭтоОбъектРасширений(Свойства.Ссылка); ОбъектыРасширений = ЭтоОбъектРасширений(Свойства.Ссылка);
Если ЭтоДубль Тогда
Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда
КлючОбъектаМетаданныхДубля = Новый ХранилищеЗначения(Неопределено);
Иначе
КлючОбъектаМетаданныхДубля = Неопределено;
КонецЕсли;
КонецЕсли;
Если НЕ Свойства.ПометкаУдаления Если НЕ Свойства.ПометкаУдаления
ИЛИ ЗначениеЗаполнено(Свойства.Родитель) ИЛИ ЗначениеЗаполнено(Свойства.Родитель)
ИЛИ Лев(Свойства.Наименование, 1) <> "?" ИЛИ Лев(Свойства.Наименование, 1) <> "?"
@@ -2022,7 +2026,8 @@
ИЛИ СтрНайти(Свойства.ПолноеИмя, "(") = 0 ИЛИ СтрНайти(Свойства.ПолноеИмя, "(") = 0
ИЛИ Свойства.ЗначениеПустойСсылки <> Неопределено ИЛИ Свойства.ЗначениеПустойСсылки <> Неопределено
ИЛИ Свойства.ИмяПредопределенныхДанных <> "" ИЛИ Свойства.ИмяПредопределенныхДанных <> ""
ИЛИ ЭтоДубль Тогда ИЛИ ЭтоДубль
И XMLСтрока(Свойства.КлючОбъектаМетаданных) <> XMLСтрока(КлючОбъектаМетаданныхДубля) Тогда
Если НЕ Свойства.ПометкаУдаления Или Лев(Свойства.ПолноеИмя, 1) <> "?" Тогда Если НЕ Свойства.ПометкаУдаления Или Лев(Свойства.ПолноеИмя, 1) <> "?" Тогда
ЕстьУдаленные = Истина; ЕстьУдаленные = Истина;
@@ -2046,11 +2051,7 @@
КонецЕсли; КонецЕсли;
Если ЭтоДубль Тогда Если ЭтоДубль Тогда
Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда Свойства.КлючОбъектаМетаданных = КлючОбъектаМетаданныхДубля;
Свойства.КлючОбъектаМетаданных = Новый ХранилищеЗначения(Неопределено);
Иначе
Свойства.КлючОбъектаМетаданных = Неопределено;
КонецЕсли;
КонецЕсли; КонецЕсли;
СвойстваОбновлены = Истина; СвойстваОбновлены = Истина;
КонецЕсли; КонецЕсли;
@@ -2982,7 +2983,7 @@
Попытка Попытка
Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора( Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(
ПолныеИменаОбъектовМетаданных, Истина, ОдинЭлемент, Истина); ПолныеИменаОбъектовМетаданных, Истина, ОдинЭлемент, Не ВызыватьИсключение);
Исключение Исключение
Идентификаторы = Неопределено; Идентификаторы = Неопределено;
КонецПопытки; КонецПопытки;
@@ -3026,6 +3027,7 @@
| Идентификаторы.ПолноеИмя КАК ПолноеИмя, | Идентификаторы.ПолноеИмя КАК ПолноеИмя,
| Идентификаторы.Наименование КАК Представление, | Идентификаторы.Наименование КАК Представление,
| Идентификаторы.ПолноеИмя КАК ПолноеИмяКоллекции, | Идентификаторы.ПолноеИмя КАК ПолноеИмяКоллекции,
| Идентификаторы.ПометкаУдаления КАК ПометкаУдаления,
| """" КАК ИмяРасширения, | """" КАК ИмяРасширения,
| """" КАК ИдентификаторРасширения, | """" КАК ИдентификаторРасширения,
| """" КАК ХешСуммаРасширения | """" КАК ХешСуммаРасширения
@@ -3044,6 +3046,7 @@
| ВерсииИдентификаторов.ПолноеИмяОбъекта КАК ПолноеИмя, | ВерсииИдентификаторов.ПолноеИмяОбъекта КАК ПолноеИмя,
| Идентификаторы.Наименование КАК Представление, | Идентификаторы.Наименование КАК Представление,
| Идентификаторы.ПолноеИмя КАК ПолноеИмяКоллекции, | Идентификаторы.ПолноеИмя КАК ПолноеИмяКоллекции,
| Идентификаторы.ПометкаУдаления КАК ПометкаУдаления,
| Идентификаторы.ИмяРасширения КАК ИмяРасширения, | Идентификаторы.ИмяРасширения КАК ИмяРасширения,
| Идентификаторы.ИдентификаторРасширения КАК ИдентификаторРасширения, | Идентификаторы.ИдентификаторРасширения КАК ИдентификаторРасширения,
| Идентификаторы.ХешСуммаРасширения КАК ХешСуммаРасширения | Идентификаторы.ХешСуммаРасширения КАК ХешСуммаРасширения
@@ -219,7 +219,9 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Если ЗначениеЗаполнено(СтароеЗначение) Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
ОбновитьПоставляемыеПрофили(, Удаленные); ОбновитьПоставляемыеПрофили(, Удаленные);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
@@ -241,7 +243,9 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Если ЗначениеЗаполнено(СтароеЗначение) Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
ОбновитьНепоставляемыеПрофили(); ОбновитьНепоставляемыеПрофили();
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
@@ -978,12 +982,29 @@
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
УстановитьОтключениеБезопасногоРежима(Истина); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
УстановитьПривилегированныйРежим(Истина); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
УстановитьПривилегированныйРежим(Ложь); НачатьТранзакцию();
УстановитьОтключениеБезопасногоРежима(Ложь); Попытка
Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление.
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли; КонецЕсли;
Кэш.Проверка.Дата = ТекущаяДатаСеанса; Кэш.Проверка.Дата = ТекущаяДатаСеанса;
@@ -1327,12 +1348,29 @@
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
УстановитьОтключениеБезопасногоРежима(Истина); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
УстановитьПривилегированныйРежим(Истина); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
УстановитьПривилегированныйРежим(Ложь); НачатьТранзакцию();
УстановитьОтключениеБезопасногоРежима(Ложь); Попытка
Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление.
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли; КонецЕсли;
Кэш.Проверка.Дата = ТекущаяДатаСеанса; Кэш.Проверка.Дата = ТекущаяДатаСеанса;
@@ -281,7 +281,7 @@
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаАдресации</name> <name>ГруппаАдресацииЗадач</name>
<id>23</id> <id>23</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ИспользуетсяБезКонтекстаДругихИзмеренийАдресации</name> <name>ИспользуетсяБезКонтекстаДругихИзмеренийАдресации</name>
@@ -566,7 +566,7 @@
<value>Адресация задач исполнителям</value> <value>Адресация задач исполнителям</value>
</title> </title>
<extendedTooltip> <extendedTooltip>
<name>ГруппаАдресацииExtendedTooltip</name> <name>ГруппаАдресацииЗадачРасширеннаяПодсказка</name>
<id>47</id> <id>47</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -11,7 +11,7 @@
&НаСервере &НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.ГруппаАдресации.Доступность = НЕ Объект.Предопределенный; Элементы.ГруппаАдресацииЗадач.Доступность = НЕ Объект.Предопределенный;
Если НЕ Объект.Предопределенный Тогда Если НЕ Объект.Предопределенный Тогда
Элементы.ГруппаТипыОбъектовАдресации.Доступность = Объект.ИспользуетсяСОбъектамиАдресации; Элементы.ГруппаТипыОбъектовАдресации.Доступность = Объект.ИспользуетсяСОбъектамиАдресации;
КонецЕсли; КонецЕсли;
@@ -4593,11 +4593,13 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.Проверить</commandName> <commandName>Form.Command.Проверить</commandName>
<representation>Auto</representation>
<defaultButton>true</defaultButton> <defaultButton>true</defaultButton>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<picture xsi:type="core:PictureRef">
<picture>CommonPicture.ДлительнаяОперация16</picture>
</picture>
<toolTipRepresentation>None</toolTipRepresentation> <toolTipRepresentation>None</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
@@ -316,6 +316,7 @@
Процедура Проверить(Команда) Процедура Проверить(Команда)
Элементы.ФормаПроверить.Доступность = Ложь; Элементы.ФормаПроверить.Доступность = Ложь;
Элементы.ФормаПроверить.Отображение = ОтображениеКнопки.КартинкаИТекст;
ПроверитьСертификат(Новый ОписаниеОповещения("ПроверитьЗавершение", ЭтотОбъект)); ПроверитьСертификат(Новый ОписаниеОповещения("ПроверитьЗавершение", ЭтотОбъект));
КонецПроцедуры КонецПроцедуры
@@ -329,6 +330,8 @@
Процедура ПроверитьЗавершение(Неопределен, Контекст) Экспорт Процедура ПроверитьЗавершение(Неопределен, Контекст) Экспорт
Элементы.ФормаПроверить.Доступность = Истина; Элементы.ФормаПроверить.Доступность = Истина;
Элементы.ФормаПроверить.Отображение = ОтображениеКнопки.Текст;
Если Не ПроверкаПриВыборе Тогда Если Не ПроверкаПриВыборе Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
@@ -453,7 +453,7 @@
КонецЕсли; КонецЕсли;
Если ЭлектроннаяПодпись.УправлениеОповещениямиОСертификатах() Тогда Если ЭлектроннаяПодпись.УправлениеОповещениямиОСертификатах() Тогда
Элементы.НапомнитьОПеревыпуске.Видимость = Истина; Элементы.НапомнитьОПеревыпуске.Видимость = Истина;
НапомнитьОПеревыпуске = РегистрыСведений.ОповещенияПользователейСертификатов.ПрочитатьОтметкуОНапоминании(Объект.Ссылка); НапомнитьОПеревыпуске = Не РегистрыСведений.ОповещенияПользователейСертификатов.ПользовательОповещен(Объект.Ссылка);
Иначе Иначе
Элементы.НапомнитьОПеревыпуске.Видимость = Ложь; Элементы.НапомнитьОПеревыпуске.Видимость = Ложь;
КонецЕсли; КонецЕсли;
@@ -343,7 +343,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ЭтотОбъект.Объект.Ссылка); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ВызовСервера");
Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект); Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор);
@@ -626,9 +626,7 @@
КонецЕсли; КонецЕсли;
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, ДанныеФайла.СсылкаНаДвоичныеДанныеФайла); РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
Если Элементы.ФормаЗаписатьИЗакрыть.Видимость И Элементы.ФормаЗаписатьИЗакрыть.Доступность Тогда Если Элементы.ФормаЗаписатьИЗакрыть.Видимость И Элементы.ФормаЗаписатьИЗакрыть.Доступность Тогда
Модифицированность = Истина; Модифицированность = Истина;
КонецЕсли; КонецЕсли;
@@ -767,9 +765,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
РазблокироватьДанныеФормыДляРедактирования();
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует); ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует);
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено, ДанныеФайла, УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено, ДанныеФайла, УникальныйИдентификатор);
Если Не ФайлРедактируется Тогда Если Не ФайлРедактируется Тогда
@@ -789,8 +785,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ЭтотОбъект.Объект.Ссылка); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ВызовСервера");
ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект); ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект);
ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор); ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор);
ПараметрыОбновленияФайла.ХранитьВерсии = ДанныеФайла.ХранитьВерсии; ПараметрыОбновленияФайла.ХранитьВерсии = ДанныеФайла.ХранитьВерсии;
@@ -989,13 +984,23 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция ДанныеФайла(Знач ПрисоединенныйФайл, Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено, Знач Режим = "")
Знач ИдентификаторФормы = Неопределено,
Знач ПолучатьСсылкуНаДвоичныеДанные = Истина)
Возврат РаботаСФайлами.ДанныеФайла(
ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные);
РазблокироватьОбъект(ПрисоединенныйФайл, ИдентификаторФормы);
Если Режим = "ДляОткрытия" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ПрисоединенныйФайл, Неопределено, ИдентификаторФормы);
ИначеЕсли Режим = "ДляСохранения" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(
ПрисоединенныйФайл,, ИдентификаторФормы);
ИначеЕсли Режим = "ВызовСервера" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПрисоединенныйФайл,, ИдентификаторФормы);
Иначе
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Истина;
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ПараметрыДанныхФайла);
КонецЕсли;
КонецФункции КонецФункции
&НаКлиенте &НаКлиенте
@@ -1007,9 +1012,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь; И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляОткрытия");
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор);
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецПроцедуры КонецПроцедуры
@@ -1022,7 +1025,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла); РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла);
КонецПроцедуры КонецПроцедуры
@@ -1034,7 +1037,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор); ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляСохранения");
РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено);
КонецПроцедуры КонецПроцедуры
@@ -189,6 +189,16 @@
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность") Тогда
Если ПустаяСтрока(Объект.ЗаголовокЯзык1) Тогда
Объект.ЗаголовокЯзык1 = Объект.Заголовок;
КонецЕсли;
Если ПустаяСтрока(Объект.ЗаголовокЯзык2) Тогда
Объект.ЗаголовокЯзык2 = Объект.Заголовок;
КонецЕсли;
КонецЕсли;
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения; ОбработкаПродолженияПриОшибкеЗаписи = ПараметрыЗаписи.ОбработкаПродолжения;
ПодключитьОбработчикОжидания("ПослеОшибкиЗаписи", 0.1, Истина); ПодключитьОбработчикОжидания("ПослеОшибкиЗаписи", 0.1, Истина);
@@ -23,7 +23,7 @@
|""%4"".'"), |""%4"".'"),
Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДЛФ=T"), Формат(ОбщегоНазначенияКлиент.ДатаСеанса(), "ДЛФ=T"),
Формат(ДополнительнаяИнформация.ДатаСервера, "ДЛФ=T"), Формат(ДополнительнаяИнформация.ДатаСервера, "ДЛФ=T"),
Формат(ТекущаяДата(), "ДЛФ=T"), Формат(ТекущаяДата(), "ДЛФ=T"), // АПК:143 пример вызова ТекущаяДата для определения времени компьютера
ДополнительнаяИнформация.ПредставлениеЧасовогоПояса)); ДополнительнаяИнформация.ПредставлениеЧасовогоПояса));
КонецПроцедуры КонецПроцедуры
@@ -19,7 +19,7 @@
ТолькоПросмотр = Не ПравоДоступа("Изменение", ОбъектМетаданных); ТолькоПросмотр = Не ПравоДоступа("Изменение", ОбъектМетаданных);
МультиязычныеСтрокиВРеквизитах = МультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных); МультиязычныеСтрокиВРеквизитах = МультиязычностьСервер.МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных);
ХранениеВТабличнойЧасти = МультиязычностьСервер.ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()); ХранениеВТабличнойЧасти = МультиязычностьСервер.ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя(), Параметры.ИмяРеквизита);
Реквизит = ОбъектМетаданных.Реквизиты.Найти(Параметры.ИмяРеквизита); Реквизит = ОбъектМетаданных.Реквизиты.Найти(Параметры.ИмяРеквизита);
Если Реквизит = Неопределено Тогда Если Реквизит = Неопределено Тогда
Для каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл Для каждого СтандартныйРеквизит Из ОбъектМетаданных.СтандартныеРеквизиты Цикл
@@ -35,11 +35,14 @@
СуффиксДополнительногоЯзыка2 = "Язык2"; СуффиксДополнительногоЯзыка2 = "Язык2";
Если СтрСравнить(Константы.ОсновнойЯзык.Получить(), ТекущийЯзык().КодЯзыка) <> 0 Тогда Если СтрСравнить(Константы.ОсновнойЯзык.Получить(), ТекущийЯзык().КодЯзыка) <> 0 Тогда
СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка(); СуффиксОсновногоЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если СуффиксОсновногоЯзыка = "Язык1" Тогда Если СуффиксОсновногоЯзыка = "Язык1" Тогда
СуффиксДополнительногоЯзыка1 = ""; СуффиксДополнительногоЯзыка1 = "";
СуффиксОсновногоЯзыка = "Язык1";
ИначеЕсли СуффиксОсновногоЯзыка = "Язык2" Тогда ИначеЕсли СуффиксОсновногоЯзыка = "Язык2" Тогда
СуффиксДополнительногоЯзыка2 = ""; СуффиксДополнительногоЯзыка2 = "";
СуффиксОсновногоЯзыка = "Язык2";
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -55,12 +58,24 @@
НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150)); НаборЯзыков.Колонки.Добавить("Представление", ОбщегоНазначения.ОписаниеТипаСтрока(150));
НаборЯзыков.Колонки.Добавить("Суффикс", ОбщегоНазначения.ОписаниеТипаСтрока(50)); НаборЯзыков.Колонки.Добавить("Суффикс", ОбщегоНазначения.ОписаниеТипаСтрока(50));
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда Если ХранениеВТабличнойЧасти И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Мультиязычность.Печать") Тогда
МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность"); МодульУправлениеПечатьюМультиязычность = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатьюМультиязычность");
МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков); МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков);
КонецЕсли; КонецЕсли;
ИспользуемыеЯзыки = Новый Соответствие;
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодОсновногоЯзыка(), Истина);
Если ИспользуетсяПервыйДополнительныйЯзык Тогда
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы(), Истина);
КонецЕсли;
Если ИспользуетсяВторойДополнительныйЯзык Тогда
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы(), Истина);
КонецЕсли;
Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл
Если ИспользуемыеЯзыки[ЯзыкКонфигурации.КодЯзыка] <> Истина Тогда
Продолжить;
КонецЕсли;
СтрокаЯзыка = НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка)); СтрокаЯзыка = НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка));
@@ -72,7 +87,9 @@
ДанныеЯзыка = СтрокаЯзыка[0]; ДанныеЯзыка = СтрокаЯзыка[0];
КонецЕсли; КонецЕсли;
Если ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы() Тогда Если ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодОсновногоЯзыка() Тогда
ДанныеЯзыка.Суффикс = СуффиксОсновногоЯзыка;
ИначеЕсли ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы() Тогда
ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка1; ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка1;
ИначеЕсли ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы() Тогда ИначеЕсли ЯзыкКонфигурации.КодЯзыка = МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы() Тогда
ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка2; ДанныеЯзыка.Суффикс = СуффиксДополнительногоЯзыка2;
@@ -199,11 +216,13 @@
Для каждого Язык Из Языки Цикл Для каждого Язык Из Языки Цикл
Если Язык.КодЯзыка = ТекущийЯзык() Тогда ТекущийКодЯзыка = ?(ТипЗнч(ТекущийЯзык()) = Тип("Строка"), ТекущийЯзык(), ТекущийЯзык().КодЯзыка);
Если СтрСравнить(Язык.КодЯзыка, ТекущийКодЯзыка) = 0 Тогда
Результат.Вставить("СтрокаНаТекущемЯзыке", ЭтотОбъект[Язык.Имя]); Результат.Вставить("СтрокаНаТекущемЯзыке", ЭтотОбъект[Язык.Имя]);
КонецЕсли; КонецЕсли;
Если ТекущийЯзык() = ОсновнойЯзык И Язык.КодЯзыка = ОсновнойЯзык Тогда Если ТекущийКодЯзыка = ОсновнойЯзык И Язык.КодЯзыка = ОсновнойЯзык Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -354,7 +354,7 @@
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаЗагрузки</name> <name>ГруппаЗагрузка</name>
<id>48</id> <id>48</id>
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаСостоянияЗагрузки</name> <name>ГруппаСостоянияЗагрузки</name>
@@ -539,7 +539,7 @@
</title> </title>
<readOnly>true</readOnly> <readOnly>true</readOnly>
<extendedTooltip> <extendedTooltip>
<name>ГруппаЗагрузкиExtendedTooltip</name> <name>ГруппаЗагрузкаExtendedTooltip</name>
<id>81</id> <id>81</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -46,7 +46,7 @@
ВладелецДанных = Справочники.ИдентификаторыОбъектовМетаданных.ПолучитьСсылку( ВладелецДанных = Справочники.ИдентификаторыОбъектовМетаданных.ПолучитьСсылку(
Новый УникальныйИдентификатор("627a6fb8-872a-11e3-bb87-005056c00008")); // Константы. Новый УникальныйИдентификатор("627a6fb8-872a-11e3-bb87-005056c00008")); // Константы.
ДатыОтключения = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецДанных); ДатыОтключения = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(ВладелецДанных); // Массив
Если ТипЗнч(ДатыОтключения) <> Тип("Массив") Тогда Если ТипЗнч(ДатыОтключения) <> Тип("Массив") Тогда
ДатыОтключения = Новый Массив; ДатыОтключения = Новый Массив;
КонецЕсли; КонецЕсли;
@@ -4531,12 +4531,8 @@
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда Если Не Выборка.Следующий() Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( // Отчет не подключен к подсистеме варианты отчетов (работает с ограничениями).
НСтр("ru = 'Несуществующий вариант отчета %1 (%2). Возврат;
|Необходимо выполнить обновление информационной базы или очистить настройки отчета.'"),
КлючТекущегоВарианта, НастройкиОтчета.ОтчетСсылка);
ВызватьИсключение ТекстОшибки;
КонецЕсли; КонецЕсли;
@@ -161,9 +161,11 @@
Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр( Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Как настроить: "ru = 'Как настроить:
|1. Активируйте платежный аккаунт в <a href = ""https://console.cloud.google.com/billing"">Google Cloud</a>. |1. Активируйте платежный аккаунт в <a href = ""%1"">Google Cloud</a>.
|2. На странице <a href = ""https://console.cloud.google.com/apis/credentials"">Учетные данные</a> нажмите на кнопку <b>Создать учетные данные</b>, выберите <b>Ключ API</b>. |2. На странице <a href = ""%2"">Учетные данные</a> нажмите на кнопку <b>Создать учетные данные</b>, выберите <b>Ключ API</b>.
|3. Скопируйте полученную строку из поля <b>Ваш ключ API</b> в поле <b>Ключ API</b>.'")); |3. Скопируйте полученную строку из поля <b>Ваш ключ API</b> в поле <b>Ключ API</b>.'"),
"https://console.cloud.google.com/billing",
"https://console.cloud.google.com/apis/credentials");
Параметр = Настройки.ПараметрыАвторизации.Добавить(); Параметр = Настройки.ПараметрыАвторизации.Добавить();
Параметр.Имя = "КлючAPI"; Параметр.Имя = "КлючAPI";
@@ -569,7 +569,9 @@
ИмяПоляИдентификатор = ?(ЭтоМуниципальныйАдрес(ТипАдреса), "munId", "id"); ИмяПоляИдентификатор = ?(ЭтоМуниципальныйАдрес(ТипАдреса), "munId", "id");
Для каждого СтрокаДанных Из РезультатВебСервис.Данные Цикл Для каждого СтрокаДанных Из РезультатВебСервис.Данные Цикл
Если ЗначениеЗаполнено(СтрокаДанных[ИмяПоляИдентификатор]) Тогда Если ЗначениеЗаполнено(СтрокаДанных[ИмяПоляИдентификатор]) Тогда
ДанныеВыбора.Данные.Добавить(СтрокаДанных[ИмяПоляИдентификатор], СтрокаДанных[ИмяПоля]); Если ДанныеВыбора.Данные.НайтиПоЗначению(СтрокаДанных[ИмяПоляИдентификатор]) = Неопределено Тогда
ДанныеВыбора.Данные.Добавить(СтрокаДанных[ИмяПоляИдентификатор], СтрокаДанных[ИмяПоля]);
КонецЕсли;
Иначе Иначе
ИмяПоля1 = ?(ИмяПоля = "munName", "name", "munName"); ИмяПоля1 = ?(ИмяПоля = "munName", "name", "munName");
ИмяПоляИдентификатор1 = ?(ИмяПоля = "munName", "id", "munId"); ИмяПоляИдентификатор1 = ?(ИмяПоля = "munName", "id", "munId");
@@ -896,10 +898,11 @@
Результат.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь); Результат.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь);
СтруктураОписанияОшибкиПоставщика(Результат); СтруктураОписанияОшибкиПоставщика(Результат);
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
КлассификаторДоступен = ЗагруженныеАдресныеСведения.Получить("КлассификаторДоступен");
Если СведенияОбАдресномОбъекте.Свойство("ЗагруженныеДанные") И ТипЗнч(СведенияОбАдресномОбъекте.ЗагруженныеДанные) = Тип("Булево") Тогда Если СведенияОбАдресномОбъекте.Свойство("ЗагруженныеДанные") И ТипЗнч(СведенияОбАдресномОбъекте.ЗагруженныеДанные) = Тип("Булево") Тогда
ЗагруженныеДанные = СведенияОбАдресномОбъекте.ЗагруженныеДанные; ЗагруженныеДанные = СведенияОбАдресномОбъекте.ЗагруженныеДанные;
Иначе Иначе
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
ЗагруженныеДанные = ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"]; // Если неизвестен источник, то сначала ищем в загруженные данных. ЗагруженныеДанные = ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"]; // Если неизвестен источник, то сначала ищем в загруженные данных.
КонецЕсли; КонецЕсли;
@@ -912,10 +915,15 @@
Если ЗагруженныеДанные = Истина Тогда Если ЗагруженныеДанные = Истина Тогда
ЗаполнитьАктуальныеАдресныеСведенияВнутр(Результат.Данные, СведенияОбАдресномОбъекте); ЗаполнитьАктуальныеАдресныеСведенияВнутр(Результат.Данные, СведенияОбАдресномОбъекте);
Результат.ИсключатьГородИзМуниципальногоАдреса = ИсключатьГородИзМуниципальногоАдреса(Результат.Данные); Результат.ИсключатьГородИзМуниципальногоАдреса = ИсключатьГородИзМуниципальногоАдреса(Результат.Данные);
КонецЕсли; КонецЕсли;
Если АдресПустой(Результат.Данные) Тогда Если АдресПустой(Результат.Данные) Тогда
Если Не КлассификаторДоступен Тогда
Результат.Отказ = Истина;
Возврат Результат;
КонецЕсли;
ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте.Идентификатор, ЭтоМуниципальныйАдрес); ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте.Идентификатор, ЭтоМуниципальныйАдрес);
Если АдресПустой(Результат.Данные) Тогда Если АдресПустой(Результат.Данные) Тогда
@@ -4089,7 +4097,8 @@
Возврат ТекстЗапроса + ПодборМуниципальногоАдреса(); Возврат ТекстЗапроса + ПодборМуниципальногоАдреса();
КонецЕсли; КонецЕсли;
ТекстЗапроса = ТекстЗапроса + "ВЫБРАТЬ ПЕРВЫЕ 10 ТекстЗапроса = ТекстЗапроса +
"ВЫБРАТЬ ПЕРВЫЕ 10
| АдресныеОбъекты.Наименование КАК Наименование0, | АдресныеОбъекты.Наименование КАК Наименование0,
| АдресныеОбъекты.Сокращение КАК Сокращение0, | АдресныеОбъекты.Сокращение КАК Сокращение0,
| АдресныеОбъекты.Уровень КАК Уровень0, | АдресныеОбъекты.Уровень КАК Уровень0,
@@ -4109,10 +4118,10 @@
| АдресныеОбъектыУровень5.Сокращение КАК Сокращение5, | АдресныеОбъектыУровень5.Сокращение КАК Сокращение5,
| АдресныеОбъектыУровень5.Уровень КАК Уровень5, | АдресныеОбъектыУровень5.Уровень КАК Уровень5,
| АдресныеОбъекты.Идентификатор КАК Идентификатор, | АдресныеОбъекты.Идентификатор КАК Идентификатор,
| ИСТИНА КАК Муниципальный,
| АдресныеОбъекты.Уровень КАК Уровень, | АдресныеОбъекты.Уровень КАК Уровень,
| ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс, | ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
| ЕСТЬNULL(Приоритеты.Порядок, 0) КАК Порядок | ЕСТЬNULL(Приоритеты.Порядок, 0) КАК Порядок
|ПОМЕСТИТЬ МуниципальныеОбъекты
|ИЗ |ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъектыУровень1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъектыУровень1
@@ -4131,36 +4140,39 @@
| ПО (Приоритеты.Уровень = АдресныеОбъекты.Уровень) | ПО (Приоритеты.Уровень = АдресныеОбъекты.Уровень)
|ГДЕ |ГДЕ
| (АдресныеОбъекты.Наименование ПОДОБНО &НачалоФразы + ""%"" | (АдресныеОбъекты.Наименование ПОДОБНО &НачалоФразы + ""%""
| ИЛИ АдресныеОбъекты.Наименование ПОДОБНО ""% "" + &НачалоФразы + ""%"") | ИЛИ АдресныеОбъекты.Наименование ПОДОБНО ""% "" + &НачалоФразы + ""%"")
| И АдресныеОбъекты.Уровень <> 7 | И АдресныеОбъекты.Уровень <> 7
| И АдресныеОбъекты.Уровень <> 3 | И АдресныеОбъекты.Уровень <> 3
| |
|ОБЪЕДИНИТЬ ВСЕ |УПОРЯДОЧИТЬ ПО
| Порядок
|;
| |
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ ПЕРВЫЕ 10 |ВЫБРАТЬ ПЕРВЫЕ 10
| АдресныеОбъекты.Наименование, | АдресныеОбъекты.Наименование КАК Наименование0,
| АдресныеОбъекты.Сокращение, | АдресныеОбъекты.Сокращение КАК Сокращение0,
| АдресныеОбъекты.Уровень, | АдресныеОбъекты.Уровень КАК Уровень0,
| АдресныеОбъектыУровень1.Наименование, | АдресныеОбъектыУровень1.Наименование КАК Наименование1,
| АдресныеОбъектыУровень1.Сокращение, | АдресныеОбъектыУровень1.Сокращение КАК Сокращение1,
| АдресныеОбъектыУровень1.Уровень, | АдресныеОбъектыУровень1.Уровень КАК Уровень1,
| АдресныеОбъектыУровень2.Наименование, | АдресныеОбъектыУровень2.Наименование КАК Наименование2,
| АдресныеОбъектыУровень2.Сокращение, | АдресныеОбъектыУровень2.Сокращение КАК Сокращение2,
| АдресныеОбъектыУровень2.Уровень, | АдресныеОбъектыУровень2.Уровень КАК Уровень2,
| АдресныеОбъектыУровень3.Наименование, | АдресныеОбъектыУровень3.Наименование КАК Наименование3,
| АдресныеОбъектыУровень3.Сокращение, | АдресныеОбъектыУровень3.Сокращение КАК Сокращение3,
| АдресныеОбъектыУровень3.Уровень, | АдресныеОбъектыУровень3.Уровень КАК Уровень3,
| АдресныеОбъектыУровень4.Наименование, | АдресныеОбъектыУровень4.Наименование КАК Наименование4,
| АдресныеОбъектыУровень4.Сокращение, | АдресныеОбъектыУровень4.Сокращение КАК Сокращение4,
| АдресныеОбъектыУровень4.Уровень, | АдресныеОбъектыУровень4.Уровень КАК Уровень4,
| АдресныеОбъектыУровень5.Наименование, | АдресныеОбъектыУровень5.Наименование КАК Наименование5,
| АдресныеОбъектыУровень5.Сокращение, | АдресныеОбъектыУровень5.Сокращение КАК Сокращение5,
| АдресныеОбъектыУровень5.Уровень, | АдресныеОбъектыУровень5.Уровень КАК Уровень5,
| АдресныеОбъекты.Идентификатор, | АдресныеОбъекты.Идентификатор КАК Идентификатор,
| ЛОЖЬ, | АдресныеОбъекты.Уровень КАК Уровень,
| АдресныеОбъекты.Уровень, | ДополнительныеСведения.ПочтовыйИндекс КАК ПочтовыйИндекс,
| ДополнительныеСведения.ПочтовыйИндекс, | ЕСТЬNULL(Приоритеты.Порядок, 0) КАК Порядок
| ЕСТЬNULL(Приоритеты.Порядок, 0) |ПОМЕСТИТЬ АдминистративноТерриториальныйОбъекты
|ИЗ |ИЗ
| РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты | РегистрСведений.АдресныеОбъекты КАК АдресныеОбъекты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъектыУровень1 | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АдресныеОбъекты КАК АдресныеОбъектыУровень1
@@ -4179,12 +4191,73 @@
| ПО (Приоритеты.Уровень = АдресныеОбъекты.Уровень) | ПО (Приоритеты.Уровень = АдресныеОбъекты.Уровень)
|ГДЕ |ГДЕ
| (АдресныеОбъекты.Наименование ПОДОБНО &НачалоФразы + ""%"" | (АдресныеОбъекты.Наименование ПОДОБНО &НачалоФразы + ""%""
| ИЛИ АдресныеОбъекты.Наименование ПОДОБНО ""% "" + &НачалоФразы + ""%"") | ИЛИ АдресныеОбъекты.Наименование ПОДОБНО ""% "" + &НачалоФразы + ""%"")
| И АдресныеОбъекты.Уровень <> 7 | И АдресныеОбъекты.Уровень <> 7
| И АдресныеОбъекты.Уровень <> 41 | И АдресныеОбъекты.Уровень <> 41
| И АдресныеОбъекты.Уровень <> 31 | И АдресныеОбъекты.Уровень <> 31
| |
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Приоритеты.Порядок
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| МуниципальноеДеление.Наименование0 КАК Наименование0,
| МуниципальноеДеление.Сокращение0 КАК Сокращение0,
| МуниципальноеДеление.Уровень0 КАК Уровень0,
| МуниципальноеДеление.Наименование1 КАК Наименование1,
| МуниципальноеДеление.Сокращение1 КАК Сокращение1,
| МуниципальноеДеление.Уровень1 КАК Уровень1,
| МуниципальноеДеление.Наименование2 КАК Наименование2,
| МуниципальноеДеление.Сокращение2 КАК Сокращение2,
| МуниципальноеДеление.Уровень2 КАК Уровень2,
| МуниципальноеДеление.Наименование3 КАК Наименование3,
| МуниципальноеДеление.Сокращение3 КАК Сокращение3,
| МуниципальноеДеление.Уровень3 КАК Уровень3,
| МуниципальноеДеление.Наименование4 КАК Наименование4,
| МуниципальноеДеление.Сокращение4 КАК Сокращение4,
| МуниципальноеДеление.Уровень4 КАК Уровень4,
| МуниципальноеДеление.Наименование5 КАК Наименование5,
| МуниципальноеДеление.Сокращение5 КАК Сокращение5,
| МуниципальноеДеление.Уровень5 КАК Уровень5,
| МуниципальноеДеление.Идентификатор КАК Идентификатор,
| ИСТИНА КАК Муниципальный,
| МуниципальноеДеление.Уровень КАК Уровень,
| МуниципальноеДеление.ПочтовыйИндекс КАК ПочтовыйИндекс,
| МуниципальноеДеление.Порядок КАК Порядок
|ИЗ
| МуниципальныеОбъекты КАК МуниципальноеДеление
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| АдминистративноТерриториальноеДеление.Наименование0,
| АдминистративноТерриториальноеДеление.Сокращение0,
| АдминистративноТерриториальноеДеление.Уровень0,
| АдминистративноТерриториальноеДеление.Наименование1,
| АдминистративноТерриториальноеДеление.Сокращение1,
| АдминистративноТерриториальноеДеление.Уровень1,
| АдминистративноТерриториальноеДеление.Наименование2,
| АдминистративноТерриториальноеДеление.Сокращение2,
| АдминистративноТерриториальноеДеление.Уровень2,
| АдминистративноТерриториальноеДеление.Наименование3,
| АдминистративноТерриториальноеДеление.Сокращение3,
| АдминистративноТерриториальноеДеление.Уровень3,
| АдминистративноТерриториальноеДеление.Наименование4,
| АдминистративноТерриториальноеДеление.Сокращение4,
| АдминистративноТерриториальноеДеление.Уровень4,
| АдминистративноТерриториальноеДеление.Наименование5,
| АдминистративноТерриториальноеДеление.Сокращение5,
| АдминистративноТерриториальноеДеление.Уровень5,
| АдминистративноТерриториальноеДеление.Идентификатор,
| ЛОЖЬ,
| АдминистративноТерриториальноеДеление.Уровень,
| АдминистративноТерриториальноеДеление.ПочтовыйИндекс,
| АдминистративноТерриториальноеДеление.Порядок
|ИЗ
| АдминистративноТерриториальныйОбъекты КАК АдминистративноТерриториальноеДеление
|
|УПОРЯДОЧИТЬ ПО
| Порядок"; | Порядок";
Возврат ТекстЗапроса; Возврат ТекстЗапроса;
@@ -8267,6 +8340,8 @@
|- сервис отключен или на техническом обслуживании.'"); |- сервис отключен или на техническом обслуживании.'");
КонецЕсли; КонецЕсли;
ДополнитьПредставлениеОшибкиСтекомВызовов(ПредставлениеОшибки);
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки; Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8"); ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8");
@@ -8274,6 +8349,17 @@
КонецПроцедуры КонецПроцедуры
Процедура ДополнитьПредставлениеОшибкиСтекомВызовов(ПредставлениеОшибки)
Попытка
ВызватьИсключение ПредставлениеОшибки;
Исключение
ДанныеОбОшибке = ИнформацияОбОшибке();
ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ДанныеОбОшибке);
КонецПопытки;
КонецПроцедуры
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, Результат, ТекстURL, КодСостояния) Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, Результат, ТекстURL, КодСостояния)
ШаблонТекстОтветаСервера = НСтр("ru = '%1 ШаблонТекстОтветаСервера = НСтр("ru = '%1
@@ -886,6 +886,10 @@
ИндексПоля.НаправлениеСортировки = ПоляСортировки[Поле.Поле]; ИндексПоля.НаправлениеСортировки = ПоляСортировки[Поле.Поле];
ИндексПоля.ПолеСортируется = (ИндексПоля.НаправлениеСортировки <> Неопределено); ИндексПоля.ПолеСортируется = (ИндексПоля.НаправлениеСортировки <> Неопределено);
Если ИндексПоля.ТипЗначения.СодержитТип(Тип("ТаблицаЗначений")) Тогда
ИндексПоля.ТипЗначения = Новый ОписаниеТипов;
КонецЕсли;
КонецПроцедуры КонецПроцедуры
Функция ОписаниеПоляОтчета(Родитель, Поле, ИспользуемыеПоляГруппировки) Функция ОписаниеПоляОтчета(Родитель, Поле, ИспользуемыеПоляГруппировки)
@@ -1134,11 +1138,13 @@
Индекс.ВставитьГруппировкуНиже = Не ЭтоПолеГруппировкиКолонки И Не ЭтоРесурс; Индекс.ВставитьГруппировкуНиже = Не ЭтоПолеГруппировкиКолонки И Не ЭтоРесурс;
Индекс.ПереместитьПолеВыше = Не ЭтоПолеГруппировкиКолонки Индекс.ПереместитьПолеВыше = Не ЭтоПолеГруппировкиКолонки
И ПорядокРаздела = 1
И Не ЭтоРесурс И Не ЭтоРесурс
И Индекс.СодержитРодительскиеГруппировки И Индекс.СодержитРодительскиеГруппировки
И ПоляГруппировкиВыше.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено; И ПоляГруппировкиВыше.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено;
Индекс.ПереместитьПолеНиже = Не ЭтоПолеГруппировкиКолонки Индекс.ПереместитьПолеНиже = Не ЭтоПолеГруппировкиКолонки
И ПорядокРаздела = 1
И Не ЭтоРесурс И Не ЭтоРесурс
И Индекс.СодержитДочерниеГруппировки И Индекс.СодержитДочерниеГруппировки
И ПоляГруппировкиНиже.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено; И ПоляГруппировкиНиже.Найти(Не ПолеГруппировки.Период, "Период") = Неопределено;
@@ -29,7 +29,7 @@
Процедура ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации) Процедура ПроконтролироватьДлительныеОперации(АктивныеДлительныеОперации)
ТекущаяДата = ТекущаяДата(); // дата сеанса не используется ТекущаяДата = ТекущаяДата(); // АПК:143 Дата сеанса не используется для проверки интервалов
КонтролируемыеОперации = Новый Соответствие; КонтролируемыеОперации = Новый Соответствие;
ЗаданияДляПроверки = Новый Массив; ЗаданияДляПроверки = Новый Массив;
@@ -81,7 +81,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ТекущаяДата = ТекущаяДата(); // дата сеанса не используется ТекущаяДата = ТекущаяДата(); // АПК:143 Дата сеанса не используется для проверки интервалов
Интервал = 120; Интервал = 120;
Для каждого Операция Из АктивныеДлительныеОперации Цикл Для каждого Операция Из АктивныеДлительныеОперации Цикл
Интервал = Макс(Мин(Интервал, Операция.Значение.Контроль - ТекущаяДата), 1); Интервал = Макс(Мин(Интервал, Операция.Значение.Контроль - ТекущаяДата), 1);
@@ -128,7 +128,7 @@
КонецЕсли; КонецЕсли;
ДлительнаяОперация.ТекущийИнтервал = ИнтервалОжидания; ДлительнаяОперация.ТекущийИнтервал = ИнтервалОжидания;
КонецЕсли; КонецЕсли;
ДлительнаяОперация.Контроль = ТекущаяДата() + ИнтервалОжидания; // дата сеанса не используется ДлительнаяОперация.Контроль = ТекущаяДата() + ИнтервалОжидания; // АПК:143 Дата сеанса не используется для проверки интервалов
Возврат Ложь; Возврат Ложь;
КонецФункции КонецФункции
@@ -86,7 +86,7 @@
Иначе Иначе
ПараметрыФормы.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении); ПараметрыФормы.Вставить("ОповещениеОЗавершении", ОповещениеОЗавершении);
ПараметрыФормы.Вставить("ТекущийИнтервал", ?(ПараметрыФормы.Интервал <> 0, ПараметрыФормы.Интервал, 1)); ПараметрыФормы.Вставить("ТекущийИнтервал", ?(ПараметрыФормы.Интервал <> 0, ПараметрыФормы.Интервал, 1));
ПараметрыФормы.Вставить("Контроль", ТекущаяДата() + ПараметрыФормы.ТекущийИнтервал); // дата сеанса не используется ПараметрыФормы.Вставить("Контроль", ТекущаяДата() + ПараметрыФормы.ТекущийИнтервал); // АПК:143 Дата сеанса не используется для проверки интервалов
Операции = АктивныеДлительныеОперации(); Операции = АктивныеДлительныеОперации();
Операции.Список.Вставить(ПараметрыФормы.ИдентификаторЗадания, ПараметрыФормы); Операции.Список.Вставить(ПараметрыФормы.ИдентификаторЗадания, ПараметрыФормы);
@@ -410,7 +410,7 @@
// //
Функция СмещениеВремениСервера() Экспорт Функция СмещениеВремениСервера() Экспорт
СмещениеВремениСервера = ТекущаяДата() - ТекущаяДатаСеанса(); СмещениеВремениСервера = ТекущаяДата() - ТекущаяДатаСеанса(); // АПК:143 Требуется дата компьютера
Если СмещениеВремениСервера >= -1 И СмещениеВремениСервера <= 1 Тогда Если СмещениеВремениСервера >= -1 И СмещениеВремениСервера <= 1 Тогда
СмещениеВремениСервера = 0; СмещениеВремениСервера = 0;
КонецЕсли; КонецЕсли;
@@ -461,7 +461,9 @@
КонецЕсли; КонецЕсли;
ОбновлениеИнформационнойБазыСлужебный.ПослеЗагрузкиДанных(Контейнер); ОбновлениеИнформационнойБазыСлужебный.ПослеЗагрузкиДанных(Контейнер);
СтандартныеПодсистемыСервер.ПослеЗагрузкиДанных(Контейнер);
КонецПроцедуры КонецПроцедуры
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗагрузкеПользователяИнформационнойБазы. // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриЗагрузкеПользователяИнформационнойБазы.
@@ -652,7 +652,10 @@
Реквизит.Поле = ОписаниеПоля.Поле; Реквизит.Поле = ОписаниеПоля.Поле;
Реквизит.Имя = ИмяПоля(ОписаниеПоля.Поле); Реквизит.Имя = ИмяПоля(ОписаниеПоля.Поле);
Реквизит.Тип = ОписаниеПоля.Тип; Если Не ОписаниеПоля.Тип.СодержитТип(Тип("ТаблицаЗначений")) Тогда
Реквизит.Тип = ОписаниеПоля.Тип;
КонецЕсли;
Реквизит.Папка = ОписаниеПоля.Папка; Реквизит.Папка = ОписаниеПоля.Папка;
Реквизит.Таблица = ОписаниеПоля.Таблица; Реквизит.Таблица = ОписаниеПоля.Таблица;
Реквизит.Порядок = 1; Реквизит.Порядок = 1;
@@ -1518,7 +1521,7 @@
ФорматированныеСтроки.Добавить(ПодстрокаДоВхождения); ФорматированныеСтроки.Добавить(ПодстрокаДоВхождения);
ФорматированныеСтроки.Добавить(Новый ФорматированнаяСтрока(ПодстрокаВхождения, ФорматированныеСтроки.Добавить(Новый ФорматированнаяСтрока(ПодстрокаВхождения,
Новый Шрифт( , , Истина), Новый Цвет(0,128,0))); ШрифтыСтиля.ВажнаяНадписьШрифт, ЦветаСтиля.РезультатУспехЦвет));
КонецЦикла; КонецЦикла;
Если Не ЗначениеЗаполнено(ФорматированныеСтроки) Тогда Если Не ЗначениеЗаполнено(ФорматированныеСтроки) Тогда
@@ -125,7 +125,7 @@
Отбор = Новый Структура; Отбор = Новый Структура;
Отбор.Вставить("Данные", Результат.Ссылка); Отбор.Вставить("Данные", Результат.Ссылка);
Отбор.Вставить("СобытиеЖурналаРегистрации", События); Отбор.Вставить("СобытиеЖурналаРегистрации", События);
Отбор.Вставить("ДатаНачала", НачалоМесяца(ТекущаяДата())); Отбор.Вставить("ДатаНачала", НачалоМесяца(ТекущаяДата())); // АПК:143 ТекущаяДата() для отбора журнала регистрации
ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор); ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор);
КонецЕсли; КонецЕсли;
Иначе Иначе
@@ -100,14 +100,17 @@
КонецЦикла; КонецЦикла;
Иначе
Для каждого Представление Из Результат.ЗначенияНаРазныхЯзыках Цикл
Объект[ДополнительныеПараметры.ИмяРеквизита + Представление.Суффикс]= Представление.ЗначениеРеквизита;
КонецЦикла;
КонецЕсли; КонецЕсли;
Для каждого Представление Из Результат.ЗначенияНаРазныхЯзыках Цикл
Если ЗначениеЗаполнено(Представление.Суффикс) Тогда
ИмяРеквизитаНаДругомЯзыке = ДополнительныеПараметры.ИмяРеквизита + Представление.Суффикс;
Если Объект.Свойство(ИмяРеквизитаНаДругомЯзыке) Тогда
Объект[ИмяРеквизитаНаДругомЯзыке]= Представление.ЗначениеРеквизита;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если Результат.Свойство("СтрокаНаТекущемЯзыке") Тогда Если Результат.Свойство("СтрокаНаТекущемЯзыке") Тогда
Объект[ДополнительныеПараметры.ИмяРеквизита] = Результат.СтрокаНаТекущемЯзыке; Объект[ДополнительныеПараметры.ИмяРеквизита] = Результат.СтрокаНаТекущемЯзыке;
КонецЕсли; КонецЕсли;
@@ -25,41 +25,51 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если Не МультиязычностьСервер.ОбъектСодержитТЧПредставления(Данные.Ссылка) Тогда СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда
СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда Если Данные.Свойство(ИмяРеквизита + СуффиксЯзыка) Тогда
СтандартнаяОбработка = Ложь; Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, ИмяРеквизита, ,
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, ИмяРеквизита,, ТекущийЯзык().КодЯзыка); ТекущийЯзык().КодЯзыка);
Если ПустаяСтрока(Представление) И Данные.Свойство(ИмяРеквизита) Тогда Если ПустаяСтрока(Представление) И Данные.Свойство(ИмяРеквизита) Тогда
Представление = Данные[ИмяРеквизита]; Представление = Данные[ИмяРеквизита];
Если ПустаяСтрока(Представление) Тогда
Возврат;
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли;
ИначеЕсли Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| &ИмяРеквизита КАК Наименование
|ИЗ
| &Представления КАК Представления
|ГДЕ
| Представления.КодЯзыка = &Язык
| И Представления.Ссылка = &Ссылка";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизита", "Представления." + ИмяРеквизита);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Представления", Данные.Ссылка.Метаданные().ПолноеИмя() + ".Представления");
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Ссылка", Данные.Ссылка);
Запрос.УстановитьПараметр("Язык", ТекущийЯзык().КодЯзыка);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
Представление = РезультатЗапроса.Выгрузить()[0].Наименование; Возврат;
КонецЕсли;
КонецЕсли;
Если Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда
Если МультиязычностьСервер.ОбъектСодержитТЧПредставления(Данные.Ссылка, ИмяРеквизита) Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| &ИмяРеквизита КАК Наименование
|ИЗ
| &Представления КАК Представления
|ГДЕ
| Представления.КодЯзыка = &Язык
| И Представления.Ссылка = &Ссылка";
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяРеквизита", "Представления." + ИмяРеквизита);
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Представления", Данные.Ссылка.Метаданные().ПолноеИмя() + ".Представления");
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("Ссылка", Данные.Ссылка);
Запрос.УстановитьПараметр("Язык", ТекущийЯзык().КодЯзыка);
РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
СтандартнаяОбработка = Ложь;
Представление = РезультатЗапроса.Выгрузить()[0].Наименование;
КонецЕсли;
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -33,7 +33,7 @@
КонецФункции КонецФункции
Функция ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных) Экспорт Функция ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных, ИмяРеквизита = "") Экспорт
Если ТипЗнч(СсылкаИлиПолноеИмяМетаданных) = Тип("Строка") Тогда Если ТипЗнч(СсылкаИлиПолноеИмяМетаданных) = Тип("Строка") Тогда
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(СсылкаИлиПолноеИмяМетаданных); ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(СсылкаИлиПолноеИмяМетаданных);
@@ -43,6 +43,7 @@
ПолноеИмя = ОбъектМетаданных.ПолноеИмя(); ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
КонецЕсли; КонецЕсли;
ЕстьТабличнаяЧасть = Ложь;
Если СтрНачинаетсяС(ПолноеИмя, "Справочник") Если СтрНачинаетсяС(ПолноеИмя, "Справочник")
Или СтрНачинаетсяС(ПолноеИмя, "Документ") Или СтрНачинаетсяС(ПолноеИмя, "Документ")
Или СтрНачинаетсяС(ПолноеИмя, "ПланВидовХарактеристик") Или СтрНачинаетсяС(ПолноеИмя, "ПланВидовХарактеристик")
@@ -53,10 +54,15 @@
Или СтрНачинаетсяС(ПолноеИмя, "Отчет") Или СтрНачинаетсяС(ПолноеИмя, "Отчет")
Или СтрНачинаетсяС(ПолноеИмя, "ПланСчетов") Или СтрНачинаетсяС(ПолноеИмя, "ПланСчетов")
Или СтрНачинаетсяС(ПолноеИмя, "ПланОбмена") Тогда Или СтрНачинаетсяС(ПолноеИмя, "ПланОбмена") Тогда
Возврат ОбъектМетаданных.ТабличныеЧасти.Найти("Представления") <> Неопределено;
ЕстьТабличнаяЧасть = ОбъектМетаданных.ТабличныеЧасти.Найти("Представления") <> Неопределено;
Если ЕстьТабличнаяЧасть И ЗначениеЗаполнено(ИмяРеквизита) Тогда
ЕстьТабличнаяЧасть = ОбъектМетаданных.ТабличныеЧасти.Представления.Реквизиты.Найти(ИмяРеквизита) <> Неопределено;
КонецЕсли;
КонецЕсли; КонецЕсли;
Возврат Ложь; Возврат ЕстьТабличнаяЧасть;
КонецФункции КонецФункции
@@ -168,11 +168,11 @@
ОбъектМетаданных = ОбъектМетаданных(ТекущийОбъект); ОбъектМетаданных = ОбъектМетаданных(ТекущийОбъект);
СуффиксТекущегоЯзыка = СуффиксТекущегоЯзыка(); СуффиксТекущегоЯзыка = СуффиксТекущегоЯзыка();
Если ЗначениеЗаполнено(СуффиксТекущегоЯзыка) И МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) Тогда
Если Не ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных) И ТекущийОбъект.ЭтоНовый() Тогда Если Не ОбщегоНазначения.ЭтоРегистр(ОбъектМетаданных) И ТекущийОбъект.ЭтоНовый() Тогда
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл
@@ -197,11 +197,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если СтрСравнить(ОбщегоНазначения.КодОсновногоЯзыка(), ТекущийЯзык().КодЯзыка) <> 0 Тогда ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
СуффиксТекущегоЯзыка = СуффиксТекущегоЯзыка();
КонецЕсли;
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных);
Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл
@@ -254,7 +250,7 @@
Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ",")); Представления.Свернуть("КодЯзыка", СтрСоединить(Реквизиты, ","));
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
Если ИменаЛокализуемыхРеквизитов.Количество() > 0 Тогда Если ИменаЛокализуемыхРеквизитов.Количество() > 0 Тогда
СкопироватьМультиязычныеЗначенияВРеквизитыШапки(ТекущийОбъект, ИменаЛокализуемыхРеквизитов, КодПервогоДополнительногоЯзыкаИнформационнойБазы()); СкопироватьМультиязычныеЗначенияВРеквизитыШапки(ТекущийОбъект, ИменаЛокализуемыхРеквизитов, КодПервогоДополнительногоЯзыкаИнформационнойБазы());
@@ -288,7 +284,7 @@
Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) И ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных) И ЗначениеЗаполнено(СуффиксТекущегоЯзыка) Тогда
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл
@@ -500,8 +496,8 @@
Возврат МультиязычностьПовтИсп.СведенияОбЯзыках(); Возврат МультиязычностьПовтИсп.СведенияОбЯзыках();
КонецФункции КонецФункции
Функция ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных) Экспорт Функция ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных, ИмяРеквизита = "") Экспорт
Возврат МультиязычностьПовтИсп.ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных); Возврат МультиязычностьПовтИсп.ОбъектСодержитТЧПредставления(СсылкаИлиПолноеИмяМетаданных, ИмяРеквизита);
КонецФункции КонецФункции
Функция ИмяРеквизитаБезСуффиксаЯзык(Знач ИмяРеквизита) Экспорт Функция ИмяРеквизитаБезСуффиксаЯзык(Знач ИмяРеквизита) Экспорт
@@ -1218,8 +1214,13 @@
КонецЕсли; КонецЕсли;
ОбъектМетаданных = Объект.Метаданные(); ОбъектМетаданных = Объект.Метаданные();
МультиязычныеСтрокиВРеквизитах = МультиязычныеСтрокиВРеквизитах(ОбъектМетаданных); ВсеМультиязычныеРеквизиты = МультиязычныеРеквизитыОбъекта(ОбъектМетаданных);
МультиязычныеРеквизиты = МультиязычныеРеквизитыОбъекта(ОбъектМетаданных); НаименованияЛокализуемыхРеквизитовШапки = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
ТЧПредставления = Неопределено;
Если ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()) Тогда
ТЧПредставления = Метаданные.НайтиПоТипу(ТипЗнч(Объект.Представления));
КонецЕсли;
Для Каждого ЗначениеРеквизита Из Значения Цикл Для Каждого ЗначениеРеквизита Из Значения Цикл
ИмяРеквизита = ЗначениеРеквизита.Ключ; ИмяРеквизита = ЗначениеРеквизита.Ключ;
@@ -1240,37 +1241,39 @@
Язык = Элемент.Ключ; Язык = Элемент.Ключ;
Значение = Элемент.Значение; Значение = Элемент.Значение;
Если МультиязычныеРеквизиты[ИмяРеквизита] = Истина Тогда Если ВсеМультиязычныеРеквизиты[ИмяРеквизита] <> Неопределено Тогда
Если МультиязычныеСтрокиВРеквизитах Тогда
СуффиксЯзыка = ""; Если Язык = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Если КодОсновногоЯзыка() <> Язык Тогда Объект[ИмяРеквизита] = Значение;
СуффиксЯзыка = СуффиксЯзыка(Язык); Продолжить;
Если ПустаяСтрока(СуффиксЯзыка) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Объект[ИмяРеквизита + СуффиксЯзыка] = Значение;
Иначе
Если Язык = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Объект[ИмяРеквизита] = Значение;
Продолжить;
КонецЕсли;
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = Язык Тогда
НайденнаяСтрока = СтрокаТаблицы;
Прервать;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
НайденнаяСтрока = Объект.Представления.Добавить();
НайденнаяСтрока.КодЯзыка = Язык;
КонецЕсли;
НайденнаяСтрока[ИмяРеквизита] = Значение;
КонецЕсли; КонецЕсли;
Если НаименованияЛокализуемыхРеквизитовШапки[ИмяРеквизита] <> Неопределено Тогда
СуффиксЯзыка = СуффиксЯзыка(Язык);
Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда
Объект[ИмяРеквизита + СуффиксЯзыка] = Значение;
КонецЕсли;
КонецЕсли;
Если ТЧПредставления <> Неопределено
И ТЧПредставления.Реквизиты.Найти(ИмяРеквизита) <> Неопределено Тогда
НайденнаяСтрока = Неопределено;
Для Каждого СтрокаТаблицы Из Объект.Представления Цикл
Если СтрокаТаблицы.КодЯзыка = Язык Тогда
НайденнаяСтрока = СтрокаТаблицы;
Прервать;
КонецЕсли;
КонецЦикла;
Если НайденнаяСтрока = Неопределено Тогда
НайденнаяСтрока = Объект.Представления.Добавить();
НайденнаяСтрока.КодЯзыка = Язык;
КонецЕсли;
НайденнаяСтрока[ИмяРеквизита] = Значение;
КонецЕсли;
Иначе // Реквизиту не являющемся мультиязычном устанавливается значение только на основном языке. Иначе // Реквизиту не являющемся мультиязычном устанавливается значение только на основном языке.
Если КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда Если КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Объект[ИмяРеквизита] = ЗначенияРеквизита[КодЯзыка]; Объект[ИмяРеквизита] = ЗначенияРеквизита[КодЯзыка];
@@ -1506,7 +1509,9 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
ИначеЕсли ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()) Тогда КонецЕсли;
Если ОбъектСодержитТЧПредставления(ОбъектМетаданных.ПолноеИмя()) Тогда
РеквизитыТабличнойЧастиПредставления = ОбъектМетаданных.ТабличныеЧасти.Представления.Реквизиты; // КоллекцияОбъектовМетаданных из ОбъектМетаданныхРеквизит - РеквизитыТабличнойЧастиПредставления = ОбъектМетаданных.ТабличныеЧасти.Представления.Реквизиты; // КоллекцияОбъектовМетаданных из ОбъектМетаданныхРеквизит -
Для каждого Реквизит Из РеквизитыТабличнойЧастиПредставления Цикл Для каждого Реквизит Из РеквизитыТабличнойЧастиПредставления Цикл
@@ -1650,7 +1655,7 @@
Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданные) Тогда Если МультиязычныеСтрокиВРеквизитах(ОбъектМетаданные) Тогда
СписокМультиязычныхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданные); СписокМультиязычныхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданные);
Для Каждого Реквизит Из СписокМультиязычныхРеквизитов Цикл Для Каждого Реквизит Из СписокМультиязычныхРеквизитов Цикл
Объект[Реквизит.Ключ + "Язык1"] = ""; Объект[Реквизит.Ключ + "Язык1"] = "";
Объект[Реквизит.Ключ + "Язык2"] = ""; Объект[Реквизит.Ключ + "Язык2"] = "";
@@ -1693,7 +1698,7 @@
ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка); ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка);
ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъекта(ОбъектМетаданных); ИменаЛокализуемыхРеквизитов = НаименованияЛокализуемыхРеквизитовОбъектаВШапке(ОбъектМетаданных);
Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл Для Каждого Реквизит Из ИменаЛокализуемыхРеквизитов Цикл
@@ -1951,6 +1951,10 @@
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИтоговыйМассивЗапросов, ТекстыЗапросаРегистров); ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИтоговыйМассивЗапросов, ТекстыЗапросаРегистров);
Для Каждого ТекстЗапроса Из ИтоговыйМассивЗапросов Цикл Для Каждого ТекстЗапроса Из ИтоговыйМассивЗапросов Цикл
Если Не ЗначениеЗаполнено(ТекстЗапроса) Тогда
Продолжить;
КонецЕсли;
Если Очередь = Неопределено Тогда Если Очередь = Неопределено Тогда
УсловиеОтбораУзла = " ТаблицаИзменений.Узел ССЫЛКА ПланОбмена.ОбновлениеИнформационнойБазы "; УсловиеОтбораУзла = " ТаблицаИзменений.Узел ССЫЛКА ПланОбмена.ОбновлениеИнформационнойБазы ";
Иначе Иначе
@@ -2776,8 +2780,13 @@
// * ПриоритетыВыполнения - ТаблицаЗначений - таблица приоритетов выполнения между отложенными обработчиками, // * ПриоритетыВыполнения - ТаблицаЗначений - таблица приоритетов выполнения между отложенными обработчиками,
// изменяющими или читающими одни и те же данные. Подробнее см. в комментарии // изменяющими или читающими одни и те же данные. Подробнее см. в комментарии
// к функции ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика. // к функции ОбновлениеИнформационнойБазы.ПриоритетыВыполненияОбработчика.
//
// 5) Для оперативных и монопольных обработчиков начального заполнения:
// * НеВыполнятьПриПереходеСДругойПрограммы - Булево - при переходе с другой программы обработчики начального
// заполнения новых подсистем выполняются автоматически. Если установить
// Истина, такой обработчик не будет выполнен.
// //
// 5) Для внутреннего использования: // 6) Для внутреннего использования:
// //
// * ВыполнятьВГруппеОбязательных - Булево - следует указывать, если обработчик требуется // * ВыполнятьВГруппеОбязательных - Булево - следует указывать, если обработчик требуется
// выполнять в одной группе с обработчиками на версии "*". // выполнять в одной группе с обработчиками на версии "*".
@@ -2785,7 +2794,7 @@
// относительно других путем изменения приоритета. // относительно других путем изменения приоритета.
// * Приоритет - Число - для внутреннего использования. // * Приоритет - Число - для внутреннего использования.
// //
// 6) Устарели, используются для обратной совместимости (для новых обработчиков не указывать): // 7) Устарели, используются для обратной совместимости (для новых обработчиков не указывать):
// //
// * МонопольныйРежим - Неопределено // * МонопольныйРежим - Неопределено
// - Булево - если указано Неопределено, то обработчик // - Булево - если указано Неопределено, то обработчик
@@ -2840,6 +2849,8 @@
Обработчики.Колонки.Добавить("ИзменяемыеОбъекты", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0))); Обработчики.Колонки.Добавить("ИзменяемыеОбъекты", Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(0)));
Обработчики.Колонки.Добавить("ПриоритетыВыполнения"); Обработчики.Колонки.Добавить("ПриоритетыВыполнения");
Обработчики.Колонки.Добавить("Многопоточный", Новый ОписаниеТипов("Булево")); Обработчики.Колонки.Добавить("Многопоточный", Новый ОписаниеТипов("Булево"));
// Для обработчиков начального заполнения.
Обработчики.Колонки.Добавить("НеВыполнятьПриПереходеСДругойПрограммы", Новый ОписаниеТипов("Булево"));
// Устарело. Обратная совместимость с редакцией "2.2". // Устарело. Обратная совместимость с редакцией "2.2".
Обработчики.Колонки.Добавить("Опциональный"); Обработчики.Колонки.Добавить("Опциональный");
@@ -37,14 +37,19 @@
// версии конфигурации включительно или "Параллельно" - отложенный обработчик после // версии конфигурации включительно или "Параллельно" - отложенный обработчик после
// обработки первой порции данных передает управление следующему обработчику, а после // обработки первой порции данных передает управление следующему обработчику, а после
// выполнения последнего обработчика цикл повторяется заново. // выполнения последнего обработчика цикл повторяется заново.
// * ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы - Булево - Если установить Истина, то при переходе с
// другой программы будут автоматически выполнены обработчики начального заполнения
// новых подсистем. При описании обработчика обновления можно при необходимости
// отключить его выполнение, указав свойство НеВыполнятьПриПереходеСДругойПрограммы.
// //
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы"; Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.6.180"; Описание.Версия = "3.1.6.198";
Описание.ИдентификаторИнтернетПоддержки = "SSL"; Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно"; Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0"; Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
Описание.ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы = Истина;
КонецПроцедуры КонецПроцедуры
@@ -2931,6 +2931,8 @@
ОбработчикиПерехода = НоваяТаблицаОбработчиковПереходаСДругойПрограммы(); ОбработчикиПерехода = НоваяТаблицаОбработчиковПереходаСДругойПрограммы();
ИмяОсновнойКонфигурации = Метаданные.Имя; ИмяОсновнойКонфигурации = Метаданные.Имя;
ОписанияПодсистем = СтандартныеПодсистемыПовтИсп.ОписанияПодсистем();
ПодсистемыКонфигурации = ОписанияПодсистем.ПоИменам;
ВсеНовыеПодсистемы = СведенияОбОбновленииИнформационнойБазы().ВсеНовыеПодсистемы; ВсеНовыеПодсистемы = СведенияОбОбновленииИнформационнойБазы().ВсеНовыеПодсистемы;
// Добавление обработчика заполнения предопределенных данных. // Добавление обработчика заполнения предопределенных данных.
@@ -2956,12 +2958,19 @@
КонецЦикла; КонецЦикла;
Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл Для Каждого ИтерацияОбновления Из ИтерацииОбновления Цикл
ОписаниеПодсистемы = ПодсистемыКонфигурации.Получить(ИтерацияОбновления.Подсистема);
Если Не ОписаниеПодсистемы.ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы Тогда
Продолжить;
КонецЕсли;
Отбор = Новый Структура; Отбор = Новый Структура;
Отбор.Вставить("НачальноеЗаполнение", Истина); Отбор.Вставить("НачальноеЗаполнение", Истина);
ОбработчикиНачальногоЗаполнения = ИтерацияОбновления.Обработчики.НайтиСтроки(Отбор); ОбработчикиНачальногоЗаполнения = ИтерацияОбновления.Обработчики.НайтиСтроки(Отбор);
Для Каждого Обработчик Из ОбработчикиНачальногоЗаполнения Цикл Для Каждого Обработчик Из ОбработчикиНачальногоЗаполнения Цикл
Если Обработчик.РежимВыполнения = "Отложенно" Тогда Если Обработчик.РежимВыполнения = "Отложенно"
Или Обработчик.НеВыполнятьПриПереходеСДругойПрограммы Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -5725,6 +5734,10 @@
Порция.ПоследняяЗапись = Фрагмент.ПоследняяЗапись; Порция.ПоследняяЗапись = Фрагмент.ПоследняяЗапись;
Порция.Обрабатывается = Истина; Порция.Обрабатывается = Истина;
// Если порций больше одной, то для каждой свой КлючЗаписиПрогрессаОбновления прогресса обновления
ПараметрыОбработчикаОбновления = Новый Структура(КонтекстОбработчика.ПараметрыОбработчикаОбновления);
ПараметрыОбработчикаОбновления.КлючЗаписиПрогрессаОбновления = Новый УникальныйИдентификатор;
КонтекстОбработчика.ПараметрыОбработчикаОбновления = Новый ФиксированнаяСтруктура(ПараметрыОбработчикаОбновления);
ОбработатьФрагментДанныхВПотоке(Фрагмент, Группы, КонтекстОбработчика); ОбработатьФрагментДанныхВПотоке(Фрагмент, Группы, КонтекстОбработчика);
КонецЦикла; КонецЦикла;
Иначе Иначе
@@ -370,7 +370,7 @@
ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске(); ПараметрыКлиента = СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске();
КонецЕсли; КонецЕсли;
Возврат ТекущаяДата() + ПараметрыКлиента.ПоправкаКВремениСеанса; Возврат ТекущаяДата() + ПараметрыКлиента.ПоправкаКВремениСеанса; // АПК:143 ТекущаяДата() для вычисления времени сеанса
КонецФункции КонецФункции
@@ -1589,13 +1589,12 @@
// Получатель1 <Адрес1>, Получатель 2 <Адрес2>... Получатель N <АдресN>. // Получатель1 <Адрес1>, Получатель 2 <Адрес2>... Получатель N <АдресN>.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Массив - содержит массив структур адресов. // Массив из Структура:
// Поля структуры: // * Псевдоним - Строка - представление адресата.
// Псевдоним - Строка - представление адресата. // * Адрес - Строка - найденный и соответствующий требованиям почтовый адрес.
// Адрес - Строка - найденный и соответствующий требованиям почтовый адрес. // Если текст, похожий на адрес найден, но не соответствует требованиям
// Если текст, похожий на адрес найден, но не соответствует требованиям // стандартов, то такой текст записывается в поле "Псевдоним".
// стандартов, то такой текст записывается в поле "Псевдоним". // * ОписаниеОшибки - Строка - текстовое представление ошибки, либо пустая строка, если ошибок нет.
// ОписаниеОшибки - Строка - текстовое представление ошибки, либо пустая строка, если ошибок нет.
// //
Функция АдресаЭлектроннойПочтыИзСтроки(Знач СписокАдресов) Экспорт Функция АдресаЭлектроннойПочтыИзСтроки(Знач СписокАдресов) Экспорт
@@ -1605,10 +1604,10 @@
СписокАдресов = СтрЗаменить(СписокАдресов, ">", ">;"); СписокАдресов = СтрЗаменить(СписокАдресов, ">", ">;");
Для Каждого Строка Из СтрРазделить(СписокАдресов, ";", Ложь) Цикл Для Каждого Строка Из СтрРазделить(СписокАдресов, ";", Ложь) Цикл
ЧастьПредставления = ""; ЧастиПредставления = Новый Массив;
Для Каждого АдресСПредставлением Из СтрРазделить(Строка, ",", Ложь) Цикл Для Каждого АдресСПредставлением Из СтрРазделить(Строка, ",", Ложь) Цикл
Если Не ЗначениеЗаполнено(АдресСПредставлением) Тогда Если Не ЗначениеЗаполнено(АдресСПредставлением) Тогда
ЧастьПредставления = ЧастьПредставления + АдресСПредставлением; ЧастиПредставления.Добавить(АдресСПредставлением);
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -1622,23 +1621,25 @@
Если АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес) Тогда Если АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес) Тогда
ЧастиСтроки.Удалить(ЧастиСтроки.ВГраница()); ЧастиСтроки.Удалить(ЧастиСтроки.ВГраница());
Иначе Иначе
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Некорректный адрес электронной почты ""%1""'"), Адрес);
Адрес = ""; Адрес = "";
ОписаниеОшибки = НСтр("ru = 'Адрес электронной почты содержит ошибки'");
КонецЕсли; КонецЕсли;
Псевдоним = СокрЛП(ЧастьПредставления + СтрСоединить(ЧастиСтроки, " ")); Псевдоним = СокрЛП(СтрСоединить(ЧастиПредставления, ",") + СтрСоединить(ЧастиСтроки, " "));
ЧастьПредставления = ""; ЧастиПредставления.Очистить();
СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки); СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки);
Результат.Добавить(СтруктураАдреса); Результат.Добавить(СтруктураАдреса);
Иначе Иначе
ЧастьПредставления = ЧастьПредставления + АдресСПредставлением + ","; ЧастиПредставления.Добавить(АдресСПредставлением);
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если ЗначениеЗаполнено(СтрЗаменить(ЧастьПредставления, ",", "")) Тогда Псевдоним = СтрСоединить(ЧастиПредставления, ",");
Псевдоним = ЧастьПредставления; Если ЗначениеЗаполнено(Псевдоним) Тогда
Адрес = ""; Адрес = "";
ОписаниеОшибки = НСтр("ru = 'Строка адреса не соответствует формату ""Имя получателя <Адрес@Почты>""'"); ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Некорректный адрес электронной почты ""%1""'"), Псевдоним);
СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки); СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки);
Результат.Добавить(СтруктураАдреса); Результат.Добавить(СтруктураАдреса);
КонецЕсли; КонецЕсли;
@@ -1754,106 +1755,29 @@
// ВызыватьИсключение - Булево - необходимо передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение. // ВызыватьИсключение - Булево - необходимо передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение.
// //
// Возвращаемое значение: // Возвращаемое значение:
// Структура: // Массив из Структура:
// * Статус - Булево - успех или неуспех преобразования. // * Адрес - Строка - e-mail получателя.
// * Значение - Массив - (параметр доступен, если Статус = Истина) коллекция адресов в виде структур: // * Представление - Строка - имя получателя.
// ** Адрес - Строка - e-mail получателя.
// ** Представление - Строка - имя получателя.
// * СообщениеОбОшибке - Строка - (параметр доступен, если Статус = Ложь) информация об ошибке.
//
// ВАЖНО: Функция возвращает массив структур, в которых одно поле (любое)
// может быть незаполнено. Может использоваться различными
// подсистемами для собственного сопоставления имени пользователя
// некому email-адресу. Поэтому необходимо перед непосредственной
// отправкой проверить, что поле почтового адреса заполнено.
// //
Функция РазобратьСтрокуСПочтовымиАдресами(Знач СтрокаПереданныхАдресов, ВызыватьИсключение = Истина) Экспорт Функция РазобратьСтрокуСПочтовымиАдресами(Знач СтрокаПереданныхАдресов, ВызыватьИсключение = Истина) Экспорт
Результат = Новый Массив; Результат = Новый Массив;
ОписанияОшибок = Новый Массив;
Адресаты = АдресаЭлектроннойПочтыИзСтроки(СтрокаПереданныхАдресов);
НедопустимыеСимволы = "!#$%^&*()`~|\/="; Для Каждого Адресат Из Адресаты Цикл
Если ЗначениеЗаполнено(Адресат.ОписаниеОшибки) Тогда
СообщениеНедопустимыеСимволы = НСтр("ru = 'Недопустимый символ ""%1"" в адресе электронной почты ""%2""'"); ОписанияОшибок.Добавить(Адресат.ОписаниеОшибки);
СообщениеНеверныйФорматПочтовогоАдреса = НСтр("ru = 'Некорректный адрес электронной почты ""%1""'");
СтрокаПереданныхАдресов = СтрЗаменить(СтрокаПереданныхАдресов, ",", ";");
МассивПодстрокКОбработке = СтрРазделить(СокрЛП(СтрокаПереданныхАдресов), ";", Ложь);
Для Каждого СтрокаАдреса Из МассивПодстрокКОбработке Цикл
Индекс = 1; // Номер обрабатываемого символа.
Накопитель = ""; // Накопитель символов, после анализа перемещается либо в полное имя
// либо в почтовый адрес.
ПолноеИмяАдресата = ""; // Переменная, накапливающая имя адресата.
ПочтовыйАдрес = ""; // Переменная, накапливающая e-mail адрес
// 1 - формирование полного имени: ожидаются любые допустимые символы имени адресата
// 2 - формирование почтового адреса: ожидаются любые допустимые символы email адреса
// 3 - завершение формирования очередного почтового адреса - ожидаются символы разделители либо пробелы.
СтадияРазбора = 1;
Пока Индекс <= СтрДлина(СтрокаАдреса) Цикл
Символ = Сред(СтрокаАдреса, Индекс, 1);
Если Символ = " " Тогда
Индекс = ? ((ПропуститьПробелы(СтрокаАдреса, Индекс, " ") - 1) > Индекс,
ПропуститьПробелы(СтрокаАдреса, Индекс, " ") - 1,
Индекс);
Если СтадияРазбора = 1 Тогда
ПолноеИмяАдресата = ПолноеИмяАдресата + Накопитель + " ";
ИначеЕсли СтадияРазбора = 2 Тогда
ПочтовыйАдрес = Накопитель;
СтадияРазбора = 3;
КонецЕсли;
Накопитель = "";
ИначеЕсли Символ = "@" Тогда
Если СтадияРазбора = 1 Тогда
СтадияРазбора = 2;
Для ИндексПоискаНС = 1 По СтрДлина(Накопитель) Цикл
Если СтрНайти(НедопустимыеСимволы, Сред(Накопитель, ИндексПоискаНС, 1)) > 0 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНедопустимыеСимволы,
Сред(Накопитель, ИндексПоискаНС, 1),СтрокаАдреса);
КонецЕсли;
КонецЦикла;
Накопитель = Накопитель + Символ;
ИначеЕсли СтадияРазбора = 2 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНеверныйФорматПочтовогоАдреса,СтрокаАдреса);
ИначеЕсли СтадияРазбора = 3 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНеверныйФорматПочтовогоАдреса,СтрокаАдреса);
КонецЕсли;
Иначе
Если СтадияРазбора = 2 ИЛИ СтадияРазбора = 3 Тогда
Если СтрНайти(НедопустимыеСимволы, Символ) > 0 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНедопустимыеСимволы,Символ,СтрокаАдреса);
КонецЕсли;
КонецЕсли;
Накопитель = Накопитель + Символ;
КонецЕсли;
Индекс = Индекс + 1;
КонецЦикла;
Если СтадияРазбора = 1 Тогда
ПолноеИмяАдресата = ПолноеИмяАдресата + Накопитель;
ИначеЕсли СтадияРазбора = 2 Тогда
ПочтовыйАдрес = Накопитель;
КонецЕсли;
Если ПустаяСтрока(ПочтовыйАдрес) И (Не ПустаяСтрока(ПолноеИмяАдресата)) И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНеверныйФорматПочтовогоАдреса, ПолноеИмяАдресата);
ИначеЕсли СтрЧислоВхождений(ПочтовыйАдрес, "@") <> 1 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНеверныйФорматПочтовогоАдреса,ПочтовыйАдрес);
КонецЕсли;
Если НЕ (ПустаяСтрока(ПолноеИмяАдресата) И ПустаяСтрока(ПочтовыйАдрес)) Тогда
Результат.Добавить(ПроверитьИПодготовитьПочтовыйАдрес(ПолноеИмяАдресата, ПочтовыйАдрес));
КонецЕсли; КонецЕсли;
Результат.Добавить(Новый Структура("Адрес, Представление", Адресат.Адрес, Адресат.Псевдоним));
КонецЦикла; КонецЦикла;
Если ВызыватьИсключение И ЗначениеЗаполнено(ОписанияОшибок) Тогда
ТекстОшибки = СтрСоединить(ОписанияОшибок, Символы.ПС);
ВызватьИсключение ТекстОшибки;
КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -3957,7 +3881,7 @@
СтруктураСсылки = СтруктураURI(URL); СтруктураСсылки = СтруктураURI(URL);
АдресСервераРесурса = СтруктураСсылки.Хост; АдресСервераРесурса = СтруктураСсылки.Хост;
АдресСервераКонтрольнойПроверки = "1c.com"; АдресСервераКонтрольнойПроверки = "google.com";
РезультатДоступностиРесурса = ПроверитьДоступностьСервера(АдресСервераРесурса); РезультатДоступностиРесурса = ПроверитьДоступностьСервера(АдресСервераРесурса);
@@ -4108,27 +4032,17 @@
Функция ЗначениеОжидаемогоТипа(Значение, ОжидаемыеТипы) Функция ЗначениеОжидаемогоТипа(Значение, ОжидаемыеТипы)
ТипЗначения = ТипЗнч(Значение); ТипЗначения = ТипЗнч(Значение);
Если ТипЗнч(ОжидаемыеТипы) = Тип("ОписаниеТипов") Тогда Если ТипЗнч(ОжидаемыеТипы) = Тип("ОписаниеТипов") Тогда
Возврат ОжидаемыеТипы.Типы().Найти(ТипЗначения) <> Неопределено;
Возврат ОжидаемыеТипы.СодержитТип(ТипЗначения);
ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Тип") Тогда ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Тип") Тогда
Возврат ТипЗначения = ОжидаемыеТипы; Возврат ТипЗначения = ОжидаемыеТипы;
ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Массив") ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Массив")
Или ТипЗнч(ОжидаемыеТипы) = Тип("ФиксированныйМассив") Тогда Или ТипЗнч(ОжидаемыеТипы) = Тип("ФиксированныйМассив") Тогда
Возврат ОжидаемыеТипы.Найти(ТипЗначения) <> Неопределено; Возврат ОжидаемыеТипы.Найти(ТипЗначения) <> Неопределено;
ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Соответствие") ИначеЕсли ТипЗнч(ОжидаемыеТипы) = Тип("Соответствие")
Или ТипЗнч(ОжидаемыеТипы) = Тип("ФиксированноеСоответствие") Тогда Или ТипЗнч(ОжидаемыеТипы) = Тип("ФиксированноеСоответствие") Тогда
Возврат ОжидаемыеТипы.Получить(ТипЗначения) <> Неопределено; Возврат ОжидаемыеТипы.Получить(ТипЗначения) <> Неопределено;
КонецЕсли; КонецЕсли;
Возврат Неопределено; Возврат Неопределено;
КонецФункции КонецФункции
@@ -4225,83 +4139,6 @@
КонецФункции КонецФункции
#КонецОбласти
#Область РазобратьСтрокуСПочтовымиАдресами
// Проверяет, что почтовый адрес не содержит символов обрамления
// если символы обрамления вставлены правильно убирает их.
//
Функция ПроверитьИПодготовитьПочтовыйАдрес(Знач ПолноеИмяАдресата, Знач ПочтовыйАдрес)
НедопустимыйСимволВИмениАдресата = НСтр("ru = 'Недопустимый символ в имени адресата.'");
НедопустимыйСимволВПочтовомАдресе = НСтр("ru = 'Недопустимый символ в почтовом адресе.'");
СимволыОбрамления = "<>[]";
ПочтовыйАдрес = СокрЛП(ПочтовыйАдрес);
ПолноеИмяАдресата = СокрЛП(ПолноеИмяАдресата);
Если СтрНачинаетсяС(ПолноеИмяАдресата, "<") Тогда
Если СтрЗаканчиваетсяНа(ПолноеИмяАдресата, ">") Тогда
ПолноеИмяАдресата = Сред(ПолноеИмяАдресата, 2, СтрДлина(ПолноеИмяАдресата)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВИмениАдресата;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(ПолноеИмяАдресата, "[") Тогда
Если СтрЗаканчиваетсяНа(ПолноеИмяАдресата, "]") Тогда
ПолноеИмяАдресата = Сред(ПолноеИмяАдресата, 2, СтрДлина(ПолноеИмяАдресата)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВИмениАдресата;
КонецЕсли;
КонецЕсли;
Если СтрНачинаетсяС(ПочтовыйАдрес, "<") Тогда
Если СтрЗаканчиваетсяНа(ПочтовыйАдрес, ">") Тогда
ПочтовыйАдрес = Сред(ПочтовыйАдрес, 2, СтрДлина(ПочтовыйАдрес)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(ПочтовыйАдрес, "[") Тогда
Если СтрЗаканчиваетсяНа(ПочтовыйАдрес, "]") Тогда
ПочтовыйАдрес = Сред(ПочтовыйАдрес, 2, СтрДлина(ПочтовыйАдрес)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
КонецЕсли;
Для Индекс = 1 По СтрДлина(СимволыОбрамления) Цикл
Если СтрНайти(ПолноеИмяАдресата, Сред(СимволыОбрамления, Индекс, 1)) <> 0
ИЛИ СтрНайти(ПочтовыйАдрес, Сред(СимволыОбрамления, Индекс, 1)) <> 0 Тогда
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
КонецЦикла;
Возврат Новый Структура("Адрес, Представление", ПочтовыйАдрес,ПолноеИмяАдресата);
КонецФункции
// Сдвигает маркер позиции пока встречается символ Символ
// возвращает номер позиции в строке, на которое установился маркер.
//
Функция ПропуститьПробелы(
Знач Строка,
Знач ТекущийИндекс,
Знач ПропускаемыйСимвол)
// Убираем лишние пробелы если они есть.
Пока ТекущийИндекс < СтрДлина(Строка) Цикл
Если Сред(Строка, ТекущийИндекс, 1) <> ПропускаемыйСимвол Тогда
Возврат ТекущийИндекс;
КонецЕсли;
ТекущийИндекс = ТекущийИндекс + 1;
КонецЦикла;
Возврат ТекущийИндекс;
КонецФункции
#КонецОбласти
Функция СтрокаСодержитТолькоДопустимыеСимволы(Строка, ДопустимыеСимволы) Функция СтрокаСодержитТолькоДопустимыеСимволы(Строка, ДопустимыеСимволы)
МассивСимволов = Новый Массив; МассивСимволов = Новый Массив;
Для Позиция = 1 По СтрДлина(ДопустимыеСимволы) Цикл Для Позиция = 1 По СтрДлина(ДопустимыеСимволы) Цикл
@@ -4319,6 +4156,8 @@
#КонецОбласти #КонецОбласти
#КонецОбласти
#Область ДинамическийСписок #Область ДинамическийСписок
Процедура НайтиРекурсивно(КоллекцияЭлементов, МассивЭлементов, СпособПоиска, ЗначениеПоиска) Процедура НайтиРекурсивно(КоллекцияЭлементов, МассивЭлементов, СпособПоиска, ЗначениеПоиска)
@@ -188,7 +188,7 @@
Если Состояние = "ТребуетсяОбновлениеИндекса" Тогда Если Состояние = "ТребуетсяОбновлениеИндекса" Тогда
ДатаАктуальностиИндекса = ПолнотекстовыйПоиск.ДатаАктуальности(); ДатаАктуальностиИндекса = ПолнотекстовыйПоиск.ДатаАктуальности();
ТекущаяДата = ТекущаяДата(); // Исключение, должна использоваться ТекущаяДата(). ТекущаяДата = ТекущаяДата(); // АПК:143 Должна использоваться ТекущаяДата().
Если ДатаАктуальностиИндекса > ТекущаяДата Тогда Если ДатаАктуальностиИндекса > ТекущаяДата Тогда
Интервал = НСтр("ru = 'менее одного дня назад'"); Интервал = НСтр("ru = 'менее одного дня назад'");
@@ -221,7 +221,7 @@
Иначе Иначе
АдресСервераРесурса = СтруктураСсылки.Хост; АдресСервераРесурса = СтруктураСсылки.Хост;
АдресСервераКонтрольнойПроверки = "1c.com"; АдресСервераКонтрольнойПроверки = "google.com";
РезультатДоступностиРесурса = ПолучениеФайловИзИнтернетаСлужебный.ПроверитьДоступностьСервера(АдресСервераРесурса); РезультатДоступностиРесурса = ПолучениеФайловИзИнтернетаСлужебный.ПроверитьДоступностьСервера(АдресСервераРесурса);
@@ -7927,6 +7927,7 @@
Недействителен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвторизованныйПользователь, "Недействителен"); Недействителен = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(АвторизованныйПользователь, "Недействителен");
Если ПользовательИБ = Неопределено Если ПользовательИБ = Неопределено
Или Не ЗначениеЗаполнено(ПользовательИБ.Имя)
Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ) Или Пользователи.ВходВПрограммуРазрешен(ПользовательИБ)
И (РолиАдминистратораДоступны(ПользовательИБ) И (РолиАдминистратораДоступны(ПользовательИБ)
Или Недействителен <> Истина) Тогда Или Недействителен <> Истина) Тогда
@@ -34,7 +34,7 @@
ИначеЕсли ТипЗнч(Адрес) <> Тип("Структура") Тогда ИначеЕсли ТипЗнч(Адрес) <> Тип("Структура") Тогда
ВызватьИсключение НСтр("ru = 'Невозможно определить субъекта РФ, ожидается адрес.'"); ВызватьИсключение НСтр("ru = 'Невозможно определить субъект РФ, ожидается адрес.'");
КонецЕсли; КонецЕсли;
@@ -3587,7 +3587,7 @@
АдресВJSON = СтрокаКонтактнойИнформации.Значение; АдресВJSON = СтрокаКонтактнойИнформации.Значение;
КонецЕсли; КонецЕсли;
АдресПоПолям = УправлениеКонтактнойИнформациейСлужебный.СтрокуJSONВСтруктуру(АдресВJSON); АдресПоПолям = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(АдресВJSON, Перечисления.ТипыКонтактнойИнформации.Адрес);
Для каждого ПоляСтроений Из АдресПоПолям.buildings Цикл Для каждого ПоляСтроений Из АдресПоПолям.buildings Цикл
Если СтрСравнить(ПоляСтроений.type, "Литер") = 0 Тогда Если СтрСравнить(ПоляСтроений.type, "Литер") = 0 Тогда
ПоляСтроений.type = "Литера"; ПоляСтроений.type = "Литера";
@@ -1373,7 +1373,7 @@
// * Путь - Строка // * Путь - Строка
// * Том - Строка // * Том - Строка
// * Расширение - Строка // * Расширение - Строка
// * СтатусПроверки - Строка // * СтатусПроверки - Строка - "ОК", "ЛишнийФайлВТоме", "НетФайлаВТоме"
// * Количество - Строка // * Количество - Строка
// * Отредактировал - Строка // * Отредактировал - Строка
// * ДатаРедактирования - Строка // * ДатаРедактирования - Строка
@@ -1479,7 +1479,6 @@
ПолныйПутьФайла = ПолноеИмяФайлаВТоме(СвойстваФайла); ПолныйПутьФайла = ПолноеИмяФайлаВТоме(СвойстваФайла);
СуществующийФайл = ТаблицаФайловНаДиске.НайтиСтроки(Новый Структура("ПолноеИмя", ПолныйПутьФайла)); СуществующийФайл = ТаблицаФайловНаДиске.НайтиСтроки(Новый Структура("ПолноеИмя", ПолныйПутьФайла));
Если СуществующийФайл.Количество() = 0 Тогда Если СуществующийФайл.Количество() = 0 Тогда
НесуществующийФайл = ТаблицаФайловНаДиске.Добавить(); НесуществующийФайл = ТаблицаФайловНаДиске.Добавить();
НесуществующийФайл.Файл = ВерсияСсылка; НесуществующийФайл.Файл = ВерсияСсылка;
НесуществующийФайл.ПолноеИмя = ПолныйПутьФайла; НесуществующийФайл.ПолноеИмя = ПолныйПутьФайла;
@@ -1489,15 +1488,10 @@
НесуществующийФайл.Отредактировал = Выборка.Отредактировал; НесуществующийФайл.Отредактировал = Выборка.Отредактировал;
НесуществующийФайл.ДатаРедактирования = Выборка.ДатаМодификацииФайла; НесуществующийФайл.ДатаРедактирования = Выборка.ДатаМодификацииФайла;
НесуществующийФайл.Количество = 1; НесуществующийФайл.Количество = 1;
НесуществующийФайл.СтатусПроверки = ?(Выборка.ПометкаУдаления, НесуществующийФайл.СтатусПроверки = ?(Выборка.ПометкаУдаления, "ОК", "НетФайлаВТоме");
НСтр("ru = 'Целостные данные'"),
НСтр("ru = 'Отсутствуют данные в томе на диске'"));
Иначе Иначе
СуществующийФайл[0].Файл = ВерсияСсылка; СуществующийФайл[0].Файл = ВерсияСсылка;
СуществующийФайл[0].СтатусПроверки = НСтр("ru = 'Целостные данные'"); СуществующийФайл[0].СтатусПроверки = "ОК";
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -1506,6 +1500,17 @@
КонецПроцедуры КонецПроцедуры
// Для СКД отчета ПроверкаЦелостностиТома.
Функция ПредставлениеСтатусаПроверки(Знач СтатусПроверки) Экспорт
Если СтатусПроверки = "ОК" Тогда
Возврат НСтр("ru = 'Целостные данные'");
ИначеЕсли СтатусПроверки = "ЛишнийФайлВТоме" Тогда
Возврат НСтр("ru = 'Лишние файлы (есть на диске, но сведения о них отсутствуют)'");
ИначеЕсли СтатусПроверки = "НетФайлаВТоме" Тогда
Возврат НСтр("ru = 'Отсутствуют файлы в томе на диске'");
КонецЕсли;
КонецФункции
#КонецОбласти #КонецОбласти
#Область КонтрольВеденияУчета #Область КонтрольВеденияУчета
@@ -1834,8 +1839,8 @@
// Возвращает тип хранения добавляемого файла в зависимости от его расширения и размера. // Возвращает тип хранения добавляемого файла в зависимости от его расширения и размера.
// //
// Параметры: // Параметры:
// РасширениеФайла - Строка - расширение добавляемого файла.
// РазмерФайла - Число - размер добавляемого файла в байтах. // РазмерФайла - Число - размер добавляемого файла в байтах.
// РасширениеФайла - Строка - расширение добавляемого файла.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ПеречислениеСсылка.ТипыХраненияФайлов - если способ хранения файлов в настройках // ПеречислениеСсылка.ТипыХраненияФайлов - если способ хранения файлов в настройках
@@ -1843,7 +1848,7 @@
// файлов указан ВИнформационнойБазеИТомахНаДиске, то возвращает ВИнформационнойБазе, если // файлов указан ВИнформационнойБазеИТомахНаДиске, то возвращает ВИнформационнойБазе, если
// файл соответствует параметрам хранения в информационной базе, иначе ВТомахНаДиске. // файл соответствует параметрам хранения в информационной базе, иначе ВТомахНаДиске.
// //
Функция ТипХраненияФайла(Знач РасширениеФайла, Знач РазмерФайла) Экспорт Функция ТипХраненияФайла(Знач РазмерФайла, Знач РасширениеФайла) Экспорт
ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске; ТипХранения = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске;
Если ХранитьФайлыВТомахНаДискеИИнформационнойБазе() Тогда Если ХранитьФайлыВТомахНаДискеИИнформационнойБазе() Тогда
@@ -929,7 +929,7 @@
Если РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске() Если РаботаСФайламиВТомахСлужебный.ХранитьФайлыВТомахНаДиске()
И РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов() Тогда И РаботаСФайламиВТомахСлужебный.ЕстьТомаХраненияФайлов() Тогда
Возврат РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РасширениеФайла, РазмерФайла); Возврат РаботаСФайламиВТомахСлужебный.ТипХраненияФайла(РазмерФайла, РасширениеФайла);
Иначе Иначе
Возврат Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе; Возврат Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
КонецЕсли; КонецЕсли;
@@ -4325,9 +4325,9 @@
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл)).ПолноеИмя()); ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ПрисоединенныйФайл); ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ПрисоединенныйФайл);
БлокировкаДанных.Заблокировать(); БлокировкаДанных.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(ПрисоединенныйФайл);
ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект(); ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
ФайлОбъект.Заблокировать();
Иначе Иначе
ФайлОбъект = ПрисоединенныйФайл; ФайлОбъект = ПрисоединенныйФайл;
КонецЕсли; КонецЕсли;
@@ -2579,47 +2579,59 @@
КонецПроцедуры КонецПроцедуры
// Обновляет размер файла и текущей версии. Нужно при загрузке шифрованного файла в почте. // Обновляет размер файла и текущей версии.
// //
// Параметры: // Параметры:
// ДанныеФайла - см. ДанныеФайла // ДанныеФайла - см. ДанныеФайла
// РазмерФайла - Число // РазмерФайла - Число
// УникальныйИдентификатор - УникальныйИдентификатор // ИдентификаторФормы - УникальныйИдентификатор
// //
Процедура ОбновитьРазмерФайлаИВерсии(ДанныеФайла, РазмерФайла, УникальныйИдентификатор) Экспорт Процедура ОбновитьРазмерФайлаИВерсии(ДанныеФайла, РазмерФайла, ИдентификаторФормы) Экспорт
УказанаВерсияФайла = ДанныеФайла.Версия <> ДанныеФайла.Ссылка;
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Версия.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Версия);
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Ссылка.Метаданные().ПолноеИмя()); ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Ссылка.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка); ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
Если УказанаВерсияФайла Тогда
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Версия.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Версия);
КонецЕсли;
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , УникальныйИдентификатор); ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , ИдентификаторФормы);
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , УникальныйИдентификатор); Если УказанаВерсияФайла Тогда
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , ИдентификаторФормы);
КонецЕсли;
ВерсияОбъект = ДанныеФайла.Версия.ПолучитьОбъект(); ВерсияОбъект = ДанныеФайла.Версия.ПолучитьОбъект();
ВерсияОбъект.Размер = РазмерФайла; ВерсияОбъект.Размер = РазмерФайла;
// Чтобы прошла запись ранее подписанного объекта. // Чтобы прошла запись подписанного объекта.
ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ВерсияОбъект.Записать(); ВерсияОбъект.Записать();
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект(); Если УказанаВерсияФайла Тогда
// Чтобы прошла запись ранее подписанного объекта. ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина); // Чтобы прошла запись подписанного объекта.
ФайлОбъект.Записать(); ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ФайлОбъект.Записать();
КонецЕсли;
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор); РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ИдентификаторФормы);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор); Если УказанаВерсияФайла Тогда
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, ИдентификаторФормы);
КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор); РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ИдентификаторФормы);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор); Если УказанаВерсияФайла Тогда
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, ИдентификаторФормы);
КонецЕсли;
ВызватьИсключение; ВызватьИсключение;
КонецПопытки; КонецПопытки;
@@ -2280,16 +2280,17 @@
// //
Процедура ЗакончитьРедактированиеСРасширениемОбработкаИсключения(ИнформацияОбОшибке, ПараметрыВыполнения) Процедура ЗакончитьРедактированиеСРасширениемОбработкаИсключения(ИнформацияОбОшибке, ПараметрыВыполнения)
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось поместить файл ""%1"" НСтр("ru = 'Не удалось поместить файл ""%1""
|с диска на компьютере в программу по причине |с диска на компьютере в программу по причине:
|""%2"". |%2.'"),
|
|Повторить операцию?'"),
Строка(ПараметрыВыполнения.ДанныеФайла.Ссылка), Строка(ПараметрыВыполнения.ДанныеФайла.Ссылка),
КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(СобытиеЖурналаРегистрации(),
Обработчик = Новый ОписаниеОповещения("ЗакончитьРедактированиеСРасширениемПослеОтветаНаВопросПовторить", ЭтотОбъект, ПараметрыВыполнения); "Предупреждение", ТекстСообщения,, Истина);
ТекстВопроса = ТекстСообщения + Символы.ПС + Символы.ПС + НСтр("ru = 'Повторить операцию?'");
Обработчик = Новый ОписаниеОповещения("ЗакончитьРедактированиеСРасширениемПослеОтветаНаВопросПовторить",
ЭтотОбъект, ПараметрыВыполнения);
ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ПовторитьОтмена); ПоказатьВопрос(Обработчик, ТекстВопроса, РежимДиалогаВопрос.ПовторитьОтмена);
КонецПроцедуры КонецПроцедуры
@@ -23,7 +23,7 @@
// Параметры: // Параметры:
// ОповещениеСледующее - ОписаниеОповещения - обработчик для получения результатов запроса // ОповещениеСледующее - ОписаниеОповещения - обработчик для получения результатов запроса
// НастройкиПользователя - см. СервисКриптографииDSS.НастройкиПользователяПоУмолчанию // НастройкиПользователя - см. СервисКриптографииDSS.НастройкиПользователяПоУмолчанию
// ДанныеПодтверждения - см. СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию // ДанныеПодтверждения - см. СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию
// ПараметрыОперации - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры операции. // ПараметрыОперации - Структура, ФиксированнаяСтруктура - позволяет указать дополнительные параметры операции.
// //
Процедура ОтправкаЗапроса(ОповещениеСледующее, НастройкиПользователя, ДанныеПодтверждения, ПараметрыОперации = Неопределено) Экспорт Процедура ОтправкаЗапроса(ОповещениеСледующее, НастройкиПользователя, ДанныеПодтверждения, ПараметрыОперации = Неопределено) Экспорт
@@ -227,11 +227,11 @@
// //
Процедура ФильтроватьСписокСпособов(КонтекстФормы, ИмяЭлемента = "ПодтверждениеСпособПодтверждения") Экспорт Процедура ФильтроватьСписокСпособов(КонтекстФормы, ИмяЭлемента = "ПодтверждениеСпособПодтверждения") Экспорт
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
НовоеИмя = ПолучитьИмяЭлементаФормы(ИменаЭлементов, ИмяЭлемента); НовоеИмя = ПолучитьИмяЭлементаФормы(ИменаЭлементов, ИмяЭлемента);
ДанныеПодтверждения = ПолучитьДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен); ДанныеПодтверждения = ДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен);
НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен); НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен);
ЭлементФормы = КонтекстФормы.Элементы[НовоеИмя]; ЭлементФормы = КонтекстФормы.Элементы[НовоеИмя];
@@ -282,7 +282,7 @@
Функция ПроверитьЗапущенныйЦиклПодтверждения(КонтекстФормы, ИсключитьИнициализацию = Ложь) Экспорт Функция ПроверитьЗапущенныйЦиклПодтверждения(КонтекстФормы, ИсключитьИнициализацию = Ложь) Экспорт
Результат = Истина; Результат = Истина;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
Если (ДанныеПодтверждения.ЭтапЦикла = "Инициализация" И НЕ ИсключитьИнициализацию) Если (ДанныеПодтверждения.ЭтапЦикла = "Инициализация" И НЕ ИсключитьИнициализацию)
@@ -322,7 +322,7 @@
// Структура // Структура
// Неопределено // Неопределено
// //
Функция ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы, ПроверкаНаличия = Ложь) Экспорт Функция БазовыйРеестрРеквизитов(КонтекстФормы, ПроверкаНаличия = Ложь) Экспорт
Если ПроверкаНаличия Тогда Если ПроверкаНаличия Тогда
ИщемПоле = Новый Структура(ИмяБазовогоРеквизита()); ИщемПоле = Новый Структура(ИмяБазовогоРеквизита());
@@ -386,8 +386,8 @@
// //
Процедура ПриИзмененииСпособаПодтверждения(КонтекстФормы) Экспорт Процедура ПриИзмененииСпособаПодтверждения(КонтекстФормы) Экспорт
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = ДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен);
НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя]; НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя];
СпособПодтверждения = КонтекстФормы[РеестрИмен.СпособПодтверждения]; СпособПодтверждения = КонтекстФормы[РеестрИмен.СпособПодтверждения];
ТипПодтверждения = СервисКриптографииDSSКлиентСервер.ПолучитьВторичнуюАвторизацию(СпособПодтверждения); ТипПодтверждения = СервисКриптографииDSSКлиентСервер.ПолучитьВторичнуюАвторизацию(СпособПодтверждения);
@@ -464,7 +464,7 @@
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ИмяЭлемента = ПолеФормы.Имя; ИмяЭлемента = ПолеФормы.Имя;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
Если ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПредставлениеСертификата") Тогда Если ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПредставлениеСертификата") Тогда
@@ -493,9 +493,9 @@
ОбновитьФорму = Ложь; ОбновитьФорму = Ложь;
ИмяКоманды = Команда.Имя; ИмяКоманды = Команда.Имя;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = ДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен);
НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен); НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен);
Если ИмяКоманды = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеОК") Тогда Если ИмяКоманды = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеОК") Тогда
@@ -505,7 +505,7 @@
УправлениеЭлементамиОбщее(КонтекстФормы, 1); УправлениеЭлементамиОбщее(КонтекстФормы, 1);
ИначеЕсли ИмяКоманды = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПовторить") Тогда ИначеЕсли ИмяКоманды = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПовторить") Тогда
ДанныеПодтверждения.Идентификатор = ДанныеПодтверждения.ИдентификаторТранзакции; // Строка ДанныеПодтверждения.Идентификатор = ДанныеПодтверждения.ИдентификаторТранзакции;
ДанныеПодтверждения.ЭтапЦикла = "Начало"; ДанныеПодтверждения.ЭтапЦикла = "Начало";
ПодтверждениеОбработатьЭтапЦикла(КонтекстФормы, ОписаниеДанных, ЗначениеПароля); ПодтверждениеОбработатьЭтапЦикла(КонтекстФормы, ОписаниеДанных, ЗначениеПароля);
УправлениеЭлементамиОбщее(КонтекстФормы, 2); УправлениеЭлементамиОбщее(КонтекстФормы, 2);
@@ -544,7 +544,7 @@
ИмяЭлемента = ПолеФормы.Имя; ИмяЭлемента = ПолеФормы.Имя;
ОбновитьФорму = Ложь; ОбновитьФорму = Ложь;
АктивизироватьПоле = Ложь; АктивизироватьПоле = Ложь;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
Если ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПароль") Тогда Если ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеПароль") Тогда
@@ -556,7 +556,7 @@
ОбновитьФорму = Истина; ОбновитьФорму = Истина;
ИначеЕсли ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеСпособПодтверждения") Тогда ИначеЕсли ИмяЭлемента = ПолучитьИмяЭлементаФормы(ИменаЭлементов, "ПодтверждениеСпособПодтверждения") Тогда
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = ДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен);
ОбновитьФорму = Истина; ОбновитьФорму = Истина;
Если ДанныеПодтверждения.ЭтапЦикла = "Инициализация" Тогда Если ДанныеПодтверждения.ЭтапЦикла = "Инициализация" Тогда
@@ -648,7 +648,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
АктуальноеВремя = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса(); АктуальноеВремя = СервисКриптографииDSSСлужебныйКлиент.ДатаСеанса();
@@ -704,7 +704,7 @@
Процедура ПодтверждениеПриОткрытии(КонтекстФормы, Отказ = Ложь, ПарольУстановлен = Ложь, ОписаниеДанных = Неопределено) Экспорт Процедура ПодтверждениеПриОткрытии(КонтекстФормы, Отказ = Ложь, ПарольУстановлен = Ложь, ОписаниеДанных = Неопределено) Экспорт
Если НЕ Отказ Тогда Если НЕ Отказ Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации]; ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации];
ОблачныйСертификат = ЭтоОперацияОблачнойПодписи(КонтекстФормы); ОблачныйСертификат = ЭтоОперацияОблачнойПодписи(КонтекстФормы);
@@ -732,7 +732,7 @@
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
Если ПроверитьКонтекстФормы(КонтекстФормы) И РезультатВыполнения.Выполнено Тогда Если ПроверитьКонтекстФормы(КонтекстФормы) И РезультатВыполнения.Выполнено Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонтекстФормы[РеестрИмен.НастройкиПользователя] = РезультатВыполнения.НастройкиПользователя; КонтекстФормы[РеестрИмен.НастройкиПользователя] = РезультатВыполнения.НастройкиПользователя;
УправлениеЭлементамиОбщее(КонтекстФормы, 6); УправлениеЭлементамиОбщее(КонтекстФормы, 6);
ВыполнитьОповещениеФормы(КонтекстФормы, Истина, "ПодтверждениеАвторизация"); ВыполнитьОповещениеФормы(КонтекстФормы, Истина, "ПодтверждениеАвторизация");
@@ -755,7 +755,7 @@
Результат = Ложь; Результат = Ложь;
Если ЭтоОперацияОблачнойПодписи(КонтекстФормы) Тогда Если ЭтоОперацияОблачнойПодписи(КонтекстФормы) Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации]; ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации];
НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя]; НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя];
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
@@ -785,7 +785,7 @@
// //
Процедура ПроверитьНаОшибкуСертификата(КонтекстФормы) Экспорт Процедура ПроверитьНаОшибкуСертификата(КонтекстФормы) Экспорт
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
Если ЗначениеЗаполнено(КонтекстФормы.Сертификат) Если ЗначениеЗаполнено(КонтекстФормы.Сертификат)
И ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.ДанныеСертификата]) Тогда И ЗначениеЗаполнено(КонтекстФормы[РеестрИмен.ДанныеСертификата]) Тогда
@@ -806,7 +806,7 @@
Функция ЭтоОперацияОблачнойПодписи(КонтекстФормы) Экспорт Функция ЭтоОперацияОблачнойПодписи(КонтекстФормы) Экспорт
Результат = Ложь; Результат = Ложь;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ДанныеСертификата = КонтекстФормы[РеестрИмен.ДанныеСертификата]; ДанныеСертификата = КонтекстФормы[РеестрИмен.ДанныеСертификата];
Если ЗначениеЗаполнено(ДанныеСертификата) Тогда Если ЗначениеЗаполнено(ДанныеСертификата) Тогда
Результат = СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(ДанныеСертификата, "Облачный", Ложь); Результат = СервисКриптографииDSSКлиентСервер.ПолучитьПолеСтруктуры(ДанныеСертификата, "Облачный", Ложь);
@@ -853,7 +853,7 @@
Если ЭтоОперацияОблачнойПодписи(КонтекстФормы) Тогда Если ЭтоОперацияОблачнойПодписи(КонтекстФормы) Тогда
ТекстОшибки = ""; ТекстОшибки = "";
КодЯзыка = СервисКриптографииDSSСлужебныйКлиент.КодЯзыка(); КодЯзыка = СервисКриптографииDSSСлужебныйКлиент.КодЯзыка();
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации]; ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации];
НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя]; НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя];
@@ -922,7 +922,7 @@
ЗначениеПароля = "", ЗначениеПароля = "",
Индекс = 0) Экспорт Индекс = 0) Экспорт
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен); НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен);
ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации]; ТипОперации = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации];
КонтекстФормы[РеестрИмен.КодПодтверждения] = ""; КонтекстФормы[РеестрИмен.КодПодтверждения] = "";
@@ -1126,7 +1126,7 @@
Процедура ВыбратьСертификатАвторизацииПослеПолучения(РезультатВызова, КонтекстФормы) Экспорт Процедура ВыбратьСертификатАвторизацииПослеПолучения(РезультатВызова, КонтекстФормы) Экспорт
Если РезультатВызова.Выполнено Тогда Если РезультатВызова.Выполнено Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонтекстФормы[РеестрИмен.ПодтверждениеДанныеСертификата] = РезультатВызова.Результат.ДанныеФайла; КонтекстФормы[РеестрИмен.ПодтверждениеДанныеСертификата] = РезультатВызова.Результат.ДанныеФайла;
КонтекстФормы[РеестрИмен.ПодтверждениеПредставлениеСертификата] = НСтр("ru = 'Сертификат загружен'", СервисКриптографииDSSСлужебныйКлиент.КодЯзыка()); КонтекстФормы[РеестрИмен.ПодтверждениеПредставлениеСертификата] = НСтр("ru = 'Сертификат загружен'", СервисКриптографииDSSСлужебныйКлиент.КодЯзыка());
КонецЕсли; КонецЕсли;
@@ -1146,7 +1146,7 @@
Процедура ВыполнитьНачальнуюОперациюСервисаПослеАвторизации(РезультатВызова, ВходящийКонтекст) Экспорт Процедура ВыполнитьНачальнуюОперациюСервисаПослеАвторизации(РезультатВызова, ВходящийКонтекст) Экспорт
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
Если РезультатВызова.Выполнено Тогда Если РезультатВызова.Выполнено Тогда
@@ -1293,7 +1293,7 @@
// //
Процедура ВывестиИнформациюСервера(КонтекстФормы, ИмяЭлементаФормы = "ПодтверждениеИнформацияСервера") Экспорт Процедура ВывестиИнформациюСервера(КонтекстФормы, ИмяЭлементаФормы = "ПодтверждениеИнформацияСервера") Экспорт
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
@@ -1313,7 +1313,7 @@
// //
Процедура ПодтверждениеОбработатьЭтапЦикла(КонтекстФормы, ОписаниеДанных, ЗначениеПароля, ОжиданиеОтветаПользователя = Ложь) Процедура ПодтверждениеОбработатьЭтапЦикла(КонтекстФормы, ОписаниеДанных, ЗначениеПароля, ОжиданиеОтветаПользователя = Ложь)
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
РазрешенЗапросСервера = НЕ КонтекстФормы[РеестрИмен.ОжидатьВыполнения]; РазрешенЗапросСервера = НЕ КонтекстФормы[РеестрИмен.ОжидатьВыполнения];
НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя]; НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя];
@@ -1489,7 +1489,7 @@
// //
Процедура ОбновитьРазмерыФормы(КонтекстФормы) Процедура ОбновитьРазмерыФормы(КонтекстФормы)
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
СписокГрупп = КонтекстФормы[РеестрИмен.ИменаГруппКонтейнера]; СписокГрупп = КонтекстФормы[РеестрИмен.ИменаГруппКонтейнера];
ЭлементыФормы = КонтекстФормы.Элементы; ЭлементыФормы = КонтекстФормы.Элементы;
@@ -1585,7 +1585,7 @@
Процедура ВыполнитьНачальнуюОперациюСервисаПослеПодготовкиДанных(ДанныеОперации, ВходящийКонтекст) Процедура ВыполнитьНачальнуюОперациюСервисаПослеПодготовкиДанных(ДанныеОперации, ВходящийКонтекст)
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ДанныеСертификата = ПолучитьДанныеСертификатаИзФормы(КонтекстФормы, РеестрИмен); ДанныеСертификата = ПолучитьДанныеСертификатаИзФормы(КонтекстФормы, РеестрИмен);
Если ПроверитьКонтекстФормы(КонтекстФормы) Тогда Если ПроверитьКонтекстФормы(КонтекстФормы) Тогда
@@ -1635,7 +1635,7 @@
АктивизироватьПоле = Ложь; АктивизироватьПоле = Ложь;
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонтекстФормы[РеестрИмен.ОжидатьВыполнения] = Ложь; КонтекстФормы[РеестрИмен.ОжидатьВыполнения] = Ложь;
@@ -1731,7 +1731,7 @@
Процедура ПоказатьОшибкуФормыПодтвержденияПослеПоказа(РезультатВызова, ВходящийКонтекст) Экспорт Процедура ПоказатьОшибкуФормыПодтвержденияПослеПоказа(РезультатВызова, ВходящийКонтекст) Экспорт
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
Если РезультатВызова.Выполнено Тогда Если РезультатВызова.Выполнено Тогда
Если РезультатВызова.Свойство("ДанныеПодтверждения") Тогда Если РезультатВызова.Свойство("ДанныеПодтверждения") Тогда
@@ -1765,7 +1765,7 @@
Процедура ПодтверждениеОбработатьРезультатЗапроса(РезультатВыполнения, ВходящийКонтекст) Экспорт Процедура ПодтверждениеОбработатьРезультатЗапроса(РезультатВыполнения, ВходящийКонтекст) Экспорт
КонтекстФормы = ВходящийКонтекст.КонтекстФормы; КонтекстФормы = ВходящийКонтекст.КонтекстФормы;
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ОжидатьВыполнения = Ложь; ОжидатьВыполнения = Ложь;
Если КонтекстФормы <> Неопределено Тогда Если КонтекстФормы <> Неопределено Тогда
@@ -1818,7 +1818,7 @@
// //
Процедура АктивизироватьПолеФормыПодтверждения(КонтекстФормы, БылЭтап = "Начало") Процедура АктивизироватьПолеФормыПодтверждения(КонтекстФормы, БылЭтап = "Начало")
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя]; НастройкиПользователя = КонтекстФормы[РеестрИмен.НастройкиПользователя];
@@ -1856,7 +1856,7 @@
// //
Процедура СформироватьПодсказкуСпособовВыбора(КонтекстФормы, ИмяЭлемента = "ПодтверждениеСпособПодтверждения") Процедура СформироватьПодсказкуСпособовВыбора(КонтекстФормы, ИмяЭлемента = "ПодтверждениеСпособПодтверждения")
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
ЭлементФормы = КонтекстФормы.Элементы[ПолучитьИмяЭлементаФормы(ИменаЭлементов, ИмяЭлемента)]; ЭлементФормы = КонтекстФормы.Элементы[ПолучитьИмяЭлементаФормы(ИменаЭлементов, ИмяЭлемента)];
@@ -2094,7 +2094,7 @@
// //
Процедура УправлениеЭлементамиФормы(КонтекстФормы, СтандартныйВид, НеНачалось, НуженПинКод, ПроверенПинКод = Ложь) Процедура УправлениеЭлементамиФормы(КонтекстФормы, СтандартныйВид, НеНачалось, НуженПинКод, ПроверенПинКод = Ложь)
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ФормаИсточник = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации]; ФормаИсточник = КонтекстФормы[РеестрИмен.ПодтверждениеТипОперации];
ЭлементыФормы = КонтекстФормы.Элементы; ЭлементыФормы = КонтекстФормы.Элементы;
@@ -2112,7 +2112,7 @@
// //
Процедура УправлениеЭлементамиОбщее(КонтекстФормы, ОткудаВызов) Процедура УправлениеЭлементамиОбщее(КонтекстФормы, ОткудаВызов)
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы; ИменаЭлементов = РеестрИмен.ИменаЭлементовФормы;
СписокГрупп = КонтекстФормы[РеестрИмен.ИменаГруппКонтейнера]; СписокГрупп = КонтекстФормы[РеестрИмен.ИменаГруппКонтейнера];
@@ -2288,7 +2288,7 @@
Функция ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен = Неопределено) Функция ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен = Неопределено)
Если РеестрИмен = Неопределено Тогда Если РеестрИмен = Неопределено Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонецЕсли; КонецЕсли;
Результат = КонтекстФормы[РеестрИмен.НастройкиПользователя]; Результат = КонтекстФормы[РеестрИмен.НастройкиПользователя];
@@ -2311,7 +2311,7 @@
Функция ПолучитьДанныеСертификатаИзФормы(КонтекстФормы, РеестрИмен = Неопределено) Функция ПолучитьДанныеСертификатаИзФормы(КонтекстФормы, РеестрИмен = Неопределено)
Если РеестрИмен = Неопределено Тогда Если РеестрИмен = Неопределено Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонецЕсли; КонецЕсли;
Результат = КонтекстФормы[РеестрИмен.ДанныеСертификата]; Результат = КонтекстФормы[РеестрИмен.ДанныеСертификата];
@@ -2330,14 +2330,13 @@
// Возвращаемое значение: // Возвращаемое значение:
// см. СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию // см. СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию
// //
Функция ПолучитьДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен = Неопределено) Функция ДанныеПодтвержденияИзФормы(КонтекстФормы, РеестрИмен = Неопределено)
Если РеестрИмен = Неопределено Тогда Если РеестрИмен = Неопределено Тогда
РеестрИмен = ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы); РеестрИмен = БазовыйРеестрРеквизитов(КонтекстФормы);
КонецЕсли; КонецЕсли;
Результат = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; Результат = КонтекстФормы[РеестрИмен.ДанныеПодтверждения];
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
@@ -397,7 +397,7 @@
РеестрИмен = ОпределитьБазовыеРеквизиты(КонтекстФормы); РеестрИмен = ОпределитьБазовыеРеквизиты(КонтекстФормы);
ДанныеСертификата = КонтекстФормы[РеестрИмен.ДанныеСертификата]; ДанныеСертификата = КонтекстФормы[РеестрИмен.ДанныеСертификата];
ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; ДанныеПодтверждения = КонтекстФормы[РеестрИмен.ДанныеПодтверждения]; // см. СервисКриптографииDSSПодтверждениеСервер.ДанныеВторичнойАвторизацииПоУмолчанию
НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен); НастройкиПользователя = ПолучитьНастройкиПользователяИзФормы(КонтекстФормы, РеестрИмен);
НастройкиПользователя.ПервичнаяАутентификация = ПолучитьЗначениеПеречисления(ПервичнаяАвторизация); НастройкиПользователя.ПервичнаяАутентификация = ПолучитьЗначениеПеречисления(ПервичнаяАвторизация);
@@ -1473,6 +1473,10 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
Если ПриоритетныйСертификат <> Неопределено И ВходящийКонтекст.Сертификат = Неопределено Тогда
ВходящийКонтекст.Сертификат = Новый Структура("Отпечаток", ПриоритетныйСертификат.Отпечаток);
КонецЕсли;
Если ПриоритетныйСертификат = Неопределено Тогда Если ПриоритетныйСертификат = Неопределено Тогда
ОтветСервиса = ОтветСервисаПоУмолчанию(Ложь); ОтветСервиса = ОтветСервисаПоУмолчанию(Ложь);
ПолучитьОписаниеОшибки(ОтветСервиса, "СертификатыНеОбнаружены"); ПолучитьОписаниеОшибки(ОтветСервиса, "СертификатыНеОбнаружены");
@@ -7554,7 +7558,7 @@
// Только для внутреннего использования. // Только для внутреннего использования.
Процедура ПослеЗакрытияФормы(РезультатВыбора, ПараметрыЦикла) Экспорт Процедура ПослеЗакрытияФормы(РезультатВыбора, ПараметрыЦикла) Экспорт
Если РезультатВыбора = Неопределено Тогда Если РезультатВыбора = Неопределено ИЛИ ТипЗнч(РезультатВыбора) <> Тип("Структура") Тогда
ЗавершениеРаботы = СвойствоСтруктуры(ПараметрыЦикла, "ЗавершениеРаботы", Ложь); ЗавершениеРаботы = СвойствоСтруктуры(ПараметрыЦикла, "ЗавершениеРаботы", Ложь);
Если ЗавершениеРаботы Тогда Если ЗавершениеРаботы Тогда
РезультатВыбора = ОтветСервисаПоУмолчанию(Ложь, "ЗавершениеРаботы"); РезультатВыбора = ОтветСервисаПоУмолчанию(Ложь, "ЗавершениеРаботы");
@@ -2054,9 +2054,7 @@
Параметры.Вставить("РазрешениеОсновногоЭкрана", РазрешениеОсновногоЭкрана()); Параметры.Вставить("РазрешениеОсновногоЭкрана", РазрешениеОсновногоЭкрана());
// Установка даты клиента непосредственно перед вызовом, чтобы уменьшить погрешность. // Установка даты клиента непосредственно перед вызовом, чтобы уменьшить погрешность.
// АПК:143-выкл - №643.2.1 Требуется ТекущаяДата для расчета ПоправкаКВремениСеанса. Параметры.Вставить("ТекущаяДатаНаКлиенте", ТекущаяДата()); // АПК:143 Требуется ТекущаяДата() для расчета ПоправкаКВремениСеанса
Параметры.Вставить("ТекущаяДатаНаКлиенте", ТекущаяДата());
// АПК:143-вкл.
Параметры.Вставить("ТекущаяУниверсальнаяДатаВМиллисекундахНаКлиенте", ТекущаяУниверсальнаяДатаВМиллисекундах()); Параметры.Вставить("ТекущаяУниверсальнаяДатаВМиллисекундахНаКлиенте", ТекущаяУниверсальнаяДатаВМиллисекундах());
КонецПроцедуры КонецПроцедуры
@@ -203,6 +203,10 @@
КонецФункции КонецФункции
// Только для внутреннего использования. // Только для внутреннего использования.
//
// Параметры:
// ПроверитьОбновление - Булево
// ОбъектыРасширений - Булево
// //
// Возвращаемое значение: // Возвращаемое значение:
// Булево // Булево
@@ -807,6 +811,7 @@
// * ТребуемыеПодсистемы - Массив // * ТребуемыеПодсистемы - Массив
// * Версия - Строка // * Версия - Строка
// * Имя - Строка // * Имя - Строка
// * ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы - Булево
// //
Функция НовоеОписаниеПодсистемы() Экспорт Функция НовоеОписаниеПодсистемы() Экспорт
@@ -828,6 +833,10 @@
Описание.Вставить("РежимВыполненияОтложенныхОбработчиков", "Последовательно"); Описание.Вставить("РежимВыполненияОтложенныхОбработчиков", "Последовательно");
Описание.Вставить("ПараллельноеОтложенноеОбновлениеСВерсии", ""); Описание.Вставить("ПараллельноеОтложенноеОбновлениеСВерсии", "");
// Режим выполнения обработчиков начального заполнения при переходе
// с другой программы.
Описание.Вставить("ЗаполнятьДанныеНовыхПодсистемПриПереходеСДругойПрограммы", Ложь);
Возврат Описание; Возврат Описание;
КонецФункции КонецФункции
@@ -908,6 +908,8 @@
ИмяРеквизита = "ИмяПредопределенногоНабора"; ИмяРеквизита = "ИмяПредопределенногоНабора";
ИначеЕсли ЗначенияРеквизитов.ИмяПредопределенногоВида <> "" Тогда ИначеЕсли ЗначенияРеквизитов.ИмяПредопределенногоВида <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоВида"; ИмяРеквизита = "ИмяПредопределенногоВида";
Иначе
ИмяРеквизита = "ИмяПредопределенныхДанных";
КонецЕсли; КонецЕсли;
ЗначениеРеквизита = ЗначенияРеквизитов[ИмяРеквизита]; ЗначениеРеквизита = ЗначенияРеквизитов[ИмяРеквизита];
@@ -965,11 +967,12 @@
КонецПроцедуры КонецПроцедуры
// Обработчик регламентного задания ЗаполнениеПараметровРаботыРасширений. // Обработчик регламентного задания ЗаполнениеПараметровРаботыРасширений.
//
// Регламентное задание должно запускаться сразу, как только было включено.
// После успешного завершения задание отключает себя.
//
Процедура ЗаполнениеПараметровРаботыРасширений() Экспорт Процедура ЗаполнениеПараметровРаботыРасширений() Экспорт
// Регламентное задание должно запускаться сразу, как только было включено.
// После успешного завершения задание отключает себя.
ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания( ОбщегоНазначения.ПриНачалеВыполненияРегламентногоЗадания(
Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений); Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений);
@@ -1894,6 +1897,16 @@
Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт Процедура ПриПолученииСпискаШаблонов(ШаблоныЗаданий) Экспорт
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеУстаревшихПараметровРаботыВерсийРасширений.Имя); ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.УдалениеУстаревшихПараметровРаботыВерсийРасширений.Имя);
ШаблоныЗаданий.Добавить(Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений.Имя);
КонецПроцедуры
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных.
Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт
// Фоновое обновление поставляемых профилей и параметров работы расширений.
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ВключитьЗаполнениеПараметровРаботыРасширений(Ложь, Истина);
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗапуститьЗаполнениеПараметровРаботыРасширений(Истина);
КонецПроцедуры КонецПроцедуры
@@ -2634,8 +2647,9 @@
НСтр("ru = 'Недопустимо создавать предопределенный элемент, помеченный на удаление.'"); НСтр("ru = 'Недопустимо создавать предопределенный элемент, помеченный на удаление.'");
КонецЕсли; КонецЕсли;
СтарыеСвойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта( СтарыеСвойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка,
Источник.Ссылка, "ПометкаУдаления, ИмяПредопределенныхДанных" + ?(ИмяРеквизита <> "", ", " + ИмяРеквизита, "")); "ПометкаУдаления, ИмяПредопределенныхДанных"
+ ?(ИмяРеквизита <> "ИмяПредопределенныхДанных", ", " + ИмяРеквизита, ""));
Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] <> "") Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] <> "")
И СтарыеСвойства.ПометкаУдаления <> Истина Тогда И СтарыеСвойства.ПометкаУдаления <> Истина Тогда
@@ -2644,7 +2658,7 @@
НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент: НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент:
|""%1"".'"), |""%1"".'"),
Строка(Источник.Ссылка)); Строка(Источник.Ссылка));
ИначеЕсли (ИмяРеквизита <> "" И ЗначениеРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] = "" ИначеЕсли (ЗначениеРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] = ""
Или СтарыеСвойства.ИмяПредопределенныхДанных = "") Или СтарыеСвойства.ИмяПредопределенныхДанных = "")
И СтарыеСвойства.ПометкаУдаления = Истина Тогда И СтарыеСвойства.ПометкаУдаления = Истина Тогда
@@ -697,6 +697,7 @@
И КонстантаПервоеОбновлениеДоступаЗавершилось()) Тогда И КонстантаПервоеОбновлениеДоступаЗавершилось()) Тогда
ОбновитьПараметрыСеанса(); ОбновитьПараметрыСеанса();
Значение = УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
КонецЕсли; КонецЕсли;
Возврат Значение Возврат Значение
@@ -710,14 +711,16 @@
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов(); ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если ПоследняяПроверка.Дата + 3 <= ТекущаяДатаСеанса() Тогда Если ПоследняяПроверка.Дата + 3 <= ТекущаяДатаСеанса() Тогда
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
Если КонстантаПервоеОбновлениеДоступаЗавершилось() Значение = КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
Или УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально() Если Значение И КонстантаПервоеОбновлениеДоступаЗавершилось()
<> КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально()Тогда Или Значение <> УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
ОбновитьПараметрыСеанса(); ОбновитьПараметрыСеанса();
Значение = УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
КонецЕсли; КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -6296,45 +6299,46 @@
РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗаблокироватьДляИзмененияВФайловойИБ(); РегистрыСведений.ПараметрыРаботыВерсийРасширений.ЗаблокироватьДляИзмененияВФайловойИБ();
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра); ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра);
Попытка Если ТекущееЗначение.ХешСумма = ЗначениеСеанса.ХешСумма Тогда
ПроверитьАктуальностьМетаданных();
Исключение
Если Не ЗначениеЗаполнено(ТекущееЗначение.ХешСумма) Тогда
ВызватьИсключение;
КонецЕсли;
ИдентификаторыСеанса = ЗначениеСеанса.ИдентификаторыРолей;
ТекущиеИдентификаторы = ТекущееЗначение.ИдентификаторыРолей;
Для Каждого ИдентификаторРоли Из ИдентификаторыРолей Цикл
ЕстьВТекущих = ТекущиеИдентификаторы.Получить(ИдентификаторРоли) <> Неопределено;
ЕстьВСеансе = ИдентификаторыСеанса.Получить(ИдентификаторРоли) <> Неопределено;
Если ЕстьВТекущих <> ЕстьВСеансе Тогда
ВызватьИсключение;
КонецЕсли;
КонецЦикла;
Возврат; Возврат;
КонецЕсли;
КонецПопытки;
Если ТекущееЗначение.ХешСумма <> ЗначениеСеанса.ХешСумма Тогда Блокировка = Новый БлокировкаДанных;
Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений"); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка()); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ПроверитьАктуальностьМетаданных(); ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра);
ТекущееЗначение = ПоследниеИдентификаторыРолей(ИмяПараметра); Если ТекущееЗначение.ХешСумма <> ЗначениеСеанса.ХешСумма Тогда
Если ТекущееЗначение.ХешСумма <> ЗначениеСеанса.ХешСумма Тогда ПропуститьОбновление = Ложь;
Если ЗначениеЗаполнено(ТекущееЗначение.ХешСумма) Тогда // Не первое обновление.
Попытка
ПроверитьАктуальностьМетаданных();
Исключение
ИдентификаторыСеанса = ЗначениеСеанса.ИдентификаторыРолей;
ТекущиеИдентификаторы = ТекущееЗначение.ИдентификаторыРолей;
Для Каждого ИдентификаторРоли Из ИдентификаторыРолей Цикл
ЕстьВТекущих = ТекущиеИдентификаторы.Получить(ИдентификаторРоли) <> Неопределено;
ЕстьВСеансе = ИдентификаторыСеанса.Получить(ИдентификаторРоли) <> Неопределено;
Если ЕстьВТекущих <> ЕстьВСеансе Тогда
ВызватьИсключение;
КонецЕсли;
КонецЦикла;
ПропуститьОбновление = Истина;
КонецПопытки;
КонецЕсли;
Если Не ПропуститьОбновление Тогда
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ЗначениеСеанса, Истина); СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ЗначениеСеанса, Истина);
КонецЕсли; КонецЕсли;
ЗафиксироватьТранзакцию(); КонецЕсли;
Исключение ЗафиксироватьТранзакцию();
ОтменитьТранзакцию(); Исключение
ВызватьИсключение; ОтменитьТранзакцию();
КонецПопытки; ВызватьИсключение;
КонецЕсли; КонецПопытки;
КонецПроцедуры КонецПроцедуры
@@ -6369,11 +6373,15 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При обновлении ролей пользователя ""%1"" НСтр("ru = 'При обновлении ролей пользователя ""%1""
|роль ""%2"" |роль ""%2""
|профиля групп доступа ""%3"" |%3
|профиля групп доступа ""%4""
|%5
|недоступна пользователю.'"), |недоступна пользователю.'"),
Строка(Пользователь), Строка(Пользователь),
ОписаниеРоли.Роль, ОписаниеРоли.Роль,
Строка(Профиль)), ПолучитьНавигационнуюСсылку(ОписаниеРоли.РольСсылка),
Строка(Профиль),
ПолучитьНавигационнуюСсылку(Профиль)),
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецЦикла; КонецЦикла;
@@ -6393,11 +6401,16 @@
Профиль, Профиль,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При обновлении ролей пользователя ""%1"" НСтр("ru = 'При обновлении ролей пользователя ""%1""
|несуществующая роль ""%2"" |роль ""%2""
|профиля групп доступа ""%3"".'"), |%3
|профиля групп доступа ""%4""
|%5
|не существует в метаданных.'"),
Строка(Пользователь), Строка(Пользователь),
ОписаниеРоли.Роль, ОписаниеРоли.Роль,
Строка(Профиль)), ПолучитьНавигационнуюСсылку(ОписаниеРоли.РольСсылка),
Строка(Профиль),
ПолучитьНавигационнуюСсылку(Профиль)),
РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная); РежимТранзакцииЗаписиЖурналаРегистрации.Транзакционная);
КонецЦикла; КонецЦикла;
@@ -7566,13 +7579,25 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации(); Блокировка.Заблокировать();
РегистрыСведений.НаборыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации(); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение);
Если СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа
= НовоеЗначение.ХешСуммаТиповГруппИЗначенийДоступа Тогда
Если ЗначениеЗаполнено(СтароеЗначение.ХешСуммаТиповГруппИЗначенийДоступа) Тогда // Не первое обновление.
ПроверитьАктуальностьМетаданных();
КонецЕсли;
РегистрыСведений.ГруппыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации();
РегистрыСведений.НаборыЗначенийДоступа.ОбновитьВспомогательныеДанныеРегистраПоИзменениямКонфигурации();
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
@@ -7624,16 +7649,34 @@
ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа"; ИмяПараметра = "СтандартныеПодсистемы.УправлениеДоступом.СвойстваВидовДоступа";
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение); СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение);
Если СтароеЗначение.ХешСумма <> НовоеЗначение.ХешСумма Тогда Если СтароеЗначение.ХешСумма <> НовоеЗначение.ХешСумма Тогда
ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
УстановитьОтключениеБезопасногоРежима(Истина); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
УстановитьПривилегированныйРежим(Истина); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
УстановитьПривилегированныйРежим(Ложь); НачатьТранзакцию();
УстановитьОтключениеБезопасногоРежима(Ложь); Попытка
Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
СтароеЗначение = НовыеХешСуммыСвойствВидовДоступа(СтароеЗначение);
Если СтароеЗначение.ХешСумма <> НовоеЗначение.ХешСумма Тогда
Если ЗначениеЗаполнено(СтароеЗначение.ХешСумма) Тогда // Не первое обновление.
ПроверитьАктуальностьМетаданных();
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли; КонецЕсли;
Кэш.Проверка.Дата = ТекущаяДатаСеанса; Кэш.Проверка.Дата = ТекущаяДатаСеанса;
@@ -59,8 +59,9 @@
// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных. // См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПослеЗагрузкиДанных.
Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт Процедура ПослеЗагрузкиДанных(Контейнер) Экспорт
Справочники.ПрофилиГруппДоступа.ОбновитьПоставляемыеПрофили(); // Обновление поставляемых профилей выполняется в регламентном задании
Справочники.ПрофилиГруппДоступа.ОбновитьНепоставляемыеПрофили(); // ЗаполнениеПараметровРаботыРасширений, которое включается и запускается
// в процедуре СтандартныеПодсистемыСервер.ПослеЗагрузкиДанных.
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа( УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"ПослеЗагрузкиДанныхВОбластьДанных"); "ПослеЗагрузкиДанныхВОбластьДанных");
@@ -128,7 +128,8 @@
Если Результат.Статус = "Выполнено" Тогда Если Результат.Статус = "Выполнено" Тогда
Если ДополнительныеПараметры.ЭлементСписок <> Неопределено Тогда Если ДополнительныеПараметры.ЭлементСписок <> Неопределено
И ДополнительныеПараметры.ЭлементСписок.Видимость Тогда
ДополнительныеПараметры.ЭлементСписок.Обновить(); ДополнительныеПараметры.ЭлементСписок.Обновить();
КонецЕсли; КонецЕсли;
@@ -3513,7 +3513,7 @@
Если ЕстьПараметрОповеститьОбОкончанииСрокаДействия И Форма.Параметры.ОповеститьОбОкончанииСрокаДействия Если ЕстьПараметрОповеститьОбОкончанииСрокаДействия И Форма.Параметры.ОповеститьОбОкончанииСрокаДействия
Или Не ЕстьПараметрОповеститьОбОкончанииСрокаДействия Тогда Или Не ЕстьПараметрОповеститьОбОкончанииСрокаДействия Тогда
Форма.ОповеститьОбОкончанииСрокаДействия = Форма.СертификатДействителенДо <= ТекущаяУниверсальнаяДата() + 30*24*60*60 Форма.ОповеститьОбОкончанииСрокаДействия = Форма.СертификатДействителенДо <= ТекущаяУниверсальнаяДата() + 30*24*60*60
И РегистрыСведений.ОповещенияПользователейСертификатов.ПрочитатьОтметкуОНапоминании(Форма.Сертификат) <> Истина И Не РегистрыСведений.ОповещенияПользователейСертификатов.ПользовательОповещен(Форма.Сертификат)
И Не СертификатПеревыпущен(Форма.Сертификат); И Не СертификатПеревыпущен(Форма.Сертификат);
КонецЕсли; КонецЕсли;
@@ -3842,9 +3842,8 @@
Процедура ЗаполнитьНастройкиДляУсовершенствованияПодписей() Экспорт Процедура ЗаполнитьНастройкиДляУсовершенствованияПодписей() Экспорт
МенеджерЗначения = Константы.ТипПодписиКриптографииПоУмолчанию.СоздатьМенеджерЗначения(); МенеджерЗначения = Константы.ТипПодписиКриптографииПоУмолчанию.СоздатьМенеджерЗначения();
МенеджерЗначения.ОбменДанными.Загрузка = Истина;
МенеджерЗначения.Значение = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES; МенеджерЗначения.Значение = Перечисления.ТипыПодписиКриптографии.БазоваяCAdESBES;
МенеджерЗначения.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения);
ЗаполнитьАдресаСерверовМетокВремени(); ЗаполнитьАдресаСерверовМетокВремени();
@@ -3859,9 +3858,8 @@
АдресаСерверовМетокВремени = Обработки["ПрограммыЭлектроннойПодписиИШифрования"].АдресаСерверовМетокВремениДляНачальногоЗаполнения(); АдресаСерверовМетокВремени = Обработки["ПрограммыЭлектроннойПодписиИШифрования"].АдресаСерверовМетокВремениДляНачальногоЗаполнения();
Если Не ПустаяСтрока(АдресаСерверовМетокВремени) Тогда Если Не ПустаяСтрока(АдресаСерверовМетокВремени) Тогда
МенеджерЗначения = Константы.АдресаСерверовМетокВремени.СоздатьМенеджерЗначения(); МенеджерЗначения = Константы.АдресаСерверовМетокВремени.СоздатьМенеджерЗначения();
МенеджерЗначения.ОбменДанными.Загрузка = Истина;
МенеджерЗначения.Значение = АдресаСерверовМетокВремени; МенеджерЗначения.Значение = АдресаСерверовМетокВремени;
МенеджерЗначения.Записать(); ОбновлениеИнформационнойБазы.ЗаписатьДанные(МенеджерЗначения);
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
@@ -7544,7 +7544,7 @@
Если ИспользоватьСервисОблачнойПодписи() Тогда Если ИспользоватьСервисОблачнойПодписи() Тогда
МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент"); МодульСервисКриптографииDSSПодтверждениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("СервисКриптографииDSSПодтверждениеКлиент");
РеестрИмен = МодульСервисКриптографииDSSПодтверждениеКлиент.ПолучитьБазовыйРеестрРеквизитов(КонтекстФормы, Истина); РеестрИмен = МодульСервисКриптографииDSSПодтверждениеКлиент.БазовыйРеестрРеквизитов(КонтекстФормы, Истина);
Если РеестрИмен <> Неопределено Тогда Если РеестрИмен <> Неопределено Тогда
РеквизитыФормы = Новый Структура(РеестрИмен[ИмяРеквизита], Неопределено); РеквизитыФормы = Новый Структура(РеестрИмен[ИмяРеквизита], Неопределено);
ЗаполнитьЗначенияСвойств(РеквизитыФормы, КонтекстФормы); ЗаполнитьЗначенияСвойств(РеквизитыФормы, КонтекстФормы);
@@ -228,9 +228,12 @@
Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр( Настройки.ИнструкцияПоПодключению = СтроковыеФункции.ФорматированнаяСтрока(НСтр(
"ru = 'Как настроить: "ru = 'Как настроить:
|1. Подключите сервис <a href = ""https://cloud.yandex.com/"">Yandex.Cloud</a> и активируйте <a href = ""https://console.cloud.yandex.com/billing"">платежный аккаунт</a>. |1. Подключите сервис <a href = ""%1"">Yandex.Cloud</a> и активируйте <a href = ""%2"">платежный аккаунт</a>.
|2. Перейдите на страницу <a href = ""https://oauth.yandex.com/authorize?response_type=token&client_id=1a6990aa636648e9b2ef855fa7bec2fb"">Яндекс OAuth</a> и скопируйте строку из букв и цифр в поле <b>OAuth-токен</b>. |2. Перейдите на страницу <a href = ""%3"">Яндекс OAuth</a> и скопируйте строку из букв и цифр в поле <b>OAuth-токен</b>.
|3. Перейдите в <a href = ""https://console.cloud.yandex.com/"">консоль управления Yandex Cloud</a>, в списке <b>Ваши ресурсы</b> справа от каталога <b>default</b> скопируйте строку из букв и цифр и вставьте в поле <b>Идентификатор каталога</b>.'")); |3. Перейдите в <a href = ""%4"">консоль управления Yandex Cloud</a>, в списке <b>Ваши ресурсы</b> справа от каталога <b>default</b> скопируйте строку из букв и цифр и вставьте в поле <b>Идентификатор каталога</b>.'"),
"https://cloud.yandex.com/", "https://console.cloud.yandex.com/billing",
"https://oauth.yandex.com/authorize?response_type=token&client_id=1a6990aa636648e9b2ef855fa7bec2fb",
"https://console.cloud.yandex.com/");
Параметр = Настройки.ПараметрыАвторизации.Добавить(); Параметр = Настройки.ПараметрыАвторизации.Добавить();
Параметр.Имя = "OAuthТокен"; Параметр.Имя = "OAuthТокен";
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="e15dbedb-1de4-42b1-a287-05ca9e6c7da6"> <mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="dd34eb61-a481-4d9e-8b20-4815a3498441">
<name>БиблиотекаСтандартныхПодсистем</name> <name>БиблиотекаСтандартныхПодсистем</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value> <value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym> </synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="dca6d0c2-0e58-412c-8c36-645c8b1c2f8a"/> <containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="cce479ae-cac2-4328-94f8-eab8300d9a8f"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="961db4f6-b330-4e65-9e75-9d28e29676c5"/> <containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="de4f304b-9ad3-4c99-9157-24654b750cb0"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="e61d0870-66df-4d26-84ac-583c661d2e96"/> <containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="24d94510-6b29-45d8-95c8-80ec80994da0"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="8b8f07ed-cede-4a78-97c2-f0a49f11acef"/> <containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="2fcc3ad1-b797-40ae-8cb7-d99b4ee055a5"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="dc7b1858-9cf2-43c3-8a6e-3855fe1bf7f2"/> <containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="e2c7ffbc-1b48-4448-877d-a2e6dbf5992e"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="0dc5ad50-5296-4ff7-a3a6-3dbcc847b730"/> <containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5b043d2a-f89e-4eb2-afc5-200e7363694d"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="b7867b24-5028-40bb-98d5-fbc2e4a33e83"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="c4fd1a0a-a378-452f-8cec-075c921edadf"/>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant> <scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles> <defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles> <defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor> <vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.6.180</version> <version>3.1.6.198</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress> <updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents> <includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities> <usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,d2528376-2baa-4a1a-8d7e-c35cecaa4de2,1,5428273c-872e-408c-abf7-064c80e5e12e,"3.1.6.180","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6728,1,0,e15dbedb-1de4-42b1-a287-05ca9e6c7da6,e15dbedb-1de4-42b1-a287-05ca9e6c7da6,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated {6,1,1,8c4e2f76-cb43-4d11-893c-a2106d9765bd,1,e5de11ad-6af8-4122-8a87-ab85df4e80a3,"3.1.6.198","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6728,1,0,dd34eb61-a481-4d9e-8b20-4815a3498441,dd34eb61-a481-4d9e-8b20-4815a3498441,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,153e11ac-f898-46a5-98c6-734adb933ca2,153e11ac-f898-46a5-98c6-734adb933ca2,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7Line truncated
@@ -3013,11 +3013,13 @@
Пояснение = Пояснение + "."; Пояснение = Пояснение + ".";
Если ИзменяемыеТабличныеЧасти.Количество() > 0 Тогда Если ИзменяемыеТабличныеЧасти.Количество() > 0 Тогда
Если ЕстьОтборПоСтрокам Тогда Если ЕстьОтборПоСтрокам Тогда
Пояснение = Пояснение + " " Пояснение = Пояснение + " " + ПодставитьПараметрыВСтроку(НСтр(
+ НСтр("ru = 'Изменения будут выполнены в тех строках выбранных элементов, которые удовлетворяют <a href = ""ПерейтиКНастройкеОтбора"">условиям отбора</a>.'") "ru = 'Изменения будут выполнены в тех строках выбранных элементов, которые удовлетворяют <a href = ""%1"">условиям отбора</a>.'"),
"ПерейтиКНастройкеОтбора");
Иначе Иначе
Пояснение = Пояснение + " " Пояснение = Пояснение + " " + ПодставитьПараметрыВСтроку(НСтр(
+ НСтр("ru = 'Изменения будут выполнены <a href = ""ПерейтиКНастройкеОтбора"">во всех строках</a> выбранных элементов.'") "ru = 'Изменения будут выполнены <a href = ""%1"">во всех строках</a> выбранных элементов.'"),
"ПерейтиКНастройкеОтбора");
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
Иначе Иначе
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт Функция ВерсияКалендарей() Экспорт
Возврат 35; Возврат 36;
КонецФункции КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.6.170"; Возврат "3.1.6.187";
КонецФункции КонецФункции
@@ -406,6 +406,7 @@
<Item Calendar="15" Year="2019" DayType="Праздник" Date="20191118" SwapDate=""/> <Item Calendar="15" Year="2019" DayType="Праздник" Date="20191118" SwapDate=""/>
<Item Calendar="15" Year="2020" DayType="Праздник" Date="20201123" SwapDate=""/> <Item Calendar="15" Year="2020" DayType="Праздник" Date="20201123" SwapDate=""/>
<Item Calendar="15" Year="2021" DayType="Праздник" Date="20211122" SwapDate=""/> <Item Calendar="15" Year="2021" DayType="Праздник" Date="20211122" SwapDate=""/>
<Item Calendar="15" Year="2022" DayType="Праздник" Date="20221121" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160704" SwapDate=""/> <Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160704" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Праздник" Date="20160705" SwapDate=""/> <Item Calendar="16" Year="2016" DayType="Праздник" Date="20160705" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160829" SwapDate=""/> <Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160829" SwapDate=""/>
@@ -992,7 +992,7 @@
Если ДоступныНапоминанияПользователя Если ДоступныНапоминанияПользователя
И ДанныеЗаявления.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.Отправлено Тогда И ДанныеЗаявления.СостояниеЗаявления = Перечисления.СостоянияЗаявленияНаВыпускСертификата.Отправлено Тогда
НапомнитьОГотовности = РегистрыСведений.ОповещенияПользователейСертификатов.ПрочитатьОтметкуОНапоминании(Объект.Ссылка); НапомнитьОГотовности = Не РегистрыСведений.ОповещенияПользователейСертификатов.ПользовательОповещен(Объект.Ссылка);
КонецЕсли; КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -4673,30 +4673,6 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button">
<name>ФормаПроверитьЦиклВПорядкеОбработчиков</name>
<id>779</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible/>
<extendedTooltip>
<name>ФормаПроверитьЦиклВПорядкеОбработчиковРасширеннаяПодсказка</name>
<id>780</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПроверитьЦиклВПорядкеОбработчиков</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
@@ -5278,28 +5254,6 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ПроверитьЦиклВПорядкеОбработчиков</name>
<title>
<key>ru</key>
<value>Есть цикл в порядке обработчиков</value>
</title>
<id>8</id>
<toolTip>
<key>ru</key>
<value>Проверить цикл в порядке обработчиков</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверитьЦиклВПорядкеОбработчиков</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands> <formCommands>
<name>ДобавитьИзменяемыйОбъектВЧитаемые</name> <name>ДобавитьИзменяемыйОбъектВЧитаемые</name>
<title> <title>
@@ -515,13 +515,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПроверитьЦиклВПорядкеОбработчиков(Команда)
ЕстьЦиклПорядкаВыполненияОбработчиков();
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ВыделитьПустойПорядок(Команда) Процедура ВыделитьПустойПорядок(Команда)
@@ -571,10 +564,10 @@
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПриоритетыВыполнения.Порядок"); ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПриоритетыВыполнения.Порядок");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно; ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПриоритетыВыполнения.ПорядокАвто"); ОтборЭлемента.ПравоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ПриоритетыВыполнения.ПорядокАвто");
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет); Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
КонецПроцедуры КонецПроцедуры
@@ -1288,15 +1281,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Функция ЕстьЦиклПорядкаВыполненияОбработчиков(Сообщать = Истина)
ЭтотОбработчик = Объект.ОбработчикиОбновления[0].Ссылка;
ЕстьЦикл = ВладелецФормы.ЕстьЦиклПорядкаВыполненияОбработчиков(ЭтотОбработчик, Объект.ПриоритетыВыполнения);
Возврат ЕстьЦикл;
КонецФункции
&НаСервере &НаСервере
Процедура ЗаполнитьОбщиеМодули() Процедура ЗаполнитьОбщиеМодули()
@@ -2559,32 +2559,6 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar> <locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items> </items>
<items xsi:type="form:Button">
<name>ПроверитьЦиклВПорядкеОбработчиков</name>
<id>194</id>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ПроверитьЦиклВПорядкеОбработчиковРасширеннаяПодсказка</name>
<id>195</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПроверитьЦиклВПорядкеОбработчиков</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
<locationInCommandBar>InAdditionalSubmenu</locationInCommandBar>
</items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>УстановитьАвтоПорядок</name> <name>УстановитьАвтоПорядок</name>
<id>257</id> <id>257</id>
@@ -3266,28 +3240,6 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>ПроверитьЦиклВПорядкеОбработчиков</name>
<title>
<key>ru</key>
<value>Есть цикл в порядке обработчиков</value>
</title>
<id>10</id>
<toolTip>
<key>ru</key>
<value>Проверить цикл в порядке обработчиков</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПроверитьЦиклВПорядкеОбработчиков</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<formCommands> <formCommands>
<name>РассчитатьОчередь</name> <name>РассчитатьОчередь</name>
<title> <title>
@@ -578,13 +578,6 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПроверитьЦиклВПорядкеОбработчиков(Команда)
ЕстьЦиклВыполненияОбработчиковНаСервере();
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ВыполнитьТестПостроенияОчереди(Команда) Процедура ВыполнитьТестПостроенияОчереди(Команда)
@@ -3889,28 +3882,6 @@
#КонецОбласти #КонецОбласти
#Область ЕстьЦиклПорядкаВыполнения
&НаСервере
Функция ЕстьЦиклВыполненияОбработчиковНаСервере()
Обработка = ОбъектОбработки();
ЕстьЦикл = Обработка.ЕстьЦиклВыполненияОбработчиков();
Возврат ЕстьЦикл;
КонецФункции
&НаСервере
Функция ЕстьЦиклПорядкаВыполненияОбработчиков(Знач ЭтотОбработчик, Знач ПриоритетыВыполнения = Неопределено, СообщатьОбОшибках = Истина) Экспорт
Обработка = ОбъектОбработки();
ЕстьЦикл = Обработка.ЕстьЦиклВыполненияОбработчиков(ЭтотОбработчик, ПриоритетыВыполнения, СообщатьОбОшибках);
Возврат ЕстьЦикл;
КонецФункции
#КонецОбласти
#Область УстановитьНомерСборки #Область УстановитьНомерСборки
&НаКлиенте &НаКлиенте
@@ -1581,7 +1581,7 @@
// Возвращаемое значение: // Возвращаемое значение:
// Булево - Истина если есть зацикленность выполнения // Булево - Истина если есть зацикленность выполнения
// //
Функция ЕстьЦиклВыполненияОбработчиков(ПроверяемыйОбработчик = Неопределено, Знач ПриоритетыОбработчика = Неопределено, СообщатьОбОшибках = Ложь) Экспорт Функция ЕстьЦиклВыполненияОбработчиков(ПроверяемыйОбработчик = Неопределено, Знач ПриоритетыОбработчика = Неопределено, СообщатьОбОшибках = Ложь)
Если ПриоритетыВыполнения.Количество() = 0 Тогда Если ПриоритетыВыполнения.Количество() = 0 Тогда
Возврат Ложь; Возврат Ложь;
@@ -268,6 +268,34 @@
<toolTipRepresentation>ShowBottom</toolTipRepresentation> <toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button">
<name>БИПИнформационноТехнологическоеСопровождение</name>
<id>1993</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>БИПИнформационноТехнологическоеСопровождениеРасширеннаяПодсказка</name>
<id>1994</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<type>Hyperlink</type>
<commandName>Form.Command.БИПИнформационноТехнологическоеСопровождение</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<toolTipRepresentation>ShowBottom</toolTipRepresentation>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -277,7 +305,7 @@
<key>ru</key> <key>ru</key>
<value>Настройки ИПП левая колонка</value> <value>Настройки ИПП левая колонка</value>
</title> </title>
<width>43</width> <width>44</width>
<horizontalStretch>false</horizontalStretch> <horizontalStretch>false</horizontalStretch>
<extendedTooltip> <extendedTooltip>
<name>ГруппаНастройкиИППЛеваяКолонкаРасширеннаяПодсказка</name> <name>ГруппаНастройкиИППЛеваяКолонкаРасширеннаяПодсказка</name>
@@ -5370,6 +5398,28 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse> <selectedRowsUse>Auto</selectedRowsUse>
</formCommands> </formCommands>
<formCommands>
<name>БИПИнформационноТехнологическоеСопровождение</name>
<title>
<key>ru</key>
<value>Информационно-технологическое сопровождение (1С:ИТС)</value>
</title>
<id>17</id>
<toolTip>
<key>ru</key>
<value>Переход на портал информационно-технологического сопровождения 1С:ИТС.</value>
</toolTip>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>БИПИнформационноТехнологическоеСопровождение</name>
</handler>
</action>
<currentRowUse>Auto</currentRowUse>
<selectedRowsUse>Auto</selectedRowsUse>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -15,7 +15,7 @@ TD {
</li> </li>
<li><strong>Сообщение в службу технической поддержки</strong> - перейти на Портал 1С:ИТС для отправки сообщения в службу технической поддержки. К данным сообщения будет автоматически добавлена техническая информация о программе. <li><strong>Сообщение в службу технической поддержки</strong> - перейти на Портал 1С:ИТС для отправки сообщения в службу технической поддержки. К данным сообщения будет автоматически добавлена техническая информация о программе.
</li> </li>
<li><strong>Монитор Портала 1С:ИТС</strong> - информация о поддержке программного продукта, версии программы и др. </li></ul><p></p> <li><strong>Монитор Портала 1С:ИТС</strong> - информация о поддержке программного продукта, версии программы и др.</li><li><strong>Информационно-технологическое сопровождение (1С:ИТС)</strong> - переход на портал информационно-технологического сопровождения 1С:ИТС. </li></ul><p></p>
<h3>Классификаторы и курсы валют</h3> <h3>Классификаторы и курсы валют</h3>
<p></p> <p></p>
<table><tbody><tr><td colspan="2"> <table><tbody><tr><td colspan="2">
@@ -702,6 +702,17 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура БИПИнформационноТехнологическоеСопровождение(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтернетПоддержкаПользователей.БазоваяФункциональностьБИП") Тогда
МодульИнтернетПоддержкаПользователейКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтернетПоддержкаПользователейКлиент");
МодульИнтернетПоддержкаПользователейКлиент.ОткрытьСтраницуИнтегрированногоСайта(
"https://its.1c.ru");
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
&НаКлиенте &НаКлиенте
@@ -6695,8 +6695,7 @@
</title> </title>
<id>38</id> <id>38</id>
<valueType> <valueType>
<types>String</types> <types>CatalogRef.УчетныеЗаписиЭлектроннойПочты</types>
<stringQualifiers/>
</valueType> </valueType>
<view> <view>
<common>true</common> <common>true</common>
@@ -208,7 +208,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ТекущаяСсылкаНаФайл()); ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ВызовСервера");
Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект); Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор); РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор);
@@ -712,7 +712,6 @@
КонецЕсли; КонецЕсли;
ФайлСсылка = ТекущаяСсылкаНаФайл(); ФайлСсылка = ТекущаяСсылкаНаФайл();
РазблокироватьДанныеФормыДляРедактирования();
ДанныеФайла = ДанныеФайла(ФайлСсылка, УникальныйИдентификатор); ДанныеФайла = ДанныеФайла(ФайлСсылка, УникальныйИдентификатор);
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует); ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует);
@@ -735,7 +734,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ТекущаяСсылкаНаФайл()); ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ВызовСервера");
ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект); ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект);
ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор); ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор);
@@ -883,12 +882,23 @@
КонецПроцедуры КонецПроцедуры
&НаСервереБезКонтекста &НаСервереБезКонтекста
Функция ДанныеФайла(Знач ПрисоединенныйФайл, Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено, Знач Режим = "")
Знач ИдентификаторФормы = Неопределено,
Знач ПолучатьСсылкуНаДвоичныеДанные = Истина)
Возврат РаботаСФайлами.ДанныеФайла( РазблокироватьОбъект(ПрисоединенныйФайл, ИдентификаторФормы);
ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные); Если Режим = "ДляОткрытия" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ПрисоединенныйФайл, Неопределено, ИдентификаторФормы);
ИначеЕсли Режим = "ДляСохранения" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(
ПрисоединенныйФайл,, ИдентификаторФормы);
ИначеЕсли Режим = "ВызовСервера" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПрисоединенныйФайл,, ИдентификаторФормы);
Иначе
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Истина;
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ПараметрыДанныхФайла);
КонецЕсли;
КонецФункции КонецФункции
@@ -909,10 +919,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь; И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецПроцедуры КонецПроцедуры
@@ -924,9 +931,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует) ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь; И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия( ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется); РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецЕсли; КонецЕсли;
@@ -940,8 +945,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия( ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла); РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла);
КонецПроцедуры КонецПроцедуры
@@ -953,8 +957,7 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения( ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляСохранения");
ТекущаяСсылкаНаФайл(),, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено); РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено);
КонецПроцедуры КонецПроцедуры
@@ -310,7 +310,17 @@
ИначеЕсли ДанныеКлассификатора.Данные.Количество() = 0 Тогда ИначеЕсли ДанныеКлассификатора.Данные.Количество() = 0 Тогда
НаименованиеРегиона = РаботаСАдресами.РегионАдресаКонтактнойИнформации(РаботаСАдресами.АдресПоИдентификатору(Родитель)); Адрес = РаботаСАдресами.АдресПоИдентификатору(Родитель);
Если Адрес = Неопределено Тогда
Результат.Отказ = Истина;
Возврат Результат;
КонецЕсли;
НаименованиеРегиона = РаботаСАдресами.РегионАдресаКонтактнойИнформации(Адрес);
Если РаботаСАдресами.ЭтоГородФедеральногоЗначения(НаименованиеРегиона) Тогда Если РаботаСАдресами.ЭтоГородФедеральногоЗначения(НаименованиеРегиона) Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
@@ -190,10 +190,12 @@
&НаКлиенте &НаКлиенте
Процедура ОтправкаЗапросаКлиент() Процедура ОтправкаЗапросаКлиент()
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект); Если НЕ ОжидатьВыполнения Тогда
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения); ОжидатьВыполнения = Истина;
ОжидатьВыполнения = Истина; ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
ПриНачалеПодтверждения(); СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -170,10 +170,12 @@
&НаКлиенте &НаКлиенте
Процедура ОтправкаЗапросаКлиент() Процедура ОтправкаЗапросаКлиент()
ОжидатьВыполнения = Истина; Если НЕ ОжидатьВыполнения Тогда
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект); ОжидатьВыполнения = Истина;
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения); ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
ПриНачалеПодтверждения(); СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -186,10 +186,12 @@
&НаКлиенте &НаКлиенте
Процедура ОтправкаЗапросаКлиент() Процедура ОтправкаЗапросаКлиент()
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект); Если НЕ ОжидатьВыполнения Тогда
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения); ОжидатьВыполнения = Истина;
ОжидатьВыполнения = Истина; ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
ПриНачалеПодтверждения(); СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
@@ -71,6 +71,8 @@
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступа"); Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступа");
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступаПоУмолчанию"); Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступаПоУмолчанию");
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
@@ -96,9 +98,11 @@
НоваяСтрока.ВидДоступаВнешниеПользователи = (СвойстваВидаДоступа.Имя = "ВнешниеПользователи"); НоваяСтрока.ВидДоступаВнешниеПользователи = (СвойстваВидаДоступа.Имя = "ВнешниеПользователи");
КонецЦикла; КонецЦикла;
ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа, ГруппыДоступа, ЕстьИзменения); ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор);
ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа, ГруппыДоступа, ЕстьИзменения); ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор);
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
@@ -111,18 +115,20 @@
//////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции. // Вспомогательные процедуры и функции.
Процедура ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа, ГруппыДоступа = Неопределено, ЕстьИзменения = Неопределено) Процедура ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор)
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор()); Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа); Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа);
Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа", Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа",
УправлениеДоступомСлужебныйПовтИсп.ТипыГруппИЗначенийВидовДоступа()); УправлениеДоступомСлужебныйПовтИсп.ТипыГруппИЗначенийВидовДоступа());
Запрос.УстановитьПараметр("ВыбранныеЗначенияДоступа", ВыбранныеЗначенияДоступа(ГруппыДоступа)); Запрос.УстановитьПараметр("ВыбранныеЗначенияДоступа",
ВыбранныеЗначенияДоступа(ГруппыДоступа, ПрофильАдминистратор));
ТекстЗапросовВременныхТаблиц = ТекстЗапросовВременныхТаблиц =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -374,12 +380,13 @@
КонецПроцедуры КонецПроцедуры
Процедура ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа, ГруппыДоступа = Неопределено, ЕстьИзменения = Неопределено) Процедура ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор)
УстановитьПривилегированныйРежим(Истина); УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор()); Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа); Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа);
Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа", Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа",
@@ -633,7 +640,7 @@
КонецПроцедуры КонецПроцедуры
Функция ВыбранныеЗначенияДоступа(ГруппыДоступа) Функция ВыбранныеЗначенияДоступа(ГруппыДоступа, ПрофильАдминистратор)
ТекстЗапроса = ТекстЗапроса =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -693,7 +700,7 @@
| ПрофилиГруппДоступаЗначенияДоступа.ЗначениеДоступа"; | ПрофилиГруппДоступаЗначенияДоступа.ЗначениеДоступа";
Запрос = Новый Запрос(ТекстЗапроса); Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор()); Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
УправлениеДоступомСлужебный.УстановитьУсловиеОтбораВЗапросе(Запрос, ГруппыДоступа, "ГруппыДоступа", УправлениеДоступомСлужебный.УстановитьУсловиеОтбораВЗапросе(Запрос, ГруппыДоступа, "ГруппыДоступа",
"&УсловиеОтбораГруппДоступа1:ГруппыДоступа.Ссылка"); "&УсловиеОтбораГруппДоступа1:ГруппыДоступа.Ссылка");
@@ -63,12 +63,22 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
ОбновитьВспомогательныеДанныеРегистра(); Блокировка.Заблокировать();
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление.
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
ОбновитьВспомогательныеДанныеРегистра();
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
КонецЕсли;
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
@@ -674,12 +684,29 @@
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда Если СтароеЗначение <> НовоеЗначение Тогда
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных(); Блокировка = Новый БлокировкаДанных;
УстановитьОтключениеБезопасногоРежима(Истина); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
УстановитьПривилегированныйРежим(Истина); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
УстановитьПривилегированныйРежим(Ложь); НачатьТранзакцию();
УстановитьОтключениеБезопасногоРежима(Ложь); Попытка
Блокировка.Заблокировать();
СтароеЗначение = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если СтароеЗначение <> НовоеЗначение Тогда
Если ЗначениеЗаполнено(СтароеЗначение) Тогда // Не первое обновление.
УправлениеДоступомСлужебный.ПроверитьАктуальностьМетаданных();
КонецЕсли;
УстановитьОтключениеБезопасногоРежима(Истина);
УстановитьПривилегированныйРежим(Истина);
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, НовоеЗначение, Истина);
УстановитьПривилегированныйРежим(Ложь);
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли; КонецЕсли;
Кэш.Проверка.Дата = ТекущаяДатаСеанса; Кэш.Проверка.Дата = ТекущаяДатаСеанса;
@@ -9,15 +9,16 @@
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Прочитать отметку о напоминании. // Возвращает признак того, что пользователь поставил отметку "Больше не напоминать" в сообщении о
// необходимости перевыпуска сертификата или снял отметку "Напоминать о готовности" в заявлении на сертификат.
// //
// Параметры: // Параметры:
// Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования // Сертификат - СправочникСсылка.СертификатыКлючейЭлектроннойПодписиИШифрования
// //
// Возвращаемое значение: // Возвращаемое значение:
// Булево, Неопределено - отметка о напоминании (Истина - Оповещен, больше не напоминать) // Булево - если Истина - Оповещен, больше не напоминать
// //
Функция ПрочитатьОтметкуОНапоминании(Сертификат) Экспорт Функция ПользовательОповещен(Сертификат) Экспорт
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
@@ -37,10 +38,10 @@
УстановитьПривилегированныйРежим(Ложь); УстановитьПривилегированныйРежим(Ложь);
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда Если ВыборкаДетальныеЗаписи.Следующий() Тогда
Возврат Не ВыборкаДетальныеЗаписи.Оповещен; Возврат ВыборкаДетальныеЗаписи.Оповещен;
КонецЕсли; КонецЕсли;
Возврат Неопределено; Возврат Ложь;
КонецФункции КонецФункции
@@ -332,7 +332,10 @@
КонецПроцедуры КонецПроцедуры
// Для обработчика регламентного задания ЗаполнениеПараметровРаботыРасширений. // Только для вызова из СтандартныеПодсистемыСервер.ЗаполнениеПараметровРаботыРасширений.
//
// Обработчик регламентного задания ЗаполнениеПараметровРаботыРасширений.
//
Процедура ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений() Экспорт Процедура ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений() Экспорт
Если ТранзакцияАктивна() Тогда Если ТранзакцияАктивна() Тогда
@@ -347,39 +350,29 @@
Если ТекущееФоновоеЗадание = Неопределено Тогда Если ТекущееФоновоеЗадание = Неопределено Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
МетаданныеЗадания = Метаданные.РегламентныеЗадания.ЗаполнениеПараметровРаботыРасширений;
Если ТекущееФоновоеЗадание.ИмяМетода <> МетаданныеЗадания.ИмяМетода Тогда
ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Процедура %1
|предназначена для вызова только из обработчика
|%2
|регламентного задания ""%3"".'"),
"ПараметрыРаботыВерсийРасширений.ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений",
МетаданныеЗадания.ИмяМетода,
МетаданныеЗадания.Представление());
ВызватьИсключение ТекстОшибки;
КонецЕсли;
ИдентификаторТекущегоЗадания = ТекущееФоновоеЗадание.УникальныйИдентификатор; ИдентификаторТекущегоЗадания = ТекущееФоновоеЗадание.УникальныйИдентификатор;
// Регистрация текущего фонового задания как исполняющего, либо завершение, если существует. // Регистрация текущего фонового задания как исполняющего, либо завершение, если существует.
ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ЗаданиеЗаполненияПараметровРаботыРасширений"; ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ЗаданиеЗаполненияПараметровРаботыРасширений";
ИдентификаторЗадания = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
ИсполняющееФоновоеЗадание = Неопределено;
ЗаполнитьАктивноеФоновоеЗадание(ИсполняющееФоновоеЗадание, ИдентификаторЗадания);
Если ИсполняющееФоновоеЗадание <> Неопределено Тогда
Возврат;
КонецЕсли;
Блокировка = Новый БлокировкаДанных; Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений"); ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ПараметрыРаботыВерсийРасширений");
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка()); ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", Справочники.ВерсииРасширений.ПустаяСсылка());
ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра); ЭлементБлокировки.УстановитьЗначение("ИмяПараметра", ИмяПараметра);
ИсполняющееФоновоеЗадание = Неопределено; БлокировкаУстановлена = Ложь;
НачатьТранзакцию(); НачатьТранзакцию();
Попытка Попытка
Блокировка.Заблокировать(); Блокировка.Заблокировать();
БлокировкаУстановлена = Истина;
ИдентификаторЗадания = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); ИдентификаторЗадания = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если ТипЗнч(ИдентификаторЗадания) = Тип("УникальныйИдентификатор") Тогда ЗаполнитьАктивноеФоновоеЗадание(ИсполняющееФоновоеЗадание, ИдентификаторЗадания);
ИсполняющееФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если ИсполняющееФоновоеЗадание <> Неопределено
И ИсполняющееФоновоеЗадание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
ИсполняющееФоновоеЗадание = Неопределено;
КонецЕсли;
КонецЕсли;
Если ИсполняющееФоновоеЗадание = Неопределено Тогда Если ИсполняющееФоновоеЗадание = Неопределено Тогда
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра,
ИдентификаторТекущегоЗадания, Истина); ИдентификаторТекущегоЗадания, Истина);
@@ -387,7 +380,11 @@
ЗафиксироватьТранзакцию(); ЗафиксироватьТранзакцию();
Исключение Исключение
ОтменитьТранзакцию(); ОтменитьТранзакцию();
ВызватьИсключение; Если БлокировкаУстановлена Тогда
ВызватьИсключение;
КонецЕсли;
ЗапуститьЗаполнениеПараметровРаботыРасширений();
Возврат;
КонецПопытки; КонецПопытки;
Если ИсполняющееФоновоеЗадание <> Неопределено Тогда Если ИсполняющееФоновоеЗадание <> Неопределено Тогда
@@ -816,10 +813,14 @@
КонецФункции КонецФункции
// Для процедур ПриПервомСерверномВызове, ПриУспешномНачалеВыполненияРегламентногоЗадания и // Для процедур ПриПервомСерверномВызове, ПриУспешномНачалеВыполненияРегламентногоЗадания,
// общей формы Расширения. // общей формы Расширения и СтандартныеПодсистемыСервер.ПослеЗагрузкиДанных.
// //
Процедура ВключитьЗаполнениеПараметровРаботыРасширений(Запустить = Истина) Экспорт // Параметры:
// Запустить - Булево
// ВключитьБезусловно - Булево
//
Процедура ВключитьЗаполнениеПараметровРаботыРасширений(Запустить = Истина, ВключитьБезусловно = Ложь) Экспорт
ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ИдентификаторЗаполненияПараметровРаботыРасширений"; ИмяПараметра = "СтандартныеПодсистемы.БазоваяФункциональность.ИдентификаторЗаполненияПараметровРаботыРасширений";
@@ -835,8 +836,11 @@
Блокировка.Заблокировать(); Блокировка.Заблокировать();
ИдентификаторОбновления = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ИдентификаторОбновления; ИдентификаторОбновления = Справочники.ВерсииРасширений.ПоследняяВерсияРасширений().ИдентификаторОбновления;
ИдентификаторЗаполнения = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина); ИдентификаторЗаполнения = СтандартныеПодсистемыСервер.ПараметрРаботыРасширения(ИмяПараметра, Истина);
Если ИдентификаторОбновления <> ИдентификаторЗаполнения Тогда Если ВключитьБезусловно Или ИдентификаторОбновления <> ИдентификаторЗаполнения Тогда
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра, ИдентификаторОбновления, Истина); Если ИдентификаторОбновления <> ИдентификаторЗаполнения Тогда
СтандартныеПодсистемыСервер.УстановитьПараметрРаботыРасширения(ИмяПараметра,
ИдентификаторОбновления, Истина);
КонецЕсли;
Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор); Задания = РегламентныеЗаданияСервер.НайтиЗадания(Отбор);
Для Каждого Задание Из Задания Цикл Для Каждого Задание Из Задания Цикл
РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор, РегламентныеЗаданияСервер.ИзменитьЗадание(Задание.УникальныйИдентификатор,
@@ -855,6 +859,19 @@
КонецПроцедуры КонецПроцедуры
// Для процедуры ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений.
Процедура ЗаполнитьАктивноеФоновоеЗадание(ИсполняющееФоновоеЗадание, ИдентификаторЗадания)
Если ТипЗнч(ИдентификаторЗадания) = Тип("УникальныйИдентификатор") Тогда
ИсполняющееФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
Если ИсполняющееФоновоеЗадание <> Неопределено
И ИсполняющееФоновоеЗадание.Состояние <> СостояниеФоновогоЗадания.Активно Тогда
ИсполняющееФоновоеЗадание = Неопределено;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Для процедуры ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений // Для процедуры ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений
// и ОтметитьЗаполнениеПараметровРаботыРасширений. // и ОтметитьЗаполнениеПараметровРаботыРасширений.
// //
@@ -911,12 +928,18 @@
КонецПроцедуры КонецПроцедуры
// Для процедур ВключитьЗаполнениеПараметровРаботыРасширений и // Для процедур ВключитьЗаполнениеПараметровРаботыРасширений,
// ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений. // ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений и
// СтандартныеПодсистемыСервер.ПослеЗагрузкиДанных.
//
// Параметры:
// ОжидатьЗавершения - Булево - не учитывается для файловой ИБ.
// //
Процедура ЗапуститьЗаполнениеПараметровРаботыРасширений() Процедура ЗапуститьЗаполнениеПараметровРаботыРасширений(ОжидатьЗавершения = Ложь) Экспорт
Если ТранзакцияАктивна() Если ТранзакцияАктивна()
Или МонопольныйРежим()
И Не ОжидатьЗавершения
Или КонфигурацияБазыДанныхИзмененаДинамически() Или КонфигурацияБазыДанныхИзмененаДинамически()
И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда И ОбщегоНазначения.ИнформационнаяБазаФайловая() Тогда
// В файловой ИБ перезапуск фонового задания с расширениями базы данных // В файловой ИБ перезапуск фонового задания с расширениями базы данных
@@ -935,9 +958,17 @@
Формат(ТекущийСеанс.НомерСеанса, "ЧГ="), Формат(ТекущийСеанс.НомерСеанса, "ЧГ="),
Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")"; Формат(ТекущийСеанс.НачалоСеанса, "ДЛФ=DT")) + ")";
РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных( ФоновоеЗадание = РасширенияКонфигурации.ВыполнитьФоновоеЗаданиеСРасширениямиБазыДанных(
МетаданныеЗадания.ИмяМетода,,, НаименованиеЗадания); МетаданныеЗадания.ИмяМетода,,, НаименованиеЗадания);
Если ОжидатьЗавершения
И ФоновоеЗадание <> Неопределено
И (ТекущийРежимЗапуска() <> Неопределено
Или Не ОбщегоНазначения.ИнформационнаяБазаФайловая()) Тогда
ФоновоеЗадание.ОжидатьЗавершенияВыполнения();
КонецЕсли;
КонецПроцедуры КонецПроцедуры
// Для процедуры ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений. // Для процедуры ЗаполнитьВсеПараметрыРаботыПоследнейВерсииРасширений.
@@ -20,8 +20,8 @@
ПутьКТому = РаботаСФайламиВТомахСлужебный.ПолныйПутьТома(ПараметрТом.Значение); ПутьКТому = РаботаСФайламиВТомахСлужебный.ПолныйПутьТома(ПараметрТом.Значение);
КонецЕсли; КонецЕсли;
МассивФайлов = НайтиФайлы(ПутьКТому,"*", Истина); ПроверяемыеФайлы = НайтиФайлы(ПутьКТому, "*", Истина);
Для Каждого Файл Из МассивФайлов Цикл Для Каждого Файл Из ПроверяемыеФайлы Цикл
Если Не Файл.ЭтоФайл() Тогда Если Не Файл.ЭтоФайл() Тогда
Продолжить; Продолжить;
КонецЕсли; КонецЕсли;
@@ -31,30 +31,27 @@
НоваяСтрока.ПолноеИмя = Файл.ПолноеИмя; НоваяСтрока.ПолноеИмя = Файл.ПолноеИмя;
НоваяСтрока.Путь = Файл.Путь; НоваяСтрока.Путь = Файл.Путь;
НоваяСтрока.Расширение = Файл.Расширение; НоваяСтрока.Расширение = Файл.Расширение;
НоваяСтрока.СтатусПроверки = НСтр("ru = 'Лишние файлы (есть на диске, но сведения о них отсутствуют)'"); НоваяСтрока.СтатусПроверки = "ЛишнийФайлВТоме";
НоваяСтрока.Количество = 1; НоваяСтрока.Количество = 1;
НоваяСтрока.Том = ПараметрТом.Значение; НоваяСтрока.Том = ПараметрТом.Значение;
КонецЦикла; КонецЦикла;
РаботаСФайламиВТомахСлужебный.ЗаполнитьЛишниеФайлы(ТаблицаФайловНаДиске, ПараметрТом.Значение); РаботаСФайламиВТомахСлужебный.ЗаполнитьЛишниеФайлы(ТаблицаФайловНаДиске, ПараметрТом.Значение);
ТаблицаФайловНаДиске.Индексы.Добавить("СтатусПроверки");
СтандартнаяОбработка = Ложь; СтандартнаяОбработка = Ложь;
ДокументРезультат.Очистить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
ВнешниеНаборыДанных = Новый Структура; ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТаблицаПроверкиТома", ТаблицаФайловНаДиске); ВнешниеНаборыДанных.Вставить("ТаблицаПроверкиТома", ТаблицаФайловНаДиске);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина); ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки); ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ОтчетПустой", ТаблицаФайловНаДиске.Количество() = 0); КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("ОтчетПустой", ТаблицаФайловНаДиске.Количество() = 0);
@@ -35,6 +35,7 @@
<v8:content>Статус проверки</v8:content> <v8:content>Статус проверки</v8:content>
</v8:item> </v8:item>
</title> </title>
<presentationExpression>РаботаСФайламиВТомахСлужебный.ПредставлениеСтатусаПроверки(СтатусПроверки)</presentationExpression>
<valueType> <valueType>
<v8:Type>xs:string</v8:Type> <v8:Type>xs:string</v8:Type>
<v8:StringQualifiers> <v8:StringQualifiers>
@@ -279,7 +280,7 @@
<dcsset:item xsi:type="dcsset:FilterItemComparison"> <dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left> <dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left>
<dcsset:comparisonType>Contains</dcsset:comparisonType> <dcsset:comparisonType>Contains</dcsset:comparisonType>
<dcsset:right xsi:type="xs:string">Целостные данные</dcsset:right> <dcsset:right xsi:type="xs:string">ОК</dcsset:right>
</dcsset:item> </dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:appearance> <dcsset:appearance>
@@ -295,7 +296,7 @@
<dcsset:item xsi:type="dcsset:FilterItemComparison"> <dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left> <dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left>
<dcsset:comparisonType>Contains</dcsset:comparisonType> <dcsset:comparisonType>Contains</dcsset:comparisonType>
<dcsset:right xsi:type="xs:string">Лишние файлы (есть на диске, но сведения о них отсутствуют)</dcsset:right> <dcsset:right xsi:type="xs:string">ЛишнийФайлВТоме</dcsset:right>
</dcsset:item> </dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:appearance> <dcsset:appearance>
@@ -311,7 +312,7 @@
<dcsset:item xsi:type="dcsset:FilterItemComparison"> <dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left> <dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left>
<dcsset:comparisonType>Contains</dcsset:comparisonType> <dcsset:comparisonType>Contains</dcsset:comparisonType>
<dcsset:right xsi:type="xs:string">Отсутствуют данные в томе на диске</dcsset:right> <dcsset:right xsi:type="xs:string">НетФайлаВТоме</dcsset:right>
</dcsset:item> </dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:appearance> <dcsset:appearance>
@@ -335,7 +336,7 @@
<dcsset:item xsi:type="dcsset:FilterItemComparison"> <dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left> <dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left>
<dcsset:comparisonType>Contains</dcsset:comparisonType> <dcsset:comparisonType>Contains</dcsset:comparisonType>
<dcsset:right xsi:type="xs:string">Отсутствуют данные в томе на диске</dcsset:right> <dcsset:right xsi:type="xs:string">НетФайлаВТоме</dcsset:right>
</dcsset:item> </dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:order> <dcsset:order>
@@ -393,7 +394,7 @@
<dcsset:item xsi:type="dcsset:FilterItemComparison"> <dcsset:item xsi:type="dcsset:FilterItemComparison">
<dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left> <dcsset:left xsi:type="dcscor:Field">СтатусПроверки</dcsset:left>
<dcsset:comparisonType>Contains</dcsset:comparisonType> <dcsset:comparisonType>Contains</dcsset:comparisonType>
<dcsset:right xsi:type="xs:string">Лишние файлы</dcsset:right> <dcsset:right xsi:type="xs:string">ЛишнийФайлВТоме</dcsset:right>
</dcsset:item> </dcsset:item>
</dcsset:filter> </dcsset:filter>
<dcsset:order> <dcsset:order>
@@ -4628,70 +4628,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -4779,6 +4715,70 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Constant.СинхронизироватьДанныеСПриложениемВИнтернетеПриЗавершенииРаботыПрограммы</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.КоличествоЭлементовВТранзакцииЗагрузкиДанных</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ЗагрузитьРасширенияИзменяющиеСтруктуруДанных</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>View</name>
<value>true</value>
</right>
<right>
<name>Edit</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonForm.МониторСинхронизацииДанныхВМоделиСервиса</name> <name>CommonForm.МониторСинхронизацииДанныхВМоделиСервиса</name>
<right> <right>
@@ -2457,6 +2457,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.МакетыПечатныхФорм</name> <name>Catalog.МакетыПечатныхФорм</name>
<right> <right>
@@ -2494,33 +2521,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>SessionParameter.ТекущийВнешнийПользователь</name> <name>SessionParameter.ТекущийВнешнийПользователь</name>
<right> <right>
@@ -2000,6 +2000,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.МакетыПечатныхФорм</name> <name>Catalog.МакетыПечатныхФорм</name>
<right> <right>
@@ -2037,33 +2064,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>SessionParameter.ТекущийВнешнийПользователь</name> <name>SessionParameter.ТекущийВнешнийПользователь</name>
<right> <right>
@@ -520,13 +520,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>WebService.Exchange_3_0_1_1.Operation.TestConnection</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -554,6 +547,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>WebService.Exchange_3_0_1_1.Operation.TestConnection</name>
<right>
<name>Use</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>CommonCommand.ПредупрежденияПриСинхронизацииДанных</name> <name>CommonCommand.ПредупрежденияПриСинхронизацииДанных</name>
<right> <right>
@@ -1296,13 +1296,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DocumentJournal.Взаимодействия.Command.НаписатьSMSПоКонтакту</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -1330,6 +1323,13 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DocumentJournal.Взаимодействия.Command.НаписатьSMSПоКонтакту</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.КонтактыВзаимодействий</name> <name>InformationRegister.КонтактыВзаимодействий</name>
<right> <right>
@@ -22,6 +22,33 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Catalog.МакетыПечатныхФорм</name> <name>Catalog.МакетыПечатныхФорм</name>
<right> <right>
@@ -61,31 +88,4 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -248,13 +248,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -282,4 +275,11 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>DataProcessor.ОценкаПроизводительности.Command.НастройкиОценкиПроизводительности</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -6337,6 +6337,45 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>Catalog.МакетыПечатныхФорм</name> <name>Catalog.МакетыПечатныхФорм</name>
<right> <right>
@@ -6464,45 +6503,6 @@
<value>false</value> <value>false</value>
</right> </right>
</object> </object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object> <object>
<name>CommonForm.МониторСинхронизацииДанныхВМоделиСервиса</name> <name>CommonForm.МониторСинхронизацииДанныхВМоделиСервиса</name>
<right> <right>
@@ -3,13 +3,6 @@
<setForNewObjects>false</setForNewObjects> <setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault> <setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>CommonForm.ОписаниеИзмененийПрограммы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -37,4 +30,11 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>CommonForm.ОписаниеИзмененийПрограммы</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
</Rights> </Rights>
@@ -2681,25 +2681,6 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.МакетыПечатныхФорм</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name> <name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right> <right>
@@ -2727,6 +2708,25 @@
<value>true</value> <value>true</value>
</right> </right>
</object> </object>
<object>
<name>Catalog.МакетыПечатныхФорм</name>
<right>
<name>Read</name>
<value>true</value>
</right>
<right>
<name>Insert</name>
<value>true</value>
</right>
<right>
<name>Update</name>
<value>true</value>
</right>
<right>
<name>Delete</name>
<value>true</value>
</right>
</object>
<object> <object>
<name>InformationRegister.КлючиДоступаПользователей</name> <name>InformationRegister.КлючиДоступаПользователей</name>
<right> <right>
@@ -1203,28 +1203,11 @@
КонецЦикла; КонецЦикла;
Если СписокНепомеченных.Количество() = 0 Тогда Если СписокПомеченных.Количество() = 1 Тогда
НастройкиОтчета.СвойстваРезультата.ИтоговыеНастройки = КомпоновщикНастроек.Настройки;
ВариантыОтчетовСлужебныйКлиент.СнятьФильтр(ЭтотОбъект, СвойстваЗаголовка);
Фильтр = Неопределено;
ИначеЕсли СписокПомеченных.Количество() = 1 Тогда
Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Фильтр.ПравоеЗначение = СписокПомеченных[0].Значение; Фильтр.ПравоеЗначение = СписокПомеченных[0].Значение;
ИначеЕсли СписокНепомеченных.Количество() = 1 Тогда
Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеРавно;
Фильтр.ПравоеЗначение = СписокНепомеченных[0].Значение;
ИначеЕсли СписокПомеченных.Количество() = 0
Или СписокПомеченных.Количество() > СписокНепомеченных.Количество() Тогда
Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
Фильтр.ПравоеЗначение = СписокНепомеченных;
Иначе Иначе
Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; Фильтр.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;