3_1_5_400

This commit is contained in:
Компания 1С committed 2022-04-15 16:49:00 +03:00
1 parent 6262189126
commit 47c28e1471
30 files changed
+418 -433

No files matched your search

@@ -309,7 +309,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ЭтотОбъект.Объект.Ссылка);
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ВызовСервера");
Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор);
@@ -580,9 +580,7 @@
Процедура ПроверитьВсе(Команда)
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
РаботаСФайламиСлужебныйКлиент.ПроверитьПодписи(ЭтотОбъект, ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
КонецПроцедуры
&НаКлиенте
@@ -697,9 +695,7 @@
Возврат;
КонецЕсли;
РазблокироватьДанныеФормыДляРедактирования();
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует);
РаботаСФайламиСлужебныйКлиент.РедактироватьФайл(Неопределено, ДанныеФайла, УникальныйИдентификатор);
Если Не ФайлРедактируется Тогда
@@ -719,8 +715,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ЭтотОбъект.Объект.Ссылка);
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ВызовСервера");
ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект);
ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор);
ПараметрыОбновленияФайла.ХранитьВерсии = ДанныеФайла.ХранитьВерсии;
@@ -919,13 +914,23 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеФайла(Знач ПрисоединенныйФайл,
Знач ИдентификаторФормы = Неопределено,
Знач ПолучатьСсылкуНаДвоичныеДанные = Истина)
Возврат РаботаСФайлами.ДанныеФайла(
ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные);
Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено, Знач Режим = "")
РазблокироватьОбъект(ПрисоединенныйФайл, ИдентификаторФормы);
Если Режим = "ДляОткрытия" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ПрисоединенныйФайл, Неопределено, ИдентификаторФормы);
ИначеЕсли Режим = "ДляСохранения" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(
ПрисоединенныйФайл,, ИдентификаторФормы);
ИначеЕсли Режим = "ВызовСервера" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПрисоединенныйФайл,, ИдентификаторФормы);
Иначе
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Истина;
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ПараметрыДанныхФайла);
КонецЕсли;
КонецФункции
&НаКлиенте
@@ -937,9 +942,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецПроцедуры
@@ -952,7 +955,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла);
КонецПроцедуры
@@ -964,7 +967,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(ЭтотОбъект.Объект.Ссылка, Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор, "ДляСохранения");
РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено);
КонецПроцедуры
@@ -81,7 +81,19 @@
МодульУправлениеПечатьюМультиязычность.ПриЗаполненииНабораЯзыков(НаборЯзыков);
КонецЕсли;
ИспользуемыеЯзыки = Новый Соответствие;
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодОсновногоЯзыка(), Истина);
Если МультиязычностьСервер.ИспользуетсяПервыйДополнительныйЯзык() Тогда
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодПервогоДополнительногоЯзыкаИнформационнойБазы(), Истина);
КонецЕсли;
Если МультиязычностьСервер.ИспользуетсяВторойДополнительныйЯзык() Тогда
ИспользуемыеЯзыки.Вставить(МультиязычностьСервер.КодВторогоДополнительногоЯзыкаИнформационнойБазы(), Истина);
КонецЕсли;
Для Каждого ЯзыкКонфигурации Из Метаданные.Языки Цикл
Если ИспользуемыеЯзыки[ЯзыкКонфигурации.КодЯзыка] <> Истина Тогда
Продолжить;
КонецЕсли;
Если НаборЯзыков.НайтиСтроки(Новый Структура("КодЯзыка", ЯзыкКонфигурации.КодЯзыка)).Количество() > 0 Тогда
Продолжить;
@@ -569,7 +569,9 @@
ИмяПоляИдентификатор = ?(ЭтоМуниципальныйАдрес(ТипАдреса), "munId", "id");
Для каждого СтрокаДанных Из РезультатВебСервис.Данные Цикл
Если ЗначениеЗаполнено(СтрокаДанных[ИмяПоляИдентификатор]) Тогда
Если ДанныеВыбора.Данные.НайтиПоЗначению(СтрокаДанных[ИмяПоляИдентификатор]) = Неопределено Тогда
ДанныеВыбора.Данные.Добавить(СтрокаДанных[ИмяПоляИдентификатор], СтрокаДанных[ИмяПоля]);
КонецЕсли;
Иначе
ИмяПоля1 = ?(ИмяПоля = "munName", "name", "munName");
ИмяПоляИдентификатор1 = ?(ИмяПоля = "munName", "id", "munId");
@@ -896,10 +898,12 @@
Результат.Вставить("ИсключатьГородИзМуниципальногоАдреса", Ложь);
СтруктураОписанияОшибкиПоставщика(Результат);
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
КлассификаторДоступен = ЗагруженныеАдресныеСведения.Получить("КлассификаторДоступен");
Если СведенияОбАдресномОбъекте.Свойство("ЗагруженныеДанные") И ТипЗнч(СведенияОбАдресномОбъекте.ЗагруженныеДанные) = Тип("Булево") Тогда
ЗагруженныеДанные = СведенияОбАдресномОбъекте.ЗагруженныеДанные;
Иначе
ЗагруженныеАдресныеСведения = АдресныйКлассификаторПовтИсп.СведенияОЗагрузкеСубъектовРФ();
ЗагруженныеДанные = ЗагруженныеАдресныеСведения["ИспользоватьЗагруженные"]; // Если неизвестен источник, то сначала ищем в загруженные данных.
КонецЕсли;
@@ -915,6 +919,12 @@
КонецЕсли;
Если АдресПустой(Результат.Данные) Тогда
Если Не КлассификаторДоступен Тогда
Результат.Отказ = Истина;
Возврат Результат;
КонецЕсли;
ЗаполнитьАктуальныеАдресныеСведенияСервис1С(Результат, СведенияОбАдресномОбъекте.Идентификатор, ЭтоМуниципальныйАдрес);
Если АдресПустой(Результат.Данные) Тогда
@@ -9362,6 +9372,8 @@
|- сервис отключен или на техническом обслуживании.'");
КонецЕсли;
ДополнитьПредставлениеОшибкиСтекомВызовов(ПредставлениеОшибки);
Результат.ПодробноеПредставлениеОшибки = ПредставлениеОшибки;
ОтветОтСервера = Ответ.ПолучитьТелоКакСтроку("UTF-8");
@@ -9369,6 +9381,17 @@
КонецПроцедуры
Процедура ДополнитьПредставлениеОшибкиСтекомВызовов(ПредставлениеОшибки)
Попытка
ВызватьИсключение ПредставлениеОшибки;
Исключение
ДанныеОбОшибке = ИнформацияОбОшибке();
ПредставлениеОшибки = ПодробноеПредставлениеОшибки(ДанныеОбОшибке);
КонецПопытки;
КонецПроцедуры
Процедура ЗаписатьОшибкуЗапросаКВебСервисуВЖурналРегистрации(ОтветОтСервераСтрокой, Результат, ТекстURL, КодСостояния)
ШаблонТекстОтветаСервера = НСтр("ru = '%1
@@ -868,6 +868,10 @@
ИндексПоля.НаправлениеСортировки = ПоляСортировки[Поле.Поле];
ИндексПоля.ПолеСортируется = (ИндексПоля.НаправлениеСортировки <> Неопределено);
Если ИндексПоля.ТипЗначения.СодержитТип(Тип("ТаблицаЗначений")) Тогда
ИндексПоля.ТипЗначения = Новый ОписаниеТипов;
КонецЕсли;
КонецПроцедуры
Функция ОписаниеПоляОтчета(Родитель, Поле, ИспользуемыеПоляГруппировки)
@@ -343,7 +343,10 @@
Реквизит.Поле = ОписаниеПоля.Поле;
Реквизит.Имя = ИмяПоля(ОписаниеПоля.Поле);
Если Не ОписаниеПоля.Тип.СодержитТип(Тип("ТаблицаЗначений")) Тогда
Реквизит.Тип = ОписаниеПоля.Тип;
КонецЕсли;
Реквизит.Папка = ОписаниеПоля.Папка;
Реквизит.Таблица = ОписаниеПоля.Таблица;
Реквизит.Порядок = 1;
@@ -25,15 +25,29 @@
Возврат;
КонецЕсли;
Если МультиязычностьПовтИсп.ОбъектНеСодержитТЧПредставления(Данные.Ссылка) Тогда
СуффиксЯзыка = МультиязычностьСервер.СуффиксТекущегоЯзыка();
Если ЗначениеЗаполнено(СуффиксЯзыка) Тогда
СтандартнаяОбработка = Ложь;
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, ИмяРеквизита,, ТекущийЯзык().КодЯзыка);
Если Данные.Свойство(ИмяРеквизита + СуффиксЯзыка) Тогда
Представление = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Данные.Ссылка, ИмяРеквизита,,
ТекущийЯзык().КодЯзыка);
Если ПустаяСтрока(Представление) И Данные.Свойство(ИмяРеквизита) Тогда
Представление = Данные[ИмяРеквизита];
Если ПустаяСтрока(Представление) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ИначеЕсли Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
Возврат;
КонецЕсли;
КонецЕсли;
Если Данные.Свойство("Ссылка") Или Данные.Ссылка <> Неопределено Тогда
Если Не МультиязычностьПовтИсп.ОбъектНеСодержитТЧПредставления(Данные.Ссылка, ИмяРеквизита) Тогда
ТекстЗапроса =
"ВЫБРАТЬ ПЕРВЫЕ 1
| &ИмяРеквизита КАК Наименование
@@ -56,6 +70,7 @@
СтандартнаяОбработка = Ложь;
Представление = РезультатЗапроса.Выгрузить()[0].Наименование;
КонецЕсли;
КонецЕсли;
КонецЕсли;
@@ -33,9 +33,18 @@
КонецФункции
Функция ОбъектНеСодержитТЧПредставления(Ссылка) Экспорт
Функция ОбъектНеСодержитТЧПредставления(Ссылка, ИмяРеквизита = "") Экспорт
Возврат Ссылка.Метаданные().ТабличныеЧасти.Найти("Представления") = Неопределено;
ТабличныеЧасти = Ссылка.Метаданные().ТабличныеЧасти;
Результат = Ложь;
Если ТабличныеЧасти.Найти("Представления") = Неопределено Тогда
Результат = Истина;
ИначеЕсли ЗначениеЗаполнено(ИмяРеквизита) Тогда
Результат = ТабличныеЧасти.Представления.Реквизиты.Найти(ИмяРеквизита) = Неопределено;
КонецЕсли;
Возврат Результат;
КонецФункции
@@ -1917,6 +1917,10 @@
ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ИтоговыйМассивЗапросов, ТекстыЗапросаРегистров);
Для Каждого ТекстЗапроса Из ИтоговыйМассивЗапросов Цикл
Если Не ЗначениеЗаполнено(ТекстЗапроса) Тогда
Продолжить;
КонецЕсли;
Если Очередь = Неопределено Тогда
УсловиеОтбораУзла = " ТаблицаИзменений.Узел ССЫЛКА ПланОбмена.ОбновлениеИнформационнойБазы ";
Иначе
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.5.385";
Описание.Версия = "3.1.5.400";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -1583,13 +1583,12 @@
// Получатель1 <Адрес1>, Получатель 2 <Адрес2>... Получатель N <АдресN>.
//
// Возвращаемое значение:
// Массив - содержит массив структур адресов.
// Поля структуры:
// Псевдоним - Строка - представление адресата.
// Адрес - Строка - найденный и соответствующий требованиям почтовый адрес.
// Массив из Структура:
// * Псевдоним - Строка - представление адресата.
// * Адрес - Строка - найденный и соответствующий требованиям почтовый адрес.
// Если текст, похожий на адрес найден, но не соответствует требованиям
// стандартов, то такой текст записывается в поле "Псевдоним".
// ОписаниеОшибки - Строка - текстовое представление ошибки, либо пустая строка, если ошибок нет.
// * ОписаниеОшибки - Строка - текстовое представление ошибки, либо пустая строка, если ошибок нет.
//
Функция АдресаЭлектроннойПочтыИзСтроки(Знач СписокАдресов) Экспорт
@@ -1599,10 +1598,10 @@
СписокАдресов = СтрЗаменить(СписокАдресов, ">", ">;");
Для Каждого Строка Из СтрРазделить(СписокАдресов, ";", Ложь) Цикл
ЧастьПредставления = "";
ЧастиПредставления = Новый Массив;
Для Каждого АдресСПредставлением Из СтрРазделить(Строка, ",", Ложь) Цикл
Если Не ЗначениеЗаполнено(АдресСПредставлением) Тогда
ЧастьПредставления = ЧастьПредставления + АдресСПредставлением;
ЧастиПредставления.Добавить(АдресСПредставлением);
Продолжить;
КонецЕсли;
@@ -1616,23 +1615,25 @@
Если АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес) Тогда
ЧастиСтроки.Удалить(ЧастиСтроки.ВГраница());
Иначе
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Некорректный адрес электронной почты ""%1""'"), Адрес);
Адрес = "";
ОписаниеОшибки = НСтр("ru = 'Адрес электронной почты содержит ошибки'");
КонецЕсли;
Псевдоним = СокрЛП(ЧастьПредставления + СтрСоединить(ЧастиСтроки, " "));
ЧастьПредставления = "";
Псевдоним = СокрЛП(СтрСоединить(ЧастиПредставления, ",") + СтрСоединить(ЧастиСтроки, " "));
ЧастиПредставления.Очистить();
СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки);
Результат.Добавить(СтруктураАдреса);
Иначе
ЧастьПредставления = ЧастьПредставления + АдресСПредставлением + ",";
ЧастиПредставления.Добавить(АдресСПредставлением);
КонецЕсли;
КонецЦикла;
Если ЗначениеЗаполнено(СтрЗаменить(ЧастьПредставления, ",", "")) Тогда
Псевдоним = ЧастьПредставления;
Псевдоним = СтрСоединить(ЧастиПредставления, ",");
Если ЗначениеЗаполнено(Псевдоним) Тогда
Адрес = "";
ОписаниеОшибки = НСтр("ru = 'Строка адреса не соответствует формату ""Имя получателя <Адрес@Почты>""'");
ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр(
"ru = 'Некорректный адрес электронной почты ""%1""'"), Псевдоним);
СтруктураАдреса = Новый Структура("Псевдоним, Адрес, ОписаниеОшибки", Псевдоним, Адрес, ОписаниеОшибки);
Результат.Добавить(СтруктураАдреса);
КонецЕсли;
@@ -1748,105 +1749,28 @@
// ВызыватьИсключение - Булево - необходимо передать Ложь, чтобы в случае неуспешного разбора не выдавалось исключение.
//
// Возвращаемое значение:
// Структура:
// * Статус - Булево - успех или неуспех преобразования.
// * Значение - Массив - (параметр доступен, если Статус = Истина) коллекция адресов в виде структур:
// ** Адрес - Строка - e-mail получателя.
// ** Представление - Строка - имя получателя.
// * СообщениеОбОшибке - Строка - (параметр доступен, если Статус = Ложь) информация об ошибке.
//
// ВАЖНО: Функция возвращает массив структур, в которых одно поле (любое)
// может быть незаполнено. Может использоваться различными
// подсистемами для собственного сопоставления имени пользователя
// некому email-адресу. Поэтому необходимо перед непосредственной
// отправкой проверить, что поле почтового адреса заполнено.
// Массив из Структура:
// * Адрес - Строка - e-mail получателя.
// * Представление - Строка - имя получателя.
//
Функция РазобратьСтрокуСПочтовымиАдресами(Знач СтрокаПереданныхАдресов, ВызыватьИсключение = Истина) Экспорт
Результат = Новый Массив;
ОписанияОшибок = Новый Массив;
Адресаты = АдресаЭлектроннойПочтыИзСтроки(СтрокаПереданныхАдресов);
НедопустимыеСимволы = "!#$%^&*()`~|\/=";
СообщениеНедопустимыеСимволы = НСтр("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 И ВызыватьИсключение Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СообщениеНеверныйФорматПочтовогоАдреса,ПочтовыйАдрес);
КонецЕсли;
Если НЕ (ПустаяСтрока(ПолноеИмяАдресата) И ПустаяСтрока(ПочтовыйАдрес)) Тогда
Результат.Добавить(ПроверитьИПодготовитьПочтовыйАдрес(ПолноеИмяАдресата, ПочтовыйАдрес));
КонецЕсли;
КонецЦикла;
Возврат Результат;
@@ -3877,7 +3801,7 @@
СтруктураСсылки = СтруктураURI(URL);
АдресСервераРесурса = СтруктураСсылки.Хост;
АдресСервераКонтрольнойПроверки = "1c.com";
АдресСервераКонтрольнойПроверки = "google.com";
РезультатДоступностиРесурса = ПроверитьДоступностьСервера(АдресСервераРесурса);
@@ -4109,83 +4033,6 @@
КонецФункции
#КонецОбласти
#Область РазобратьСтрокуСПочтовымиАдресами
// Проверяет, что почтовый адрес не содержит символов обрамления
// если символы обрамления вставлены правильно убирает их.
//
Функция ПроверитьИПодготовитьПочтовыйАдрес(Знач ПолноеИмяАдресата, Знач ПочтовыйАдрес)
НедопустимыйСимволВИмениАдресата = НСтр("ru = 'Недопустимый символ в имени адресата.'");
НедопустимыйСимволВПочтовомАдресе = НСтр("ru = 'Недопустимый символ в почтовом адресе.'");
СимволыОбрамления = "<>[]";
ПочтовыйАдрес = СокрЛП(ПочтовыйАдрес);
ПолноеИмяАдресата = СокрЛП(ПолноеИмяАдресата);
Если СтрНачинаетсяС(ПолноеИмяАдресата, "<") Тогда
Если СтрЗаканчиваетсяНа(ПолноеИмяАдресата, ">") Тогда
ПолноеИмяАдресата = Сред(ПолноеИмяАдресата, 2, СтрДлина(ПолноеИмяАдресата)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВИмениАдресата;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(ПолноеИмяАдресата, "[") Тогда
Если СтрЗаканчиваетсяНа(ПолноеИмяАдресата, "]") Тогда
ПолноеИмяАдресата = Сред(ПолноеИмяАдресата, 2, СтрДлина(ПолноеИмяАдресата)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВИмениАдресата;
КонецЕсли;
КонецЕсли;
Если СтрНачинаетсяС(ПочтовыйАдрес, "<") Тогда
Если СтрЗаканчиваетсяНа(ПочтовыйАдрес, ">") Тогда
ПочтовыйАдрес = Сред(ПочтовыйАдрес, 2, СтрДлина(ПочтовыйАдрес)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(ПочтовыйАдрес, "[") Тогда
Если СтрЗаканчиваетсяНа(ПочтовыйАдрес, "]") Тогда
ПочтовыйАдрес = Сред(ПочтовыйАдрес, 2, СтрДлина(ПочтовыйАдрес)-2);
Иначе
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
КонецЕсли;
Для Индекс = 1 По СтрДлина(СимволыОбрамления) Цикл
Если СтрНайти(ПолноеИмяАдресата, Сред(СимволыОбрамления, Индекс, 1)) <> 0
ИЛИ СтрНайти(ПочтовыйАдрес, Сред(СимволыОбрамления, Индекс, 1)) <> 0 Тогда
ВызватьИсключение НедопустимыйСимволВПочтовомАдресе;
КонецЕсли;
КонецЦикла;
Возврат Новый Структура("Адрес, Представление", ПочтовыйАдрес,ПолноеИмяАдресата);
КонецФункции
// Сдвигает маркер позиции пока встречается символ Символ
// возвращает номер позиции в строке, на которое установился маркер.
//
Функция ПропуститьПробелы(
Знач Строка,
Знач ТекущийИндекс,
Знач ПропускаемыйСимвол)
// Убираем лишние пробелы если они есть.
Пока ТекущийИндекс < СтрДлина(Строка) Цикл
Если Сред(Строка, ТекущийИндекс, 1) <> ПропускаемыйСимвол Тогда
Возврат ТекущийИндекс;
КонецЕсли;
ТекущийИндекс = ТекущийИндекс + 1;
КонецЦикла;
Возврат ТекущийИндекс;
КонецФункции
#КонецОбласти
Функция СтрокаСодержитТолькоДопустимыеСимволы(Строка, ДопустимыеСимволы)
МассивСимволов = Новый Массив;
Для Позиция = 1 По СтрДлина(ДопустимыеСимволы) Цикл
@@ -4203,6 +4050,8 @@
#КонецОбласти
#КонецОбласти
#Область ДинамическийСписок
Процедура НайтиРекурсивно(КоллекцияЭлементов, МассивЭлементов, СпособПоиска, ЗначениеПоиска)
@@ -221,7 +221,7 @@
Иначе
АдресСервераРесурса = СтруктураСсылки.Хост;
АдресСервераКонтрольнойПроверки = "1c.com";
АдресСервераКонтрольнойПроверки = "google.com";
РезультатДоступностиРесурса = ПолучениеФайловИзИнтернетаСлужебный.ПроверитьДоступностьСервера(АдресСервераРесурса);
@@ -3580,7 +3580,7 @@
АдресВJSON = СтрокаКонтактнойИнформации.Значение;
КонецЕсли;
АдресПоПолям = УправлениеКонтактнойИнформациейСлужебный.СтрокуJSONВСтруктуру(АдресВJSON);
АдресПоПолям = УправлениеКонтактнойИнформациейСлужебный.JSONВКонтактнуюИнформациюПоПолям(АдресВJSON, Перечисления.ТипыКонтактнойИнформации.Адрес);
Для каждого ПоляСтроений Из АдресПоПолям.buildings Цикл
Если СтрСравнить(ПоляСтроений.type, "Литер") = 0 Тогда
ПоляСтроений.type = "Литера";
@@ -4315,9 +4315,9 @@
ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(ПрисоединенныйФайл)).ПолноеИмя());
ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", ПрисоединенныйФайл);
БлокировкаДанных.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(ПрисоединенныйФайл);
ФайлОбъект = ПрисоединенныйФайл.ПолучитьОбъект();
ФайлОбъект.Заблокировать();
Иначе
ФайлОбъект = ПрисоединенныйФайл;
КонецЕсли;
@@ -2595,47 +2595,59 @@
КонецПроцедуры
// Обновляет размер файла и текущей версии. Нужно при загрузке шифрованного файла в почте.
// Обновляет размер файла и текущей версии.
//
// Параметры:
// ДанныеФайла - см. ДанныеФайла
// РазмерФайла - Число
// УникальныйИдентификатор - УникальныйИдентификатор
// ИдентификаторФормы - УникальныйИдентификатор
//
Процедура ОбновитьРазмерФайлаИВерсии(ДанныеФайла, РазмерФайла, УникальныйИдентификатор) Экспорт
Процедура ОбновитьРазмерФайлаИВерсии(ДанныеФайла, РазмерФайла, ИдентификаторФормы) Экспорт
УказанаВерсияФайла = ДанныеФайла.Версия <> ДанныеФайла.Ссылка;
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Версия.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Версия);
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Ссылка.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Ссылка);
Если УказанаВерсияФайла Тогда
ЭлементБлокировки = Блокировка.Добавить(ДанныеФайла.Версия.Метаданные().ПолноеИмя());
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДанныеФайла.Версия);
КонецЕсли;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , УникальныйИдентификатор);
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , УникальныйИдентификатор);
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, , ИдентификаторФормы);
Если УказанаВерсияФайла Тогда
ЗаблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, , ИдентификаторФормы);
КонецЕсли;
ВерсияОбъект = ДанныеФайла.Версия.ПолучитьОбъект();
ВерсияОбъект.Размер = РазмерФайла;
// Чтобы прошла запись ранее подписанного объекта.
// Чтобы прошла запись подписанного объекта.
ВерсияОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ВерсияОбъект.Записать();
Если УказанаВерсияФайла Тогда
ФайлОбъект = ДанныеФайла.Ссылка.ПолучитьОбъект();
// Чтобы прошла запись ранее подписанного объекта.
// Чтобы прошла запись подписанного объекта.
ФайлОбъект.ДополнительныеСвойства.Вставить("ЗаписьПодписанногоОбъекта", Истина);
ФайлОбъект.Записать();
КонецЕсли;
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ИдентификаторФормы);
Если УказанаВерсияФайла Тогда
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, ИдентификаторФормы);
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, УникальныйИдентификатор);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, УникальныйИдентификатор);
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Ссылка, ИдентификаторФормы);
Если УказанаВерсияФайла Тогда
РазблокироватьДанныеДляРедактирования(ДанныеФайла.Версия, ИдентификаторФормы);
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
@@ -3379,6 +3379,7 @@
//
Функция НайтиСертификат(ОписаниеСертификата, ПараметрыОперации = Неопределено) Экспорт
Результат = СервисКриптографииDSSКлиентСервер.ОтветСервисаПоУмолчанию(Истина);
НашлиСертификат = Неопределено;
ПолучитьДвоичныеДанные = СвойствоСтруктуры(ПараметрыОперации, "ПолучитьДвоичныеДанные", Ложь);
@@ -3391,22 +3392,28 @@
НашлиСертификат = СервисКриптографииDSSСлужебный.ПолучитьДанныеСертификатаПоИдентификаторуСертификата(ОписаниеСертификата, Истина);
КонецЕсли;
Если НашлиСертификат = Неопределено Тогда
Если ТипЗнч(НашлиСертификат) = Тип("Массив") Тогда
ТекущийСертификат = ?(НашлиСертификат.Количество() = 0, Неопределено, НашлиСертификат[0]);
Иначе
ТекущийСертификат = НашлиСертификат;
КонецЕсли;
Если ТекущийСертификат = Неопределено Тогда
Результат.Выполнено = Ложь;
СервисКриптографииDSSСлужебный.ПолучитьОписаниеОшибки(
Результат,
"ОшибкаВыполнения",
НСтр("ru = 'Сертификат не обнаружен на сервере DSS'", СервисКриптографииDSSСлужебный.КодЯзыка()));
НСтр("ru = 'Сертификат не обнаружен в сервисе DSS'", СервисКриптографииDSSСлужебный.КодЯзыка()));
Иначе
Результат.Вставить("ДанныеСертификата", ПолучитьОбъектСертификата(НашлиСертификат.ДанныеСертификата, Истина, НЕ ПолучитьДвоичныеДанные));
Результат.Вставить("УчетнаяЗапись", НашлиСертификат.УчетнаяЗапись);
Результат.Вставить("Идентификатор", НашлиСертификат.Идентификатор);
Результат.Вставить("ДатаНачала", НашлиСертификат.ДатаНачала);
Результат.Вставить("ДатаОкончания", НашлиСертификат.ДатаОкончания);
Результат.Вставить("Наименование", НашлиСертификат.Наименование);
Результат.Вставить("Отпечаток", НашлиСертификат.Отпечаток);
Результат.Вставить("СерийныйНомер", НашлиСертификат.СерийныйНомер);
Результат.Вставить("ИдентификаторСертификата", НашлиСертификат.ИдентификаторСертификата);
Результат.Вставить("ДанныеСертификата", ПолучитьОбъектСертификата(ТекущийСертификат.ДанныеСертификата, Истина, НЕ ПолучитьДвоичныеДанные));
Результат.Вставить("УчетнаяЗапись", ТекущийСертификат.УчетнаяЗапись);
Результат.Вставить("Идентификатор", ТекущийСертификат.Идентификатор);
Результат.Вставить("ДатаНачала", ТекущийСертификат.ДатаНачала);
Результат.Вставить("ДатаОкончания", ТекущийСертификат.ДатаОкончания);
Результат.Вставить("Наименование", ТекущийСертификат.Наименование);
Результат.Вставить("Отпечаток", ТекущийСертификат.Отпечаток);
Результат.Вставить("СерийныйНомер", ТекущийСертификат.СерийныйНомер);
Результат.Вставить("ИдентификаторСертификата", ТекущийСертификат.ИдентификаторСертификата);
КонецЕсли;
Возврат Результат;
@@ -1473,6 +1473,10 @@
КонецЕсли;
КонецЦикла;
Если ПриоритетныйСертификат <> Неопределено И ВходящийКонтекст.Сертификат = Неопределено Тогда
ВходящийКонтекст.Сертификат = Новый Структура("Отпечаток", ПриоритетныйСертификат.Отпечаток);
КонецЕсли;
Если ПриоритетныйСертификат = Неопределено Тогда
ОтветСервиса = ОтветСервисаПоУмолчанию(Ложь);
ПолучитьОписаниеОшибки(ОтветСервиса, "СертификатыНеОбнаружены");
@@ -7449,7 +7453,7 @@
// Только для внутреннего использования.
Процедура ПослеЗакрытияФормы(РезультатВыбора, ПараметрыЦикла) Экспорт
Если РезультатВыбора = Неопределено Тогда
Если РезультатВыбора = Неопределено ИЛИ ТипЗнч(РезультатВыбора) <> Тип("Структура") Тогда
ЗавершениеРаботы = СвойствоСтруктуры(ПараметрыЦикла, "ЗавершениеРаботы", Ложь);
Если ЗавершениеРаботы Тогда
РезультатВыбора = ОтветСервисаПоУмолчанию(Ложь, "ЗавершениеРаботы");
@@ -805,6 +805,34 @@
КонецПроцедуры
Функция ЭтоПредопределенныеДанные(Знач Элемент, ИмяРеквизита = "", ЗначениеРеквизита = "") Экспорт
ИмяРеквизита = "";
// Для определения предопределенных элементов в подсистемах Свойства и КонтактнаяИнформация
// зачитываются реквизиты ИмяПредопределенногоНабора и ИмяПредопределенногоВида.
ЗначенияРеквизитов = Новый Структура("ИмяПредопределенногоНабора, ИмяПредопределенногоВида", "", "");
ЗаполнитьЗначенияСвойств(ЗначенияРеквизитов, Элемент);
Если (Элемент.ИмяПредопределенныхДанных = ""
И ЗначенияРеквизитов.ИмяПредопределенногоНабора = ""
И ЗначенияРеквизитов.ИмяПредопределенногоВида = "") Тогда
Возврат Ложь;
КонецЕсли;
Если ЗначенияРеквизитов.ИмяПредопределенногоНабора <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоНабора";
ИначеЕсли ЗначенияРеквизитов.ИмяПредопределенногоВида <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоВида";
Иначе
ИмяРеквизита = "ИмяПредопределенныхДанных";
КонецЕсли;
ЗначениеРеквизита = ЗначенияРеквизитов[ИмяРеквизита];
Возврат Истина;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Процедуры для установки/получения параметров работы расширений (кэшей).
@@ -2397,14 +2425,9 @@
Возврат;
КонецЕсли;
// Для определения предопределенных в подсистемах Свойства и КонтактнаяИнформация
// зачитываются другие реквизиты.
Параметры = Новый Структура("ИмяПредопределенногоНабора, ИмяПредопределенногоВида", "", "");
ЗаполнитьЗначенияСвойств(Параметры, Источник);
Если (Источник.ИмяПредопределенныхДанных = ""
И Параметры.ИмяПредопределенногоНабора = ""
И Параметры.ИмяПредопределенногоВида = "") Тогда
ИмяРеквизита = "";
ЗначениеРеквизита = "";
Если Не ЭтоПредопределенныеДанные(Источник, ИмяРеквизита, ЗначениеРеквизита) Тогда
Возврат;
КонецЕсли;
@@ -2413,15 +2436,9 @@
НСтр("ru = 'Недопустимо создавать предопределенный элемент, помеченный на удаление.'");
КонецЕсли;
ИмяРеквизита = "";
Если Параметры.ИмяПредопределенногоНабора <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоНабора";
ИначеЕсли Параметры.ИмяПредопределенногоВида <> "" Тогда
ИмяРеквизита = "ИмяПредопределенногоВида";
КонецЕсли;
СтарыеСвойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(
Источник.Ссылка, "ПометкаУдаления, ИмяПредопределенныхДанных" + ?(ИмяРеквизита <> "", ", " + ИмяРеквизита, ""));
СтарыеСвойства = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Источник.Ссылка,
"ПометкаУдаления, ИмяПредопределенныхДанных"
+ ?(ИмяРеквизита <> "ИмяПредопределенныхДанных", ", " + ИмяРеквизита, ""));
Если (СтарыеСвойства.ИмяПредопределенныхДанных <> "" Или ИмяРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] <> "")
И СтарыеСвойства.ПометкаУдаления <> Истина Тогда
@@ -2430,7 +2447,7 @@
НСтр("ru = 'Недопустимо помечать на удаление предопределенный элемент:
|""%1"".'"),
Строка(Источник.Ссылка));
ИначеЕсли (ИмяРеквизита <> "" И Параметры[ИмяРеквизита] <> "" И СтарыеСвойства[ИмяРеквизита] = ""
ИначеЕсли (ЗначениеРеквизита <> "" И СтарыеСвойства[ИмяРеквизита] = ""
Или СтарыеСвойства.ИмяПредопределенныхДанных = "")
И СтарыеСвойства.ПометкаУдаления = Истина Тогда
@@ -2449,14 +2466,7 @@
Возврат;
КонецЕсли;
// Для определения предопределенных в подсистемах Свойства и КонтактнаяИнформация
// зачитываются другие реквизиты.
Параметры = Новый Структура("ИмяПредопределенногоНабора, ИмяПредопределенногоВида", "", "");
ЗаполнитьЗначенияСвойств(Параметры, Источник);
Если Источник.ИмяПредопределенныхДанных = ""
И Параметры.ИмяПредопределенногоНабора = ""
И Параметры.ИмяПредопределенногоВида = "" Тогда
Если Не ЭтоПредопределенныеДанные(Источник) Тогда
Возврат;
КонецЕсли;
@@ -496,6 +496,7 @@
И КонстантаПервоеОбновлениеДоступаЗавершилось()) Тогда
ОбновитьПараметрыСеанса();
Значение = УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
КонецЕсли;
Возврат Значение
@@ -509,14 +510,16 @@
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
Если ПоследняяПроверка.Дата + 3 <= ТекущаяДатаСеанса() Тогда
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
Если КонстантаПервоеОбновлениеДоступаЗавершилось()
Или УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально()
<> КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально()Тогда
Значение = КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
Если Значение И КонстантаПервоеОбновлениеДоступаЗавершилось()
Или Значение <> УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
ОбновитьПараметрыСеанса();
Значение = УправлениеДоступомСлужебныйПовтИсп.КонстантаОграничиватьДоступНаУровнеЗаписейУниверсально();
ПоследняяПроверка = УправлениеДоступомСлужебныйПовтИсп.ПоследняяПроверкаВерсииРазрешенныхНаборов();
КонецЕсли;
ПоследняяПроверка.Дата = ТекущаяДатаСеанса();
КонецЕсли;
КонецЕсли;
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="50b95502-b1a9-11ec-199c-0242ac110002">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5c304ea8-bcbd-11ec-d797-0242ac110002">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="50b9550c-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="50b9553e-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="50b95548-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="50b95549-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="50b95552-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="50b95553-b1a9-11ec-199c-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="69cee446-1edc-48c6-aaf0-83b1ea7d90c8"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="5c304eb2-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="5c304eda-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="5c304ee4-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="5c304ee5-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="5c304eee-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="5c304eef-bcbd-11ec-d797-0242ac110002"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="5e981739-cc93-45ef-ab7e-92d10a020c78"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.5.385</version>
<version>3.1.5.400</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,b4ae8596-b1a9-11ec-9882-0242ac110002,1,9b223fa0-b1a9-11ec-d683-0242ac110002,"3.1.5.385","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6474,1,0,50b95502-b1a9-11ec-199c-0242ac110002,50b95502-b1a9-11ec-199c-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
{6,1,1,bdaf9620-bcbd-11ec-cf8b-0242ac110002,1,a44cc78e-bcbd-11ec-bb83-0242ac110002,"3.1.5.400","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6474,1,0,5c304ea8-bcbd-11ec-d797-0242ac110002,5c304ea8-bcbd-11ec-d797-0242ac110002,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,4cbbdbaf-1f3a-46cd-8c42-28cdcfa32c06,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,f24de2ea-fcda-4052-b90f-e9d84314c4f2,f24de2ea-fcda-4052-b90f-e9d84314c4f2,1,0,ff8ae395-c740-4a30-a048-0d57eef6267f,ff8ae395-c740-4a30-a048-0d57eef6267f,1,0,51d06532-f61a-4ed5-afaa-cc4563633e0c,51d06532-f61a-4ed5-afaa-cc4563633e0c,1,0,0e49d980-581b-459f-a4b0-024e8c97e4c0,0e49d980-581b-459f-a4b0-024e8c97e4c0,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63Line truncated
@@ -45,7 +45,7 @@
Функция ВерсияКалендарей() Экспорт
Возврат 35;
Возврат 36;
КонецФункции
@@ -57,7 +57,7 @@
Функция ВерсияОбновленияДанныхПроизводственныхКалендарей() Экспорт
Возврат "3.1.5.375";
Возврат "3.1.5.394";
КонецФункции
@@ -406,6 +406,7 @@
<Item Calendar="15" Year="2019" DayType="Праздник" Date="20191118" SwapDate=""/>
<Item Calendar="15" Year="2020" DayType="Праздник" Date="20201123" 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="20160705" SwapDate=""/>
<Item Calendar="16" Year="2016" DayType="Предпраздничный" Date="20160829" SwapDate=""/>
@@ -184,7 +184,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ТекущаяСсылкаНаФайл());
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ВызовСервера");
Обработчик = Новый ОписаниеОповещения("ОбновитьИзФайлаНаДискеЗавершение", ЭтотОбъект);
РаботаСФайламиСлужебныйКлиент.ОбновитьИзФайлаНаДискеСОповещением(Обработчик, ДанныеФайла, УникальныйИдентификатор);
@@ -660,7 +660,6 @@
КонецЕсли;
ФайлСсылка = ТекущаяСсылкаНаФайл();
РазблокироватьДанныеФормыДляРедактирования();
ДанныеФайла = ДанныеФайла(ФайлСсылка, УникальныйИдентификатор);
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует);
@@ -683,7 +682,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ТекущаяСсылкаНаФайл());
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ВызовСервера");
ОписаниеОповещения = Новый ОписаниеОповещения("ЗакончитьРедактированиеВыполненоПомещение", ЭтотОбъект);
ПараметрыОбновленияФайла = РаботаСФайламиСлужебныйКлиент.ПараметрыОбновленияФайла(ОписаниеОповещения, ДанныеФайла.Ссылка, УникальныйИдентификатор);
@@ -831,12 +830,23 @@
КонецПроцедуры
&НаСервереБезКонтекста
Функция ДанныеФайла(Знач ПрисоединенныйФайл,
Знач ИдентификаторФормы = Неопределено,
Знач ПолучатьСсылкуНаДвоичныеДанные = Истина)
Функция ДанныеФайла(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено, Знач Режим = "")
Возврат РаботаСФайлами.ДанныеФайла(
ПрисоединенныйФайл, ИдентификаторФормы, ПолучатьСсылкуНаДвоичныеДанные);
РазблокироватьОбъект(ПрисоединенныйФайл, ИдентификаторФормы);
Если Режим = "ДляОткрытия" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ПрисоединенныйФайл, Неопределено, ИдентификаторФормы);
ИначеЕсли Режим = "ДляСохранения" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(
ПрисоединенныйФайл,, ИдентификаторФормы);
ИначеЕсли Режим = "ВызовСервера" Тогда
Возврат РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(ПрисоединенныйФайл,, ИдентификаторФормы);
Иначе
ПараметрыДанныхФайла = РаботаСФайламиКлиентСервер.ПараметрыДанныхФайла();
ПараметрыДанныхФайла.ПолучатьСсылкуНаДвоичныеДанные = Истина;
ПараметрыДанныхФайла.ИдентификаторФормы = ИдентификаторФормы;
Возврат РаботаСФайлами.ДанныеФайла(ПрисоединенныйФайл, ПараметрыДанныхФайла);
КонецЕсли;
КонецФункции
@@ -857,10 +867,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецПроцедуры
@@ -872,9 +879,7 @@
ФайлРедактируется = ЗначениеЗаполнено(ЭтотОбъект.Объект.Редактирует)
И ЭтотОбъект.Объект.Редактирует = ТекущийПользователь;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьФайл(ДанныеФайла, ФайлРедактируется);
КонецЕсли;
@@ -888,8 +893,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляОткрытия(
ТекущаяСсылкаНаФайл(), Неопределено, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляОткрытия");
РаботаСФайламиКлиент.ОткрытьКаталогФайла(ДанныеФайла);
КонецПроцедуры
@@ -901,8 +905,7 @@
Возврат;
КонецЕсли;
ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайлаДляСохранения(
ТекущаяСсылкаНаФайл(),, УникальныйИдентификатор);
ДанныеФайла = ДанныеФайла(ТекущаяСсылкаНаФайл(), УникальныйИдентификатор, "ДляСохранения");
РаботаСФайламиСлужебныйКлиент.СохранитьКак(Неопределено, ДанныеФайла, Неопределено);
КонецПроцедуры
@@ -310,7 +310,17 @@
ИначеЕсли ДанныеКлассификатора.Данные.Количество() = 0 Тогда
НаименованиеРегиона = РаботаСАдресами.РегионАдресаКонтактнойИнформации(РаботаСАдресами.АдресПоИдентификатору(Родитель));
Адрес = РаботаСАдресами.АдресПоИдентификатору(Родитель);
Если Адрес = Неопределено Тогда
Результат.Отказ = Истина;
Возврат Результат;
КонецЕсли;
НаименованиеРегиона = РаботаСАдресами.РегионАдресаКонтактнойИнформации(Адрес);
Если РаботаСАдресами.ЭтоГородФедеральногоЗначения(НаименованиеРегиона) Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
@@ -190,10 +190,12 @@
&НаКлиенте
Процедура ОтправкаЗапросаКлиент()
Если НЕ ОжидатьВыполнения Тогда
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ОжидатьВыполнения = Истина;
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры
@@ -170,10 +170,12 @@
&НаКлиенте
Процедура ОтправкаЗапросаКлиент()
Если НЕ ОжидатьВыполнения Тогда
ОжидатьВыполнения = Истина;
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры
@@ -186,10 +186,12 @@
&НаКлиенте
Процедура ОтправкаЗапросаКлиент()
Если НЕ ОжидатьВыполнения Тогда
ОбработчикОтвета = Новый ОписаниеОповещения("ПолучениеРезультатаФоновогоЗадания", ЭтотОбъект);
СервисКриптографииDSSПодтверждениеКлиент.ОтправкаЗапроса(ОбработчикОтвета, НастройкиПользователя, ДанныеПодтверждения);
ОжидатьВыполнения = Истина;
ПриНачалеПодтверждения();
КонецЕсли;
КонецПроцедуры
@@ -71,6 +71,8 @@
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступа");
Блокировка.Добавить("РегистрСведений.ЗначенияГруппДоступаПоУмолчанию");
ПрофильАдминистратор = УправлениеДоступом.ПрофильАдминистратор();
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
@@ -96,9 +98,11 @@
НоваяСтрока.ВидДоступаВнешниеПользователи = (СвойстваВидаДоступа.Имя = "ВнешниеПользователи");
КонецЦикла;
ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа, ГруппыДоступа, ЕстьИзменения);
ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор);
ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа, ГруппыДоступа, ЕстьИзменения);
ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор);
ЗафиксироватьТранзакцию();
Исключение
@@ -111,18 +115,20 @@
////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции.
Процедура ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа, ГруппыДоступа = Неопределено, ЕстьИзменения = Неопределено)
Процедура ОбновитьРазрешенныеЗначения(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор)
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор());
Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа);
Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа",
УправлениеДоступомСлужебныйПовтИсп.ТипыГруппИЗначенийВидовДоступа());
Запрос.УстановитьПараметр("ВыбранныеЗначенияДоступа", ВыбранныеЗначенияДоступа(ГруппыДоступа));
Запрос.УстановитьПараметр("ВыбранныеЗначенияДоступа",
ВыбранныеЗначенияДоступа(ГруппыДоступа, ПрофильАдминистратор));
ТекстЗапросовВременныхТаблиц =
"ВЫБРАТЬ
@@ -372,12 +378,13 @@
КонецПроцедуры
Процедура ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа, ГруппыДоступа = Неопределено, ЕстьИзменения = Неопределено)
Процедура ОбновитьРазрешенныеЗначенияПоУмолчанию(ИспользуемыеВидыДоступа,
ГруппыДоступа, ЕстьИзменения, ПрофильАдминистратор)
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор());
Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
Запрос.УстановитьПараметр("ИспользуемыеВидыДоступа", ИспользуемыеВидыДоступа);
Запрос.УстановитьПараметр("ТипыГруппИЗначенийВидовДоступа",
@@ -631,7 +638,7 @@
КонецПроцедуры
Функция ВыбранныеЗначенияДоступа(ГруппыДоступа)
Функция ВыбранныеЗначенияДоступа(ГруппыДоступа, ПрофильАдминистратор)
ТекстЗапроса =
"ВЫБРАТЬ
@@ -691,7 +698,7 @@
| ПрофилиГруппДоступаЗначенияДоступа.ЗначениеДоступа";
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("ПрофильАдминистратор", УправлениеДоступом.ПрофильАдминистратор());
Запрос.УстановитьПараметр("ПрофильАдминистратор", ПрофильАдминистратор);
УправлениеДоступомСлужебный.УстановитьУсловиеОтбораВЗапросе(Запрос, ГруппыДоступа, "ГруппыДоступа",
"&УсловиеОтбораГруппДоступа1:ГруппыДоступа.Ссылка");
@@ -1731,93 +1731,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right>
@@ -2012,6 +1925,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ОсновнойЯзык</name>
<right>
@@ -2405,45 +2405,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ЗагруженныеВерсииАдресныхСведений</name>
<right>
@@ -2785,6 +2746,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.ОсновнойЯзык</name>
<right>