This commit is contained in:
Компания 1С committed 2019-09-20 00:22:00 +03:00
1 parent cc967fc2c1
commit dcabaaa547
45 files changed
+688 -450

No files matched your search

@@ -84,7 +84,7 @@
СтрокаСписка = Строки[Выборка.Валюта];
СтрокаСписка.Данные["Курс"] = Выборка.Курс;
Если Выборка.Кратность <> 1 Тогда
Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'руб. за %1 %2'"),
Пояснение = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'за %1 %2'"),
Выборка.Кратность, СтрокаСписка.Данные["Наименование"]);
СтрокаСписка.Данные["Кратность"] = Пояснение;
КонецЕсли;
@@ -14,8 +14,6 @@
</li><li>
<div><strong>Кратность</strong> - по умолчанию заполнено единицей и не выводится. Если курс какой-либо валюты очень низкий (точность составляет меньше четырех знаков дробной части), то в этом поле указывается количество котировочных единиц. Например, курс вьетнамского донга (VND) составляет 16,1574 руб. за 10000 VND. Состоит из трех вспомогательных колонок, в которых размещается данное выражение:</div>
<ul><li>
<div><strong>Руб</strong>.<strong> за</strong> - логическая связка.</div>
</li><li>
<div><strong>Кратность</strong> - проставляется количество котировочных единиц.</div>
</li><li>
<div><strong>Краткое наименование</strong> - указывается символьный код валюты</div></li></ul></li></ul><h3>Добавление валюты из Общероссийского классификатора валют (ОКВ)</h3>
@@ -615,7 +615,7 @@
Если Справочники.ПрофилиГруппДоступа.ЕстьНачальноеЗаполнениеПрофиля(ТекущийОбъект.Ссылка) Тогда
ОписаниеПоставляемогоПрофиля =
Справочники.ПрофилиГруппДоступа.ОписаниеПоставляемогоПрофиля(ТекущийОбъект.Ссылка);
Справочники.ПрофилиГруппДоступа.ПояснениеПоставляемогоПрофиля(ТекущийОбъект.Ссылка);
Если Справочники.ПрофилиГруппДоступа.ПоставляемыйПрофильИзменен(ТекущийОбъект) Тогда
// Определение прав восстановления по начальному заполнению.
@@ -584,20 +584,14 @@
// Возвращаемое значение:
// Строка.
//
Функция ОписаниеПоставляемогоПрофиля(Профиль) Экспорт
Функция ПояснениеПоставляемогоПрофиля(Профиль) Экспорт
ИдентификаторПоставляемыхДанных = Строка(ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Профиль, "ИдентификаторПоставляемыхДанных"));
ПоставляемыеПрофили = УправлениеДоступомСлужебныйПовтИсп.ОписаниеПоставляемыхПрофилей();
СвойстваПрофиля = ПоставляемыеПрофили.ОписанияПрофилей.Получить(ИдентификаторПоставляемыхДанных);
ПояснениеПоставляемыхПрофилей = УправлениеДоступомСлужебныйПовтИсп.ПояснениеПоставляемыхПрофилей();
Текст = "";
Если СвойстваПрофиля <> Неопределено Тогда
Текст = СвойстваПрофиля.Описание;
КонецЕсли;
Возврат Текст;
Возврат Строка(ПояснениеПоставляемыхПрофилей.Получить(ИдентификаторПоставляемыхДанных));
КонецФункции
@@ -1044,7 +1038,7 @@
////////////////////////////////////////////////////////////////////////////////
// Вспомогательные процедуры и функции.
Функция ПоставляемыеПрофили()
Функция ЗаполненныеПоставляемыеПрофили()
ПараметрыОбновления = Новый Структура;
// Свойства обновления поставляемых профилей.
@@ -1062,6 +1056,40 @@
УправлениеДоступомПереопределяемый.ПриЗаполненииПоставляемыхПрофилейГруппДоступа(
ОписанияПрофилей, ПараметрыОбновления);
// Описание для заполнения предопределенного профиля "Администратор".
ОписаниеПрофиляАдминистратор = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
ОписаниеПрофиляАдминистратор.Имя = "Администратор";
ОписаниеПрофиляАдминистратор.Идентификатор = ИдентификаторПрофиляАдминистратор();
ОписаниеПрофиляАдминистратор.Наименование = НСтр("ru = 'Администратор'", ОбщегоНазначения.КодОсновногоЯзыка());
ОписаниеПрофиляАдминистратор.Роли.Добавить("АдминистраторСистемы");
ОписаниеПрофиляАдминистратор.Роли.Добавить("ПолныеПрава");
ОписаниеПрофиляАдминистратор.Описание =
НСтр("ru = 'Предназначен для:
|- настройки параметров работы и обслуживания информационной системы,
|- настройки прав доступа других пользователей,
|- удаления помеченных объектов,
|- в редких случаях для внесения изменений в конфигурацию.
|
|Рекомендуется не использовать для ""обычной"" работы в информационной системе.'");
ОписанияПрофилей.Добавить(ОписаниеПрофиляАдминистратор);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
ОписанияПрофилей.Добавить(
УправлениеДоступомСлужебный.ОписаниеПрофиляОткрытиеВнешнихОтчетовИОбработок());
КонецЕсли;
Возврат Новый Структура("ОписанияПрофилей, ПараметрыОбновления", ОписанияПрофилей, ПараметрыОбновления);
КонецФункции
Функция ПоставляемыеПрофили()
ЗаполненныеПоставляемыеПрофили = ЗаполненныеПоставляемыеПрофили();
ПараметрыОбновления = ЗаполненныеПоставляемыеПрофили.ПараметрыОбновления;
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили.ОписанияПрофилей;
ЗаголовокОшибки =
НСтр("ru = 'Заданы недопустимые значения в процедуре ПриЗаполненииПоставляемыхПрофилейГруппДоступа
|общего модуля УправлениеДоступомПереопределяемый.'")
@@ -1078,31 +1106,6 @@
|должно быть установлено Ложь.'");
КонецЕсли;
// Описание для заполнения предопределенного профиля "Администратор".
ОписаниеПрофиляАдминистратор = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
ОписаниеПрофиляАдминистратор.Имя = "Администратор";
ОписаниеПрофиляАдминистратор.Идентификатор = ИдентификаторПрофиляАдминистратор();
ОписаниеПрофиляАдминистратор.Наименование = НСтр("ru = 'Администратор'");
ОписаниеПрофиляАдминистратор.Роли.Добавить("АдминистраторСистемы");
ОписаниеПрофиляАдминистратор.Роли.Добавить("ПолныеПрава");
ОписаниеПрофиляАдминистратор.Описание =
НСтр("ru = 'Предназначен для:
|- настройки параметров работы и обслуживания информационной системы,
|- настройки прав доступа других пользователей,
|- удаления помеченных объектов,
|- в редких случаях для внесения изменений в конфигурацию.
|
|Рекомендуется не использовать для ""обычной"" работы в информационной системе.'")
+ Символы.ПС;
ОписанияПрофилей.Добавить(ОписаниеПрофиляАдминистратор);
Если Не ОбщегоНазначения.РазделениеВключено() Тогда
ОписанияПрофилей.Добавить(
УправлениеДоступомСлужебный.ОписаниеПрофиляОткрытиеВнешнихОтчетовИОбработок());
КонецЕсли;
ВсеРоли = ПользователиСлужебный.ВсеРоли().Соответствие;
СвойстваВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.СвойстваВидовДоступа();
@@ -1379,6 +1382,20 @@
КонецФункции
Функция ПояснениеПоставляемыхПрофилей() Экспорт
ОписанияПрофилей = ЗаполненныеПоставляемыеПрофили().ОписанияПрофилей;
ПредставлениеВидовДоступа = Новый Соответствие;
Для Каждого ОписаниеПрофиля Из ОписанияПрофилей Цикл
ПредставлениеВидовДоступа.Вставить(ОписаниеПрофиля.Идентификатор, ОписаниеПрофиля.Описание);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПредставлениеВидовДоступа);
КонецФункции
// Для процедуры ПоставляемыеПрофили.
Функция ПредставлениеНазначенияПрофиля(НазначениеПрофиля)
@@ -2491,7 +2491,7 @@
Если ТекущийЯзык() <> Метаданные.ОсновнойЯзык Тогда
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Заголовок = НайденныеСтроки[0].Заголовок;
@@ -1835,16 +1835,28 @@
<listChoiceMode>true</listChoiceMode>
<typeDomainEnabled>true</typeDomainEnabled>
<choiceList>
<presentation>
<key>ru</key>
<value>Кому</value>
</presentation>
<value xsi:type="core:StringValue">
<value>Кому</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Копии</value>
</presentation>
<value xsi:type="core:StringValue">
<value>Копии</value>
</value>
</choiceList>
<choiceList>
<presentation>
<key>ru</key>
<value>Скрытые</value>
</presentation>
<value xsi:type="core:StringValue">
<value>Скрытые</value>
</value>
@@ -11,6 +11,8 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
УстановитьУсловноеОформление();
Взаимодействия.ОбработатьНеобходимостьОтображенияГруппПользователей(ЭтотОбъект);
Взаимодействия.ДобавитьСтраницыФормыПодбораКонтактов(ЭтотОбъект);
@@ -707,4 +709,13 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьУсловноеОформление()
УсловноеОформление.Элементы.Очистить();
Взаимодействия.УстановитьУсловноеОформлениеСпискаВыбора(ЭтотОбъект, "Группа", "ПолучателиПисьма.Группа");
КонецПроцедуры
#КонецОбласти
@@ -47,7 +47,7 @@
НСтр("ru='%1 на разных языках'"), Реквизит.Представление());
КонецЕсли;
ОсновнойЯзык = Метаданные.ОсновнойЯзык.КодЯзыка;
ОсновнойЯзык = ОбщегоНазначения.КодОсновногоЯзыка();
ОписаниеЯзыка = ОписаниеЯзыка(ТекущийЯзык().КодЯзыка);
Если ОписаниеЯзыка <> Неопределено Тогда
@@ -527,18 +527,20 @@
Процедура ДобавитьРеквизитыИлиЭлементыФормы(НовыеРеквизиты = Неопределено)
Права = УправлениеДоступомСлужебныйПовтИсп.ВозможныеПраваДляНастройкиПравОбъектов();
ОписанияВозможныхПрав = Права.ПоТипамСсылок.Получить(ТипЗнч(Параметры.СсылкаНаОбъект));
ТипСсылкиВладельцаПрав = ТипЗнч(Параметры.СсылкаНаОбъект);
ОписанияВозможныхПрав = Права.ПоТипамСсылок.Получить(ТипСсылкиВладельцаПрав);
ОписаниеТиповПсевдоФлажка = Новый ОписаниеТипов("Булево, Число",
Новый КвалификаторыЧисла(1, 0, ДопустимыйЗнак.Неотрицательный));
// Добавление возможных прав, настраиваемых по владельцу (таблице значений доступа).
Для каждого ОписаниеПрава Из ОписанияВозможныхПрав Цикл
Для Каждого ОписаниеПрава Из ОписанияВозможныхПрав Цикл
ПредставленияПрава = РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможногоПрава(ОписаниеПрава);
Если НовыеРеквизиты <> Неопределено Тогда
ДобавитьРеквизит(НовыеРеквизиты, Новый РеквизитФормы(ОписаниеПрава.Имя, ОписаниеТиповПсевдоФлажка,
"ГруппыПрав", ОписаниеПрава.Заголовок), ОписаниеПрава.НачальноеЗначение);
"ГруппыПрав", ПредставленияПрава.Заголовок), ОписаниеПрава.НачальноеЗначение);
ВозможныеПрава.Вставить(ОписаниеПрава.Имя);
@@ -571,20 +573,20 @@
Элемент.ГоризонтальноеПоложение = ГоризонтальноеПоложениеЭлемента.Центр;
Элемент.ПутьКДанным = "ГруппыПрав." + ОписаниеПрава.Имя;
Элемент.Подсказка = ОписаниеПрава.Подсказка;
Элемент.Подсказка = ПредставленияПрава.Подсказка;
// Расчет оптимальной ширины элемента.
ШиринаЭлемента = 0;
Для НомерСтроки = 1 По СтрЧислоСтрок(ОписаниеПрава.Заголовок) Цикл
ШиринаЭлемента = Макс(ШиринаЭлемента, СтрДлина(СтрПолучитьСтроку(ОписаниеПрава.Заголовок, НомерСтроки)));
Для НомерСтроки = 1 По СтрЧислоСтрок(ПредставленияПрава.Заголовок) Цикл
ШиринаЭлемента = Макс(ШиринаЭлемента, СтрДлина(СтрПолучитьСтроку(ПредставленияПрава.Заголовок, НомерСтроки)));
КонецЦикла;
Если СтрЧислоСтрок(ОписаниеПрава.Заголовок) = 1 Тогда
Если СтрЧислоСтрок(ПредставленияПрава.Заголовок) = 1 Тогда
ШиринаЭлемента = ШиринаЭлемента + 1;
КонецЕсли;
Элемент.Ширина = ШиринаЭлемента;
КонецЕсли;
Если Элементы.ГруппыПрав.ВысотаШапки < СтрЧислоСтрок(ОписаниеПрава.Заголовок) Тогда
Элементы.ГруппыПрав.ВысотаШапки = СтрЧислоСтрок(ОписаниеПрава.Заголовок);
Если Элементы.ГруппыПрав.ВысотаШапки < СтрЧислоСтрок(ПредставленияПрава.Заголовок) Тогда
Элементы.ГруппыПрав.ВысотаШапки = СтрЧислоСтрок(ПредставленияПрава.Заголовок);
КонецЕсли;
КонецЦикла;
@@ -1070,16 +1070,9 @@
//
Функция СоединениеСАгентомСервера(COMСоединитель, Знач АдресАгентаСервера, Знач ПортАгентаСервера)
АдресИПорт = АдресАгентаСервера + ":" + Формат(ПортАгентаСервера, "ЧГ=0");
Попытка
СтрокаСоединенияСАгентомСервера = "tcp://" + АдресИПорт;
СоединениеСАгентомСервера = COMСоединитель.ConnectAgent(СтрокаСоединенияСАгентомСервера);
Возврат СоединениеСАгентомСервера;
Исключение
ВызватьИсключение;
КонецПопытки;
СтрокаСоединенияСАгентомСервера = "tcp://" + АдресАгентаСервера + ":" + Формат(ПортАгентаСервера, "ЧГ=0");
СоединениеСАгентомСервера = COMСоединитель.ConnectAgent(СтрокаСоединенияСАгентомСервера);
Возврат СоединениеСАгентомСервера;
КонецФункции
@@ -1098,12 +1091,8 @@
Для Каждого Кластер Из СоединениеСАгентомСервера.GetClusters() Цикл
Если Кластер.MainPort = ПортКластера Тогда
Попытка
СоединениеСАгентомСервера.Authenticate(Кластер, ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Возврат Кластер;
Исключение
ВызватьИсключение;
КонецПопытки;
СоединениеСАгентомСервера.Authenticate(Кластер, ИмяАдминистратораКластера, ПарольАдминистратораКластера);
Возврат Кластер;
КонецЕсли;
КонецЦикла;
@@ -1151,13 +1140,9 @@
Функция ПолучитьОписаниеИБ(СоединениеСАгентомСервера, Кластер, Знач ИмяВКластере)
Для Каждого ОписаниеИнформационнойБазы Из СоединениеСАгентомСервера.GetInfoBases(Кластер) Цикл
Если ОписаниеИнформационнойБазы.Name = ИмяВКластере Тогда
Если НРег(ОписаниеИнформационнойБазы.Name) = НРег(ИмяВКластере) Тогда
Возврат ОписаниеИнформационнойБазы;
КонецЕсли;
КонецЦикла;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1:%2 не найдена информационная база ""%3""'"),
@@ -1185,18 +1170,14 @@
Для Каждого ИнформационнаяБаза Из СоединениеСРабочимПроцессом.GetInfoBases() Цикл
Если ИнформационнаяБаза.Name = ИмяВКластере Тогда
Если НРег(ИнформационнаяБаза.Name) = НРег(ИмяВКластере) Тогда
Если Не ЗначениеЗаполнено(ИнформационнаяБаза.DBMS) Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Неправильные имя и пароль администратора информационной базы %1 в кластере серверов %2:%3 (имя: ""%4"").'"),
ИмяВКластере,
Кластер.HostName,
Кластер.MainPort,
ИмяАдминистратораИБ);
КонецЕсли;
Возврат ИнформационнаяБаза;
КонецЕсли;
@@ -1365,7 +1346,7 @@
Для каждого ИнформационнаяБаза Из СоединениеСРабочимПроцессом.GetInfoBases() Цикл
// Это требуемая информационная база.
Если ИнформационнаяБаза.Name = ИмяВКластере Тогда
Если НРег(ИнформационнаяБаза.Name) = НРег(ИмяВКластере) Тогда
// Для получение соединений с информационной базой требуется аутентификация.
СоединениеСРабочимПроцессом.AddAuthentication(ИмяАдминистратораИБ, ПарольАдминистратораИБ);
@@ -1415,11 +1396,9 @@
Функция ПолучитьПрофильБезопасности(СоединениеСАгентомСервера, Кластер, ИмяПрофиля)
Для Каждого ПрофильБезопасности Из СоединениеСАгентомСервера.GetSecurityProfiles(Кластер) Цикл
Если ПрофильБезопасности.Name = ИмяПрофиля Тогда
Если НРег(ПрофильБезопасности.Name) = НРег(ИмяПрофиля) Тогда
Возврат ПрофильБезопасности;
КонецЕсли;
КонецЦикла;
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'В кластере серверов %1:%2 не найден профиль безопасности ""%3""'"),
@@ -8921,4 +8921,27 @@
Возврат Константы.ЗапретитьОтображениеНебезопасногоСодержимогоВПисьмах.Получить();
КонецФункции
Процедура УстановитьУсловноеОформлениеСпискаВыбора(Форма, ИмяЭлемента, ИмяПоляКомпоновкиДанных) Экспорт
Элементы = Форма.Элементы;
УсловноеОформление = Форма.УсловноеОформление;
Для каждого ЭлементВыбора Из Элементы[ИмяЭлемента].СписокВыбора Цикл
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы[ИмяЭлемента].Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоляКомпоновкиДанных);
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ЭлементВыбора.Значение;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ЭлементВыбора.Представление);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
@@ -342,7 +342,7 @@
ПапкаДляСохранитьКак = ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить("НастройкиПрограммы", "ПапкаДляСохранитьКак");
ДанныеФайла.Вставить("ПапкаДляСохранитьКак", ПапкаДляСохранитьКак);
ДанныеФайла.ДатаМодификацииУниверсальная = ТекущаяДатаСеанса();
ДанныеФайла.ПолноеНаименованияВерсия = ДанныеФайла.ИмяФайла;
ДанныеФайла.ПолноеНаименованиеВерсии = ДанныеФайла.ИмяФайла;
КонецЕсли;
@@ -372,7 +372,7 @@
СтруктураДанныхФайла.Вставить("Зашифрован", Ложь);
СтруктураДанныхФайла.Вставить("ФайлРедактируется", Ложь);
СтруктураДанныхФайла.Вставить("ФайлРедактируетТекущийПользователь", Ложь);
СтруктураДанныхФайла.Вставить("ПолноеНаименованияВерсия", "");
СтруктураДанныхФайла.Вставить("ПолноеНаименованиеВерсии", "");
Возврат СтруктураДанныхФайла;
@@ -340,7 +340,7 @@
ЛокализованноеИмяМакета = ИмяМакета + "_" + ТекущийЯзык().КодЯзыка;
Макет = КоллекцияМакетов.Найти(ЛокализованноеИмяМакета);
Если Макет = Неопределено Тогда
ЛокализованноеИмяМакета = ИмяМакета + "_" + Метаданные.ОсновнойЯзык.КодЯзыка;
ЛокализованноеИмяМакета = ИмяМакета + "_" + ОбщегоНазначения.КодОсновногоЯзыка();
Макет = КоллекцияМакетов.Найти(ЛокализованноеИмяМакета);
КонецЕсли;
@@ -82,14 +82,14 @@
ИмяРеквизита = Реквизит.Имя;
Отбор = Новый Структура();
Отбор.Вставить("КодЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
Отбор.Вставить("КодЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
НайденныеСтроки = Объект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Представление = НайденныеСтроки[0];
Иначе
Представление = Объект.Представления.Добавить();
Представление.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
Представление.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
КонецЕсли;
Представление[ИмяРеквизита] = Объект[ИмяРеквизита];
@@ -141,7 +141,7 @@
Представление[ИмяРеквизита] = ТекущийОбъект[ИмяРеквизита];
КонецЦикла;
Отбор.КодЯзыка = Метаданные.ОсновнойЯзык.КодЯзыка;
Отбор.КодЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
НайденныеСтроки = ТекущийОбъект.Представления.НайтиСтроки(Отбор);
Если НайденныеСтроки.Количество() > 0 Тогда
Для каждого ИмяРеквизита Из Реквизиты Цикл
@@ -3520,11 +3520,10 @@
ОписаниеПрофиля = ОбщегоНазначения.ОбщийМодуль("УправлениеДоступом").НовоеОписаниеПрофиляГруппДоступа();
ОписаниеПрофиля.Идентификатор = ПрофильДоступаСинхронизацияДанныхСДругимиПрограммами();
ОписаниеПрофиля.Наименование =
НСтр("ru = 'Синхронизация данных с другими программами'", Метаданные.ОсновнойЯзык.КодЯзыка);
НСтр("ru = 'Синхронизация данных с другими программами'", ОбщегоНазначения.КодОсновногоЯзыка());
ОписаниеПрофиля.Описание =
НСтр("ru = 'Дополнительно назначается тем пользователям, которым должны быть доступны средства
|для мониторинга и синхронизации данных с другими программами.'",
Метаданные.ОсновнойЯзык.КодЯзыка);
|для мониторинга и синхронизации данных с другими программами.'");
// Основные возможности профиля.
РолиПрофиля = СтрРазделить(РолиПрофиляДоступаСинхронизацияДанныхСДругимиПрограммами(), ",");
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.0.3.87";
Описание.Версия = "3.0.3.93";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -285,7 +285,7 @@
ПоляАвторизации.Добавить("Логин", НСтр("ru = 'ID кабинета'"));
ПоляАвторизации.Добавить("Пароль", НСтр("ru = 'API-ключ'"));
СпособыАвторизации.Вставить("ПоКлючу", ПоляАвторизации);
СпособыАвторизации.Вставить("ПоЛогинуИПаролю", ПоляАвторизации);
КонецПроцедуры
@@ -613,17 +613,17 @@
Длительная = Параметры.Длительная;
ВыполненСОшибкой = Параметры.ВыполненСОшибкой;
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Если БезопасныйРежим() <> Ложь Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа подсистемы оценка производительности в безопасном режиме не поддерживается'", КодОсновногоЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа подсистемы оценка производительности в безопасном режиме не поддерживается'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,,Строка(КлючеваяОперация));
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаНачалаКлючевойОперации) Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", КодОсновногоЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,,Строка(КлючеваяОперация));
Возврат;
@@ -700,10 +700,9 @@
Возврат;
КонецЕсли;
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Если БезопасныйРежим() <> Ложь Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа подсистемы оценка производительности в безопасном режиме не поддерживается'", КодОсновногоЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Работа подсистемы оценка производительности в безопасном режиме не поддерживается'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация);
Возврат;
КонецЕсли;
@@ -720,7 +719,8 @@
Для Каждого Замер Из МассивЗамеров Цикл
Если Не ЗначениеЗаполнено(Замер.ДатаНачалаКлючевойОперации) Тогда
ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'", КодОсновногоЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Невозможно зафиксировать замер с пустой датой начала'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Информация,,,Строка(Замер.КлючеваяОперация));
Возврат;
КонецЕсли;
@@ -772,7 +772,8 @@
Попытка
НаборЗаписей.Записать(Ложь);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить замеры производительности'", КодОсновногоЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить замеры производительности'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
@@ -163,7 +163,8 @@
Попытка
НаборЗаписей.Записать(Ложь);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить замеры производительности'", Метаданные.ОсновнойЯзык.КодЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить замеры производительности'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
@@ -172,7 +173,8 @@
Попытка
НаборЗаписейТехнологический.Записать(Ложь);
Исключение
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить технологические замеры производительности'", Метаданные.ОсновнойЯзык.КодЯзыка),
ЗаписьЖурналаРегистрации(НСтр("ru = 'Не удалось сохранить технологические замеры производительности'",
ОценкаПроизводительностиСлужебный.КодОсновногоЯзыка()),
УровеньЖурналаРегистрации.Ошибка,,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
@@ -448,7 +448,7 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", Метаданные.ОсновнойЯзык.КодЯзыка), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
@@ -913,6 +913,14 @@
КонецФункции
Функция КодОсновногоЯзыка() Экспорт
Если ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда
МодульОбщегоНазначения = ОбщийМодуль("ОбщегоНазначения");
Возврат МодульОбщегоНазначения.КодОсновногоЯзыка();
КонецЕсли;
Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
КонецФункции
#КонецОбласти
#Область РаботаВБезопасномРежимеКопия
@@ -2524,7 +2524,7 @@
|Без внедрения этой библиотеки конфигурация не может использоваться в модели сервиса.
|
|Для использования этой конфигурации в модели сервиса требуется внедрить библиотеку
|""1С:Библиотека технологии сервиса"" версии не младше %1.'", Метаданные.ОсновнойЯзык.КодЯзыка),
|""1С:Библиотека технологии сервиса"" версии не младше %1.'", ОбщегоНазначения.КодОсновногоЯзыка()),
ТребуемаяВерсияБТС());
Иначе
@@ -2537,7 +2537,7 @@
НСтр("ru = 'Для использования конфигурации в модели сервиса с текущей версией БСП требуется
|обновить используемую версию библиотеки ""1С:Библиотека технологии сервиса"".
|
|Используемая версия: %1, требуется версия не младше %2.'", Метаданные.ОсновнойЯзык.КодЯзыка),
|Используемая версия: %1, требуется версия не младше %2.'", ОбщегоНазначения.КодОсновногоЯзыка()),
ВерсияБТС, ТребуемаяВерсияБТС());
КонецЕсли;
@@ -1745,7 +1745,7 @@
Параметры.Вставить("ЭтоУчебнаяПлатформа", ЭтоУчебнаяПлатформа());
Параметры.Вставить("ИмяТекущегоПользователя", ТекущийПользователь().Имя);
Параметры.Вставить("ИмяCOMСоединителя", ОбщегоНазначенияКлиентСервер.ИмяCOMСоединителя());
Параметры.Вставить("КодОсновногоЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
Параметры.Вставить("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
Параметры.Вставить("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы", ЗапрашиватьПодтверждениеПриЗавершенииПрограммы());
@@ -1958,7 +1958,7 @@
Параметры.Вставить("СинонимКонфигурации", Метаданные.Синоним);
Параметры.Вставить("ВерсияКонфигурации", Метаданные.Версия);
Параметры.Вставить("ПодробнаяИнформация", Метаданные.ПодробнаяИнформация);
Параметры.Вставить("КодОсновногоЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
Параметры.Вставить("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
Параметры.Вставить("ЗапрашиватьПодтверждениеПриЗавершенииПрограммы",
ЗапрашиватьПодтверждениеПриЗавершенииПрограммы());
@@ -1545,14 +1545,13 @@
// ОписаниеПрофиля = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
// ОписаниеПрофиля.Имя = "Пользователь";
// ОписаниеПрофиля.Идентификатор = "09e56dbf-90a0-11de-862c-001d600d9ad2";
// ОписаниеПрофиля.Наименование = НСтр("ru = 'Пользователь'", Метаданные.ОсновнойЯзык.КодЯзыка);
// ОписаниеПрофиля.Наименование = НСтр("ru = 'Пользователь'", ОбщегоНазначения.КодОсновногоЯзыка());
// // Переопределение назначения.
// ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОписаниеПрофиля.Назначение,
// Метаданные.ОпределяемыеТипы.ВнешнийПользователь.Тип.Типы());
// ОписаниеПрофиля.Описание =
// НСтр("ru = 'Общие разрешенные действия для большинства пользователей.
// |Как правило, это права на просмотр данных информационной системы.'",
// Метаданные.ОсновнойЯзык.КодЯзыка);
// |Как правило, это права на просмотр данных информационной системы.'");
// // Использование 1С:Предприятия.
// ОписаниеПрофиля.Роли.Добавить("ЗапускТонкогоКлиента");
// ОписаниеПрофиля.Роли.Добавить("ВыводНаПринтерФайлБуферОбмена");
@@ -112,7 +112,7 @@
// ОписаниеПрофиля = УправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();
// ОписаниеПрофиля.Имя = "Менеджер";
// ОписаниеПрофиля.Идентификатор = "75fa0ecb-98aa-11df-b54f-e0cb4ed5f655";
// ОписаниеПрофиля.Наименование = НСтр("ru = 'Менеджер по продажам'", Метаданные.ОсновнойЯзык.КодЯзыка);
// ОписаниеПрофиля.Наименование = НСтр("ru = 'Менеджер по продажам'", ОбщегоНазначения.КодОсновногоЯзыка());
// ОписаниеПрофиля.Роли.Добавить("ЗапускВебКлиента");
// ОписаниеПрофиля.Роли.Добавить("ЗапускТонкогоКлиента");
// ОписаниеПрофиля.Роли.Добавить("БазовыеПраваБСП");
@@ -1836,6 +1836,13 @@
ОбновитьРолиПользователей(Ссылка, ПарольПользователяСервиса);
Если ОграничиватьДоступНаУровнеЗаписейУниверсально() Тогда
ЗапланироватьОбновлениеНаборовГруппДоступа(
"ПослеУстановкиПользователяИБ",
ТипЗнч(Ссылка) = Тип("СправочникСсылка.Пользователи"),
ТипЗнч(Ссылка) = Тип("СправочникСсылка.ВнешниеПользователи"));
КонецЕсли;
КонецПроцедуры
// См. ИнтеграцияПодсистемБСП.ПриОпределенииТекстаВопросаПередЗаписьюПервогоАдминистратора.
@@ -4842,11 +4849,11 @@
ОписаниеПрофиля.Идентификатор = ИдентификаторПрофиляОткрытиеВнешнихОтчетовИОбработок();
ОписаниеПрофиля.Наименование =
НСтр("ru = 'Открытие внешних отчетов и обработок'", Метаданные.ОсновнойЯзык.КодЯзыка);
НСтр("ru = 'Открытие внешних отчетов и обработок'", ОбщегоНазначения.КодОсновногоЯзыка());
ОписаниеПрофиля.Описание =
НСтр("ru = 'Предоставляет право открытия внешних отчетов и обработок из меню ""Файл - Открыть"".
|Состав ролей профиля не рекомендуется изменять.'", Метаданные.ОсновнойЯзык.КодЯзыка);
|Состав ролей профиля не рекомендуется изменять.'");
ОписаниеПрофиля.Роли.Добавить("ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок");
@@ -4877,7 +4884,7 @@
ГруппаДоступаОбъект.Профиль = СвойстваПрофиля.Ссылка;
ГруппаДоступаОбъект.Комментарий =
НСтр("ru = 'Предоставляет право открытия внешних отчетов и обработок из меню ""Файл - Открыть"".'",
Метаданные.ОсновнойЯзык.КодЯзыка);
ОбщегоНазначения.КодОсновногоЯзыка());
ГруппаДоступаОбъект.Записать(); // Важно, чтобы созданная группа "уехала" в подчиненный узел.
@@ -6379,12 +6386,15 @@
Процедура ЗаполнитьТаблицуВсеВидыДоступаВФорме(Форма)
Для каждого СвойстваВидаДоступа Из СвойстваВидаДоступа() Цикл
Для Каждого СвойстваВидаДоступа Из СвойстваВидаДоступа() Цикл
Строка = Форма.ВсеВидыДоступа.Добавить();
Строка.Ссылка = СвойстваВидаДоступа.Ссылка;
Строка.Используется = ВидДоступаИспользуется(Строка.Ссылка);
// Обеспечение уникальности представлений.
Представление = СвойстваВидаДоступа.Представление;
Представление = ПредставлениеВидаДоступа(СвойстваВидаДоступа);
Если Не ЗначениеЗаполнено(Представление) Тогда
Представление = Строка.Имя;
КонецЕсли;
Отбор = Новый Структура("Представление", Представление);
Пока Форма.ВсеВидыДоступа.НайтиСтроки(Отбор).Количество() > 0 Цикл
Отбор.Представление = Отбор.Представление + " ";
@@ -6708,13 +6718,8 @@
// Обновление свойств видов доступа.
// Для процедуры ОбновитьОписаниеСвойствВидовДоступа.
// Возвращает свойства видов доступа, заполняемых при внедрении
// в процедуре ПриЗаполненииВидовДоступа
// общего модуля УправлениеДоступомПереопределяемый
// и одноименных обработчиках этого события.
//
Функция СвойстваВидовДоступа()
// Для функций СвойстваВидовДоступаДляХранения, ПредставлениеВидовДоступа.
Функция ЗаполненныеВидыДоступа()
// 1. Заполнение данных, указанных при внедрении.
@@ -6729,6 +6734,20 @@
ИнтеграцияПодсистемБСП.ПриЗаполненииВидовДоступа(ВидыДоступа);
УправлениеДоступомПереопределяемый.ПриЗаполненииВидовДоступа(ВидыДоступа);
Возврат ВидыДоступа;
КонецФункции
// Для процедуры ОбновитьОписаниеСвойствВидовДоступа.
// Возвращает свойства видов доступа, заполняемых при внедрении
// в процедуре ПриЗаполненииВидовДоступа
// общего модуля УправлениеДоступомПереопределяемый
// и одноименных обработчиках этого события.
//
Функция СвойстваВидовДоступа()
ВидыДоступа = ЗаполненныеВидыДоступа();
// Проверки:
// - тип значений доступа не указан для 2-х видов доступа
// - тип значений доступа Пользователи, ГруппыПользователей используется только для вида доступа Пользователи.
@@ -7136,6 +7155,34 @@
КонецПроцедуры
Функция ПредставлениеВидовДоступа() Экспорт
ВидыДоступа = ЗаполненныеВидыДоступа();
ПредставлениеВидовДоступа = Новый Соответствие;
Для Каждого ВидДоступа Из ВидыДоступа Цикл
ПредставлениеВидовДоступа.Вставить(ВидДоступа.ТипЗначений, ВидДоступа.Представление);
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПредставлениеВидовДоступа);
КонецФункции
Функция ПредставлениеВидаДоступа(СвойстваВидаДоступа) Экспорт
ПредставлениеВидовДоступа = УправлениеДоступомСлужебныйПовтИсп.ПредставлениеВидовДоступа();
Представление = ПредставлениеВидовДоступа.Получить(СвойстваВидаДоступа.ТипЗначений);
Если Не ЗначениеЗаполнено(Представление) Тогда
Представление = СвойстваВидаДоступа.Имя;
КонецЕсли;
Возврат Представление;
КонецФункции
// Для процедуры ЗаполнитьЗначенияДоступаСГруппами.
Процедура ДобавитьВМассив(Массив, Значение)
@@ -8313,9 +8360,15 @@
Функция ЭлементыДанныхНовыхКомбинацийЗначенийОпорныхПолей(ЗапросНовыхКомбинаций,
ОтборПоИзмерениям, Источник, ПараметрыОграничения)
ЗапросНовыхКомбинаций.Текст =
СтрЗаменить(ПараметрыОграничения.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей,
"&ОтборПоИзмерениям", ОтборПоИзмерениям);
Если ЗапросНовыхКомбинаций.Параметры.Свойство("КомбинацииЗначенийОпорныхПолей") Тогда
ЗапросНовыхКомбинаций.Текст =
ПараметрыОграничения.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей;
Иначе
ЗапросНовыхКомбинаций.Текст = СтрЗаменить(
ПараметрыОграничения.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей,
"&ОтборПоИзмерениям",
ОтборПоИзмерениям);
КонецЕсли;
РезультатЗапросаНовыхКомбинаций = ЗапросНовыхКомбинаций.Выполнить();
Если РезультатЗапросаНовыхКомбинаций.Пустой() Тогда
@@ -17232,9 +17285,21 @@
| Справочник.ГруппыДоступа.Пользователи КАК ПользователиГруппыДоступа
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ГруппыДоступа КАК ГруппыДоступа
| ПО (ГруппыДоступа.Ссылка = ПользователиГруппыДоступа.Ссылка)
| И (ТИПЗНАЧЕНИЯ(ПользователиГруппыДоступа.Пользователь) = ТИП(Справочник.ГруппыПользователей))
| ГДЕ
| ТИПЗНАЧЕНИЯ(ПользователиГруппыДоступа.Пользователь) = ТИП(Справочник.ГруппыПользователей)
| И &УточнениеПланаЗапроса
| &УточнениеПланаЗапроса
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ РАЗЛИЧНЫЕ
| ЗначенияГруппДоступа.ЗначениеДоступа
| ИЗ
| РегистрСведений.ЗначенияГруппДоступа КАК ЗначенияГруппДоступа
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ГруппыДоступа КАК ГруппыДоступа
| ПО (ГруппыДоступа.Ссылка = ЗначенияГруппДоступа.ГруппаДоступа)
| И (ТИПЗНАЧЕНИЯ(ЗначенияГруппДоступа.ЗначениеДоступа) = ТИП(Справочник.ГруппыПользователей))
| ГДЕ
| &УточнениеПланаЗапроса
|
| ОБЪЕДИНИТЬ ВСЕ
|
@@ -18285,6 +18350,9 @@
КонецЕсли;
Иначе
ЗначениеУказано = ЗначенияОдногоТипа.Значения.Получить(Значение) <> Неопределено;
Если Не ЗначениеУказано И ТипЗначения = Контекст.ТипПользователя Тогда
ЗначениеУказано = ЗначениеУказаноВГруппеПользователей(Значение, Контекст);
КонецЕсли;
Результат = "Ложь";
Если ЗначениеУказано И Не ЗначенияОдногоТипа.ВсеРазрешены
Или Не ЗначениеУказано И ЗначенияОдногоТипа.ВсеРазрешены Тогда
@@ -18430,6 +18498,28 @@
КонецФункции
// Для функции РассчитанноеУсловие.
Функция ЗначениеУказаноВГруппеПользователей(Пользователь, Контекст)
УказанныеГруппыПользователей = Контекст.ЗначенияГруппыДоступа.Получить(Контекст.ТипГруппыПользователей);
Если УказанныеГруппыПользователей = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Для Каждого УказаннаяГруппаПользователей Из УказанныеГруппыПользователей.Значения Цикл
ПользователиГруппы = Контекст.ПользователиГруппПользователей.Получить(УказаннаяГруппаПользователей.Ключ);
Если ПользователиГруппы = Неопределено Тогда
Продолжить;
КонецЕсли;
Если ПользователиГруппы.Получить(Пользователь) <> Неопределено Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
// Для функции РассчитанноеУсловие.
Процедура ЗаполнитьРезультатДляПользователя(Результат, Пользователь, Контекст)
@@ -25435,7 +25525,8 @@
// Запрос отборов записей, которых нет в регистре ключей доступа регистров при фоновом обновлении.
Результат.Вставить("ТекстЗапросаЭлементовДанныхБезКлючейДоступа");
// Запрос отборов записей, которых нет в регистре ключей доступа регистров при записи нового набора.
Результат.Вставить("ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей");
Результат.Вставить("ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей");
Результат.Вставить("ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей");
// Запросы объектов или отборов записей, у которых устарели ключи доступа
// по составу изменений ведущих объектов (для точечного задания).
Результат.Вставить("ОписаниеЗапросовУстаревшихКлючейДоступаПоВедущимОбъектам", Новый Соответствие);
@@ -27145,9 +27236,9 @@
УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапроса, Результат, Контекст);
Если Контекст.ДляВнешнихПользователей Тогда
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей =
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1
| &ТекущаяТаблицаПоле1 КАК Поле1
|ИЗ
| &Список КАК ТекущаяТаблица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
@@ -27157,10 +27248,29 @@
|ГДЕ
| &ОтборПоИзмерениям
| И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL";
Иначе
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей =
"ВЫБРАТЬ
| &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1
|ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей
|ИЗ
| &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ТекущаяТаблицаПоле1 КАК Поле1
|ИЗ
| КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
| ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка))
| И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ИСТИНА)
| И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1)
|ГДЕ
| КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL";
Иначе
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ТекущаяТаблицаПоле1 КАК Поле1
|ИЗ
| &Список КАК ТекущаяТаблица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
@@ -27170,12 +27280,35 @@
|ГДЕ
| &ОтборПоИзмерениям
| И КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL";
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей =
"ВЫБРАТЬ
| &ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1
|ПОМЕСТИТЬ КомбинацииЗначенийОпорныхПолей
|ИЗ
| &КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| &ТекущаяТаблицаПоле1 КАК Поле1
|ИЗ
| КомбинацииЗначенийОпорныхПолей КАК ТекущаяТаблица
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
| ПО (КлючиДоступаКРегистрам.Регистр = ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка))
| И (КлючиДоступаКРегистрам.ДляВнешнихПользователей = ЛОЖЬ)
| И (КлючиДоступаКРегистрам.Поле1 = &ТекущаяТаблицаПоле1)
|ГДЕ
| КлючиДоступаКРегистрам.ДляВнешнихПользователей ЕСТЬ NULL";
КонецЕсли;
УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей,
УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей,
Результат, Контекст, Истина);
УточнитьРегистрКлючейИУсловиеСоединения(ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей,
Результат, Контекст, Истина);
Результат.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей =
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолей;
Результат.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей =
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейСуществующихЗаписей;
Результат.ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей =
ТекстЗапросаНовыхКомбинацийЗначенийОпорныхПолейНовыхЗаписей;
КонецЕсли;
Если Не Контекст.ЭтоСсылочныйТип Тогда
@@ -27307,9 +27440,12 @@
Возврат;
КонецЕсли;
ОпорныеПоля = "";
ПоляВыбора = "";
НомерПоля = 1;
Для Каждого Поле Из Результат.ОпорныеПоля.Используемые Цикл
ОпорныеПоля = ОпорныеПоля + ?(ОпорныеПоля = "", "", "," + Символы.ПС)
+ "ТекущаяТаблица." + Поле + " КАК " + Поле;
ПоляВыбора = ПоляВыбора + ?(ПоляВыбора = "", "", "," + Символы.ПС)
+ "ТекущаяТаблица." + Поле + " КАК Поле" + НомерПоля;
НомерПоля = НомерПоля + 1;
@@ -27317,6 +27453,10 @@
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ТекущаяТаблицаПоле1 КАК ТекущаяТаблицаПоле1",
ТекстСОтступом(СокрЛ(ОпорныеПоля), " "));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса,
"&ТекущаяТаблицаПоле1 КАК Поле1",
ТекстСОтступом(СокрЛ(ПоляВыбора), " "));
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&Список", Контекст.Список);
@@ -25,6 +25,13 @@
КонецФункции
// См. УправлениеДоступомСлужебный.ПредставлениеВидовДоступа.
Функция ПредставлениеВидовДоступа() Экспорт
Возврат УправлениеДоступомСлужебный.ПредставлениеВидовДоступа();
КонецФункции
// См. РегистрыСведений.НастройкиПравОбъектов.ВозможныеПрава.
Функция ВозможныеПраваДляНастройкиПравОбъектов() Экспорт
@@ -32,6 +39,13 @@
КонецФункции
// См. РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможныхПрав.
Функция ПредставлениеВозможныхПрав() Экспорт
Возврат РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможныхПрав();
КонецФункции
// См. Справочники.ПрофилиГруппДоступа.ПоставляемыеПрофили.
Функция ОписаниеПоставляемыхПрофилей() Экспорт
@@ -39,6 +53,13 @@
КонецФункции
// См. Справочники.ПрофилиГруппДоступа.ПояснениеПоставляемыхПрофилей.
Функция ПояснениеПоставляемыхПрофилей() Экспорт
Возврат Справочники.ПрофилиГруппДоступа.ПояснениеПоставляемыхПрофилей();
КонецФункции
// Возвращает таблицу значений, содержащую вид ограничений доступа по каждому праву
// объектов метаданных.
// Если записи по праву нет, значит ограничений по праву нет.
@@ -561,9 +561,9 @@
ОписаниеПрофиля = МодульУправлениеДоступом.НовоеОписаниеПрофиляГруппДоступа();;
ОписаниеПрофиля.Идентификатор = "70179f20-2315-11e6-9bff-d850e648b60c";
ОписаниеПрофиля.Наименование = НСтр("ru = 'Редактирование, отправка по почте, сохранение в файл печатных форм (дополнительно)'",
Метаданные.ОсновнойЯзык.КодЯзыка);
ОбщегоНазначения.КодОсновногоЯзыка());
ОписаниеПрофиля.Описание = НСтр("ru = 'Дополнительно назначается пользователям, которым должна быть доступна возможность редактирования,
|перед печатью, отправка по почте и сохранение в файл сформированных печатных форм.'", Метаданные.ОсновнойЯзык.КодЯзыка);
|перед печатью, отправка по почте и сохранение в файл сформированных печатных форм.'");
ОписаниеПрофиля.Роли.Добавить("РедактированиеПечатныхФорм");
ОписанияПрофилей.Добавить(ОписаниеПрофиля);
@@ -2923,8 +2923,8 @@
КонецЕсли;
КодЯзыка = ТекущийЯзык.КодЯзыка;
Результат.Добавить(ИмяМакета + "_" + КодЯзыка);
Если КодЯзыка <> Метаданные.ОсновнойЯзык.КодЯзыка Тогда
Результат.Добавить(ИмяМакета + "_" + Метаданные.ОсновнойЯзык.КодЯзыка);
Если КодЯзыка <> ОбщегоНазначения.КодОсновногоЯзыка() Тогда
Результат.Добавить(ИмяМакета + "_" + ОбщегоНазначения.КодОсновногоЯзыка());
КонецЕсли;
КонецЕсли;
@@ -379,6 +379,14 @@
Функция СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено)
ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон.Ссылка, Предмет, УникальныйИдентификатор);
Если ТипЗнч(ПараметрыОтправки.Предмет) = Тип("Строка")
И Метаданные.НайтиПоПолномуИмени(ПараметрыОтправки.Предмет) <> Неопределено Тогда
ПараметрыОтправки.Предмет = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПараметрыОтправки.Предмет).ПустаяСсылка();
КонецЕсли;
Если ТипЗнч(ДополнительныеПараметры) = Тип("Структура") Тогда
ОбщегоНазначенияКлиентСервер.ДополнитьСтруктуру(ПараметрыОтправки.ДополнительныеПараметры, ДополнительныеПараметры, Истина);
КонецЕсли;
@@ -8,14 +8,16 @@
#Область ПрограммныйИнтерфейс
// Открывает окно выбора шаблона для формирования электронного письма или сообщения SMS по указанному предмету
// ПредметСообщения.
// Открывает окно выбора шаблона для формирования электронного письма или сообщения SMS по шаблону
// для переданного в параметре ПредметСообщения предмета.
//
// Параметры:
// ПредметСообщения - ЛюбаяСсылка, Строка - объект-источник данных, выводимых в сообщение.
// ПредметСообщения - ОпределяемыйТип.ПредметШаблонаСообщения, Строка - объект-источник данных, выводимых в сообщение.
// Для общих шаблонов необходимо передавать значение "Общий".
// Для передачи предмета сообщения строкой необходимо указывать полное имя метаданных.
// Например, "Справочник.Контрагенты".
// ВидСообщения - Строка - "Письмо" для электронного письма и "СообщениеSMS" для сообщений SMS.
// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - оповещение, которое вызывается после формирования сообщения.
// ОписаниеОповещенияОЗакрытии - ОписаниеОповещения - оповещение, которое вызывается после формирования сообщения. Содержит:
// * Результат - Булево - Если Истина, то сообщение было создано.
// * ПараметрыСообщения - Структура, Неопределено - значение, которое было передано в параметре ПараметрыСообщения.
// ВладелецШаблона - ОпределяемыйТип.ВладелецШаблона - владелец шаблонов. Если не указан, то в окне выбора
@@ -32,7 +34,6 @@
КонецПроцедуры
// Открывает форму для выбора шаблона.
//
// Параметры:
@@ -3862,8 +3862,8 @@
Если ОбщегоНазначенияКлиент.ЭтоWindowsКлиент() Тогда
Контекст.ОбъектКомпоненты.НачатьУстановкуЗапретитьПользовательскийИнтерфейс(
Новый ОписаниеОповещения("ПослеУстановкиСвойстваЗапретитьПользовательскийИнтерфейс", ЭтотОбъект, Контекст),
Контекст.МенеджерКриптографии.ИспользованиеИнтерактивногоРежима
= ИспользованиеИнтерактивногоРежимаКриптографии.НеИспользовать);
ЭлектроннаяПодписьСлужебныйКлиентСервер.ИнтерактивныйРежимДоступен()
И Не ИспользуетсяИнтерактивныйРежимКриптографии(Контекст.МенеджерКриптографии));
Иначе
ПослеУстановкиСвойстваЗапретитьПользовательскийИнтерфейс(Контекст);
КонецЕсли;
+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="08e48cd2-feab-45fc-810d-c6c09ea9a458">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="eea092ce-8b4f-4790-b8e5-3279e0a6245a">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.0</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="0c109415-16e3-4136-b431-9c87c46f4a17"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="a47017f8-76b3-4777-afbe-effa4308e52e"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="7650b652-1011-4fa7-b921-3af865390aa1"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="37dd77c1-2959-4e17-a05c-05fdcc11d051"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="560d3d04-27e1-4bac-b11f-d0746d22c396"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="0aa545dc-b07a-410b-8996-1ea0144589e0"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="ebea47e6-0cfb-4812-9825-ed73311b4005"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="e60b7d19-f75b-4faa-8fa8-ed97ec2853c2"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="3d2492ec-927f-4c10-a668-9653901bde57"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="b3731d52-1761-4144-b53d-a7136910b684"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="dde2317c-aa6e-49b2-bd0e-2163cade6e20"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="db9b8219-1a1f-492e-9a66-24532109f4da"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="c2191eba-4503-4b47-93e8-1d9571217c5b"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="6ff72407-a8b0-4785-accd-8eea65484237"/>
<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.0.3.87</version>
<version>3.0.3.93</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,5702d0b1-d8ca-486d-b7e0-faa2330f95fc,1,8a949e93-0e80-4276-96e0-6a85d2e7e292,"3.0.3.87","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6041,1,0,08e48cd2-feab-45fc-810d-c6c09ea9a458,08e48cd2-feab-45fc-810d-c6c09ea9a458,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,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,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,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,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-Line truncated
{6,1,1,16dfc1ae-db73-4aed-a64f-0ecf144663ca,1,04539a8e-b638-4ba9-971b-f1937edacf6c,"3.0.3.93","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",6041,1,0,eea092ce-8b4f-4790-b8e5-3279e0a6245a,eea092ce-8b4f-4790-b8e5-3279e0a6245a,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,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,c27472ee-879a-4746-9d21-122738ec80b7,c27472ee-879a-4746-9d21-122738ec80b7,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,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,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,83192b3e-e7a9-4595-8887-24cda84457a9,83192b3e-e7a9-4595-8887-24cda84457a9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,c8a4c5da-bc88-4f6e-9787-1c22c2f41be7,1,0,08eeb8f1-944f-4450-83f6-ef20aaab7d86,08eeb8f1-944f-4450-83f6-ef20aaab7d86,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,8d77dd4a-e646-4105-8dcf-8ce8fc3da0b4,1,0,2fd12dba-5311-4f31-949c-f6b15decc0cc,2fd12dba-5311-4f31-949c-f6b15decc0cc,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,35895e12-52b6-49a1-acdf-6d828a948af0,35895e12-52b6-49a1-acdf-6d828a948af0,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-Line truncated
@@ -172,7 +172,6 @@
&НаКлиенте
Процедура УстановитьОбновление(Команда)
Закрыть();
ОбменДаннымиКлиент.УстановитьОбновлениеКонфигурации(ЗавершениеРаботыСистемы);
КонецПроцедуры
@@ -244,7 +244,7 @@
Если ОстанавливатьИзменениеПриОшибке = Неопределено Тогда
ОстанавливатьИзменениеПриОшибке = Параметры.ПрерыватьПриОшибке;
КонецЕсли;
ПроверятьНаГруппу = ПроверятьНаГруппу(ОбрабатываемыеОбъекты[0].Ссылка);
ЗаписатьОшибку = Истина;
Ссылка = Неопределено;
ВыполнятьКодАлгоритмаВБезопасномРежиме = (Параметры.РежимВыполнения <> 1);
@@ -278,7 +278,7 @@
Если Параметры.ТипОперации = "ВыполнитьАлгоритм" Тогда
ВыполнитьКодАлгоритма(ИзменяемыйОбъект, Параметры.КодАлгоритма, ВыполнятьКодАлгоритмаВБезопасномРежиме);
Иначе
Изменения = ВнестиИзменения(ДанныеОбъекта, ИзменяемыйОбъект, Параметры, ПроверятьНаГруппу);
Изменения = ВнестиИзменения(ДанныеОбъекта, ИзменяемыйОбъект, Параметры);
КонецЕсли;
// Режим записи.
@@ -376,7 +376,7 @@
КонецПроцедуры
Функция ВнестиИзменения(Знач ДанныеОбъекта, Знач ИзменяемыйОбъект, Знач Параметры, Знач ПроверятьНаГруппу)
Функция ВнестиИзменения(Знач ДанныеОбъекта, Знач ИзменяемыйОбъект, Знач Параметры)
Результат = Новый Структура;
Результат.Вставить("ИзменяемыеРеквизитыОбъекта", Новый Массив);
@@ -389,11 +389,9 @@
Значение = ВычислитьВыражение(Операция.Значение, ИзменяемыйОбъект, Параметры.ДоступныеРеквизиты);
Если Операция.ВидОперации = 1 Тогда // изменение реквизита
// Для групп не устанавливаем реквизиты, которых у них нет.
Если ПроверятьНаГруппу И ИзменяемыйОбъект.ЭтоГруппа Тогда
Если НЕ ЭтоСтандартныйРеквизит(ИзменяемыйОбъект.Метаданные().СтандартныеРеквизиты, Операция.Имя) Тогда
Продолжить;
КонецЕсли;
Если ИзменяемыйОбъект[Операция.Имя] = Null Тогда
Продолжить;
КонецЕсли;
ИзменяемыйОбъект[Операция.Имя] = Значение;
@@ -590,23 +588,6 @@
Возврат "ДопСведение_";
КонецФункции
Функция ПроверятьНаГруппу(Ссылка)
ВидОбъекта = ВидОбъектаПоСсылке(Ссылка);
МетаданныеОбъекта = Ссылка.Метаданные();
Если ВидОбъекта = "Справочник"
И МетаданныеОбъекта.Иерархический
И МетаданныеОбъекта.ВидИерархии = Метаданные.СвойстваОбъектов.ВидИерархии.ИерархияГруппИЭлементов Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Процедура ВнестиИзмененияВТабличныеЧасти(ИзменяемыйОбъект, ДанныеОбъекта, ИзмененияВТабличныхЧастях)
Для Каждого ИзмененияТабличнойЧасти Из ИзмененияВТабличныхЧастях Цикл
@@ -977,27 +958,6 @@
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции из базовой функциональности для обеспечения автономности.
// Возвращает признак того, что реквизит входит в подмножество стандартных реквизитов.
//
// Параметры:
// СтандартныеРеквизиты - ОписанияСтандартныхРеквизитов - тип и значение описывает коллекцию настроек различных
// стандартных реквизитов;
// ИмяРеквизита - Строка - реквизит который необходимо проверить на принадлежность множеству стандартных реквизитов;
//
// Возвращаемое значение:
// Булево.
//
Функция ЭтоСтандартныйРеквизит(СтандартныеРеквизиты, ИмяРеквизита) Экспорт
Для Каждого Реквизит Из СтандартныеРеквизиты Цикл
Если Реквизит.Имя = ИмяРеквизита Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
// Функция ВидОбъектаПоСсылке возвращает имя вида объектов метаданных
// по ссылке на объект.
//
@@ -858,7 +858,7 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", Метаданные.ОсновнойЯзык.КодЯзыка), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
@@ -1176,7 +1176,7 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", Метаданные.ОсновнойЯзык.КодЯзыка), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(НСтр("ru = 'Выполнение операции'", ОбщегоНазначения.КодОсновногоЯзыка()), УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ВызватьИсключение;
КонецПопытки;
@@ -14170,11 +14170,77 @@
КонецПроцедуры
// Выводит сообщение пользователю.
//
// Параметры:
// ТекстСообщенияПользователю - Строка - Текст выводимого сообщения.
//
Функция СтруктураПараметровМенеджера(Имя, ИмяТипа, ТипСсылкиСтрокой, Менеджер, ОбъектМД)
Структура = Новый Структура();
Структура.Вставить("Имя", Имя);
Структура.Вставить("ИмяТипа", ИмяТипа);
Структура.Вставить("ТипСсылкиСтрокой", ТипСсылкиСтрокой);
Структура.Вставить("Менеджер", Менеджер);
Структура.Вставить("ОбъектМД", ОбъектМД);
Структура.Вставить("ВозможенПоискПоПредопределенным", Ложь);
Структура.Вставить("ПКО");
Возврат Структура;
КонецФункции
Функция СтруктураПараметровПланаОбмена(Имя, ТипСсылки, ЭтоСсылочныйТип, ЭтоРегистр)
Структура = Новый Структура();
Структура.Вставить("Имя",Имя);
Структура.Вставить("ТипСсылки",ТипСсылки);
Структура.Вставить("ЭтоСсылочныйТип",ЭтоСсылочныйТип);
Структура.Вставить("ЭтоРегистр",ЭтоРегистр);
Возврат Структура;
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции из базовой функциональности для обеспечения автономности.
Функция ПодсистемаСуществует(ПолноеИмяПодсистемы) Экспорт
ИменаПодсистем = ИменаПодсистем();
Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;
КонецФункции
Функция ИменаПодсистем() Экспорт
Возврат Новый ФиксированноеСоответствие(ИменаПодчиненныхПодсистем(Метаданные));
КонецФункции
Функция ИменаПодчиненныхПодсистем(РодительскаяПодсистема)
Имена = Новый Соответствие;
Для Каждого ТекущаяПодсистема Из РодительскаяПодсистема.Подсистемы Цикл
Имена.Вставить(ТекущаяПодсистема.Имя, Истина);
ИменаПодчиненных = ИменаПодчиненныхПодсистем(ТекущаяПодсистема);
Для каждого ИмяПодчиненной Из ИменаПодчиненных Цикл
Имена.Вставить(ТекущаяПодсистема.Имя + "." + ИмяПодчиненной.Ключ, Истина);
КонецЦикла;
КонецЦикла;
Возврат Имена;
КонецФункции
Функция ОбщийМодуль(Имя) Экспорт
Если Метаданные.ОбщиеМодули.Найти(Имя) <> Неопределено Тогда
Модуль = Вычислить(Имя);
Иначе
Модуль = Неопределено;
КонецЕсли;
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
ВызватьИсключение ПодставитьПараметрыВСтроку(НСтр("ru = 'Общий модуль ""%1"" не найден.'"), Имя);
КонецЕсли;
Возврат Модуль;
КонецФункции
Процедура СообщитьПользователю(ТекстСообщенияПользователю) Экспорт
Сообщение = Новый СообщениеПользователю;
@@ -14183,19 +14249,6 @@
КонецПроцедуры
// Подставляет параметры в строку. Максимально возможное число параметров - 9.
// Параметры в строке задаются как %<номер параметра>. Нумерация параметров начинается с единицы.
//
// Параметры:
// СтрокаПодстановки - Строка - шаблон строки с параметрами (вхождениями вида "%ИмяПараметра");
// Параметр<n> - Строка - подставляемый параметр.
//
// Возвращаемое значение:
// Строка - текстовая строка с подставленными параметрами.
//
// Пример:
// ПодставитьПараметрыВСтроку(НСтр("ru='%1 пошел в %2'"), "Вася", "Зоопарк") = "Вася пошел в Зоопарк".
//
Функция ПодставитьПараметрыВСтроку(Знач СтрокаПодстановки,
Знач Параметр1, Знач Параметр2 = Неопределено, Знач Параметр3 = Неопределено)
@@ -14232,14 +14285,6 @@
КонецФункции
// Проверить, что значение имеет ссылочный тип данных.
//
// Параметры:
// Значение - Произвольный - проверяемое значение.
//
// Возвращаемое значение:
// Булево - Истина, если тип значения ссылочный.
//
Функция ЗначениеСсылочногоТипа(Значение)
Тип = ТипЗнч(Значение);
@@ -14258,32 +14303,14 @@
КонецФункции
// Возвращает код основного языка конфигурации, например "ru".
Функция КодОсновногоЯзыка() Экспорт
Функция КодОсновногоЯзыка()
Если ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность") Тогда
МодульОбщегоНазначения = ОбщийМодуль("ОбщегоНазначения");
Возврат МодульОбщегоНазначения.КодОсновногоЯзыка();
КонецЕсли;
Возврат Метаданные.ОсновнойЯзык.КодЯзыка;
КонецФункции
Функция СтруктураПараметровМенеджера(Имя, ИмяТипа, ТипСсылкиСтрокой, Менеджер, ОбъектМД)
Структура = Новый Структура();
Структура.Вставить("Имя", Имя);
Структура.Вставить("ИмяТипа", ИмяТипа);
Структура.Вставить("ТипСсылкиСтрокой", ТипСсылкиСтрокой);
Структура.Вставить("Менеджер", Менеджер);
Структура.Вставить("ОбъектМД", ОбъектМД);
Структура.Вставить("ВозможенПоискПоПредопределенным", Ложь);
Структура.Вставить("ПКО");
Возврат Структура;
КонецФункции
Функция СтруктураПараметровПланаОбмена(Имя, ТипСсылки, ЭтоСсылочныйТип, ЭтоРегистр)
Структура = Новый Структура();
Структура.Вставить("Имя",Имя);
Структура.Вставить("ТипСсылки",ТипСсылки);
Структура.Вставить("ЭтоСсылочныйТип",ЭтоСсылочныйТип);
Структура.Вставить("ЭтоРегистр",ЭтоРегистр);
Возврат Структура;
КонецФункции
#КонецОбласти
#КонецОбласти
@@ -984,23 +984,7 @@
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
// Список вариантов отправки
Для каждого ЭлементВыбора Из Элементы.СписокПолучателейВариантОтправки.СписокВыбора Цикл
Элемент = УсловноеОформление.Элементы.Добавить();
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.СписокПолучателейВариантОтправки.Имя);
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СписокПолучателей.ВариантОтправки");
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = ЭлементВыбора.Значение;
Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ЭлементВыбора.Представление);
КонецЦикла;
Взаимодействия.УстановитьУсловноеОформлениеСпискаВыбора(ЭтотОбъект, "СписокПолучателейВариантОтправки", "СписокПолучателей.ВариантОтправки");
КонецПроцедуры
@@ -684,7 +684,7 @@
КонецПроцедуры
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов.
Функция ВозможныеПрава()
Функция ЗаполненныеВозможныеПрава()
ВозможныеПрава = Новый ТаблицаЗначений();
ВозможныеПрава.Колонки.Добавить("ВладелецПрав", Новый ОписаниеТипов("Строка"));
@@ -699,6 +699,15 @@
ИнтеграцияПодсистемБСП.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава);
УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов(ВозможныеПрава);
Возврат ВозможныеПрава;
КонецФункции
// См. УправлениеДоступомПереопределяемый.ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов.
Функция ВозможныеПрава()
ВозможныеПрава = ЗаполненныеВозможныеПрава();
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в процедуре ПриЗаполненииВозможныхПравДляНастройкиПравОбъектов
|общего модуля УправлениеДоступомПереопределяемый.'")
@@ -888,6 +897,38 @@
КонецФункции
Функция ПредставлениеВозможныхПрав() Экспорт
ВозможныеПрава = ЗаполненныеВозможныеПрава();
ПредставлениеВозможныхПрав = Новый Соответствие;
Для Каждого ВозможноеПраво Из ВозможныеПрава Цикл
ПолноеИмяПрава = ВозможноеПраво.ВладелецПрав + "_" + ВозможноеПраво.Имя;
ПредставлениеВозможныхПрав.Вставить(ПолноеИмяПрава, Новый ФиксированнаяСтруктура(
Новый Структура("Заголовок, Подсказка", ВозможноеПраво.Заголовок, ВозможноеПраво.Подсказка)));
КонецЦикла;
Возврат Новый ФиксированноеСоответствие(ПредставлениеВозможныхПрав);
КонецФункции
Функция ПредставлениеВозможногоПрава(ОписаниеВозможногоПрава) Экспорт
ПредставлениеВозможныхПрав = УправлениеДоступомСлужебныйПовтИсп.ПредставлениеВозможныхПрав();
ПолноеИмяПрава = ОписаниеВозможногоПрава.ВладелецПрав + "_" + ОписаниеВозможногоПрава.Имя;
Представление = ПредставлениеВозможныхПрав.Получить(ПолноеИмяПрава);
Если Не ЗначениеЗаполнено(Представление) Тогда
Представление = Новый ФиксированнаяСтруктура(
Новый Структура("Заголовок, Подсказка", ОписаниеВозможногоПрава.Имя, ""));
КонецЕсли;
Возврат Представление;
КонецФункции
Процедура ЗаполнитьИдентификаторы(Свойство, ВозможноеПраво, ЗаголовокОшибки, ОтдельныеТаблицы, ДополнительныеПараметры)
Если ДополнительныеПараметры.ОбщиеПраваВладельцев.Получить(ДополнительныеПараметры.ВладелецПрав) = Неопределено Тогда
@@ -45,9 +45,9 @@
Если ОбщегоНазначения.РазделениеВключено()
И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ(Метаданные.Имя, Истина);
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ("СтандартныеПодсистемы", Истина);
Иначе
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ(Метаданные.Имя);
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ("СтандартныеПодсистемы");
КонецЕсли;
ВерсияТекстов = ВерсияТекстовОграниченияДоступа();
@@ -60,7 +60,7 @@
"СтандартныеПодсистемы.УправлениеДоступом.ВерсияТекстовОграниченияДоступа",
ВерсияТекстов, ЕстьТекущиеИзменения);
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.0.3.76") < 0 Тогда
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.0.3.92") < 0 Тогда
ЕстьТекущиеИзменения = Истина;
КонецЕсли;
@@ -120,7 +120,7 @@
УправлениеДоступомСлужебный.ЗапланироватьОбновлениеПараметровОграниченияДоступа(
"ЗапланироватьОбновлениеДоступаПоИзменениямКонфигурации");
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ(Метаданные.Имя);
ВерсияИБ = ОбновлениеИнформационнойБазыСлужебный.ВерсияИБ("СтандартныеПодсистемы");
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.0.3.3") < 0 Тогда
ЗапланироватьОбновление(Ложь, Истина, "ПереходНаВерсиюБСП_3.0.3.3");
@@ -130,6 +130,10 @@
ЗапланироватьОбновление(Истина, Ложь, "ПереходНаВерсиюБСП_3.0.3.76");
КонецЕсли;
Если ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ, "3.0.3.92") < 0 Тогда
ЗапланироватьОбновление(Ложь, Истина, "ПереходНаВерсиюБСП_3.0.3.92");
КонецЕсли;
КонецПроцедуры
// Для процедуры ОбновитьДанныеРегистраПоИзменениямКонфигурации.
@@ -1309,10 +1309,11 @@
// Вывод легенды
Область = Макет.ПолучитьОбласть("НастройкиПравЛегендаШапка");
Документ.Вывести(Область, 2);
Для каждого ОписаниеПрава Из ОписаниеПрав Цикл
Для Каждого ОписаниеПрава Из ОписаниеПрав Цикл
ПредставленияПрава = РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможногоПрава(ОписаниеПрава);
Область = Макет.ПолучитьОбласть("НастройкиПравЛегендаСтрока");
Область.Параметры.Заголовок = СтрЗаменить(ОписаниеПрава.Заголовок, Символы.ПС, " ");
Область.Параметры.Подсказка = СтрЗаменить(ОписаниеПрава.Подсказка, Символы.ПС, " ");
Область.Параметры.Заголовок = СтрЗаменить(ПредставленияПрава.Заголовок, Символы.ПС, " ");
Область.Параметры.Подсказка = СтрЗаменить(ПредставленияПрава.Подсказка, Символы.ПС, " ");
Документ.Вывести(Область, 2);
КонецЦикла;
@@ -1364,10 +1365,11 @@
Смещение = 1;
ТекущийНомерОбласти = Смещение;
Для каждого ОписаниеПрава Из ОписаниеПрав Цикл
Для Каждого ОписаниеПрава Из ОписаниеПрав Цикл
ПредставленияПрава = РегистрыСведений.НастройкиПравОбъектов.ПредставлениеВозможногоПрава(ОписаниеПрава);
НомерЯчейки = "R1C" + Формат(ТекущийНомерОбласти, "ЧГ=");
МакетШапки.Область(НомерЯчейки).Текст = ОписаниеПрава.Заголовок;
МакетШапки.Область(НомерЯчейки).ШиринаКолонки = МаксимальнаяДлинаСтроки(ОписаниеПрава.Заголовок);
МакетШапки.Область(НомерЯчейки).Текст = ПредставленияПрава.Заголовок;
МакетШапки.Область(НомерЯчейки).ШиринаКолонки = МаксимальнаяДлинаСтроки(ПредставленияПрава.Заголовок);
ТекущийНомерОбласти = ТекущийНомерОбласти + 1;
МакетСтроки.Область(НомерЯчейки).ШиринаКолонки = МакетШапки.Область(НомерЯчейки).ШиринаКолонки;
@@ -1862,7 +1864,7 @@
МетаданныеВладельцаНастроекПрав.Представление());
КонецЕсли;
ИначеЕсли УправлениеДоступомСлужебный.ВидДоступаИспользуется(Строка.ВидДоступа) Тогда
Строка.Представление = СвойстваВидаДоступа.Представление;
Строка.Представление = УправлениеДоступомСлужебный.ПредставлениеВидаДоступа(СвойстваВидаДоступа);
Иначе
ИспользуемыеВидыДоступа.Удалить(Строка);
КонецЕсли;
@@ -119,93 +119,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>
@@ -5968,6 +5881,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>InformationRegister.ПакетыДляОтправки</name>
<right>
@@ -14,37 +14,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Catalog.РассылкиОтчетов.Command.СобытияРассылки</name>
<right>
@@ -107,6 +76,37 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<restrictionTemplate>
<name>ДляОбъекта(ПолеОбъекта)</name>
<condition>// ДляОбъекта(ПолеОбъекта = "")
@@ -176,45 +176,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>
@@ -7686,6 +7647,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>InformationRegister.ПакетыДляОтправки</name>
<right>
@@ -3,6 +3,13 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -34,13 +41,6 @@
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации</name>
<right>
@@ -658,7 +658,7 @@
| Пользовательские.Ссылка = &Вариант
|");
Запрос.УстановитьПараметр("Вариант", Вариант);
Запрос.УстановитьПараметр("КодОсновногоЯзыка", Метаданные.ОсновнойЯзык.КодЯзыка);
Запрос.УстановитьПараметр("КодОсновногоЯзыка", ОбщегоНазначения.КодОсновногоЯзыка());
Объект.Представления.Загрузить(Запрос.Выполнить().Выгрузить());
КонецПроцедуры