Валюта широко используется в деятельности любого предприятия: во всех документах, которые имеют дело с денежными суммами (счета, платежные поручения, договоры, накладные) присутствует поле Валюта, явно или по умолчанию. Значение поля Валюта заполняется в зависимости от направления деятельности предприятия: рубль, иностранная валюта или у.е.
Укажите Наценку, % - коэффициент, который применяется к курсу основной валюты для вычисления курса текущей валюты.
Расчет по формуле
Предусмотрена возможность ввести валюту, курс которой зависит от нескольких валют одновременно.
Для этого переключатель Курс валюты установите в положение рассчитывается по формуле.
-
Задайте способ расчета курса валюты в соответствующем поле, например, (USD+EUR)/2.
Параметры прописи валюты
-
Для того чтобы в печатных формах правильно указывалось наименование валюты прописью, необходимо задать параметры прописи целой и дробной части валюты.
-
Целая часть - укажите параметры склонения целой части валюты: Род и соответствующие шаблоны склонения в единственном и множественном числе.
-
Дробная часть - укажите параметры склонения дробной части валюты: Род и соответствующие шаблоны склонения в единственном и множественном числе.
-
Число разрядов дробной части - в случае если дробная часть в печатных формах отображается числом, то можно установить нужное количество разрядов при выводе печатных форм документов. Например, если установлено количество разрядов 1 знак, то сумма по документу будет отображена, как 150,2 евро, а если 2 знака, то – 150,20 евро.
-
Пример прописи суммы - число, введенное в поле Сумма, будет написано по указанным параметрам прописи валюты. Используйте эту возможность для проверки параметров прописи валюты.
Параметры прописи валюты заполнены по умолчанию для основных валют: рубль, Евро, доллар. Для остальных валют их необходимо заполнить самостоятельно.
-
Просмотр курса валюты
+
Задайте способ расчета курса валюты в соответствующем поле, например, (USD+EUR)/2.
Просмотр курса валюты
Для перевода валютных сумм в рубли используется курс валюты.
Нажмите Курсы валют на панели навигации валюты. Можно установить интервал дат для удобства просмотра курсов.
Список предназначен для ведения валют, используемых в программе. Необходимые для работы валюты можно подобрать из Общероссийского классификатора валют - ОКВ (рекомендуется) или добавить вручную.
+
Список предназначен для ведения валют, используемых в программе. Необходимые для работы валюты можно подобрать из Общероссийского классификатора валют - ОКВ (рекомендуется) или добавить вручную.
Открыть список валют можно из раздела Справочники.
В списке выводится:
@@ -22,7 +22,7 @@
Нажмите Создать - По классификатору (рекомендуется для корректного ввода валюты).
-
Следующие поля новой валюты будут заполнены из классификатора автоматически: Наименование, Символьный код, Цифровой код, положение переключателя Курс валюты (будет установлено положение загружается из интернета, если имеется возможность загружать курс этой валюты с сайта 1С).
Ввод валюты не из классификатора (вручную)
+
Следующие поля новой валюты будут заполнены из классификатора автоматически: Наименование, Символьный код, Цифровой код, положение переключателя Курс валюты (будет установлено положение загружается из интернета, если имеется возможность загружать курс этой валюты с сайта 1С).
Ввод валюты не из классификатора (вручную)
Нажмите Создать - Новую. Также можно нажать клавишу Ins.
Предназначен для просмотра и управления версиями файла.
Для просмотра списка всех версий файла откройте его карточку (в списке файлов нажмите F2 или Еще -Открыть карточку) и нажмите Версии файла на панели навигации.
Список версий является иерархическим, для удобства просмотра отображается в виде дерева. В этом случае легко проследить историю редактирования файла. Более поздние версии отображаются подчиненными более ранним. При этом первую версию файла удалить из списка невозможно.
-
По окончании редактирования файла программа рекомендует сохранить версию файла и ввести информацию о данной версии. По умолчанию эта возможность включена (рекомендуется использовать сохранение версий, так как в случае серьезных ошибок, которые привели к порче файла, можно вернуться к более ранней, неиспорченной версии). Хранение версий можно включить с помощью соответствующего флажка в карточке файла или при загрузке файлов (папок). Впоследствии можно изменить некоторые сведения о версии, например, комментарий.
+
По окончании редактирования файла программа рекомендует сохранить версию файла и ввести информацию о данной версии. По умолчанию эта возможность включена (рекомендуется использовать сохранение версий, так как в случае серьезных ошибок, которые привели к порче файла, можно вернуться к более ранней, неиспорченной версии). Хранение версий можно включить с помощью соответствующего флажка в карточке файла или при загрузке файлов (папок). Впоследствии можно изменить некоторые сведения о версии, например, комментарий.
В списке выводится:
Автор - пользователь, который добавил версию файла. Также в этой колонке в виде картинки отображается тип файла.
@@ -21,7 +21,7 @@
Расширение - формат файла, и некоторые другие поля.
Просмотр версии файла
Нажмите Просмотреть, для того чтобы открыть выбранную версию файла соответствующим приложением для просмотра или редактирования (также можно открыть версию файла двойным щелчком мыши по нужной строке или с помощью команды Еще - Просмотреть).
Просмотр сведений о версии файла
-
Нажмите Открыть карточку, для того чтобы открыть сведения о выбранной версии. В карточке версии можно изменить Комментарий.
Замена текущей версии файла
+
Нажмите Открыть карточку, для того чтобы открыть сведения о выбранной версии. В карточке версии можно изменить Комментарий.
Замена текущей версии файла
Выберите нужную версию файла в списке, нажмите Сделать активной, для того чтобы изменить активную (текущую) версию. При этом нумерация версий остается прежней, меняется только порядок версий в списке.
Сравнение двух версий файла
Выделите две версии в списке и нажмите Показать отличия для их сравнения. Сравнение версий поддерживается для следующих типов файлов: HTML, TXT, RTF, DOC, DOCX, ODT.
Сохранение версии файла на диск
Для того чтобы сохранить файл версии на диск или другое устройство, нажмите Еще - Сохранить как. Выберите каталог для сохранения файла.
См. также:
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
index ef01ed3aa..433fac976 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -16,6 +20,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
index e5f2ae39c..2d0612d04 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ВерсииФайлов/ObjectModule.bsl
@@ -20,33 +20,12 @@
РодительскаяВерсия = Владелец.ТекущаяВерсия;
КонецЕсли;
- Если НЕ ЭтоНовый() Тогда
-
+ Если Не ЭтоНовый() Тогда
УстановленаПометкаУдаления = ПометкаУдаления И Не ПометкаУдаленияВИБ();
-
- ЗаписьПодписанногоОбъекта = Ложь;
- Если ДополнительныеСвойства.Свойство("ЗаписьПодписанногоОбъекта") Тогда
- ЗаписьПодписанногоОбъекта = ДополнительныеСвойства.ЗаписьПодписанногоОбъекта;
- КонецЕсли;
-
- Если ЗаписьПодписанногоОбъекта <> Истина Тогда
-
- СтруктураРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка,
- "ПодписанЭП, Зашифрован");
-
- СсылкаПодписан = СтруктураРеквизитов.ПодписанЭП;
- СсылкаЗашифрован = СтруктураРеквизитов.Зашифрован;
-
- Если Зашифрован И СсылкаЗашифрован И ПодписанЭП И НЕ СсылкаПодписан Тогда
- ВызватьИсключение НСтр("ru = 'Зашифрованную версию файла нельзя подписывать.'");
- КонецЕсли;
-
- КонецЕсли;
-
КонецЕсли;
// Выполним установку индекса пиктограммы при записи объекта.
- ИндексКартинки = ФайловыеФункцииСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение);
+ ИндексКартинки = РаботаСФайламиСлужебныйКлиентСервер.ПолучитьИндексПиктограммыФайла(Расширение);
Если СтатусИзвлеченияТекста.Пустая() Тогда
СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.НеИзвлечен;
@@ -72,23 +51,37 @@
"ВЫБРАТЬ
| ВерсииФайлов.Ссылка КАК Ссылка
|ИЗ
- | Справочник.ВерсииФайлов КАК ВерсииФайлов
+ | Справочник." + Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя + " КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.РодительскаяВерсия = &РодительскаяВерсия";
Запрос.УстановитьПараметр("РодительскаяВерсия", Ссылка);
Результат = Запрос.Выполнить();
-
- Если Не Результат.Пустой() Тогда
- Выборка = Результат.Выбрать();
- Выборка.Следующий();
-
- Объект = Выборка.Ссылка.ПолучитьОбъект();
- ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка);
- Объект.РодительскаяВерсия = РодительскаяВерсия;
- Объект.Записать();
- КонецЕсли;
+ НачатьТранзакцию();
+ Попытка
+ Если Не Результат.Пустой() Тогда
+ Выборка = Результат.Выбрать();
+ Выборка.Следующий();
+
+ БлокировкаДанных = Новый БлокировкаДанных;
+ ЭлементБлокировкиДанных = БлокировкаДанных.Добавить(Метаданные.НайтиПоТипу(ТипЗнч(Выборка.Ссылка)).ПолноеИмя());
+ ЭлементБлокировкиДанных.УстановитьЗначение("Ссылка", Выборка.Ссылка);
+ ЭлементБлокировкиДанных.Режим = РежимБлокировкиДанных.Исключительный;
+ БлокировкаДанных.Заблокировать();
+
+ Объект = Выборка.Ссылка.ПолучитьОбъект();
+
+ ЗаблокироватьДанныеДляРедактирования(Объект.Ссылка);
+ Объект.РодительскаяВерсия = РодительскаяВерсия;
+ Объект.Записать();
+ КонецЕсли;
+ ЗафиксироватьТранзакцию();
+ Исключение
+ ИнформацияОбОшибке = ИнформацияОбОшибке();
+ ОтменитьТранзакцию();
+ ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
+ КонецПопытки;
КонецЕсли;
КонецПроцедуры
@@ -97,7 +90,7 @@
Если ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВТомахНаДиске Тогда
Если НЕ Том.Пустая() И ОбщегоНазначения.СсылкаСуществует(Том) Тогда
- ПолныйПуть = ФайловыеФункцииСлужебный.ПолныйПутьТома(Том) + ПутьКФайлу;
+ ПолныйПуть = РаботаСФайламиСлужебный.ПолныйПутьТома(Том) + ПутьКФайлу;
Попытка
Файл = Новый Файл(ПолныйПуть);
Файл.УстановитьТолькоЧтение(Ложь);
@@ -126,12 +119,15 @@
// Возвращает текущее значение пометки удаления в информационной базе.
Функция ПометкаУдаленияВИБ()
+ УстановитьПривилегированныйРежим(Истина);
+ ИмяСправочникаВерсийФайлов = Метаданные.НайтиПоТипу(ТипЗнч(Ссылка)).Имя;
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВерсииФайлов.ПометкаУдаления
|ИЗ
- | Справочник.ВерсииФайлов КАК ВерсииФайлов
+ | Справочник." + ИмяСправочникаВерсийФайлов + " КАК ВерсииФайлов
|ГДЕ
| ВерсииФайлов.Ссылка = &Ссылка";
diff --git a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
index cf0392f26..ffcf7496c 100644
--- a/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
+++ b/SSL/src/Catalogs/ВерсииФайлов/ВерсииФайлов.mdo
@@ -139,7 +139,6 @@
trueInDialogBothWays
- Catalog.ВерсииФайлов.Form.ФормаЭлементаCatalog.ВерсииФайлов.Form.ФормаСпискаCatalog.ВерсииФайлов.Form.ФормаВыбора
@@ -230,10 +229,10 @@
Use
- Зашифрован
+ УдалитьЗашифрованru
- Зашифрована
+ (не используется) ЗашифрованаBoolean
@@ -316,10 +315,10 @@
Use
- ПодписанЭП
+ УдалитьПодписанЭПru
- Подписана электронно
+ (не используется) Подписана электронноBoolean
@@ -551,10 +550,10 @@
Открывается из списка Внешние компоненты по кнопке Создать или двойному щелчку мыши (также по команде Еще - Изменить).
+
Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в карточке внешней компоненты заполняются автоматически. Поля являются обязательными для заполнения:
+
Идентификатор - внутренний идентификатор объекта внешней компоненты;
+
Наименование - полное наименование внешней компоненты - выводится пользователям при установке внешней компоненты;
+
Версия - номер версии, с его помощью впоследствии можно определить актуальность внешней компоненты.
Если после автоматического заполнения остались незаполненными поля, которые являются обязательными для заполнения, карточка не запишется. В этом случае необходимо заполнить их вручную.
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl
new file mode 100644
index 000000000..1820f742b
--- /dev/null
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Forms/ФормаЭлемента/Module.bsl
@@ -0,0 +1,412 @@
+
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ Если Параметры.Свойство("АвтоТест") Тогда
+ Возврат;
+ КонецЕсли;
+
+ ЭтоНовый = Объект.Ссылка.Пустая();
+
+ Если ЭтоНовый Тогда
+ Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии = Истина;
+ КонецЕсли;
+
+ УстановитьВидимостьДоступность();
+
+ Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда
+
+ Элементы.ОбновлятьССайта.Видимость = Ложь;
+ Элементы.ФормаОбновитьССайта.Видимость = Ложь;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПриОткрытии(Отказ)
+
+ Если Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии Тогда
+ ПодключитьОбработчикОжидания("ЗагрузитьКомпонентуИзФайла", 0.1, Истина);
+ КонецЕсли
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПриЧтенииНаСервере(ТекущийОбъект)
+
+ // Если вызвана команда "Перечитать" необходимо удалить буфер данных компоненты
+ Если ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты) Тогда
+ УдалитьИзВременногоХранилища(АдресДвоичныхДанныхКомпоненты);
+ АдресДвоичныхДанныхКомпоненты = Неопределено;
+ КонецЕсли;
+
+ УстановитьВидимостьДоступность();
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
+
+ // Если есть двоичные данные компоненты, которые надо сохранить, то помещаем их в ДополнительныеСвойства.
+ Если ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты) Тогда
+ ДвоичныеДанныеКомпоненты = ПолучитьИзВременногоХранилища(АдресДвоичныхДанныхКомпоненты);
+ ТекущийОбъект.ДополнительныеСвойства.Вставить("ДвоичныеДанныеКомпоненты", ДвоичныеДанныеКомпоненты);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
+
+ Если Не ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда
+ УстановитьВидимостьДоступность();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПослеЗаписи(ПараметрыЗаписи)
+
+ Если ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда
+ ЗакрытьСПараметромЗакрытия();
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовШапкиФормы
+
+&НаКлиенте
+Процедура ИспользованиеПриИзменении(Элемент)
+
+ УстановитьВидимостьДоступность();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиКомандФормы
+
+&НаКлиенте
+Процедура ЗаписатьИЗакрыть(Команда)
+
+ ОчиститьСообщения();
+ Записать(Новый Структура("ЗаписатьИЗакрыть"));
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбновитьССайта(Команда)
+
+ ОчиститьСообщения();
+ ОбновитьКомпонентуССайта();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОбновитьИзФайла(Команда)
+
+ ОчиститьСообщения();
+ ЗагрузитьКомпонентуИзФайла();
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура СохранитьКак(Команда)
+
+ Если ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты) Тогда
+ ПоказатьПредупреждение(, НСтр("ru = 'Перед сохранение компоненты в файл элемент справочника нужно записать.'"));
+ Иначе
+ ОчиститьСообщения();
+ ВнешниеКомпонентыСлужебныйКлиент.СохранитьКомпонентуВФайл(Объект.Ссылка);
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Строит диалог загрузки компоненты из файла.
+&НаКлиенте
+Процедура ЗагрузитьКомпонентуИзФайла()
+
+ Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеПредупрежденияБезопасности", ЭтотОбъект);
+ ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемВнешнейКомпоненты");
+ ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы,,,,, Оповещение);
+
+КонецПроцедуры
+
+// Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
+&НаКлиенте
+Процедура ЗагрузитьКомпонентуПослеПредупрежденияБезопасности(Ответ, Контекст) Экспорт
+
+ // Ответ:
+ // - "Продолжить" - Загрузить.
+ // - КодВозвратаДиалога.Отмена - Отклонить.
+ // - Неопределено - Закрыто окно.
+ Если Ответ <> "Продолжить" Тогда
+ ЗагрузитьКомпонентуЗавершение(Контекст);
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыДиалога = Новый Структура;
+ ПараметрыДиалога.Вставить("Режим", РежимДиалогаВыбораФайла.Открытие);
+ ПараметрыДиалога.Вставить("Заголовок", НСтр("ru = 'Выберите файл внешней компоненты'"));
+ ПараметрыДиалога.Вставить("Фильтр", НСтр("ru = 'Внешняя компонента (*.zip)|*.zip|Все файлы(*.*)|*.*'"));
+
+ Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеПомещенияФайла", ЭтотОбъект, Контекст);
+ СтандартныеПодсистемыКлиент.ПоказатьПомещениеФайла(Оповещение,
+ УникальныйИдентификатор, Объект.ИмяФайла, ПараметрыДиалога);
+
+КонецПроцедуры
+
+// Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
+&НаКлиенте
+Процедура ЗагрузитьКомпонентуПослеПомещенияФайла(ПомещенныеФайлы, Контекст) Экспорт
+
+ Если ПомещенныеФайлы = Неопределено Или ПомещенныеФайлы.Количество() = 0 Тогда
+ ЗагрузитьКомпонентуЗавершение(Контекст);
+ Возврат;
+ КонецЕсли;
+
+ ОписаниеФайла = ПомещенныеФайлы[0];
+
+ ПараметрыЗагрузки = Новый Структура;
+ ПараметрыЗагрузки.Вставить("АдресХранилищаФайла", ОписаниеФайла.Хранение);
+ ПараметрыЗагрузки.Вставить("ИмяФайла", ТолькоИмяФайла(ОписаниеФайла.Имя));
+
+ Результат = ЗагрузитьКомпонентуИзФайлаНаСервере(ПараметрыЗагрузки);
+ Если Не Результат.Загружено
+ Или Не ЭтоАдресВременногоХранилища(АдресДвоичныхДанныхКомпоненты)Тогда
+
+ // Ошибка при загрузке.
+
+ Оповещение = Новый ОписаниеОповещения("ЗагрузитьКомпонентуПослеОтображенияОшибки", ЭтотОбъект, Контекст);
+
+ ПараметрыФормы = Новый Структура("ОписаниеОшибки", Результат.ОписаниеОшибки);
+ ОткрытьФорму("Справочник.ВнешниеКомпоненты.Форма.ОшибкаЗагрузкиКомпоненты", ПараметрыФормы, ЭтотОбъект,
+ УникальныйИдентификатор,,, Оповещение);
+
+ Иначе
+
+ // Успешно загружена.
+
+ Если ПроверитьЗаполнение() Тогда
+ ЗагрузитьКомпонентуЗавершение(Контекст);
+ КонецЕсли;
+
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
+&НаКлиенте
+Процедура ЗагрузитьКомпонентуПослеОтображенияОшибки(РезультатЗакрытия, Контекст) Экспорт
+
+ ЗагрузитьКомпонентуЗавершение(Контекст);
+
+КонецПроцедуры
+
+// Продолжение процедуры ЗагрузитьКомпонентуИзФайла.
+&НаКлиенте
+Процедура ЗагрузитьКомпонентуЗавершение(Контекст)
+
+ Если Параметры.ПоказатьДиалогЗагрузкиИзФайлаПриОткрытии И Открыта() Тогда
+ Закрыть();
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Выполняет обновление компоненты с сайта.
+&НаКлиенте
+Процедура ОбновитьКомпонентуССайта()
+
+ ДлительнаяОперация = НачатьОбновлениеКомпонентыССайтаНаСервере();
+
+ Если ДлительнаяОперация = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
+ ПараметрыОжидания.ТекстСообщения = НСтр("ru = 'Выполняется обновление внешней компоненты...'");
+ ПараметрыОжидания.ВыводитьОкноОжидания = Истина;
+
+ Оповещение = Новый ОписаниеОповещения("ОбновитьКомпонентуССайтаЗавершение", ЭтотОбъект);
+
+ ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, Оповещение, ПараметрыОжидания);
+
+КонецПроцедуры
+
+// Продолжение процедуры ОбновитьКомпонентуССайта.
+&НаКлиенте
+Процедура ОбновитьКомпонентуССайтаЗавершение(Результат, ДополнительныеПараметры) Экспорт
+
+ // Ответ:
+ // - Структура - Выполнено - результат в структуре.
+ // - Неопределено - Отменено пользователем.
+ Если Результат = Неопределено Тогда
+ Возврат;
+ КонецЕсли;
+
+ Если Результат.Статус = "Ошибка" Тогда
+ ПоказатьПредупреждение(, Результат.КраткоеПредставлениеОшибки);
+ КонецЕсли;
+
+ Если Результат.Статус = "Выполнено" Тогда
+ ЗавершитьОбновлениеКомпонентыССайтаНаСервере(Результат);
+ ПоказатьОповещениеПользователя(НСтр("ru = 'Обновление с сайта'"),,
+ НСтр("ru = 'Внешняя компонента успешно обновлена.'"), БиблиотекаКартинок.Успешно32);
+ КонецЕсли;
+
+КонецПроцедуры
+
+/////////////////////////////////////////////////////////
+// Серверная логика модели представления.
+
+// Серверная логика процедуры ЗагрузитьКомпонентуИзФайла.
+&НаСервере
+Функция ЗагрузитьКомпонентуИзФайлаНаСервере(ПараметрыЗагрузки)
+
+ Если Не Пользователи.ЭтоПолноправныйПользователь(,, Ложь) Тогда
+ ВызватьИсключение НСтр("ru = 'Не достаточно прав для совершения операции.'");
+ КонецЕсли;
+
+ Зарегистрирована = Ложь;
+
+ ОбъектСправочника = РеквизитФормыВЗначение("Объект");
+
+ Информация = ВнешниеКомпонентыСлужебный.ИнформацияОКомпоненте(ПараметрыЗагрузки.АдресХранилищаФайла);
+
+ Если Не Информация.Разобрано Тогда
+ Возврат Новый Структура("Загружено, ОписаниеОшибки", Ложь, Информация.ОписаниеОшибки);
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(ОбъектСправочника, Информация.Реквизиты); // По данным манифеста.
+ ОбъектСправочника.ИмяФайла = ПараметрыЗагрузки.ИмяФайла; // Установка имени файла.
+ АдресДвоичныхДанныхКомпоненты = ПоместитьВоВременноеХранилище(Информация.ДвоичныеДанные,
+ УникальныйИдентификатор);
+
+ ЗначениеВРеквизитФормы(ОбъектСправочника, "Объект");
+
+ Модифицированность = Истина;
+ УстановитьВидимостьДоступность();
+
+ Возврат Новый Структура("Загружено", Истина);
+
+КонецФункции
+
+// Серверная логика обновления компоненты с сайта.
+&НаСервере
+Функция НачатьОбновлениеКомпонентыССайтаНаСервере()
+
+ Если Не ВнешниеКомпонентыСлужебный.ДоступнаЗагрузкаССайта() Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ ЭтоНовый = Объект.Ссылка.Пустая();
+ Если ЭтоНовый Тогда
+ Возврат Неопределено;
+ КонецЕсли;
+
+ МассивСсылок = Новый Массив;
+ МассивСсылок.Добавить(Объект.Ссылка);
+
+ ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
+ ПараметрыВыполнения.НаименованиеФоновогоЗадания = НСтр("ru = 'Обновление внешней компоненты.'");
+
+ Возврат ДлительныеОперации.ВыполнитьВФоне("ВнешниеКомпонентыСлужебный.ОбновитьКомпонентыССайта",
+ МассивСсылок, ПараметрыВыполнения);
+
+КонецФункции
+
+// Серверная логика обновления компоненты с сайта.
+&НаСервере
+Функция ЗавершитьОбновлениеКомпонентыССайтаНаСервере(Результат)
+
+ // Обновление формы по новому значению объекта в ИБ.
+ ЭтотОбъект.Прочитать();
+
+ Модифицированность = Ложь;
+ УстановитьВидимостьДоступность();
+
+КонецФункции
+
+/////////////////////////////////////////////////////////
+// Представление данных на форме.
+
+// Для внутреннего использования.
+&НаСервере
+Процедура УстановитьВидимостьДоступность()
+
+ ЭтоНовый = Объект.Ссылка.Пустая();
+
+ // Отображение описания ошибки.
+ Элементы.ОшибкаКомпоненты.Видимость = Ложь;
+
+ // Зависимость использования и автоматического обновления.
+ КомпонентаОтключена = (Объект.Использование = Перечисления.ВариантыИспользованияВнешнихКомпонент.Отключена);
+ Элементы.ОбновлятьССайта.Доступность = Не КомпонентаОтключена;
+
+ // Параметры отображения предупреждений при редактировании
+ ОтображатьПредупреждение = ОтображениеПредупрежденияПриРедактировании.Отображать;
+ НеОтображатьПредупреждение = ОтображениеПредупрежденияПриРедактировании.НеОтображать;
+ Если ЗначениеЗаполнено(Объект.Наименование) Тогда
+ Элементы.Наименование.ОтображениеПредупрежденияПриРедактировании = ОтображатьПредупреждение;
+ Иначе
+ Элементы.Наименование.ОтображениеПредупрежденияПриРедактировании = НеОтображатьПредупреждение;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(Объект.Идентификатор) Тогда
+ Элементы.Идентификатор.ОтображениеПредупрежденияПриРедактировании = ОтображатьПредупреждение;
+ Иначе
+ Элементы.Идентификатор.ОтображениеПредупрежденияПриРедактировании = НеОтображатьПредупреждение;
+ КонецЕсли;
+ Если ЗначениеЗаполнено(Объект.Версия) Тогда
+ Элементы.Версия.ОтображениеПредупрежденияПриРедактировании = ОтображатьПредупреждение;
+ Иначе
+ Элементы.Версия.ОтображениеПредупрежденияПриРедактировании = НеОтображатьПредупреждение;
+ КонецЕсли;
+
+ // Доступность кнопки Сохранить в файл
+ Элементы.ФормаСохранитьКак.Доступность = Не ЭтоНовый;
+ Элементы.ФормаОбновитьССайта.Доступность = Не ЭтоНовый;
+
+КонецПроцедуры
+
+/////////////////////////////////////////////////////////
+// Прочее.
+
+// Для внутреннего использования.
+&НаКлиенте
+Функция ЗакрытьСПараметромЗакрытия()
+
+ ПараметрЗакрытия = Неопределено;
+
+ Если Параметры.ВернутьРезультатЗагрузкиИзФайла Тогда
+
+ ПараметрЗакрытия = Новый Структура;
+ ПараметрЗакрытия.Вставить("Идентификатор", Объект.Идентификатор);
+ ПараметрЗакрытия.Вставить("Версия" , Объект.Версия);
+ ПараметрЗакрытия.Вставить("Наименование" , Объект.Наименование);
+
+ КонецЕсли;
+
+ Закрыть(ПараметрЗакрытия);
+
+КонецФункции
+
+// Для внутреннего использования.
+&НаКлиенте
+Функция ТолькоИмяФайла(ВыбранноеИмяФайла)
+
+ // Использовать критично на клиенте, т.к. ПолучитьРазделительПути() на сервере может быть другим.
+ МассивПодстрок = СтрРазделить(ВыбранноеИмяФайла, ПолучитьРазделительПути(), Ложь);
+ Возврат МассивПодстрок.Получить(МассивПодстрок.ВГраница());
+
+КонецФункции
+
+#КонецОбласти
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ВнешниеКомпоненты/Help/ru.html b/SSL/src/Catalogs/ВнешниеКомпоненты/Help/ru.html
new file mode 100644
index 000000000..5c1f9a1aa
--- /dev/null
+++ b/SSL/src/Catalogs/ВнешниеКомпоненты/Help/ru.html
@@ -0,0 +1,25 @@
+
+
Предназначен для управления внешними компонентами.
+
Внешние компоненты - специальные программы, которые могут обеспечивать:
+
Работу с подключаемым оборудованием;
+
Обмены с банком и документооборот;
+
Работа с буфером обмена, сканирование и т.п.;
+
Печать штрихкодов, извлечение текстов, компонента склонения и т.д.
Внешние компоненты можно подключить к программе из файла на компьютере. При необходимости, одновременно могут быть подключены сразу несколько версий одной внешней компоненты. Например, это полезно, когда на разных клиентских компьютерах используются разные драйверы или оборудование.
+
Программа предоставляет администратору возможность контролировать список внешних компонент, используемых на клиентских рабочих местах. Без контроля администратора пользователи не могут подключать к программе какие-либо сторонние внешние компоненты.
+
В списке отражаются все установленные в программе внешние компоненты.
+
Подключение внешней компоненты
+
Нажмите Создать.
+
Программа выводит Предупреждение безопасности. Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите Продолжить.
+
Укажите путь к файлу на компьютере, нажмите Открыть.
+
Разработчик размещает в файле внешней компоненты необходимую информацию для ее установки, поэтому основные поля в карточке внешней компоненты заполняются автоматически.
Обновление внешней компоненты
+
Нажмите кнопку . Программа выводит Предупреждение безопасности.
+
Если внешняя компонента получена из надежного источника и не может содержать вирусы, нажмите кнопку Продолжить.
+
Укажите путь к файлу на компьютере, нажмите кнопку Открыть.
+
Информация в карточке внешней компоненты будет обновлена.
Сохранение внешних компонент на компьютер
+
Сохраненную на компьютер внешнюю компоненту можно будет использовать в случае нештатных ситуаций.
+
Нажмите кнопку . Укажите путь к файлу на компьютере. Нажмите Сохранить.
Отборы в списке
+
С помощью поля Показывать в списке можно отобрать внешние компоненты по следующим признакам:
Перечислите список пользователей (и групп пользователей), на которых должны распространяться настройки прав доступа. Списки, из которых можно выбрать участников группы, перечислены в поле Допустимые участники в нижней части вкладки.
diff --git a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl
index f9742860b..5b0e4185c 100644
--- a/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ГруппыДоступа/Forms/ФормаЭлемента/Module.bsl
@@ -30,7 +30,7 @@
Элементы.ПользователиПодобрать.Доступность = НЕ ТолькоПросмотр;
Элементы.КонтекстноеМенюПользователиПодобрать.Доступность = НЕ ТолькоПросмотр;
- Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
+ Если ОбщегоНазначения.РазделениеВключено()
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса.ПользователиВМоделиСервиса") Тогда
@@ -47,16 +47,22 @@
ВыполненаПроцедураПриСозданииНаСервере = Истина;
- Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
+ Если КлиентскоеПриложение.ТекущийВариантИнтерфейса() = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_2 Тогда
Элементы.ПользователиДобавить.ТолькоВоВсехДействиях = Ложь;
КонецЕсли;
- Если ОбщегоНазначенияПовтИсп.ЭтоАвтономноеРабочееМесто()
- И Не Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
+ Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
+ Если Не Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы
+ И Не УправлениеДоступомСлужебный.ЭтоПрофильОткрытиеВнешнихОтчетовИОбработок(Объект.Профиль) Тогда
- ТолькоПросмотр = Истина;
+ ТолькоПросмотр = Истина;
+ Иначе
+ ЗапретитьИзменениеВсегоКромеСоставаУчастников();
+ КонецЕсли;
КонецЕсли;
+ ПользователиСлужебныйКлиентСервер.УстановитьДоступностьКнопкиЗаписатьИЗакрыть(ЭтотОбъект);
+
КонецПроцедуры
&НаКлиенте
@@ -65,6 +71,7 @@
Если ОтветНаВопросПриОткрытииФормы = "УстановитьТолькоПросмотр" Тогда
ОтветНаВопросПриОткрытииФормы = "";
ТолькоПросмотр = Истина;
+ ПользователиСлужебныйКлиентСервер.УстановитьДоступностьКнопкиЗаписатьИЗакрыть(ЭтотОбъект);
КонецЕсли;
Если ОтветНаВопросПриОткрытииФормы = "УстановитьПрофильАдминистратор" Тогда
@@ -72,8 +79,9 @@
Объект.Профиль = ПредопределенноеЗначение("Справочник.ПрофилиГруппДоступа.Администратор");
Модифицированность = Истина;
- ИначеЕсли Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы")
- И Объект.Профиль <> ПредопределенноеЗначение("Справочник.ПрофилиГруппДоступа.Администратор") Тогда
+ ИначеЕсли Не ТолькоПросмотр
+ И Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы")
+ И Объект.Профиль <> ПредопределенноеЗначение("Справочник.ПрофилиГруппДоступа.Администратор") Тогда
Отказ = Истина;
ПоказатьВопрос(
@@ -136,12 +144,12 @@
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
- Если СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().РазделениеВключено
+ Если СтандартныеПодсистемыКлиент.ПараметрыРаботыКлиента().РазделениеВключено
И Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы")
И ПарольПользователяСервиса = Неопределено Тогда
Отказ = Истина;
- СтандартныеПодсистемыКлиент.ПриЗапросеПароляДляАутентификацииВСервисе(
+ ПользователиСлужебныйКлиент.ЗапроситьПарольДляАутентификацииВСервисе(
Новый ОписаниеОповещения("ПередЗаписьюПродолжение", ЭтотОбъект, ПараметрыЗаписи),
ЭтотОбъект,
ПарольПользователяСервиса);
@@ -179,7 +187,7 @@
Объект.Ответственный = Неопределено;
КонецЕсли;
- Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
+ Если ОбщегоНазначения.РазделениеВключено()
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить(
@@ -214,9 +222,12 @@
Если ПараметрыЗаписи.Свойство("ПредупредитьЧтоПрофильПомеченНаУдаление") Тогда
- ПоказатьПредупреждение(,
+ ПоказатьПредупреждение(
+ Новый ОписаниеОповещения("ПослеЗаписиЗавершение", ЭтотОбъект, ПараметрыЗаписи),
НСтр("ru = 'Группа доступа не влияет на права участников
|так как ее профиль помечен на удаление.'"));
+ Иначе
+ ПослеЗаписиЗавершение(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
@@ -409,7 +420,7 @@
КонецЦикла;
- Если НЕ ОбщегоНазначенияПовтИсп.РазделениеВключено()
+ Если НЕ ОбщегоНазначения.РазделениеВключено()
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
ОписаниеОшибки = "";
@@ -822,6 +833,13 @@
#Область ОбработчикиКомандФормы
+&НаКлиенте
+Процедура ЗаписатьИЗакрыть(Команда)
+
+ Записать(Новый Структура("ЗаписатьИЗакрыть"));
+
+КонецПроцедуры
+
&НаКлиенте
Процедура Подобрать(Команда)
@@ -843,7 +861,7 @@
// Продолжение обработчика события ПриОткрытии.
&НаКлиенте
-Процедура ПриОткрытииПослеПодтвержденияУстановкиПрофиляАдминистратор(Ответ, Неопределен) Экспорт
+Процедура ПриОткрытииПослеПодтвержденияУстановкиПрофиляАдминистратор(Ответ, Контекст) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ОтветНаВопросПриОткрытииФормы = "УстановитьПрофильАдминистратор";
@@ -857,7 +875,7 @@
// Продолжение обработчика события ПриОткрытии.
&НаКлиенте
-Процедура ПриОткрытииПослеПодтвержденияОбновленияВидовДоступа(Ответ, Неопределен) Экспорт
+Процедура ПриОткрытииПослеПодтвержденияОбновленияВидовДоступа(Ответ, Контекст) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ОтветНаВопросПриОткрытииФормы = "ОбновитьСоставВидовДоступа";
@@ -888,6 +906,23 @@
КонецПроцедуры
+// Продолжение обработчика события ПослеЗаписи.
+&НаКлиенте
+Процедура ПослеЗаписиЗавершение(ПараметрыЗаписи)
+
+ Если ПараметрыЗаписи.Свойство("ЗаписатьИЗакрыть") Тогда
+ ПодключитьОбработчикОжидания("ЗакрытьФорму", 0.1, Истина);
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗакрытьФорму()
+
+ Закрыть();
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ОбработчикОжиданияПрофильПриИзменении()
@@ -895,20 +930,28 @@
КонецПроцедуры
+&НаСервере
+Процедура ЗапретитьИзменениеВсегоКромеСоставаУчастников()
+
+ Элементы.Наименование.ТолькоПросмотр = Истина;
+ Элементы.Родитель.Видимость = Ложь;
+ Элементы.Профиль.ТолькоПросмотр = Истина;
+ Элементы.СвойстваПерсональнойГруппы.Видимость = Ложь;
+ Элементы.Ответственный.Видимость = Ложь;
+ Элементы.ОтветственныйЗаПерсональнуюГруппу.Видимость = Ложь;
+ Элементы.Комментарий.ТолькоПросмотр = Истина;
+
+КонецПроцедуры
+
&НаСервере
Процедура НачальнаяНастройкаПриЧтенииИСоздании(ТекущийОбъект)
Если ТекущийОбъект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
- Элементы.Наименование.ТолькоПросмотр = Истина;
- Элементы.Родитель.Видимость = Ложь;
- Элементы.Профиль.ТолькоПросмотр = Истина;
- Элементы.СвойстваПерсональнойГруппы.Видимость = Ложь;
- Элементы.Ответственный.Видимость = Ложь;
- Элементы.ОтветственныйЗаПерсональнуюГруппу.Видимость = Ложь;
- Элементы.Описание.ТолькоПросмотр = Истина;
+ ЗапретитьИзменениеВсегоКромеСоставаУчастников();
- Если НЕ УправлениеДоступом.ЕстьРоль("ПолныеПрава") Тогда
+ Если Не УправлениеДоступом.ЕстьРоль("ПолныеПрава") Тогда
ТолькоПросмотр = Истина;
+ ПользователиСлужебныйКлиентСервер.УстановитьДоступностьКнопкиЗаписатьИЗакрыть(ЭтотОбъект);
КонецЕсли;
Иначе
Если ЗначениеЗаполнено(ТекущийОбъект.Пользователь) Тогда
@@ -958,7 +1001,7 @@
Элементы.Доступ.ТолькоПросмотр = Истина;
Элементы.Ответственный.ТолькоПросмотр = Истина;
Элементы.ОтветственныйЗаПерсональнуюГруппу.ТолькоПросмотр = Истина;
- Элементы.Описание.ТолькоПросмотр = Истина;
+ Элементы.Комментарий.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;
@@ -1436,17 +1479,18 @@
УстановитьПривилегированныйРежим(Истина);
- Запрос = Новый Запрос(
+ Запрос = Новый Запрос;
+ Запрос.Текст =
"ВЫБРАТЬ
- | ГруппыДоступа.ПометкаУдаления,
- | ГруппыДоступа.Предопределенный,
- | ГруппыДоступа.Родитель,
- | ГруппыДоступа.ЭтоГруппа,
- | ГруппыДоступа.Наименование,
- | ГруппыДоступа.Профиль,
- | ГруппыДоступа.Ответственный,
- | ГруппыДоступа.Пользователь,
- | ГруппыДоступа.Описание
+ | ГруппыДоступа.ПометкаУдаления КАК ПометкаУдаления,
+ | ГруппыДоступа.Предопределенный КАК Предопределенный,
+ | ГруппыДоступа.Родитель КАК Родитель,
+ | ГруппыДоступа.ЭтоГруппа КАК ЭтоГруппа,
+ | ГруппыДоступа.Наименование КАК Наименование,
+ | ГруппыДоступа.Профиль КАК Профиль,
+ | ГруппыДоступа.Ответственный КАК Ответственный,
+ | ГруппыДоступа.Пользователь КАК Пользователь,
+ | ГруппыДоступа.Комментарий КАК Комментарий
|ИЗ
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ
@@ -1455,8 +1499,8 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
- | ГруппыДоступаВидыДоступа.ВидДоступа,
- | ГруппыДоступаВидыДоступа.ВсеРазрешены
+ | ГруппыДоступаВидыДоступа.ВидДоступа КАК ВидДоступа,
+ | ГруппыДоступаВидыДоступа.ВсеРазрешены КАК ВсеРазрешены
|ИЗ
| Справочник.ГруппыДоступа.ВидыДоступа КАК ГруппыДоступаВидыДоступа
|ГДЕ
@@ -1465,12 +1509,12 @@
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
- | ГруппыДоступаЗначенияДоступа.ВидДоступа,
- | ГруппыДоступаЗначенияДоступа.ЗначениеДоступа
+ | ГруппыДоступаЗначенияДоступа.ВидДоступа КАК ВидДоступа,
+ | ГруппыДоступаЗначенияДоступа.ЗначениеДоступа КАК ЗначениеДоступа
|ИЗ
| Справочник.ГруппыДоступа.ЗначенияДоступа КАК ГруппыДоступаЗначенияДоступа
|ГДЕ
- | ГруппыДоступаЗначенияДоступа.Ссылка = &Ссылка");
+ | ГруппыДоступаЗначенияДоступа.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ТекущийОбъект.Ссылка);
РезультатыЗапросов = Запрос.ВыполнитьПакет();
diff --git a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
index 13c83b1e1..553f5053c 100644
--- a/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыДоступа/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые не рекомендуется редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -20,6 +24,21 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
+// См. ВыгрузкаЗагрузкаДанныхПереопределяемый.ПриРегистрацииОбработчиковВыгрузкиДанных.
+Процедура ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ) Экспорт
+
+ УправлениеДоступомСлужебный.ПередВыгрузкойОбъекта(Контейнер, МенеджерВыгрузкиОбъекта, Сериализатор, Объект, Артефакты, Отказ);
+
+КонецПроцедуры
+
+// Конец ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -110,7 +129,7 @@
// Проверка необходимости/возможности обновления группы доступа.
ГруппаДоступа = Выборка.Ссылка.ПолучитьОбъект();
- Если ГруппаДоступа.Ссылка = Справочники.ГруппыДоступа.Администраторы
+ Если ГруппаДоступа.Ссылка = Администраторы
И ГруппаДоступа.Профиль <> Справочники.ПрофилиГруппДоступа.Администратор Тогда
// Установка профиля Администратор, если не задан.
ГруппаДоступа.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
@@ -206,7 +225,7 @@
ИначеЕсли НеСоздавать Тогда
ГруппаЭлементов = Неопределено;
Иначе
- ГруппаЭлементовОбъект = Справочники.ГруппыДоступа.СоздатьГруппу();
+ ГруппаЭлементовОбъект = СоздатьГруппу();
ГруппаЭлементовОбъект.Наименование = НаименованиеГруппыЭлементов;
ГруппаЭлементовОбъект.Записать();
ГруппаЭлементов = ГруппаЭлементовОбъект.Ссылка;
@@ -216,8 +235,11 @@
КонецФункции
+////////////////////////////////////////////////////////////////////////////////
+// Процедуры и функции для поддержки обмена данными в РИБ.
+
// Только для внутреннего использования.
-Процедура ВосстановитьСоставУчастниковГруппыДоступаАдминистраторы(ЭлементДанных, ОтправкаНазад) Экспорт
+Процедура ВосстановитьСоставУчастниковГруппыДоступаАдминистраторы(ЭлементДанных) Экспорт
Если ЭлементДанных.ИмяПредопределенныхДанных <> "Администраторы" Тогда
Возврат;
@@ -243,6 +265,38 @@
КонецПроцедуры
+// Только для внутреннего использования.
+Процедура УдалитьУчастниковГруппыДоступаАдминистраторыБезПользователяИБ() Экспорт
+
+ ГруппаДоступаАдминистраторы = Администраторы.ПолучитьОбъект();
+
+ Индекс = ГруппаДоступаАдминистраторы.Пользователи.Количество() - 1;
+ Пока Индекс >= 0 Цикл
+ ТекущийПользователь = ГруппаДоступаАдминистраторы.Пользователи[Индекс].Пользователь;
+ Если ТипЗнч(ТекущийПользователь) = Тип("СправочникСсылка.Пользователи") Тогда
+ ИдентификаторПользователяИБ = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущийПользователь,
+ "ИдентификаторПользователяИБ");
+ Иначе
+ ИдентификаторПользователяИБ = Неопределено;
+ КонецЕсли;
+ Если ТипЗнч(ИдентификаторПользователяИБ) = Тип("УникальныйИдентификатор") Тогда
+ ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
+ ИдентификаторПользователяИБ);
+ Иначе
+ ПользовательИБ = Неопределено;
+ КонецЕсли;
+ Если ПользовательИБ = Неопределено Тогда
+ ГруппаДоступаАдминистраторы.Пользователи.Удалить(Индекс);
+ КонецЕсли;
+ Индекс = Индекс - 1;
+ КонецЦикла;
+
+ Если ГруппаДоступаАдминистраторы.Модифицированность() Тогда
+ ГруппаДоступаАдминистраторы.Записать();
+ КонецЕсли;
+
+КонецПроцедуры
+
////////////////////////////////////////////////////////////////////////////////
// Обновление информационной базы.
@@ -258,4 +312,4 @@
#КонецОбласти
-#КонецЕсли
\ No newline at end of file
+#КонецЕсли
diff --git a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl
index 91ba4403b..4e9efa7bb 100644
--- a/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ГруппыДоступа/ObjectModule.bsl
@@ -25,6 +25,9 @@
Возврат;
КонецЕсли;
+ СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
+ РегистрыСведений.ПраваРолей.ПроверитьДанныеРегистра();
+
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Тогда
Если ЗначениеЗаполнено(Ссылка) Тогда
СтараяТаблицаПользователи = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Пользователи");
@@ -125,9 +128,16 @@
Если НЕ ДополнительныеСвойства.Свойство("НеОбновлятьРолиПользователей") Тогда
- Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаВМоделиСервиса") Тогда
+ МодульРаботаВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("РаботаВМоделиСервиса");
+ СеансЗапущенБезРазделителей = МодульРаботаВМоделиСервиса.СеансЗапущенБезРазделителей();
+ Иначе
+ СеансЗапущенБезРазделителей = Истина;
+ КонецЕсли;
+
+ Если ОбщегоНазначения.РазделениеВключено()
И Ссылка = Справочники.ГруппыДоступа.Администраторы
- И НЕ ОбщегоНазначенияПовтИсп.СеансЗапущенБезРазделителей()
+ И НЕ СеансЗапущенБезРазделителей
И ДополнительныеСвойства.Свойство("ПарольПользователяСервиса") Тогда
ПарольПользователяСервиса = ДополнительныеСвойства.ПарольПользователяСервиса;
diff --git a/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo b/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo
index 4b8db2dca..545300688 100644
--- a/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo
+++ b/SSL/src/Catalogs/ГруппыДоступа/ГруппыДоступа.mdo
@@ -185,10 +185,10 @@
Use
- Описание
+ Комментарийru
- Описание
+ КомментарийString
@@ -196,7 +196,7 @@
ru
- Краткое описание назначения группы доступа
+ Произвольная строка
diff --git a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
index eaf78fd76..3d53198c6 100644
--- a/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ГруппыИсполнителейЗадач/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые не рекомендуется редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -15,6 +19,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Form.form
index d6e86ea10..a20943f48 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Form.form
@@ -8,6 +8,10 @@
true
+
+ ru
+ Группа пользовательских настроек
+ ГруппаПользовательскихНастроекРасширеннаяПодсказка20
@@ -36,6 +40,10 @@
true
+
+ ru
+ Командная панель
+ КоманднаяПанельРасширеннаяПодсказка18
@@ -55,6 +63,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -307,9 +319,6 @@
CommonPicture.СостоянияПользователей
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl
index 7ae13b1fc..3b30d5c5f 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаСписка/Module.bsl
@@ -33,7 +33,7 @@
Элементы.Список.РежимВыбора = Ложь;
КонецЕсли;
- Если ОбщегоНазначенияПовтИсп.ЭтоАвтономноеРабочееМесто() Тогда
+ Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Form.form
index 91a2662cd..873914010 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Form.form
@@ -99,6 +99,10 @@
Состав10
+
+ ru
+ Состав
+ truetrue
@@ -824,9 +828,6 @@
Style.BorderColor
- None
- None
- Nonetrue
diff --git a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl
index 27b87cf6f..55cf10f8b 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ГруппыПользователей/Forms/ФормаЭлемента/Module.bsl
@@ -25,7 +25,7 @@
ОбновитьСписокНедействительныхПользователей(Истина);
УстановитьДоступностьСвойств(ЭтотОбъект);
- Если ОбщегоНазначенияПовтИсп.ЭтоАвтономноеРабочееМесто() Тогда
+ Если ОбщегоНазначения.ЭтоАвтономноеРабочееМесто() Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
diff --git a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl
index 1e676379f..787e099b0 100644
--- a/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ГруппыПользователей/ObjectModule.bsl
@@ -140,10 +140,6 @@
ПользователиСлужебный.ОбновитьИспользуемостьСоставовГруппПользователей(
Ссылка, УчастникиИзменений, ИзмененныеГруппы);
-
- Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
- ПроверитьПравоИзмененияСостава(ИзмененияСостава);
- КонецЕсли;
КонецЕсли;
ПользователиСлужебный.ПослеОбновленияСоставовГруппПользователей(
@@ -155,44 +151,4 @@
#КонецОбласти
-#Область СлужебныеПроцедурыИФункции
-
-Процедура ПроверитьПравоИзмененияСостава(ИзмененияСостава)
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Пользователи", ИзмененияСостава);
- Запрос.Текст =
- "ВЫБРАТЬ
- | Пользователи.Наименование КАК Наименование
- |ИЗ
- | Справочник.Пользователи КАК Пользователи
- |ГДЕ
- | Пользователи.Ссылка В(&Пользователи)
- | И НЕ Пользователи.Подготовлен";
-
- РезультатЗапроса = Запрос.Выполнить();
-
- Если РезультатЗапроса.Пустой() Тогда
- Возврат;
- КонецЕсли;
-
- ТекстОшибки =
- НСтр("ru = 'Недостаточно прав доступа.
- |
- |В состав участников групп пользователей можно добавлять и удалять только
- |новых (добавленных) пользователей, у которых включен признак Подготовлен.
- |
- |Запрещено добавлять и удалять существующих пользователей:'");
-
- Выборка = РезультатЗапроса.Выбрать();
- Пока Выборка.Следующий() Цикл
- ТекстОшибки = ТекстОшибки + Символы.ПС + Выборка.Наименование;
- КонецЦикла;
-
- ВызватьИсключение ТекстОшибки;
-
-КонецПроцедуры
-
-#КонецОбласти
-
-#КонецЕсли
+#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form
index 7203591a7..af6bcd7a8 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/БыстрыйДоступКДополнительнымОтчетамИОбработкам/Form.form
@@ -6,6 +6,10 @@
ВсеПользователи1
+
+ ru
+ Все пользователи
+ truetrue
@@ -242,9 +246,6 @@
truetruetrue
- None
- None
- Nonetrue
@@ -364,10 +365,10 @@
true
-
+ ruКоманды управления списком
-
+
trueCenter
@@ -633,9 +634,6 @@
truetruetrue
- None
- None
- Nonetrue
@@ -646,12 +644,8 @@
ru
- Группа пользователи
+ Пользователи
-
- ru
- Группа пользователи
- ГруппаПользователиExtendedTooltip33
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПодборРазделов/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПодборРазделов/Form.form
index 6be33b941..e67473067 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПодборРазделов/Form.form
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПодборРазделов/Form.form
@@ -7,6 +7,10 @@
Разделы1
+
+ ru
+ Разделы
+ truetrue
@@ -115,12 +119,8 @@
ru
- Группа колонок
+ Колонок
-
- ru
- Группа колонок
- ГруппаКолонокExtendedTooltip16
@@ -250,9 +250,6 @@
truetruetrue
- None
- None
- Nonetrue
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Form.form
index 38b72c15c..b7a2c1bec 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Form.form
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Form.form
@@ -78,6 +78,10 @@
true
+
+ ru
+ Сообщение пользователю
+ ГруппаСообщениеПользователюРасширеннаяПодсказка8
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl
index 4f03860ac..b6587ec90 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ПроверкаДополнительныхОтчетовИОбработок/Module.bsl
@@ -2,10 +2,17 @@
&НаКлиенте
Процедура ПерейтиКСписку(Команда)
- ПараметрыОтбора = Новый Структура;
- ПараметрыОтбора.Вставить("ПроверкаДополнительныхОтчетовИОбработок", Истина);
+ Отборы = Новый Структура;
+ Отборы.Вставить("Публикация", ПредопределенноеЗначение("Перечисление.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется"));
+ Отборы.Вставить("ПометкаУдаления", Ложь);
+ Отборы.Вставить("ЭтоГруппа", Ложь);
- ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаСписка", ПараметрыОтбора);
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("Отбор", Отборы);
+ ПараметрыФормы.Вставить("Отображение", "Список");
+ ПараметрыФормы.Вставить("ПроверкаДополнительныхОтчетовИОбработок", Истина);
+
+ ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаСписка", ПараметрыФормы);
КонецПроцедуры
&НаКлиенте
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Form.form
index 790e137a1..7d91036bc 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Form.form
@@ -151,10 +151,6 @@
ruБыстрые отборы
-
- ru
- Быстрые отборы
- БыстрыеОтборыExtendedTooltip32
@@ -265,10 +261,6 @@
ruКнопки добавления
-
- ru
- Кнопки добавления
- КнопкиДобавленияExtendedTooltip36
@@ -343,12 +335,8 @@
ru
- Группа загрузить выгрузить
+ Загрузить выгрузить
-
- ru
- Группа загрузить выгрузить
- ГруппаЗагрузитьВыгрузитьРасширеннаяПодсказка100
@@ -450,12 +438,8 @@
ru
- Группа изменить
+ Изменить
-
- ru
- Группа изменить
- ГруппаИзменитьРасширеннаяПодсказка104
@@ -480,10 +464,6 @@
ruКоманды формы
-
- ru
- Команды формы
- КомандыФормыExtendedTooltip40
@@ -642,10 +622,6 @@
ruКомандная панель
-
- ru
- Командная панель
- КоманднаяПанельExtendedTooltip35
@@ -664,6 +640,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -1107,10 +1087,6 @@
ruКнопки добавления
-
- ru
- Кнопки добавления
- КнопкиДобавленияМенюРасширеннаяПодсказка112
@@ -1320,12 +1296,8 @@
ru
- Группа изменить меню
+ Изменить меню
-
- ru
- Группа изменить меню
- ГруппаИзменитьМенюРасширеннаяПодсказка108
@@ -1400,12 +1372,8 @@
ru
- Группа загрузить выгрузить меню
+ Загрузить выгрузить меню
-
- ru
- Группа загрузить выгрузить меню
- ГруппаЗагрузитьВыгрузитьМенюРасширеннаяПодсказка102
@@ -1443,9 +1411,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl
index cf24358e7..25b9b7f7a 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаСписка/Module.bsl
@@ -19,7 +19,7 @@
Элементы.Список.Отображение = ОтображениеТаблицы[Параметры.Отображение];
КонецЕсли;
- СписокВыбора = Элементы.ПубликацияОтбор.СписокВыбора;
+ СписокВыбораПубликаций = Элементы.ПубликацияОтбор.СписокВыбора;
ВидИспользуется = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Используется;
ВидОтключена = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена;
@@ -32,24 +32,27 @@
Если ДоступныеВидыПубликации.Найти(ВидРежимОтладки) <> Неопределено Тогда
ВсеПубликацииКромеНеиспользующихся.Добавить(ВидРежимОтладки);
КонецЕсли;
-
Если ВсеПубликацииКромеНеиспользующихся.Количество() > 1 Тогда
-
ПредставлениеМассива = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 или %2'"),
Строка(ВсеПубликацииКромеНеиспользующихся[0]),
Строка(ВсеПубликацииКромеНеиспользующихся[1]));
-
- СписокВыбора.Добавить(1, ПредставлениеМассива);
-
+ СписокВыбораПубликаций.Добавить(1, ПредставлениеМассива);
КонецЕсли;
-
Для Каждого ЗначениеПеречисления Из Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок Цикл
Если ДоступныеВидыПубликации.Найти(ЗначениеПеречисления) <> Неопределено Тогда
- СписокВыбора.Добавить(ЗначениеПеречисления, Строка(ЗначениеПеречисления));
+ СписокВыбораПубликаций.Добавить(ЗначениеПеречисления, Строка(ЗначениеПеречисления));
КонецЕсли;
КонецЦикла;
+ Если Параметры.Отбор.Свойство("Публикация") Тогда
+ ПубликацияОтбор = Параметры.Отбор.Публикация;
+ Параметры.Отбор.Удалить("Публикация");
+ Если СписокВыбораПубликаций.НайтиПоЗначению(ПубликацияОтбор) = Неопределено Тогда
+ ПубликацияОтбор = Неопределено;
+ КонецЕсли;
+ КонецЕсли;
+
СписокВыбора = Элементы.ВидОтбор.СписокВыбора;
СписокВыбора.Добавить(1, НСтр("ru = 'Только отчеты'"));
СписокВыбора.Добавить(2, НСтр("ru = 'Только обработки'"));
@@ -78,13 +81,21 @@
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ВыгрузитьВФайл", "Видимость", ПравоДобавления);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ВыгрузитьВФайлМеню", "Видимость", ПравоДобавления);
- ПрофилиИспользуются = Не ПолучитьФункциональнуюОпцию("ИспользуютсяПрофилиБезопасности");
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме");
+ ИспользуютсяПрофилиБезопасности = МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности();
+ Иначе
+ ИспользуютсяПрофилиБезопасности = Ложь;
+ КонецЕсли;
+
+ ПрофилиИспользуются = Не ИспользуютсяПрофилиБезопасности;
Элементы.ИзменитьПометкуУдаленияБезПрофилей.Видимость = Не ПрофилиИспользуются;
Элементы.ИзменитьПометкуУдаленияБезПрофилейМеню.Видимость = Не ПрофилиИспользуются;
Элементы.ИзменитьПометкуУдаленияСПрофилями.Видимость = ПрофилиИспользуются;
Элементы.ИзменитьПометкуУдаленияСПрофилямиМеню.Видимость = ПрофилиИспользуются;
- Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов") Тогда
+ Если Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов")
+ Или Не ПравоДоступа("Изменение", Метаданные.Справочники.ДополнительныеОтчетыИОбработки) Тогда
Элементы.ИзменитьВыделенные.Видимость = Ложь;
Элементы.ИзменитьВыделенныеМеню.Видимость = Ложь;
КонецЕсли;
@@ -98,10 +109,12 @@
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
- ПубликацияОтбор = Настройки.Получить("ПубликацияОтбор");
- ВидОтбор = Настройки.Получить("ВидОтбор");
- Список.Параметры.УстановитьЗначениеПараметра("ПубликацияОтбор", ПубликацияОтбор);
- Список.Параметры.УстановитьЗначениеПараметра("ВидОтбор", ВидОтбор);
+ Если Не ЗначениеЗаполнено(ПубликацияОтбор) Тогда
+ ПубликацияОтбор = Настройки.Получить("ПубликацияОтбор");
+ Список.Параметры.УстановитьЗначениеПараметра("ПубликацияОтбор", ПубликацияОтбор);
+ КонецЕсли;
+ ВидОтбор = Настройки.Получить("ВидОтбор");
+ Список.Параметры.УстановитьЗначениеПараметра("ВидОтбор", ВидОтбор);
КонецПроцедуры
#КонецОбласти
@@ -223,17 +236,27 @@
&НаСервере
Процедура УстановитьУсловноеОформление()
- Инструкция = СтандартныеПодсистемыСервер.ИнструкцияУсловногоОформления();
- Инструкция.Поля = "Список";
- Инструкция.Отборы.Вставить("Список.Публикация", Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.РежимОтладки);
- Инструкция.Оформление.Вставить("ЦветТекста", ЦветаСтиля.ПросроченныеДанныеЦвет);
- СтандартныеПодсистемыСервер.ДобавитьЭлементУсловногоОформления(ЭтотОбъект, Инструкция);
- Инструкция = СтандартныеПодсистемыСервер.ИнструкцияУсловногоОформления();
- Инструкция.Поля = "Список";
- Инструкция.Отборы.Вставить("Список.Публикация", Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена);
- Инструкция.Оформление.Вставить("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
- СтандартныеПодсистемыСервер.ДобавитьЭлементУсловногоОформления(ЭтотОбъект, Инструкция);
+ Список.УсловноеОформление.Элементы.Очистить();
+ //
+ Элемент = Список.УсловноеОформление.Элементы.Добавить();
+
+ ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Публикация");
+ ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
+ ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.РежимОтладки;
+
+ Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПросроченныеДанныеЦвет);
+ //
+ Элемент = Список.УсловноеОформление.Элементы.Добавить();
+
+ ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Публикация");
+ ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
+ ОтборЭлемента.ПравоеЗначение = Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена;
+
+ Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
+
КонецПроцедуры
&НаКлиенте
@@ -274,7 +297,6 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ДополнительныеОтчетыИОбработки");
ЭлементБлокировки.УстановитьЗначение("Ссылка", ДополнительныйОтчетИлиОбработка);
- ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();
КонецЦикла;
@@ -345,32 +367,40 @@
ЗаблокироватьОбъектыИСформироватьЗапросыРазрешений(Контекст);
Обработчик = Новый ОписаниеОповещения("СписокИзменитьПометкуУдаленияПослеПодтвержденияЗапросов", ЭтотОбъект, Контекст);
- РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Контекст.Запросы, ЭтотОбъект, Обработчик);
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент");
+ МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Контекст.Запросы, ЭтотОбъект, Обработчик);
+ Иначе
+ ВыполнитьОбработкуОповещения(Обработчик, КодВозвратаДиалога.ОК);
+ КонецЕсли;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗаблокироватьОбъектыИСформироватьЗапросыРазрешений(Контекст)
ЗаблокироватьДанныеДляРедактирования(Контекст.Ссылка, , Контекст.ИдентификаторФормы);
- Объект = Контекст.Ссылка.ПолучитьОбъект();
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ Объект = Контекст.Ссылка.ПолучитьОбъект();
+
+ Контекст.Запросы = ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.ЗапросыРазрешенийДополнительнойОбработки(
+ Объект,
+ Объект.Разрешения.Выгрузить(),
+ ,
+ Не Контекст.ПометкаУдаления);
+ КонецЕсли;
- Контекст.Запросы = ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.ЗапросыРазрешенийДополнительнойОбработки(
- Объект,
- Объект.Разрешения.Выгрузить(),
- ,
- Не Контекст.ПометкаУдаления);
КонецПроцедуры
&НаКлиенте
Процедура СписокИзменитьПометкуУдаленияПослеПодтвержденияЗапросов(Ответ, Контекст) Экспорт
- МенятьПометку = (Ответ = КодВозвратаДиалога.ОК);
- РазблокироватьИИзменитьПометкуУдаленияОбъектов(Контекст, МенятьПометку);
+ ИзменятьПометку = (Ответ = КодВозвратаДиалога.ОК);
+ РазблокироватьИИзменитьПометкуУдаленияОбъектов(Контекст, ИзменятьПометку);
Элементы.Список.Обновить();
КонецПроцедуры
&НаСервереБезКонтекста
-Процедура РазблокироватьИИзменитьПометкуУдаленияОбъектов(Контекст, МенятьПометку)
- Если МенятьПометку Тогда
+Процедура РазблокироватьИИзменитьПометкуУдаленияОбъектов(Контекст, ИзменятьПометку)
+ Если ИзменятьПометку Тогда
Объект = Контекст.Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Не Контекст.ПометкаУдаления);
Объект.Записать();
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Form.form
index 7f486dbff..1dd0703a7 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Form.form
@@ -136,12 +136,8 @@
ru
- Группа безопасный режим глобальный
+ Безопасный режим глобальный
-
- ru
- Группа безопасный режим глобальный
- ГруппаБезопасныйРежимГлобальныйРасширеннаяПодсказка383
@@ -168,12 +164,8 @@
ru
- Группа наименование режим работы
+ Наименование режим работы
-
- ru
- Группа наименование режим работы
- ГруппаНаименованиеРежимРаботыРасширеннаяПодсказка385
@@ -255,7 +247,7 @@
ru
- Группа публикация ответственный
+ Публикация ответственныйГруппаПубликацияОтветственныйExtendedTooltip
@@ -420,7 +412,7 @@
ru
- Группа размещение
+ РазмещениеГруппаРазмещениеРасширеннаяПодсказка
@@ -626,10 +618,6 @@
ruКомандная панель объект команды
-
- ru
- Командная панель объект команды
- КоманднаяПанельОбъектКомандыРасширеннаяПодсказка406
@@ -648,6 +636,10 @@
ОбъектКоманды147
+
+ ru
+ Объект команды
+ truetrue
@@ -1080,9 +1072,6 @@
Autotruetrue
- None
- None
- Nonetrue
@@ -1195,10 +1184,6 @@
ruВарианты скрыть до записи
-
- ru
- Варианты скрыть до записи
- trueВариантыСкрытьДоЗаписиExtendedTooltip
@@ -1222,6 +1207,10 @@
ВариантыДополнительногоОтчета89
+
+ ru
+ Варианты дополнительного отчета
+ truetrue
@@ -1729,9 +1718,6 @@
CommonPicture.ПиктограммыЭлементов
- None
- None
- Nonetrue
@@ -1744,10 +1730,6 @@
ruВарианты показать
-
- ru
- Варианты показать
- trueВариантыПоказатьExtendedTooltip
@@ -1775,10 +1757,6 @@
ruСтраницы варианты
-
- ru
- Страницы варианты
- trueСтраницыВариантыExtendedTooltip
@@ -1916,10 +1894,6 @@
ruСтраница персональный профиль безопасности
-
- ru
- Страница персональный профиль безопасности
- СтраницаПерсональныйПрофильБезопасностиРасширеннаяПодсказка290
@@ -1988,10 +1962,6 @@
ruСтраница небезопасный режим с разрешениями
-
- ru
- Страница небезопасный режим с разрешениями
- СтраницаНебезопасныйРежимСРазрешениямиРасширеннаяПодсказка294
@@ -2059,10 +2029,6 @@
ruСтраница безопасный режим с разрешениями
-
- ru
- Страница безопасный режим с разрешениями
- СтраницаБезопасныйРежимСРазрешениямиРасширеннаяПодсказка292
@@ -2089,10 +2055,6 @@
ruСтраницы безопасный режим с разрешениями
-
- ru
- Страницы безопасный режим с разрешениями
- СтраницыБезопасныйРежимСРазрешениямиРасширеннаяПодсказка264
@@ -2115,12 +2077,8 @@
ru
- Группа безопасный режим с разрешениями
+ Безопасный режим с разрешениями
-
- ru
- Группа безопасный режим с разрешениями
- ГруппаБезопасныйРежимСРазрешениямиРасширеннаяПодсказка288
@@ -2200,10 +2158,6 @@
ruРазрешения (режим совместимости разрешений "Версия 2.1.3")
-
- ru
- Страница разрешения версия 2 1 3
- СтраницаРазрешенияВерсия_2_1_3РасширеннаяПодсказка187
@@ -2282,10 +2236,6 @@
ruРазрешения (режим совместимости разрешений "Версия 2.2.3")
-
- ru
- Страница разрешения версия 2 2 2
- СтраницаРазрешенияВерсия_2_2_2РасширеннаяПодсказка251
@@ -2310,12 +2260,8 @@
ru
- Группа страницы режимы совместимости разрешений
+ Страницы режимы совместимости разрешений
-
- ru
- Группа страницы режимы совместимости разрешений
- ГруппаСтраницыРежимыСовместимостиРазрешенийРасширеннаяПодсказка262
@@ -2384,12 +2330,8 @@
ru
- Группа включение профилей безопасности
+ Включение профилей безопасности
-
- ru
- Группа включение профилей безопасности
- ГруппаВключениеПрофилейБезопасностиРасширеннаяПодсказка305
@@ -2474,6 +2416,10 @@
КомандыЗагрузки324
+
+ ru
+ Команды загрузки
+ truetrue
@@ -2644,9 +2590,6 @@
СписокКомандЗагрузки.Picture
- None
- None
- Nonetruetrue
@@ -3247,10 +3190,6 @@
ruКоманды выгрузки загрузки
-
- ru
- Команды выгрузки загрузки
- КомандыВыгрузкиЗагрузкиРасширеннаяПодсказка334
@@ -3351,10 +3290,6 @@
ruКоманды формы
-
- ru
- Команды формы
- КомандыФормыРасширеннаяПодсказка256
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
index cf384fbeb..2946f222b 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/Forms/ФормаЭлемента/Module.bsl
@@ -14,6 +14,13 @@
Возврат;
КонецЕсли;
+ Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма
+ И Не ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
+ Отказ = Истина;
+ ОбщегоНазначенияКлиентСервер.СообщитьПользователю(НСтр("ru = 'Работа с печатными формами не поддерживается.'"));
+ Возврат;
+ КонецЕсли;
+
// Проверка возможности загрузки новых обработок в информационную базу.
ЭтоНовый = Объект.Ссылка.Пустая();
ПравоДобавления = ДополнительныеОтчетыИОбработки.ПравоДобавления();
@@ -200,8 +207,10 @@
ЗаполнитьКоманды();
УстановитьВидимостьДоступность();
- Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма Тогда
- ВыполнитьЗаменуКомандПечати();
+ Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма
+ И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
+ МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
+ МодульУправлениеПечатью.ОтключитьКомандыПечати(ВыбранныеОбъектыНазначения().ВыгрузитьЗначения(), ОтключаемыеКоманды().ВыгрузитьЗначения());
КонецЕсли;
КонецПроцедуры
@@ -260,16 +269,8 @@
Если Ссылка = "int://sp-on" Тогда
- ОткрытьФорму(
- "Обработка.НастройкаРазрешенийНаИспользованиеВнешнихРесурсов.Форма.НастройкиИспользованияПрофилейБезопасности",
- ,
- ,
- ,
- ,
- ,
- ,
- РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
-
+ МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент");
+ МодульРаботаВБезопасномРежимеКлиент.ОткрытьДиалогНастройкиИспользованияПрофилейБезопасности();
СтандартнаяОбработка = Ложь;
КонецЕсли;
@@ -473,6 +474,20 @@
Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);
+ //
+
+ Элемент = УсловноеОформление.Элементы.Добавить();
+
+ ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
+ ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ОбъектКомандыРегламентноеЗаданиеПредставление.Имя);
+
+ ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
+ ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Команды.РегламентноеЗаданиеИспользование");
+ ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
+ ОтборЭлемента.ПравоеЗначение = Ложь;
+
+ Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ТекстЗапрещеннойЯчейкиЦвет);
+
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
@@ -480,8 +495,16 @@
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи)
- Запросы = ЗапросыОбновленияРазрешений();
- РаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, Новый ОписаниеОповещения("ПродолжитьЗаписьНаКлиенте", ЭтотОбъект, ЗакрытьПослеЗаписи));
+
+ Обработчик = Новый ОписаниеОповещения("ПродолжитьЗаписьНаКлиенте", ЭтотОбъект, ЗакрытьПослеЗаписи);
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ Запросы = ЗапросыОбновленияРазрешений();
+ МодульРаботаВБезопасномРежимеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("РаботаВБезопасномРежимеКлиент");
+ МодульРаботаВБезопасномРежимеКлиент.ПрименитьЗапросыНаИспользованиеВнешнихРесурсов(Запросы, ЭтотОбъект, Обработчик);
+ Иначе
+ ВыполнитьОбработкуОповещения(Обработчик, КодВозвратаДиалога.ОК);
+ КонецЕсли;
+
КонецПроцедуры
&НаКлиенте
@@ -509,7 +532,7 @@
Функция ЗапросыОбновленияРазрешений()
Возврат ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.ЗапросыРазрешенийДополнительнойОбработки(
- Объект, ПолучитьТаблицуРазрешений());
+ Объект, РазрешенияПрофиляБезопасности());
КонецФункции
@@ -523,7 +546,7 @@
&НаКлиенте
Процедура ОбновлениеИзФайлаЗапуск()
Оповещение = Новый ОписаниеОповещения("ОбновлениеИзФайлаПослеПодтверждения", ЭтотОбъект);
- ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемДОИО");
+ ПараметрыФормы = Новый Структура("Ключ", "ПередДобавлениемДополнительногоОтчетаИлиОбработки");
ОткрытьФорму("ОбщаяФорма.ПредупреждениеБезопасности", ПараметрыФормы, , , , , Оповещение);
КонецПроцедуры
@@ -804,11 +827,8 @@
Возврат;
КонецЕсли;
- Если ИзмененФлажок Тогда
- Если НЕ ЭлементКоманда.РегламентноеЗаданиеИспользование Тогда
- ЭлементКоманда.РегламентноеЗаданиеПредставление = ПредставлениеОтключенногоРасписания();
- Возврат;
- КонецЕсли;
+ Если ИзмененФлажок И Не ЭлементКоманда.РегламентноеЗаданиеИспользование Тогда
+ Возврат;
КонецЕсли;
Если ЭлементКоманда.РегламентноеЗаданиеРасписание.Количество() > 0 Тогда
@@ -821,9 +841,10 @@
РасписаниеКоманды = Новый РасписаниеРегламентногоЗадания;
КонецЕсли;
- ДополнительныеПараметры = Новый Структура;
- ДополнительныеПараметры.Вставить("ЭлементКоманда", ЭлементКоманда);
- Обработчик = Новый ОписаниеОповещения("ИзменитьРегламентноеЗаданиеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
+ Контекст = Новый Структура;
+ Контекст.Вставить("ЭлементКоманда", ЭлементКоманда);
+ Контекст.Вставить("ОтключитьФлажокПриОтменеРедактирования", ИзмененФлажок);
+ Обработчик = Новый ОписаниеОповещения("ПослеОкончанияРедактированияРасписания", ЭтотОбъект, Контекст);
РедактированиеРасписания = Новый ДиалогРасписанияРегламентногоЗадания(РасписаниеКоманды);
РедактированиеРасписания.Показать(Обработчик);
@@ -831,22 +852,29 @@
КонецПроцедуры
&НаКлиенте
-Процедура ИзменитьРегламентноеЗаданиеЗавершение(Расписание, ДополнительныеПараметры) Экспорт
+Процедура ПослеОкончанияРедактированияРасписания(Расписание, Контекст) Экспорт
+ ЭлементКоманда = Контекст.ЭлементКоманда;
Если Расписание = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- ЭлементКоманда = ДополнительныеПараметры.ЭлементКоманда;
- ЭлементКоманда.РегламентноеЗаданиеРасписание.Очистить();
- ЭлементКоманда.РегламентноеЗаданиеРасписание.Добавить(Расписание);
- ЭлементКоманда.РегламентноеЗаданиеПредставление = Строка(Расписание);
-
- Если ЭлементКоманда.РегламентноеЗаданиеПредставление = ПредставлениеПустогоРасписания() Тогда
- ЭлементКоманда.РегламентноеЗаданиеПредставление = ПредставлениеОтключенногоРасписания();
- ЭлементКоманда.РегламентноеЗаданиеИспользование = Ложь;
- Модифицированность = Истина;
+ Если Контекст.ОтключитьФлажокПриОтменеРедактирования Тогда
+ ЭлементКоманда.РегламентноеЗаданиеИспользование = Ложь;
+ КонецЕсли;
Иначе
- ЭлементКоманда.РегламентноеЗаданиеИспользование = Истина;
+ ЭлементКоманда.РегламентноеЗаданиеРасписание.Очистить();
+ ЭлементКоманда.РегламентноеЗаданиеРасписание.Добавить(Расписание);
+ Если ДополнительныеОтчетыИОбработкиКлиентСервер.РасписаниеЗадано(Расписание) Тогда
+ Модифицированность = Истина;
+ ЭлементКоманда.РегламентноеЗаданиеИспользование = Истина;
+ ЭлементКоманда.РегламентноеЗаданиеПредставление = СтандартныеПодсистемыКлиентСервер.ПредставлениеРасписания(Расписание);
+ Иначе
+ ЭлементКоманда.РегламентноеЗаданиеПредставление = НСтр("ru = 'Не заполнено'");
+ Если ЭлементКоманда.РегламентноеЗаданиеИспользование Тогда
+ ЭлементКоманда.РегламентноеЗаданиеИспользование = Ложь;
+ ПоказатьОповещениеПользователя(
+ НСтр("ru = 'Запуск по расписанию отключен'"),
+ ,
+ НСтр("ru = 'Расписание не заполнено'"));
+ КонецЕсли;
+ КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -958,7 +986,7 @@
ЗаголовокСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Выполняется команда ""%1""'"),
СтрокаТаблицыКоманд.Представление);
- Состояние(ЗаголовокСостояния + "...", , , БиблиотекаКартинок.ДлительнаяОперация48);
+ ПоказатьОповещениеПользователя(ЗаголовокСостояния + "...", , , БиблиотекаКартинок.ДлительнаяОперация48);
ДлительнаяОперация = НачатьВыполнениеСервернойКомандыВФоне(ВыполняемаяКоманда, УникальныйИдентификатор);
@@ -995,16 +1023,6 @@
////////////////////////////////////////////////////////////////////////////////
// Клиент, Сервер
-&НаКлиентеНаСервереБезКонтекста
-Функция ПредставлениеПустогоРасписания()
- Возврат Строка(Новый РасписаниеРегламентногоЗадания);
-КонецФункции
-
-&НаКлиентеНаСервереБезКонтекста
-Функция ПредставлениеОтключенногоРасписания()
- Возврат НСтр("ru = 'Расписание не задано'");
-КонецФункции
-
&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеБыстрогоДоступаПользователей(КоличествоПользователей)
Если КоличествоПользователей = 0 Тогда
@@ -1172,28 +1190,37 @@
КонецЦикла;
КонецЕсли;
- КоличествоРазрешений = ПолучитьТаблицуРазрешений().Количество();
+ КоличествоРазрешений = РазрешенияПрофиляБезопасности().Количество();
РежимСовместимостиРазрешений = Объект.РежимСовместимостиРазрешений;
БезопасныйРежим = Объект.БезопасныйРежим;
- Если ПолучитьФункциональнуюОпцию("РаботаВМоделиСервиса") Или ПолучитьФункциональнуюОпцию("ИспользуютсяПрофилиБезопасности") Тогда
+
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ МодульРаботаВБезопасномРежиме = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежиме");
+ ИспользуютсяПрофилиБезопасности = МодульРаботаВБезопасномРежиме.ИспользуютсяПрофилиБезопасности();
+ Иначе
+ ИспользуютсяПрофилиБезопасности = Ложь;
+ КонецЕсли;
+
+ Если ПолучитьФункциональнуюОпцию("РаботаВМоделиСервиса") Или ИспользуютсяПрофилиБезопасности Тогда
+ МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный");
Если РежимСовместимостиРазрешений = Перечисления.РежимыСовместимостиРазрешенийДополнительныхОтчетовИОбработок.Версия_2_1_3 Тогда
- Если БезопасныйРежим И КоличествоРазрешений > 0 И ПолучитьФункциональнуюОпцию("ИспользуютсяПрофилиБезопасности") Тогда
+ Если БезопасныйРежим И КоличествоРазрешений > 0 И ИспользуютсяПрофилиБезопасности Тогда
Если ЭтоНовый Тогда
БезопасныйРежим = "";
Иначе
- БезопасныйРежим = РаботаВБезопасномРежимеСлужебный.РежимПодключенияВнешнегоМодуля(Объект.Ссылка);
+ БезопасныйРежим = МодульРаботаВБезопасномРежимеСлужебный.РежимПодключенияВнешнегоМодуля(Объект.Ссылка);
КонецЕсли;
КонецЕсли;
Иначе
Если КоличествоРазрешений = 0 Тогда
БезопасныйРежим = Истина;
Иначе
- Если ПолучитьФункциональнуюОпцию("ИспользуютсяПрофилиБезопасности") Тогда
+ Если ИспользуютсяПрофилиБезопасности Тогда
Если ЭтоНовый Тогда
БезопасныйРежим = "";
Иначе
- БезопасныйРежим = РаботаВБезопасномРежимеСлужебный.РежимПодключенияВнешнегоМодуля(Объект.Ссылка);
+ БезопасныйРежим = МодульРаботаВБезопасномРежимеСлужебный.РежимПодключенияВнешнегоМодуля(Объект.Ссылка);
КонецЕсли;
Иначе
БезопасныйРежим = Ложь;
@@ -1239,11 +1266,19 @@
БезопасныйРежим);
Иначе
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = '%1 не является корректным режимом подключения для дополнительных отчетов и обработок, требующих разрешений на использование профилей безопасности!'"),
+ НСтр("ru = '%1 не является корректным режимом подключения для дополнительных отчетов и обработок,
+ |требующих разрешений на использование профилей безопасности.'"),
БезопасныйРежим);
КонецЕсли;
- Если БезопасныйРежим = Ложь И Не ПолучитьФункциональнуюОпцию("ИспользуютсяПрофилиБезопасности") И РаботаВБезопасномРежимеСлужебный.ДоступнаНастройкаПрофилейБезопасности() Тогда
+ Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПрофилиБезопасности") Тогда
+ МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный");
+ ДоступнаНастройкаПрофилейБезопасности = МодульРаботаВБезопасномРежимеСлужебный.ДоступнаНастройкаПрофилейБезопасности();
+ Иначе
+ ДоступнаНастройкаПрофилейБезопасности = Ложь;
+ КонецЕсли;
+
+ Если БезопасныйРежим = Ложь И Не ИспользуютсяПрофилиБезопасности И ДоступнаНастройкаПрофилейБезопасности Тогда
Элементы.ГруппаВключениеПрофилейБезопасности.Видимость = Истина;
Иначе
Элементы.ГруппаВключениеПрофилейБезопасности.Видимость = Ложь;
@@ -1255,35 +1290,28 @@
Элементы.СтраницыВариантыКомандыРазрешения.ОтображениеСтраниц = ОтображениеСтраницФормы[?(КоличествоВидимыхЗакладок > 1, "ЗакладкиСверху", "Нет")];
+ ПредставлениеНазначения = "";
Если ЭтоГлобальнаяОбработка Тогда
- ПредставлениеНазначения = НСтр("ru = '<Не задано>'");
- Если Объект.Разделы.Количество() > 0 Тогда
- ПредставлениеНазначения = "";
- Для Каждого СтрокаРаздел Из Объект.Разделы Цикл
- Если ПредставлениеНазначения <> "" Тогда
- ПредставлениеНазначения = ПредставлениеНазначения + ", ";
- КонецЕсли;
- ПредставлениеНазначения = ПредставлениеНазначения + ДополнительныеОтчетыИОбработки.ПредставлениеРаздела(СтрокаРаздел.Раздел);
- КонецЦикла;
- КонецЕсли;
+ Для Каждого СтрокаРаздел Из Объект.Разделы Цикл
+ ПредставлениеРаздела = ДополнительныеОтчетыИОбработки.ПредставлениеРаздела(СтрокаРаздел.Раздел);
+ Если ПредставлениеНазначения = "" Тогда
+ ПредставлениеНазначения = ПредставлениеРаздела;
+ Иначе
+ ПредставлениеНазначения = ПредставлениеНазначения + ", " + ПредставлениеРаздела;
+ КонецЕсли;
+ КонецЦикла;
Иначе
- Если Объект.Назначение.Количество() = 0 Тогда
- ПредставлениеНазначения = НСтр("ru = 'Не определено'");
- Иначе
- ПредставлениеНазначения = "";
- Для Каждого СтрокаНазначение Из Объект.Назначение Цикл
- Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(СтрокаНазначение.ОбъектНазначения, "Наименование, ПометкаУдаления");
- Если Реквизиты.ПометкаУдаления Тогда
- Продолжить;
- КонецЕсли;
- ПредставлениеОбъекта = Реквизиты.Наименование;
- Если ПредставлениеНазначения = "" Тогда
- ПредставлениеНазначения = ПредставлениеОбъекта;
- Иначе
- ПредставлениеНазначения = ПредставлениеНазначения + ", " + ПредставлениеОбъекта;
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
+ Для Каждого СтрокаНазначение Из Объект.Назначение Цикл
+ ПредставлениеОМ = ДополнительныеОтчетыИОбработки.ПредставлениеОбъектаМетаданных(СтрокаНазначение.ОбъектНазначения);
+ Если ПредставлениеНазначения = "" Тогда
+ ПредставлениеНазначения = ПредставлениеОМ;
+ Иначе
+ ПредставлениеНазначения = ПредставлениеНазначения + ", " + ПредставлениеОМ;
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ Если ПредставлениеНазначения = "" Тогда
+ ПредставлениеНазначения = НСтр("ru = 'Не определено'");
КонецЕсли;
Элементы.ОбъектКомандыБыстрыйДоступПредставление.Видимость = ЭтоГлобальнаяОбработка;
@@ -1334,7 +1362,7 @@
&НаСервере
Процедура СформироватьПредставленияРазрешений(Знач ВидРазрешения)
- ТаблицаРазрешений = ПолучитьТаблицуРазрешений();
+ ТаблицаРазрешений = РазрешенияПрофиляБезопасности();
СтрокаРазрешения = ТаблицаРазрешений.Найти(ВидРазрешения, "ВидРазрешения");
Если СтрокаРазрешения <> Неопределено Тогда
ПараметрыРазрешения = СтрокаРазрешения.Параметры.Получить();
@@ -1357,16 +1385,18 @@
Разрешения = Новый Массив();
+ МодульРаботаВБезопасномРежимеСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаВБезопасномРежимеСлужебный");
+
Для Каждого Строка Из ТаблицаРазрешений Цикл
- Разрешение = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(РаботаВБезопасномРежимеСлужебный.Пакет(), Строка.ВидРазрешения));
+ Разрешение = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип(МодульРаботаВБезопасномРежимеСлужебный.Пакет(), Строка.ВидРазрешения));
ЗаполнитьЗначенияСвойств(Разрешение, Строка.Параметры.Получить());
Разрешения.Добавить(Разрешение);
КонецЦикла;
- Свойства = РаботаВБезопасномРежимеСлужебный.СвойстваДляРегистраРазрешений(Объект.Ссылка);
+ Свойства = МодульРаботаВБезопасномРежимеСлужебный.СвойстваДляРегистраРазрешений(Объект.Ссылка);
УстановитьПривилегированныйРежим(Истина);
- ПредставлениеРазрешений_2_2_2 = РаботаВБезопасномРежимеСлужебный.ПредставлениеРазрешенийНаИспользованиеВнешнихРесурсов(
+ ПредставлениеРазрешений_2_2_2 = МодульРаботаВБезопасномРежимеСлужебный.ПредставлениеРазрешенийНаИспользованиеВнешнихРесурсов(
Свойства.Тип, Свойства.Идентификатор, Свойства.Тип, Свойства.Идентификатор, Разрешения);
УстановитьПривилегированныйРежим(Ложь);
@@ -1382,9 +1412,12 @@
Объект.Команды.Сортировать("Представление");
- КомандыПечатиОбъекта = УправлениеПечатью.СоздатьКоллекциюКомандПечати();
- Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма И Объект.Назначение.Количество() = 1 Тогда
- КомандыПечатиОбъекта = УправлениеПечатью.СтандартныеКомандыПечатиОбъекта(Объект.Назначение[0].ОбъектНазначения);
+ КомандыПечатиОбъекта = Неопределено;
+ Если Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма
+ И Объект.Назначение.Количество() = 1
+ И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
+ МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
+ КомандыПечатиОбъекта = МодульУправлениеПечатью.СтандартныеКомандыПечатиОбъекта(Объект.Назначение[0].ОбъектНазначения);
КонецЕсли;
Для Каждого ЭлементКоманда Из Объект.Команды Цикл
@@ -1412,29 +1445,21 @@
КонецЕсли;
Если ЗначениеЗаполнено(РегламентноеЗаданиеGUID) Тогда
- РегламентноеЗадание = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.НайтиЗадание(РегламентноеЗаданиеGUID);
-
+ УстановитьПривилегированныйРежим(Истина);
+ РегламентноеЗадание = РегламентныеЗаданияСервер.Задание(РегламентноеЗаданиеGUID);
Если РегламентноеЗадание <> Неопределено Тогда
-
- ПараметрыЗадания = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.ПолучитьПараметрыЗадания(РегламентноеЗадание);
-
ЭлементКоманда.РегламентноеЗаданиеGUID = РегламентноеЗаданиеGUID;
- ЭлементКоманда.РегламентноеЗаданиеПредставление = Строка(ПараметрыЗадания.Расписание);
- ЭлементКоманда.РегламентноеЗаданиеИспользование = ПараметрыЗадания.Использование;
- ЭлементКоманда.РегламентноеЗаданиеРасписание.Вставить(0, ПараметрыЗадания.Расписание);
-
- Если ЭлементКоманда.РегламентноеЗаданиеПредставление = ПредставлениеПустогоРасписания() Тогда
- ЭлементКоманда.РегламентноеЗаданиеИспользование = Ложь;
- КонецЕсли;
-
+ ЭлементКоманда.РегламентноеЗаданиеПредставление = СтандартныеПодсистемыКлиентСервер.ПредставлениеРасписания(РегламентноеЗадание.Расписание);
+ ЭлементКоманда.РегламентноеЗаданиеИспользование = РегламентноеЗадание.Использование;
+ ЭлементКоманда.РегламентноеЗаданиеРасписание.Вставить(0, РегламентноеЗадание.Расписание);
КонецЕсли;
+ УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
-
- Если НЕ ЭлементКоманда.РегламентноеЗаданиеИспользование Тогда
- ЭлементКоманда.РегламентноеЗаданиеПредставление = ПредставлениеОтключенногоРасписания();
+ Если Не ЗначениеЗаполнено(ЭлементКоманда.РегламентноеЗаданиеПредставление) Тогда
+ ЭлементКоманда.РегламентноеЗаданиеПредставление = НСтр("ru = 'Не заполнено'");
КонецЕсли;
ИначеЕсли Объект.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПечатнаяФорма Тогда
- Если Не ПустаяСтрока(ЭлементКоманда.ЗаменяемыеКоманды) Тогда
+ Если Не ПустаяСтрока(ЭлементКоманда.ЗаменяемыеКоманды) И КомандыПечатиОбъекта <> Неопределено Тогда
ИдентификаторыЗаменяемых = СтрРазделить(ЭлементКоманда.ЗаменяемыеКоманды, ",", Ложь);
ПредставлениеЗаменяемыхКоманд = "";
КоличествоЗаменяемых = 0;
@@ -1459,7 +1484,7 @@
КонецЕсли;
Иначе
ЭлементКоманда.РегламентноеЗаданиеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Не применимо для команд с вариантом запуска ""%1""'"),
+ НСтр("ru = 'Неприменимо для команд с вариантом запуска ""%1""'"),
Строка(ЭлементКоманда.ВариантЗапуска));
КонецЕсли;
КонецЦикла;
@@ -1488,7 +1513,7 @@
СхемаКД = ВнешнийОбъект.ПолучитьМакет(СхемаКДМетаданные.Имя);
Для Каждого ВариантНастроекКД Из СхемаКД.ВариантыНастроек Цикл
КлючВарианта = ВариантНастроекКД.Имя;
- ВариантСсылка = МодульВариантыОтчетов.ПолучитьСсылку(Объект.Ссылка, КлючВарианта);
+ ВариантСсылка = МодульВариантыОтчетов.ВариантОтчета(Объект.Ссылка, КлючВарианта);
Если ВариантСсылка <> Неопределено Тогда
Вариант = ВариантыДополнительногоОтчета.Добавить();
Вариант.КлючВарианта = КлючВарианта;
@@ -1500,7 +1525,7 @@
КонецЦикла;
Иначе
КлючВарианта = "";
- ВариантСсылка = МодульВариантыОтчетов.ПолучитьСсылку(Объект.Ссылка, КлючВарианта);
+ ВариантСсылка = МодульВариантыОтчетов.ВариантОтчета(Объект.Ссылка, КлючВарианта);
Если ВариантСсылка <> Неопределено Тогда
Вариант = ВариантыДополнительногоОтчета.Добавить();
Вариант.КлючВарианта = КлючВарианта;
@@ -1517,13 +1542,13 @@
Если Объект.ИспользуетХранилищеВариантов Тогда
Хранилище = ХранилищаНастроек["ХранилищеВариантовОтчетов"];
КлючОбъекта = Объект.Ссылка;
+ СписокНастроек = МодульВариантыОтчетов.КлючиВариантовОтчета(КлючОбъекта);
Иначе
Хранилище = ХранилищеВариантовОтчетов;
КлючОбъекта = "ВнешнийОтчет." + Объект.ИмяОбъекта;
+ СписокНастроек = Хранилище.ПолучитьСписок(КлючОбъекта);
КонецЕсли;
- СписокНастроек = Хранилище.ПолучитьСписок(КлючОбъекта);
-
Для Каждого ЭлементСписка Из СписокНастроек Цикл
Вариант = ВариантыДополнительногоОтчета.Добавить();
Вариант.КлючВарианта = ЭлементСписка.Значение;
@@ -1531,13 +1556,13 @@
Вариант.Пользовательский = Истина;
Вариант.ИндексКартинки = 3;
Если МодульВариантыОтчетов <> Неопределено Тогда
- Вариант.Ссылка = МодульВариантыОтчетов.ПолучитьСсылку(Объект.Ссылка, Вариант.КлючВарианта);
+ Вариант.Ссылка = МодульВариантыОтчетов.ВариантОтчета(Объект.Ссылка, Вариант.КлючВарианта);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
-Функция ПолучитьТаблицуРазрешений()
+Функция РазрешенияПрофиляБезопасности()
Возврат ПолучитьИзВременногоХранилища(АдресРазрешений);
@@ -1561,14 +1586,8 @@
&НаКлиенте
Процедура ОткрытьФормуНастроекПодменюПечать()
- ПараметрыОткрытия = Новый Структура;
- ПараметрыОткрытия.Вставить("Отбор", ВыбранныеОбъектыНазначения());
- ОткрытьФорму("ОбщаяФорма.НастройкаКомандПечати", ПараметрыОткрытия, , , , , , РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
-КонецПроцедуры
-
-&НаСервере
-Процедура ВыполнитьЗаменуКомандПечати()
- УправлениеПечатью.ОтключитьКомандыПечати(ВыбранныеОбъектыНазначения().ВыгрузитьЗначения(), ОтключаемыеКоманды().ВыгрузитьЗначения());
+ МодульУправлениеПечатьюСлужебныйКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюСлужебныйКлиент");
+ МодульУправлениеПечатьюСлужебныйКлиент.ОткрытьФормуНастроекПодменюПечать(ВыбранныеОбъектыНазначения());
КонецПроцедуры
&НаСервере
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
index aa7b9ac7c..f5e359410 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -19,6 +23,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl
index f5d882674..ecdda08c3 100644
--- a/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl
+++ b/SSL/src/Catalogs/ДополнительныеОтчетыИОбработки/ObjectModule.bsl
@@ -210,70 +210,55 @@
ПубликацияВключена = (Публикация <> Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена);
- // Регламентные задание необходимо изменять в привилегированном режиме.
+ // Регламентные задания необходимо изменять в привилегированном режиме.
УстановитьПривилегированныйРежим(Истина);
// Очистка заданий по командам, которые были удалены из таблицы.
- Если НЕ ЭтоНовый() Тогда
+ Если Не ЭтоНовый() Тогда
Для Каждого СтараяКоманда Из Ссылка.Команды Цикл
Если ЗначениеЗаполнено(СтараяКоманда.РегламентноеЗаданиеGUID)
И ТаблицаКоманд.Найти(СтараяКоманда.РегламентноеЗаданиеGUID, "РегламентноеЗаданиеGUID") = Неопределено Тогда
-
- Задание = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.НайтиЗадание(СтараяКоманда.РегламентноеЗаданиеGUID);
- Если Задание <> Неопределено Тогда
- ДополнительныеОтчетыИОбработкиРегламентныеЗадания.УдалитьЗадание(Задание);
- КонецЕсли;
-
+ РегламентныеЗаданияСервер.УдалитьЗадание(СтараяКоманда.РегламентноеЗаданиеGUID);
КонецЕсли;
КонецЦикла;
КонецЕсли;
// Актуализация набора регламентных заданий для записи их идентификаторов в табличную часть.
Для Каждого АктуальнаяКоманда Из ТаблицаКоманд Цикл
-
Команда = Команды.Найти(АктуальнаяКоманда.Идентификатор, "Идентификатор");
Если ПубликацияВключена И АктуальнаяКоманда.РегламентноеЗаданиеРасписание.Количество() > 0 Тогда
Расписание = АктуальнаяКоманда.РегламентноеЗаданиеРасписание[0].Значение;
- Использование = АктуальнаяКоманда.РегламентноеЗаданиеИспользование И РасписаниеЗадано(Расписание);
+ Использование = АктуальнаяКоманда.РегламентноеЗаданиеИспользование
+ И ДополнительныеОтчетыИОбработкиКлиентСервер.РасписаниеЗадано(Расписание);
Иначе
Расписание = Неопределено;
Использование = Ложь;
КонецЕсли;
- Задание = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.НайтиЗадание(АктуальнаяКоманда.РегламентноеЗаданиеGUID);
-
+ Задание = РегламентныеЗаданияСервер.Задание(АктуальнаяКоманда.РегламентноеЗаданиеGUID);
Если Задание = Неопределено Тогда // Не найдено
-
Если Использование Тогда
-
- Задание = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.СоздатьНовоеЗадание(
- ПредставлениеЗадания(АктуальнаяКоманда));
-
+ // Создать и зарегистрировать.
+ ПараметрыЗадания = Новый Структура;
+ ПараметрыЗадания.Вставить("Метаданные", Метаданные.РегламентныеЗадания.ЗапускДополнительныхОбработок);
+ ПараметрыЗадания.Вставить("Использование", Ложь);
+ Задание = РегламентныеЗаданияСервер.ДобавитьЗадание(ПараметрыЗадания);
ЗаданияДляОбновления.Вставить(АктуальнаяКоманда, Задание);
-
- // Создать и зарегистрировать
- Команда.РегламентноеЗаданиеGUID =
- ДополнительныеОтчетыИОбработкиРегламентныеЗадания.ПолучитьИдентификаторЗадания(
- Задание);
-
+ Команда.РегламентноеЗаданиеGUID = РегламентныеЗаданияСервер.УникальныйИдентификатор(Задание);
Иначе
// Действие не требуется
КонецЕсли;
-
Иначе // Найдено
-
Если Использование Тогда
- // Зарегистрировать
+ // Зарегистрировать.
ЗаданияДляОбновления.Вставить(АктуальнаяКоманда, Задание);
Иначе
- // Удалить
- ДополнительныеОтчетыИОбработкиРегламентныеЗадания.УдалитьЗадание(Задание);
+ // Удалить.
+ РегламентныеЗаданияСервер.УдалитьЗадание(АктуальнаяКоманда.РегламентноеЗаданиеGUID);
Команда.РегламентноеЗаданиеGUID = Новый УникальныйИдентификатор("00000000-0000-0000-0000-000000000000");
КонецЕсли;
-
КонецЕсли;
-
КонецЦикла;
ДополнительныеСвойства.Вставить("ЗаданияДляОбновления", ЗаданияДляОбновления);
@@ -281,59 +266,57 @@
КонецПроцедуры
Процедура ПриЗаписиГлобальнойОбработки(Отказ)
-
- Если Отказ ИЛИ НЕ ДополнительныеСвойства.Свойство("АктуальныеКоманды") Тогда
+ Если Отказ Или Не ДополнительныеСвойства.Свойство("АктуальныеКоманды") Тогда
Возврат;
КонецЕсли;
ПубликацияВключена = (Публикация <> Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена);
+ ТеснаяИнтеграцияСПодсистемойВМоделиСервиса = ДополнительныеОтчетыИОбработки.ИспользуетсяТеснаяИнтеграцияСПодсистемойВМоделиСервиса();
- // Регламентные задание необходимо изменять в привилегированном режиме.
+ // Регламентные задания необходимо изменять в привилегированном режиме.
УстановитьПривилегированныйРежим(Истина);
Для Каждого КлючИЗначение Из ДополнительныеСвойства.ЗаданияДляОбновления Цикл
-
Команда = КлючИЗначение.Ключ;
Задание = КлючИЗначение.Значение;
+ Изменения = Новый Структура;
+ Изменения.Вставить("Использование", Ложь);
+ Изменения.Вставить("Расписание", Неопределено);
+ Изменения.Вставить("Наименование", Лев(ПредставлениеЗадания(Команда), 120));
+
Если ПубликацияВключена И Команда.РегламентноеЗаданиеРасписание.Количество() > 0 Тогда
- Расписание = Команда.РегламентноеЗаданиеРасписание[0].Значение;
- Использование = Команда.РегламентноеЗаданиеИспользование И РасписаниеЗадано(Расписание);
- Иначе
- Расписание = Неопределено;
- Использование = Ложь;
+ Изменения.Расписание = Команда.РегламентноеЗаданиеРасписание[0].Значение;
+ Изменения.Использование = Команда.РегламентноеЗаданиеИспользование
+ И ДополнительныеОтчетыИОбработкиКлиентСервер.РасписаниеЗадано(Изменения.Расписание);
КонецЕсли;
- ПараметрыЗадания = Новый Массив;
- ПараметрыЗадания.Добавить(Ссылка);
- ПараметрыЗадания.Добавить(Команда.Идентификатор);
+ ПараметрыПроцедуры = Новый Массив;
+ ПараметрыПроцедуры.Добавить(Ссылка);
+ ПараметрыПроцедуры.Добавить(Команда.Идентификатор);
- ДополнительныеОтчетыИОбработкиРегламентныеЗадания.УстановитьПараметрыЗадания(
- Задание,
- Использование,
- Лев(ПредставлениеЗадания(Команда), 120),
- ПараметрыЗадания,
- Расписание);
+ Изменения.Вставить("Параметры", ПараметрыПроцедуры);
+ Если ТеснаяИнтеграцияСПодсистемойВМоделиСервиса Тогда
+ ИнтеграцияСТехнологиейСервиса.ПередОбновлениемЗадания(ЭтотОбъект, Команда, Задание, Изменения);
+ КонецЕсли;
+ Если Изменения <> Неопределено Тогда
+ РегламентныеЗаданияСервер.ИзменитьЗадание(Задание, Изменения);
+ КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПередУдалениемГлобальнойОбработки(Отказ)
-
- // Регламентные задание необходимо изменять в привилегированном режиме.
+ // Регламентные задания необходимо изменять в привилегированном режиме.
УстановитьПривилегированныйРежим(Истина);
+ // Удаление всех заданий.
Для Каждого Команда Из Команды Цикл
-
- Задание = ДополнительныеОтчетыИОбработкиРегламентныеЗадания.НайтиЗадание(
- Команда.РегламентноеЗаданиеGUID);
-
- Если Задание <> Неопределено Тогда
- ДополнительныеОтчетыИОбработкиРегламентныеЗадания.УдалитьЗадание(Задание);
+ Если ЗначениеЗаполнено(Команда.РегламентноеЗаданиеGUID) Тогда
+ РегламентныеЗаданияСервер.УдалитьЗадание(Команда.РегламентноеЗаданиеGUID);
КонецЕсли;
КонецЦикла;
-
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
@@ -356,12 +339,6 @@
+ СокрЛП(Команда.Представление));
КонецФункции
-Функция РасписаниеЗадано(Расписание)
-
- Возврат Строка(Расписание) <> Строка(Новый РасписаниеРегламентногоЗадания);
-
-КонецФункции
-
////////////////////////////////////////////////////////////////////////////////
// Назначаемые обработки
diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Form.form
index 516b95526..83eedd920 100644
--- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаСписка/Form.form
@@ -10,10 +10,6 @@
ruГруппа пользовательских настроек
-
- ru
- Группа пользовательских настроек
- ГруппаПользовательскихНастроекРасширеннаяПодсказка12
@@ -39,6 +35,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -236,9 +236,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Form.form
index 168a3466a..8287217a5 100644
--- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/Forms/ФормаЭлемента/Form.form
@@ -86,6 +86,10 @@
КомпоновщикНастроекНастройкиОтбор5
+
+ ru
+ Компоновщик настроек настройки отбор
+ truetrue
@@ -239,9 +243,6 @@
truetruetrue
- None
- None
- NonetrueAllfalse
diff --git a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
index 82c6d2e85..e2eac41cf 100644
--- a/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗакладкиВзаимодействий/ManagerModule.bsl
@@ -2,8 +2,9 @@
#Область ПрограммныйИнтерфейс
-////////////////////////////////////////////////////////////////////////////////
-// Групповое изменение объектов.
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые не рекомендуется редактировать
// с помощью обработки группового изменения реквизитов.
@@ -19,6 +20,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Form.form b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Form.form
index 39abe0ac3..55c10f6da 100644
--- a/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Form.form
+++ b/SSL/src/Catalogs/Заметки/Forms/ВсеЗаметки/Form.form
@@ -209,10 +209,6 @@
ruФильтры
-
- ru
- Фильтры
- ФильтрыExtendedTooltip34
@@ -244,10 +240,6 @@
ruГруппа пользовательских настроек
-
- ru
- Группа пользовательских настроек
- ГруппаПользовательскихНастроекРасширеннаяПодсказка44
@@ -280,10 +272,6 @@
ruКомандная панель
-
- ru
- Командная панель
- КоманднаяПанельExtendedTooltip38
@@ -303,6 +291,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -585,9 +577,6 @@
CommonPicture.КоллекцияЗаметки
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Form.form b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Form.form
index 0b8e3beaf..56065df65 100644
--- a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Form.form
+++ b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Form.form
@@ -16,10 +16,6 @@
ruГруппа пользовательских настроек
-
- ru
- Группа пользовательских настроек
- ГруппаПользовательскихНастроекРасширеннаяПодсказка44
@@ -52,10 +48,6 @@
ruКомандная панель
-
- ru
- Командная панель
- КоманднаяПанельРасширеннаяПодсказка42
@@ -75,6 +67,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -207,10 +203,6 @@
Lefttrue
-
- BeforeAddRow
- СписокПередНачаломДобавления
- СписокSearchString48
@@ -322,9 +314,6 @@
CommonPicture.КоллекцияЗаметки
- None
- None
- Nonetrue60
@@ -426,10 +415,6 @@
ruФильтры
-
- ru
- Фильтры
- ФильтрыExtendedTooltip38
diff --git a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl
index 6b486b165..bfe8bac9d 100644
--- a/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl
+++ b/SSL/src/Catalogs/Заметки/Forms/ЗаметкиПоПредмету/Module.bsl
@@ -48,17 +48,6 @@
#КонецОбласти
-#Область ОбработчикиСобытийТаблицыСписок
-
-&НаКлиенте
-Процедура СписокПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
- Отказ = Истина;
- ПараметрыФормы = Новый Структура("Предмет", Предмет);
- ОткрытьФорму("Справочник.Заметки.ФормаОбъекта", ПараметрыФормы);
-КонецПроцедуры
-
-#КонецОбласти
-
#Область СлужебныеПроцедурыИФункции
&НаСервере
diff --git a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Form.form b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Form.form
index 8d6f6e5d4..c674dabc5 100644
--- a/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Form.form
+++ b/SSL/src/Catalogs/Заметки/Forms/МоиЗаметки/Form.form
@@ -7,6 +7,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -118,10 +122,6 @@
ruСодержание
-
- ru
- Содержание
- 5false
@@ -499,9 +499,6 @@
CommonPicture.КоллекцияЗаметки
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Form.form
index 5ad43ed12..1ec3902a6 100644
--- a/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/Заметки/Forms/ФормаЭлемента/Form.form
@@ -89,12 +89,8 @@
ru
- Группа предмет
+ Предмет
-
- ru
- Группа предмет
- ГруппаПредметExtendedTooltip109
@@ -119,10 +115,10 @@
true
-
+ ruСодержание заметки
-
+
СодержаниеЗаметкиExtendedTooltip108
@@ -333,10 +329,6 @@
ruПараметры отображения
-
- ru
- Параметры отображения
- ПараметрыОтображенияExtendedTooltip113
@@ -443,10 +435,6 @@
ruИнформация об авторе
-
- ru
- Информация об авторе
- ИнформацияОбАвтореExtendedTooltip117
@@ -517,10 +505,6 @@
ruКомандная панель редактирования
-
- ru
- Командная панель редактирования
- КоманднаяПанельРедактированияExtendedTooltip107
diff --git a/SSL/src/Catalogs/Заметки/ManagerModule.bsl b/SSL/src/Catalogs/Заметки/ManagerModule.bsl
index 93707e88f..d097d8c2d 100644
--- a/SSL/src/Catalogs/Заметки/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Заметки/ManagerModule.bsl
@@ -2,8 +2,9 @@
#Область ПрограммныйИнтерфейс
-////////////////////////////////////////////////////////////////////////////////
-// Групповое изменение объектов.
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
@@ -20,6 +21,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
\ No newline at end of file
diff --git a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
index c870ef204..3b70fa857 100644
--- a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -9,10 +13,14 @@
// Массив - список имен реквизитов объекта.
Функция РеквизитыРедактируемыеВГрупповойОбработке() Экспорт
- Возврат ПрисоединенныеФайлы.РеквизитыРедактируемыеВГрупповойОбработке();
+ Возврат РаботаСФайлами.РеквизитыРедактируемыеВГрупповойОбработке();
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ЗапланированноеВзаимодействиеПрисоединенныеФайлы.mdo b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ЗапланированноеВзаимодействиеПрисоединенныеФайлы.mdo
index 7cf179756..5a8442195 100644
--- a/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ЗапланированноеВзаимодействиеПрисоединенныеФайлы.mdo
+++ b/SSL/src/Catalogs/ЗапланированноеВзаимодействиеПрисоединенныеФайлы/ЗапланированноеВзаимодействиеПрисоединенныеФайлы.mdo
@@ -116,6 +116,7 @@
Автор
+ CatalogRef.УчетныеЗаписиСинхронизацииФайловCatalogRef.Пользователи
@@ -153,6 +154,35 @@
IndexUse
+
+ ДатаЗаема
+
+ ru
+ Дата заема
+
+
+ Date
+
+
+
+ ru
+ ДЛФ=ДВ
+
+
+ ru
+ ДЛФ=ДВ
+
+
+ ru
+ Дата, когда файл был занят для редактирования
+
+ false
+
+
+
+ Use
+ Use
+ ДатаМодификацииУниверсальная
@@ -222,6 +252,7 @@
Отредактировал
+ CatalogRef.УчетныеЗаписиСинхронизацииФайловCatalogRef.Пользователи
@@ -373,6 +404,7 @@
Редактирует
+ CatalogRef.УчетныеЗаписиСинхронизацииФайловCatalogRef.Пользователи
@@ -486,15 +518,35 @@
Use
+
+ ХранитьВерсии
+
+ ru
+ Хранить версии
+
+
+ Boolean
+
+
+ ru
+ Добавлять версии файла при окончании редактирования. Если отключить, тогда будет хранится только последняя версия.
+
+ false
+
+
+
+ Use
+ Use
+
- ЭлектронныеПодписи
+ УдалитьЭлектронныеПодписиru
- электронные подписи
+ (не используется) электронные подписиru
@@ -699,10 +751,10 @@
- СертификатыШифрования
+ УдалитьСертификатыШифрованияru
- Сертификаты шифрования
+ (не используется) Сертификаты шифрованияru
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form
index 7aa319950..88e0c5d78 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/Forms/ФормаСписка/Form.form
@@ -178,10 +178,6 @@
ruОсновные команды
-
- ru
- Основные команды
- ОсновныеКомандыРасширеннаяПодсказка48
@@ -206,10 +202,6 @@
ruДополнительные команды
-
- ru
- Дополнительные команды
- ДополнительныеКомандыРасширеннаяПодсказка29
@@ -259,10 +251,6 @@
ruКомандная панель
-
- ru
- Командная панель
- КоманднаяПанельРасширеннаяПодсказка44
@@ -326,6 +314,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -617,9 +609,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
index 77bbd4a87..b12745f8b 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектов/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -17,6 +21,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form
index e3eb9f74e..c6df57708 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/Forms/ФормаСписка/Form.form
@@ -152,10 +152,6 @@
ruОсновные команды
-
- ru
- Основные команды
- ОсновныеКомандыРасширеннаяПодсказка45
@@ -180,10 +176,6 @@
ruДополнительные команды
-
- ru
- Дополнительные команды
- ДополнительныеКомандыРасширеннаяПодсказка28
@@ -296,6 +288,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -579,9 +575,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
index 77bbd4a87..b12745f8b 100644
--- a/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ЗначенияСвойствОбъектовИерархия/ManagerModule.bsl
@@ -2,6 +2,10 @@
#Область ПрограммныйИнтерфейс
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -17,6 +21,10 @@
КонецФункции
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+#КонецОбласти
+
#КонецОбласти
#КонецЕсли
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Form.form
index 7778e1a25..ac1db849f 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаСписка/Form.form
@@ -204,10 +204,6 @@
ruРежим просмотра
-
- ru
- Форма режим просмотра
- ФормаРежимПросмотраРасширеннаяПодсказка71
@@ -488,6 +484,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -727,9 +727,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Form.form
index bb3ae6b69..e34a1f4bb 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/Forms/ФормаЭлемента/Form.form
@@ -145,10 +145,6 @@
ruИмя и синоним объекта метаданных
-
- ru
- Имя и синоним объекта метаданных
- ИмяИСинонимОбъектаМетаданныхExtendedTooltip34
@@ -275,10 +271,6 @@
ruПолное имя и полный синоним объекта метаданных
-
- ru
- Полное имя и полный синоним объекта метаданных
- ПолноеИмяИПолныйСинонимОбъектаМетаданныхExtendedTooltip37
@@ -796,7 +788,7 @@
- CommonCommand.ПрисоединенныеФайлыКОбъекту
+ 0
@@ -807,6 +799,10 @@
CommonCommand.ИсторияИзменений
+
+ CommonCommand.ПрисоединенныеФайлы
+
+
@@ -814,11 +810,11 @@
- CommonCommand.ЗаполнениеОбъекта
+ 0
- CommonCommand.ОтчетыОбъекта
+ 0
@@ -829,6 +825,18 @@
CommonCommand.СоздатьЗаметкуПоПредмету
+
+ CommonCommand.ОтправитьПисьмо
+
+
+
+ CommonCommand.ОтправитьSMS
+
+
+
+ CommonCommand.Напомнить
+
+
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
index c92b1bfc8..33aa405b4 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовМетаданных/ManagerModule.bsl
@@ -2,61 +2,9 @@
#Область ПрограммныйИнтерфейс
-// Процедура обновляет данные справочника по метаданным конфигурации.
-//
-// Параметры:
-// ЕстьИзменения - Булево (возвращаемое значение) - в этот параметр возвращается
-// значение Истина, если производилась запись, иначе не изменяется.
-//
-// ЕстьУдаленные - Булево (возвращаемое значение) - в этот параметр возвращается
-// значение Истина, если хотя бы один элемент справочника был помечен
-// на удаление, иначе не изменяется.
-//
-// ТолькоПроверка - Булево - не производить никаких изменений, а лишь выполнить
-// установку флажков ЕстьИзменения, ЕстьУдаленные.
-//
-Процедура ОбновитьДанныеСправочника(ЕстьИзменения = Ложь, ЕстьУдаленные = Ложь, ТолькоПроверка = Ложь) Экспорт
-
- ВыполнитьОбновлениеДанных(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка);
-
-КонецПроцедуры
-
-// Требуется, чтобы выгрузить все идентификаторы объектов метаданных конфигурации
-// в подчиненные узлы РИБ, если ранее справочник не был включен в РИБ.
-// Также может использоваться для ремонта данных справочника в РИБ-узлах.
-//
-Процедура ЗарегистрироватьПолноеИзменениеДляПодчиненныхУзловРИБ() Экспорт
-
- ПроверкаИспользования();
-
- Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ()
- Или Не ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
- Возврат;
- КонецЕсли;
-
- МетаданныеСправочника = Метаданные.Справочники.ИдентификаторыОбъектовМетаданных;
-
- УзлыРИБ = Новый Массив;
- Для каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл
- Если ПланОбмена.РаспределеннаяИнформационнаяБаза
- И ПланОбмена.Состав.Содержит(МетаданныеСправочника)Тогда
-
- ПланОбменаМенеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПланОбмена.ПолноеИмя());
- Выборка = ПланОбменаМенеджер.Выбрать();
- Пока Выборка.Следующий() Цикл
- Если Выборка.Ссылка <> ПланОбменаМенеджер.ЭтотУзел() Тогда
- УзлыРИБ.Добавить(Выборка.Ссылка);
- КонецЕсли;
- КонецЦикла;
- КонецЕсли;
- КонецЦикла;
-
- Если УзлыРИБ.Количество() > 0 Тогда
- ПланыОбмена.ЗарегистрироватьИзменения(УзлыРИБ, МетаданныеСправочника);
- КонецЕсли;
-
-КонецПроцедуры
+#Область ДляВызоваИзДругихПодсистем
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
//
@@ -70,11 +18,14 @@
КонецФункции
-// Возвращает реквизиты справочника, которые образуют естественный ключ
-// для элементов справочника.
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
+// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
-// Возвращаемое значение: Массив(Строка) - массив имен реквизитов, образующих
-// естественный ключ.
+// Возвращаемое значение:
+// Массив(Строка) - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -85,6 +36,10 @@
КонецФункции
+// Конец ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
+#КонецОбласти
+
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
@@ -97,7 +52,7 @@
НСтр("ru = 'Справочник ""%1"" не используется.'"), НазваниеСправочника(ОбъектыРасширений));
КонецЕсли;
- Если ОбъектыРасширений И Не ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
+ Если ОбъектыРасширений И Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
ВызватьИсключение ОписаниеОшибкиИдентификаторыОбъектовРасширенийНедоступныВНеразделенномРежиме();
КонецЕсли;
@@ -124,37 +79,43 @@
// Возвращает Истина, если проверка, обновление и замена дублей завершена.
//
// Параметры:
-// Сообщить - Булево - если передать Истина, тогда будет вызвано исключение
-// по ошибке обращения к необновленным параметрам работы программы.
+// Обновить - Булево - если передать Истина, тогда данные будут обновлены,
+// если возможно. Если невозможно, тогда будет вызвано исключение.
+// Если передать Ложь, тогда будет возвращено состояние данных.
//
-Функция ДанныеОбновлены(Сообщить = Ложь, ОбъектыРасширений = Ложь) Экспорт
+Функция ДанныеОбновлены(Обновить = Ложь, ОбъектыРасширений = Ложь) Экспорт
- Если Сообщить Тогда
- Отказ = Неопределено;
- Иначе
- Отказ = Ложь;
- КонецЕсли;
-
- СтандартныеПодсистемыСервер.ПроверитьОбновлениеПараметровРаботыПрограммы(
- "ПараметрыБазовойФункциональности", "ИдентификаторыОбъектовМетаданных", Отказ);
-
- Если Отказ = Истина Тогда
+ Попытка
+ Обновлен = СтандартныеПодсистемыСервер.ПараметрРаботыПрограммы(
+ "СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных");
+ Исключение
+ Если Обновить Тогда
+ ВызватьИсключение;
+ КонецЕсли;
Возврат Ложь;
+ КонецПопытки;
+
+ Если Обновлен = Неопределено Тогда
+ Если Обновить Тогда
+ ОбновитьДанныеСправочника();
+ Иначе
+ Возврат Ложь;
+ КонецЕсли;
КонецЕсли;
Если ОбъектыРасширений
И ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения)
И Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны() Тогда
- Если Не ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Тогда
- Если Сообщить Тогда
+ Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
+ Если Обновить Тогда
ВызватьИсключение ОписаниеОшибкиИдентификаторыОбъектовРасширенийНедоступныВНеразделенномРежиме();
Иначе
Возврат Ложь;
КонецЕсли;
КонецЕсли;
- Если Не ИдентификаторыОбъектовТекущейВерсииРасширенийЗаполнены() Тогда
+ Если Не Справочники.ИдентификаторыОбъектовРасширений.ИдентификаторыОбъектовТекущейВерсииРасширенийЗаполнены() Тогда
Справочники.ИдентификаторыОбъектовРасширений.ОбновитьДанныеСправочника();
КонецЕсли;
КонецЕсли;
@@ -163,23 +124,6 @@
КонецФункции
-// Только для внутреннего использования.
-Функция ИдентификаторыОбъектовТекущейВерсииРасширенийЗаполнены() Экспорт
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | ИСТИНА КАК ЗначениеИстина
- |ИЗ
- | РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
- |ГДЕ
- | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений";
-
- Возврат Не Запрос.Выполнить().Пустой();
-
-КонецФункции
-
// Только для внутреннего использования.
//
// Параметры:
@@ -188,9 +132,7 @@
//
Процедура ЗагрузитьДанныеВПодчиненныйУзел(Объекты) Экспорт
- ПроверкаИспользования();
-
- Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
// В модели сервиса не поддерживается.
Возврат;
КонецЕсли;
@@ -199,11 +141,12 @@
Возврат;
КонецЕсли;
+ ПроверкаИспользования();
+ СтандартныеПодсистемыСервер.ПроверитьДинамическоеОбновлениеВерсииПрограммы();
+
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ИдентификаторыОбъектовМетаданных");
- ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
- СнятьМонопольныйРежим = Ложь;
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
@@ -277,7 +220,7 @@
И Свойства.ИмяПредопределенныхДанных = Объект.ИмяПредопределенныхДанных
И Свойства.ПометкаУдаления = Объект.ПометкаУдаления
И КлючиОбъектовМетаданныхСовпадают(Свойства, Объект) Тогда
-
+
СвойстваЗагружаемого.Совпадает = Истина;
КонецЕсли;
@@ -389,6 +332,185 @@
КонецПроцедуры
+// Возвращает объект метаданных по переданному идентификатору.
+//
+// Параметры:
+// Идентификатор - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
+// СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификатор
+// объекта метаданных конфигурации или расширения конфигурации.
+//
+// КромеНесуществующихИНедоступных - Булево - если Истина тогда, когда объект метаданных
+// не существует или не доступен, возвращает Null или Неопределено
+// вместо вызова исключения.
+//
+// Возвращаемое значение:
+// ОбъектМетаданных - объект метаданных, соответствующий идентификатору.
+//
+// Null - возвращается, когда КромеНесуществующихИНедоступных = Истина. Обозначает, что
+// для указанного идентификатора объект метаданных не существует (идентификатор устарел).
+//
+// Неопределено - возвращается, когда КромеНесуществующихИНедоступных = Истина. Обозначает,
+// что идентификатор действующий, но в текущем сеансе ОбъектМетаданных не может быть получен.
+// Для расширений конфигурации это значит, что расширение установлено, но не подключено,
+// либо потому что перезапуск еще не выполнен, либо при подключении произошла ошибка.
+// Для конфигурации это значит , что в новом сеансе (новом динамическом поколении) объект
+// метаданных имеется, а в текущем (старом) сеансе нет.
+//
+Функция ОбъектМетаданныхПоИдентификатору(Идентификатор, КромеНесуществующихИНедоступных = Ложь) Экспорт
+
+ Идентификаторы = Новый Массив;
+ Идентификаторы.Добавить(Идентификатор);
+
+ ОбъектыМетаданных = ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(Идентификаторы, КромеНесуществующихИНедоступных);
+
+ Возврат ОбъектыМетаданных.Получить(Идентификатор);
+
+КонецФункции
+
+// Возвращает объекты метаданных по переданным идентификаторам.
+//
+// Параметры:
+// Идентификаторы - Массив - со значениями:
+// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
+// СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификаторы
+// объектов метаданных конфигурации или расширений конфигурации.
+//
+// КромеНесуществующихИНедоступных - Булево - если Истина тогда, когда объект метаданных
+// не существует или не доступен, возвращает Null или Неопределено
+// вместо вызова исключения.
+//
+// Возвращаемое значение:
+// Соответствие - со свойствами:
+// * Ключ - переданный идентификатор,
+// * Значение - ОбъектМетаданных - объект метаданных, соответствующий идентификатору.
+// - Null - возвращается, когда КромеНесуществующихИНедоступных = Истина. Обозначает, что
+// для указанного идентификатора объект метаданных не существует (идентификатор устарел).
+// - Неопределено - возвращается, когда КромеНесуществующихИНедоступных = Истина. Обозначает,
+// что идентификатор действующий, но в текущем сеансе ОбъектМетаданных не может быть получен.
+// Для расширений конфигурации это значит, что расширение установлено, но не подключено,
+// либо потому что перезапуск еще не выполнен, либо при подключении произошла ошибка.
+// Для конфигурации это значит , что в новом сеансе (новом динамическом поколении) объект
+// метаданных имеется, а в текущем (старом) сеансе нет.
+//
+Функция ОбъектыМетаданныхПоИдентификаторам(Идентификаторы, КромеНесуществующихИНедоступных = Ложь) Экспорт
+
+ Возврат ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(Идентификаторы, КромеНесуществующихИНедоступных);
+
+КонецФункции
+
+// Возвращает ссылки на объекты метаданных, найденный по полному имени удаленного объекта метаданных.
+// Используется когда требуется сделать замену старой ссылки на новую или очистить ее.
+//
+// Параметры:
+// ПолноеИмяУдаленного - Строка - например, "Роль.ЧтениеБазовойНСИ".
+//
+// Возвращаемое значение:
+// Массив - со значениями:
+// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных,
+// СправочникСсылка.ИдентификаторыОбъектовРасширений - найденная ссылка.
+//
+Функция ИдентификаторУдаленногоОбъектаМетаданных(ПолноеИмяУдаленного) Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка,
+ | ИдентификаторыОбъектовМетаданных.ПолноеИмя КАК ПолноеИмя
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
+ |ГДЕ
+ | ИдентификаторыОбъектовМетаданных.ПометкаУдаления
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |ВЫБРАТЬ
+ | ИдентификаторыОбъектовРасширений.Ссылка,
+ | ИдентификаторыОбъектовРасширений.ПолноеИмя
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовРасширений КАК ИдентификаторыОбъектовРасширений
+ |ГДЕ
+ | ИдентификаторыОбъектовРасширений.ПометкаУдаления";
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ НайденныеСсылки = Новый Массив;
+ Пока Выборка.Следующий() Цикл
+ Если Не СтрНачинаетсяС(Выборка.ПолноеИмя, "? ") Тогда
+ Продолжить;
+ КонецЕсли;
+ ТекущееПолноеИмяУдаленного = Сред(Выборка.ПолноеИмя, 3);
+ ПозицияСкобки = СтрНайти(ТекущееПолноеИмяУдаленного, "(");
+ Если ПозицияСкобки > 0 Тогда
+ ТекущееПолноеИмяУдаленного = Сред(ТекущееПолноеИмяУдаленного, 1, ПозицияСкобки - 1);
+ КонецЕсли;
+ Если ВРег(СокрЛП(ТекущееПолноеИмяУдаленного)) = ВРег(СокрЛП(ПолноеИмяУдаленного)) Тогда
+ НайденныеСсылки.Добавить(Выборка.Ссылка);
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат НайденныеСсылки;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Процедура обновляет данные справочника по метаданным конфигурации.
+//
+// Параметры:
+// ЕстьИзменения - Булево - (возвращаемое значение) в этот параметр возвращается
+// значение Истина, если производилась запись, иначе не изменяется.
+//
+// ЕстьУдаленные - Булево - (возвращаемое значение) в этот параметр возвращается
+// значение Истина, если хотя бы один элемент справочника был помечен
+// на удаление, иначе не изменяется.
+//
+// ТолькоПроверка - Булево - не производить никаких изменений, а лишь выполнить
+// установку флажков ЕстьИзменения, ЕстьУдаленные.
+//
+Процедура ОбновитьДанныеСправочника(ЕстьИзменения = Ложь, ЕстьУдаленные = Ложь, ТолькоПроверка = Ложь) Экспорт
+
+ ВыполнитьОбновлениеДанных(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка);
+
+КонецПроцедуры
+
+// Требуется, чтобы выгрузить все идентификаторы объектов метаданных конфигурации
+// в подчиненные узлы РИБ, если ранее справочник не был включен в РИБ.
+// Также может использоваться для ремонта данных справочника в РИБ-узлах.
+//
+Процедура ЗарегистрироватьПолноеИзменениеДляПодчиненныхУзловРИБ() Экспорт
+
+ ПроверкаИспользования();
+
+ Если ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ()
+ Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
+ Возврат;
+ КонецЕсли;
+
+ МетаданныеСправочника = Метаданные.Справочники.ИдентификаторыОбъектовМетаданных;
+
+ УзлыРИБ = Новый Массив;
+ Для каждого ПланОбмена Из Метаданные.ПланыОбмена Цикл
+ Если ПланОбмена.РаспределеннаяИнформационнаяБаза
+ И ПланОбмена.Состав.Содержит(МетаданныеСправочника)Тогда
+
+ ПланОбменаМенеджер = ОбщегоНазначения.МенеджерОбъектаПоПолномуИмени(ПланОбмена.ПолноеИмя());
+ Выборка = ПланОбменаМенеджер.Выбрать();
+ Пока Выборка.Следующий() Цикл
+ Если Выборка.Ссылка <> ПланОбменаМенеджер.ЭтотУзел() Тогда
+ УзлыРИБ.Добавить(Выборка.Ссылка);
+ КонецЕсли;
+ КонецЦикла;
+ КонецЕсли;
+ КонецЦикла;
+
+ Если УзлыРИБ.Количество() > 0 Тогда
+ ПланыОбмена.ЗарегистрироватьИзменения(УзлыРИБ, МетаданныеСправочника);
+ КонецЕсли;
+
+КонецПроцедуры
+
// Процедура обновляет данные справочника по метаданным конфигурации.
//
// Параметры:
@@ -399,14 +521,8 @@
// значение Истина, если хотя бы один элемент справочника был помечен
// на удаление, иначе не изменяется.
//
-// РежимОбновления - Строка - возможные значения:
-// "Полный" - выполнить обновление,
-// "Частичный" - выполнить обновление (когда ОбъектыРасширений = Ложь,
-// тогда выполнить обновление, если нет критичных изменений),
-// "ТолькоПроверка" - не производить никаких изменений, а лишь выполнить
-// установку флажков ЕстьИзменения, ЕстьУдаленные, ЕстьКритичныеИзменения.
-// - Булево - если Истина, то режим обновления "ТолькоПроверка",
-// если Ложь, то режим обновления "Полный".
+// ТолькоПроверка - Булево - не производить никаких изменений, а выполнить только установку
+// параметров ЕстьИзменения, ЕстьУдаленные, ЕстьКритичныеИзменения, СписокКритичныхИзменений.
//
// ЕстьКритичныеИзменения - (возвращаемое значение) - в этот параметр возвращается
// значение Истина, если найдены критичные изменения, иначе не изменяется.
@@ -419,7 +535,7 @@
// объектов метаданных, которые добавлены или требуется добавить,
// а также объектов метаданных, полные имена которых изменены или требуется изменить.
//
-Процедура ВыполнитьОбновлениеДанных(ЕстьИзменения, ЕстьУдаленные, РежимОбновления,
+Процедура ВыполнитьОбновлениеДанных(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка,
ЕстьКритичныеИзменения = Ложь, СписокКритичныхИзменений = "", ОбъектыРасширений = Ложь) Экспорт
Если ОбъектыРасширений
@@ -439,174 +555,33 @@
УстановитьПривилегированныйРежим(Истина);
- Если ТипЗнч(РежимОбновления) = Тип("Булево") Тогда
- РежимОбновления = ?(РежимОбновления, "ТолькоПроверка", "Полный");
- КонецЕсли;
- ТолькоПроверка = (РежимОбновления = "ТолькоПроверка");
-
ЕстьТекущиеИзменения = Ложь;
Если Не ОбъектыРасширений Тогда
ЗаменитьДублиПодчиненногоУзлаНайденныеПриЗагрузке(ТолькоПроверка, ЕстьТекущиеИзменения);
КонецЕсли;
- ОбновитьДанные(ЕстьТекущиеИзменения, ЕстьУдаленные, РежимОбновления,
- ЕстьКритичныеИзменения, СписокКритичныхИзменений, ОбъектыРасширений);
+ Если Не ОбъектыРасширений
+ Или Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
- Если ЕстьТекущиеИзменения Тогда
- ЕстьИзменения = Истина;
+ ОбновитьДанные(ЕстьТекущиеИзменения, ЕстьУдаленные, ТолькоПроверка,
+ ЕстьКритичныеИзменения, СписокКритичныхИзменений, ОбъектыРасширений);
+
+ Если ЕстьТекущиеИзменения Тогда
+ ЕстьИзменения = Истина;
+ КонецЕсли;
КонецЕсли;
- Если Не ТолькоПроверка
- И Не (РежимОбновления <> "Полный" И ЕстьКритичныеИзменения) Тогда
-
- Если Не ОбъектыРасширений Тогда
- СтандартныеПодсистемыСервер.ПодтвердитьОбновлениеПараметраРаботыПрограммы(
- "ПараметрыБазовойФункциональности", "ИдентификаторыОбъектовМетаданных");
- КонецЕсли;
+ Если Не ОбъектыРасширений Тогда
+ СтандартныеПодсистемыСервер.УстановитьПараметрРаботыПрограммы(
+ "СтандартныеПодсистемы.ИдентификаторыОбъектовМетаданных", Истина);
КонецЕсли;
КонецПроцедуры
-// Возвращает объекты метаданных по переданным идентификаторам.
-//
-// Параметры:
-// Идентификаторы - Массив - значения либо типа СправочникСсылка.ИдентификаторыОбъектовМетаданных,
-// либо типа СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификаторы
-// объектов метаданных конфигурации или расширения.
-//
-// Возвращаемое значение:
-// Соответствие - со свойствами:
-// * Ключ - переданный идентификатор,
-// * Значение - ОбъектМетаданных - для типа СправочникСсылка.ИдентификаторыОбъектовМетаданных.
-// - ОбъектМетаданных, Неопределено - для типа СправочникСсылка.ИдентификаторыОбъектовРасширений.
-// Если расширение не подключено, тогда объект метаданных невозможно вернуть и возвращается Неопределено.
-// Неопределено означает, что в справочнике ИдентификаторыОбъектовРасширений найден действующий
-// идентификатор, но объекта метаданных, который ему соответствует, найти не удалось.
-//
-Функция ОбъектыМетаданныхПоИдентификаторам(Идентификаторы) Экспорт
-
- ОбъектыРасширений = ЭтоОбъектРасширений(Идентификаторы[0]);
- НазваниеСправочника = НазваниеСправочника(ОбъектыРасширений);
-
- СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, ОбъектыРасширений);
-
- УстановитьПривилегированныйРежим(Истина);
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("Ссылки", Идентификаторы);
- Если ОбъектыРасширений Тогда
- Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
- Запрос.Текст =
- "ВЫБРАТЬ
- | Идентификаторы.Ссылка КАК Ссылка,
- | Идентификаторы.КлючОбъектаМетаданных,
- | ЕСТЬNULL(ВерсииИдентификаторов.ПолноеИмяОбъекта, """") КАК ПолноеИмя,
- | Идентификаторы.ПометкаУдаления
- |ИЗ
- | Справочник.ИдентификаторыОбъектовРасширений КАК Идентификаторы
- | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
- | ПО (ВерсииИдентификаторов.Идентификатор = Идентификаторы.Ссылка)
- |ГДЕ
- | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений
- | И Идентификаторы.Ссылка В(&Ссылки)";
- Иначе
- Запрос.Текст =
- "ВЫБРАТЬ
- | Идентификаторы.Ссылка КАК Ссылка,
- | Идентификаторы.КлючОбъектаМетаданных,
- | Идентификаторы.ПолноеИмя,
- | Идентификаторы.ПометкаУдаления
- |ИЗ
- | Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы
- |ГДЕ
- | Идентификаторы.Ссылка В(&Ссылки)";
- КонецЕсли;
-
- Выгрузка = Запрос.Выполнить().Выгрузить();
- ЗаголовокОшибки = НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору().'");
-
- Если Выгрузка.Количество() < Идентификаторы.Количество() Тогда
- Для Каждого Идентификатор Из Идентификаторы Цикл
- Если Выгрузка.Найти(Идентификатор, "Ссылка") = Неопределено Тогда
- Прервать;
- КонецЕсли;
- КонецЦикла;
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Идентификатор ""%1""
- |не найден в справочнике ""%2"".'"),
- Строка(Идентификатор), НазваниеСправочника);
-
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
- КонецЕсли;
-
- ОбъектыМетаданныхИдентификаторов = Новый Соответствие;
-
- // Проверка соответствия ключа объекта метаданных полному имени объекта метаданных.
- Для Каждого Свойства Из Выгрузка Цикл
- РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(Свойства);
- Если РезультатПроверки.НеСоответствует Тогда
-
- Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
- Если ОбъектыРасширений И Не Свойства.ПометкаУдаления Тогда
-
- // Возможно расширение не удалось подключить.
- ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, Неопределено);
-
- ИначеЕсли РезультатПроверки.КлючОбъектаМетаданных = Неопределено Тогда
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Идентификатору ""%1""
- |найденному в справочнике ""%2"",
- |соответствует несуществующий объект метаданных
- |""%3"".'"),
- Строка(Свойства.Ссылка), НазваниеСправочника, Свойства.ПолноеИмя);
- Иначе
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Идентификатору ""%1""
- |найденному в справочнике ""%2"",
- |соответствует удаленный объект метаданных.'"),
- Строка(Свойства.Ссылка), НазваниеСправочника);
- КонецЕсли;
- Иначе
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Идентификатору ""%1""
- |найденному в справочнике ""%2"",
- |соответствует объект метаданных ""%3"",
- |полное имя которого отличается от заданного в идентификаторе.'"),
- Строка(Свойства.Ссылка), НазваниеСправочника, РезультатПроверки.ОбъектМетаданных.ПолноеИмя());
- КонецЕсли;
-
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
- КонецЕсли;
-
- Если Не ОбъектыРасширений И Свойства.ПометкаУдаления Тогда
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Идентификатор ""%1""
- |найден в справочнике ""%2"",
- |но значение реквизита ""Пометка удаления"" установлено Истина.'"),
- Строка(Свойства.Ссылка), НазваниеСправочника);
-
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
- КонецЕсли;
-
- ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, РезультатПроверки.ОбъектМетаданных);
-
- КонецЦикла;
-
- Возврат ОбъектыМетаданныхИдентификаторов;
-
-КонецФункции
-
-#КонецОбласти
-
-#Область СлужебныеПроцедурыИФункции
-
////////////////////////////////////////////////////////////////////////////////
// Реализация процедур, объявленных в других модулях.
-// См. описание одноименной процедуры в общем модуле ОбщегоНазначения.
+// См. ОбщегоНазначения.ИдентификаторОбъектаМетаданных.
Функция ИдентификаторОбъектаМетаданных(ОписаниеОбъектаМетаданных) Экспорт
ТипОписанияОбъектаМетаданных = ТипЗнч(ОписаниеОбъектаМетаданных);
@@ -626,8 +601,16 @@
ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("Строка") Тогда
ПолноеИмяОбъектаМетаданных = ОписаниеОбъектаМетаданных;
- Иначе
+
+ ИначеЕсли ТипОписанияОбъектаМетаданных = Тип("ОбъектМетаданных") Тогда
ПолноеИмяОбъектаМетаданных = ОписаниеОбъектаМетаданных.ПолноеИмя();
+ Иначе
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().
+ |
+ |Указан недопустимый тип параметра ОписаниеОбъектаМетаданных:
+ |""%1"".'"),
+ ТипОписанияОбъектаМетаданных);
КонецЕсли;
Возврат СтандартныеПодсистемыПовтИсп.ИдентификаторОбъектаМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
@@ -637,152 +620,23 @@
// Продолжение процедуры ИдентификаторОбъектаМетаданных.
Функция ИдентификаторОбъектаМетаданныхПоПолномуИмени(ПолноеИмяОбъектаМетаданных) Экспорт
- СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина,
- ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных());
+ Массив = Новый Массив;
+ Массив.Добавить(ПолноеИмяОбъектаМетаданных);
- УстановитьПривилегированныйРежим(Истина);
+ Идентификаторы = ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(Массив, Истина);
- ДоступныИдентификаторыОбъектовРасширений =
- ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения)
- И Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны();
-
- Запрос = Новый Запрос;
- Запрос.УстановитьПараметр("ПолноеИмя", ПолноеИмяОбъектаМетаданных);
- Запрос.Текст =
- "ВЫБРАТЬ
- | Идентификаторы.Ссылка КАК Ссылка,
- | Идентификаторы.КлючОбъектаМетаданных,
- | Идентификаторы.ПолноеИмя
- |ИЗ
- | Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы
- |ГДЕ
- | Идентификаторы.ПолноеИмя = &ПолноеИмя
- | И НЕ Идентификаторы.ПометкаУдаления";
-
- Если ДоступныИдентификаторыОбъектовРасширений Тогда
- Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
- ТекстЗапроса =
- "ВЫБРАТЬ
- | ВерсииИдентификаторов.Идентификатор КАК Ссылка,
- | Идентификаторы.КлючОбъектаМетаданных,
- | ВерсииИдентификаторов.ПолноеИмяОбъекта КАК ПолноеИмя
- |ИЗ
- | РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовРасширений КАК Идентификаторы
- | ПО (Идентификаторы.Ссылка = ВерсииИдентификаторов.Идентификатор)
- |ГДЕ
- | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений
- | И ВерсииИдентификаторов.ПолноеИмяОбъекта = &ПолноеИмя";
-
- Запрос.Текст = Запрос.Текст + "
- |
- |ОБЪЕДИНИТЬ ВСЕ
- |
- |" + ТекстЗапроса;
- КонецЕсли;
-
- Выгрузка = Запрос.Выполнить().Выгрузить();
- ЗаголовокОшибки = НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().'");
-
- Если Выгрузка.Количество() = 0 Тогда
- // Если идентификатор не найден по полному имени, возможно что полное имя задано с ошибкой.
- ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
- Если ОбъектМетаданных = Неопределено Тогда
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Объект метаданных не найден по полному имени:
- |""%1"".'"),
- ПолноеИмяОбъектаМетаданных);
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки;
- КонецЕсли;
-
- Если Не Метаданные.Роли.Содержит(ОбъектМетаданных)
- И Не Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных)
- И Не Метаданные.Константы.Содержит(ОбъектМетаданных)
- И Не Метаданные.Справочники.Содержит(ОбъектМетаданных)
- И Не Метаданные.Документы.Содержит(ОбъектМетаданных)
- И Не Метаданные.ЖурналыДокументов.Содержит(ОбъектМетаданных)
- И Не Метаданные.Отчеты.Содержит(ОбъектМетаданных)
- И Не Метаданные.Обработки.Содержит(ОбъектМетаданных)
- И Не Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
- И Не Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных)
- И Не Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных)
- И Не Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных)
- И Не Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных)
- И Не Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных)
- И Не Метаданные.РегистрыРасчета.Содержит(ОбъектМетаданных)
- И Не Метаданные.БизнесПроцессы.Содержит(ОбъектМетаданных)
- И Не Метаданные.Задачи.Содержит(ОбъектМетаданных)
- И Не ЭтоПодсистема(ОбъектМетаданных) Тогда
-
- ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Объект метаданных не поддерживается:
- |""%1"".
- |
- |Допустимы только типы объектов метаданных перечисленные в комментарии к функции.'"),
- ПолноеИмяОбъектаМетаданных);
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки;
- КонецЕсли;
-
- ШаблонОшибки = ?(ДоступныИдентификаторыОбъектовРасширений,
- НСтр("ru = 'Для объекта метаданных ""%1""
- |не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"" и
- |регистре сведений ""Идентификаторы объектов версий расширений"".'"),
- НСтр("ru = 'Для объекта метаданных ""%1""
- |не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"".'"));
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС
- + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных)
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
-
- ИначеЕсли Выгрузка.Количество() > 1 Тогда
- ШаблонОшибки = ?(ДоступныИдентификаторыОбъектовРасширений,
- НСтр("ru = 'Для объекта метаданных ""%1""
- |найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"" и
- |регистре сведений ""Идентификаторы объектов версий расширений"".'"),
- НСтр("ru = 'Для объекта метаданных ""%1""
- |найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"".'"));
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС
- + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных)
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
- КонецЕсли;
-
- // Проверка соответствия ключа объекта метаданных полному имени объекта метаданных.
- РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(Выгрузка[0]);
- Если РезультатПроверки.НеСоответствует Тогда
- НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(Выгрузка[0].Ссылка));
-
- Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
- ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Для объекта метаданных ""%1""
- |найден идентификатор в справочнике ""%2"",
- |которому соответствует удаленный объект метаданных.'"),
- ПолноеИмяОбъектаМетаданных, НазваниеСправочника);
- Иначе
- ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
- НСтр("ru = 'Для объекта метаданных ""%1""
- |найден идентификатор в справочнике ""%2"",
- |который соответствует другому объекту метаданных ""%3"".'"),
- ПолноеИмяОбъектаМетаданных, НазваниеСправочника, РезультатПроверки.ОбъектМетаданных);
- КонецЕсли;
-
- ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ТекстОшибки
- + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
- КонецЕсли;
-
- Возврат Выгрузка[0].Ссылка;
+ Возврат Идентификаторы.Получить(ПолноеИмяОбъектаМетаданных);
КонецФункции
-// См. описание одноименной процедуры в общем модуле ОбщегоНазначения.
-Функция ОбъектМетаданныхПоИдентификатору(Идентификатор) Экспорт
+// См. ОбщегоНазначения.ИдентификаторыОбъектовМетаданных.
+Функция ИдентификаторыОбъектовМетаданных(ПолныеИменаОбъектовМетаданных) Экспорт
- Идентификаторы = Новый Массив;
- Идентификаторы.Добавить(Идентификатор);
-
- Возврат ОбъектыМетаданныхПоИдентификаторам(Идентификаторы).Получить(Идентификатор);
+ Возврат ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных);
КонецФункции
-// См. описание одноименной процедуры в общем модуле ОбщегоНазначения.
+// См. ОбщегоНазначения.ДобавитьПереименование.
Процедура ДобавитьПереименование(Итог, ВерсияИБ, СтароеПолноеИмя, НовоеПолноеИмя, ИдентификаторБиблиотеки = "") Экспорт
СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования();
@@ -978,13 +832,7 @@
Итог.Вставить("ПорядокБиблиотек", Новый Соответствие);
ОбщегоНазначенияПереопределяемый.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
-
- ОбработчикиСобытия = ОбщегоНазначения.ОбработчикиСлужебногоСобытия(
- "СтандартныеПодсистемы.БазоваяФункциональность\ПриДобавленииПереименованийОбъектовМетаданных");
-
- Для каждого Обработчик Из ОбработчикиСобытия Цикл
- Обработчик.Модуль.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
- КонецЦикла;
+ ИнтеграцияСтандартныхПодсистем.ПриДобавленииПереименованийОбъектовМетаданных(Итог);
ТаблицаПереименования.Сортировать(
"ПорядокБиблиотеки ВОЗР,
@@ -1040,6 +888,7 @@
Строка.СинонимВЕдЧисле = НСтр("ru = 'Роль'");
Строка.БезДанных = Истина;
Строка.БезКлючаОбъектаМетаданных = Истина;
+ Строка.ОбъектыРасширений = Истина;
// ПланыОбмена
Строка = СвойстваКоллекцийОбъектовМетаданных.Добавить();
@@ -1194,7 +1043,7 @@
// Регистрация объекта на всех узлах РИБ.
Для Каждого ПланОбмена Из СтандартныеПодсистемыПовтИсп.ПланыОбменаРИБ() Цикл
- СтандартныеПодсистемыСервер.ЗарегистрироватьОбъектНаВсехУзлах(Объект, ПланОбмена);
+ СтандартныеПодсистемыСервер.ЗарегистрироватьОбъектНаВсехУзлах(Объект, ПланОбмена, Ложь);
КонецЦикла;
Если Объект.ОбменДанными.Загрузка Тогда
@@ -1289,14 +1138,14 @@
Если Строка.Ссылка <> СсылкаЗагружаемого
И ТаблицаЗагружаемых.Найти(Строка.Ссылка, "Ссылка") = Неопределено Тогда
- ОбновитьСвойстваПомеченногоНаУдаление(Строка);
+ ОбновитьСвойстваПомеченногоНаУдаление(Строка,,, Истина);
Строка.НоваяСсылка = СсылкаЗагружаемого;
Строка.ДубльОбновлен = Истина;
ЗагружаемыйОбъект.ДополнительныеСвойства.Вставить("ЭтоЗаменаДубля");
// Замена новых ссылок на дубль на новую ссылку заданную для дубля (если есть).
СтарыеДубли = Выгрузка.НайтиСтроки(Новый Структура("НоваяСсылка", Строка.Ссылка));
Для Каждого СтарыйДубль Из СтарыеДубли Цикл
- ОбновитьСвойстваПомеченногоНаУдаление(СтарыйДубль);
+ ОбновитьСвойстваПомеченногоНаУдаление(СтарыйДубль,,, Истина);
СтарыйДубль.НоваяСсылка = СсылкаЗагружаемого;
СтарыйДубль.ДубльОбновлен = Истина;
КонецЦикла;
@@ -1305,7 +1154,7 @@
КонецПроцедуры
-Процедура ОбновитьДанные(ЕстьИзменения, ЕстьУдаленные, РежимОбновления,
+Процедура ОбновитьДанные(ЕстьИзменения, ЕстьУдаленные, ТолькоПроверка,
ЕстьКритичныеИзменения, СписокКритичныхИзменений, ОбъектыРасширений)
СвойстваРасширений = Новый Структура;
@@ -1333,20 +1182,11 @@
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить(ИмяСправочника(ОбъектыРасширений));
- ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Если ОбъектыРасширений Тогда
ЭлементБлокировки = Блокировка.Добавить("РегистрСведений.ИдентификаторыОбъектовВерсийРасширений");
- ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("ВерсияРасширений", ВерсияРасширений);
КонецЕсли;
- Если ОбъектыРасширений Или РежимОбновления <> "Полный" Или МонопольныйРежим() Тогда
- СнятьМонопольныйРежим = Ложь;
- Иначе
- СнятьМонопольныйРежим = Истина;
- УстановитьМонопольныйРежим(Истина);
- КонецЕсли;
-
НачатьТранзакцию();
Попытка
Блокировка.Заблокировать();
@@ -1382,8 +1222,21 @@
+ Символы.ПС + СписокНовыхОбъектовМетаданных + Символы.ПС;
КонецЕсли;
- ТолькоПроверка = (РежимОбновления = "ТолькоПроверка")
- Или Не ОбъектыРасширений И РежимОбновления <> "Полный" И ЕстьКритичныеИзменения;
+ Если Не ТолькоПроверка
+ И Не ОбъектыРасширений
+ И ЗначениеЗаполнено(СписокКритичныхИзменений)
+ И ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() Тогда
+
+ ИмяСобытия = НСтр("ru = 'Идентификаторы объектов метаданных.Требуется загрузить критичные изменения'",
+ ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка());
+
+ ЗаписьЖурналаРегистрации(ИмяСобытия, УровеньЖурналаРегистрации.Ошибка, , , СписокКритичныхИзменений);
+
+ ВызватьИсключениеПоОшибке(ОбъектыРасширений,
+ НСтр("ru = 'Критичные изменения могут быть выполнены только
+ |в главном узле распределенной информационной базы.
+ |Состав требуемых изменений см. в журнале регистрации.'"));
+ КонецЕсли;
ОбновитьИдентификаторыОбъектовМетаданных(Выгрузка, СвойстваОбъектовМетаданных, ОбъектыРасширений,
СвойстваРасширений, ВерсияРасширений, ЕстьИзменения, ТолькоПроверка);
@@ -1410,16 +1263,9 @@
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
- Если СнятьМонопольныйРежим Тогда
- УстановитьМонопольныйРежим(Ложь);
- КонецЕсли;
ВызватьИсключение;
КонецПопытки;
- Если СнятьМонопольныйРежим Тогда
- УстановитьМонопольныйРежим(Ложь);
- КонецЕсли;
-
КонецПроцедуры
Функция ВыгрузкаВсехИдентификаторов(ОбъектыРасширений = Ложь)
@@ -1621,8 +1467,9 @@
Если ОбъектМетаданных = Неопределено ИЛИ СвойстваОбъекта.Найден Тогда
// Если объект метаданных не найден или найден повторно
// тогда идентификатор требуется пометить на удаление.
+ ЭтоДубль = ОбъектМетаданных <> Неопределено И СвойстваОбъекта.Найден;
СвойстваОбновлены = Ложь;
- ОбновитьСвойстваПомеченногоНаУдаление(Свойства, СвойстваОбновлены, ЕстьУдаленные);
+ ОбновитьСвойстваПомеченногоНаУдаление(Свойства, СвойстваОбновлены, ЕстьУдаленные, ЭтоДубль);
Если СвойстваОбновлены Тогда
Свойства.Обновлен = Истина;
КонецЕсли;
@@ -1831,7 +1678,7 @@
КонецПроцедуры
-Процедура ОбновитьСвойстваПомеченногоНаУдаление(Свойства, СвойстваОбновлены = Ложь, ЕстьУдаленные = Ложь)
+Процедура ОбновитьСвойстваПомеченногоНаУдаление(Свойства, СвойстваОбновлены = Ложь, ЕстьУдаленные = Ложь, ЭтоДубль = Ложь)
ОбъектыРасширений = ЭтоОбъектРасширений(Свойства.Ссылка);
@@ -1852,7 +1699,7 @@
ИЛИ ОбъектыРасширений И Лев(Свойства.ХешСуммаРасширения, 1) <> "?"
ИЛИ СтрНайти(Свойства.ПолноеИмя, "(") = 0
ИЛИ Свойства.ЗначениеПустойСсылки <> Неопределено
- ИЛИ КлючОбъектаМетаданных <> Неопределено Тогда
+ ИЛИ ЭтоДубль Тогда
Если НЕ Свойства.ПометкаУдаления Или Лев(Свойства.ПолноеИмя, 1) <> "?" Тогда
ЕстьУдаленные = Истина;
@@ -1873,10 +1720,12 @@
Свойства.ХешСуммаРасширения = ВставитьЗнакВопроса(Свойства.ХешСуммаРасширения);
КонецЕсли;
- Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда
- Свойства.КлючОбъектаМетаданных = Новый ХранилищеЗначения(Неопределено);
- Иначе
- Свойства.КлючОбъектаМетаданных = Неопределено;
+ Если ЭтоДубль Тогда
+ Если ТипЗнч(Свойства.КлючОбъектаМетаданных) = Тип("ХранилищеЗначения") Тогда
+ Свойства.КлючОбъектаМетаданных = Новый ХранилищеЗначения(Неопределено);
+ Иначе
+ Свойства.КлючОбъектаМетаданных = Неопределено;
+ КонецЕсли;
КонецЕсли;
СвойстваОбновлены = Истина;
КонецЕсли;
@@ -2638,12 +2487,532 @@
КонецФункции
+// Для функций ИдентификаторОбъектаМетаданныхПоПолномуИмени, ИдентификаторыОбъектовМетаданных.
+Функция ИдентификаторыОбъектовМетаданныхСПопыткойПовтора(ПолныеИменаОбъектовМетаданных, ОдинЭлемент = Ложь)
+
+ СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина,
+ ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных());
+
+ Попытка
+ Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(
+ ПолныеИменаОбъектовМетаданных, ОдинЭлемент);
+ Исключение
+ Если Не ОбщегоНазначения.РазделениеВключено()
+ Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
+ // В случае ошибки, если есть возможность обновления справочника,
+ // нужно выполнить обновление, а после этого повторить получение идентификатора.
+ Идентификаторы = Неопределено;
+ Иначе
+ ВызватьИсключение;
+ КонецЕсли;
+ КонецПопытки;
+
+ Если Идентификаторы = Неопределено Тогда
+ ОбновитьДанныеСправочника();
+ Идентификаторы = ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(
+ ПолныеИменаОбъектовМетаданных, ОдинЭлемент);
+ КонецЕсли;
+
+ Возврат Идентификаторы;
+
+КонецФункции
+
+// Для функций ИдентификаторыОбъектовМетаданных.
+Функция ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора(ПолныеИменаОбъектовМетаданных, ОдинЭлемент)
+
+ УстановитьПривилегированныйРежим(Истина);
+
+ ДоступныИдентификаторыОбъектовРасширений =
+ ЗначениеЗаполнено(ПараметрыСеанса.ПодключенныеРасширения)
+ И Справочники.ВерсииРасширений.УстановленныеРасширенияДоступны();
+
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИменаОбъектовМетаданных);
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Идентификаторы.Ссылка КАК Ссылка,
+ | Идентификаторы.КлючОбъектаМетаданных,
+ | Идентификаторы.ПолноеИмя
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы
+ |ГДЕ
+ | Идентификаторы.ПолноеИмя В (&ПолныеИмена)
+ | И НЕ Идентификаторы.ПометкаУдаления";
+
+ Если ДоступныИдентификаторыОбъектовРасширений Тогда
+ Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
+ ТекстЗапроса =
+ "ВЫБРАТЬ
+ | ВерсииИдентификаторов.Идентификатор КАК Ссылка,
+ | Идентификаторы.КлючОбъектаМетаданных,
+ | ВерсииИдентификаторов.ПолноеИмяОбъекта КАК ПолноеИмя
+ |ИЗ
+ | РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ИдентификаторыОбъектовРасширений КАК Идентификаторы
+ | ПО (Идентификаторы.Ссылка = ВерсииИдентификаторов.Идентификатор)
+ |ГДЕ
+ | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений
+ | И ВерсииИдентификаторов.ПолноеИмяОбъекта В (&ПолныеИмена)";
+
+ Запрос.Текст = Запрос.Текст + "
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |" + ТекстЗапроса;
+ КонецЕсли;
+
+ Выгрузка = Запрос.Выполнить().Выгрузить();
+ Выгрузка.Индексы.Добавить("ПолноеИмя");
+
+ Ошибки = Новый Массив;
+
+ ИдентификаторыИзКлючей = Неопределено;
+
+ Результат = Новый Соответствие;
+ Для Каждого ПолноеИмяОбъектаМетаданных Из ПолныеИменаОбъектовМетаданных Цикл
+
+ Отбор = Новый Структура("ПолноеИмя", ПолноеИмяОбъектаМетаданных);
+ НайденныеСтроки = Выгрузка.НайтиСтроки(Отбор);
+ Если НайденныеСтроки.Количество() = 0 Тогда
+ // Если идентификатор не найден по полному имени, возможно что полное имя задано с ошибкой.
+ ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмяОбъектаМетаданных);
+ Если ОбъектМетаданных = Неопределено Тогда
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Объект метаданных не найден по полному имени:
+ |""%1"".'"),
+ ПолноеИмяОбъектаМетаданных);
+ Ошибки.Добавить(ОписаниеОшибки);
+ Продолжить;
+ КонецЕсли;
+
+ Если Не Метаданные.Роли.Содержит(ОбъектМетаданных)
+ И Не Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Константы.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Справочники.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Документы.Содержит(ОбъектМетаданных)
+ И Не Метаданные.ЖурналыДокументов.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Отчеты.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Обработки.Содержит(ОбъектМетаданных)
+ И Не Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
+ И Не Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных)
+ И Не Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных)
+ И Не Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных)
+ И Не Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных)
+ И Не Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных)
+ И Не Метаданные.РегистрыРасчета.Содержит(ОбъектМетаданных)
+ И Не Метаданные.БизнесПроцессы.Содержит(ОбъектМетаданных)
+ И Не Метаданные.Задачи.Содержит(ОбъектМетаданных)
+ И Не ЭтоПодсистема(ОбъектМетаданных) Тогда
+
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Объект метаданных не поддерживается:
+ |""%1"".
+ |
+ |Допустимы только типы объектов метаданных перечисленные в комментарии к функции.'"),
+ ПолноеИмяОбъектаМетаданных);
+ Ошибки.Добавить(ОписаниеОшибки);
+ Продолжить;
+ КонецЕсли;
+
+ Если СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически() Тогда
+ Если ИдентификаторыИзКлючей = Неопределено Тогда
+ ИдентификаторыИзКлючей = ИдентификаторыИзКлючей();
+ КонецЕсли;
+ Идентификатор = ИдентификаторыИзКлючей.Получить(ПолноеИмяОбъектаМетаданных);
+ Если Идентификатор = Неопределено Тогда
+ СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы();
+ КонецЕсли;
+ Результат.Вставить(ПолноеИмяОбъектаМетаданных, Идентификатор);
+ Продолжить;
+ КонецЕсли;
+
+ ШаблонОшибки = ?(ДоступныИдентификаторыОбъектовРасширений,
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"" и
+ |регистре сведений ""Идентификаторы объектов версий расширений"".'"),
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |не найден идентификатор в справочнике ""Идентификаторы объектов метаданных"".'"));
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных)
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+ Ошибки.Добавить(ОписаниеОшибки);
+ Продолжить;
+
+ ИначеЕсли НайденныеСтроки.Количество() > 1 Тогда
+
+ ШаблонОшибки = ?(ДоступныИдентификаторыОбъектовРасширений,
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"" и
+ |регистре сведений ""Идентификаторы объектов версий расширений"".'"),
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |найдено несколько идентификаторов в справочнике ""Идентификаторы объектов метаданных"".'"));
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОшибки, ПолноеИмяОбъектаМетаданных)
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+ Ошибки.Добавить(ОписаниеОшибки);
+ Продолжить;
+
+ КонецЕсли;
+
+ // Проверка соответствия ключа объекта метаданных полному имени объекта метаданных.
+ СтрокаТаблицы = НайденныеСтроки[0];
+ РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(СтрокаТаблицы);
+ Если РезультатПроверки.НеСоответствует Тогда
+ НазваниеСправочника = НазваниеСправочника(ЭтоОбъектРасширений(СтрокаТаблицы.Ссылка));
+
+ Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |найден идентификатор в справочнике ""%2"",
+ |которому соответствует удаленный объект метаданных.'"),
+ ПолноеИмяОбъектаМетаданных, НазваниеСправочника);
+ Иначе
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Для объекта метаданных ""%1""
+ |найден идентификатор в справочнике ""%2"",
+ |который соответствует другому объекту метаданных ""%3"".'"),
+ ПолноеИмяОбъектаМетаданных, НазваниеСправочника, РезультатПроверки.ОбъектМетаданных);
+ КонецЕсли;
+
+ Ошибки.Добавить(ОписаниеОшибки);
+ Продолжить;
+ КонецЕсли;
+
+ Результат.Вставить(ПолноеИмяОбъектаМетаданных, СтрокаТаблицы.Ссылка);
+ КонецЦикла;
+
+ КоличествоОшибок = Ошибки.Количество();
+ Если КоличествоОшибок > 0 Тогда
+
+ Если ОдинЭлемент Тогда
+ ЗаголовокОшибки = НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().'");
+
+ ИначеЕсли КоличествоОшибок = 1 Тогда
+ ЗаголовокОшибки = НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторыОбъектаМетаданных().'");
+ Иначе
+ ЗаголовокОшибки = НСтр("ru = 'Ошибки при выполнении функции ОбщегоНазначения.ИдентификаторыОбъектаМетаданных().'");
+ КонецЕсли;
+
+ Разделитель = Символы.ПС + Символы.ПС;
+ ТекстВсехОшибок = "";
+ НомерОшибки = 0;
+ Для Каждого ОписаниеОшибки Из Ошибки Цикл
+ НомерОшибки = НомерОшибки + 1;
+ ТекстВсехОшибок = ТекстВсехОшибок + ?(НомерОшибки = 1, "", Разделитель) + ОписаниеОшибки;
+ Если НомерОшибки = 3 И КоличествоОшибок > 5 Тогда
+ ПредставлениеКоличества = СтроковыеФункцииКлиентСервер.ЧислоЦифрамиПредметИсчисленияПрописью(
+ КоличествоОшибок - НомерОшибки,
+ НСтр("ru = 'ошибка,ошибки,ошибок'"));
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = '... И еще %1'"),
+ ПредставлениеКоличества);
+ ТекстВсехОшибок = ТекстВсехОшибок + Разделитель + ОписаниеОшибки;
+ Прервать;
+ КонецЕсли;
+ КонецЦикла;
+
+ ТекстВсехОшибок = ТекстВсехОшибок
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+
+ ВызватьИсключение ЗаголовокОшибки + Разделитель + ТекстВсехОшибок;
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Для функции ИдентификаторыОбъектовМетаданныхБезПопыткиПовтора.
+Функция ИдентификаторыИзКлючей()
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Идентификаторы.Ссылка КАК Ссылка,
+ | Идентификаторы.КлючОбъектаМетаданных
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы";
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ ИдентификаторыИзКлючей = Новый Соответствие;
+
+ Пока Выборка.Следующий() Цикл
+ КлючОбъектаМетаданных = Выборка.КлючОбъектаМетаданных;
+
+ Если КлючОбъектаМетаданных = Неопределено
+ Или КлючОбъектаМетаданных = Тип("Неопределено") Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ОбъектМетаданных = ОбъектМетаданныхПоКлючу(КлючОбъектаМетаданных);
+ Если ОбъектМетаданных = Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ПолноеИмя = ОбъектМетаданных.ПолноеИмя();
+ Если ИдентификаторыИзКлючей.Получить(ПолноеИмя) <> Неопределено Тогда
+ СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы();
+ КонецЕсли;
+
+ ИдентификаторыИзКлючей.Вставить(ПолноеИмя, Выборка.Ссылка);
+ КонецЦикла;
+
+ Возврат ИдентификаторыИзКлючей;
+
+КонецФункции
+
+// Для функций ОбъектМетаданныхПоИдентификатору, ОбъектыМетаданныхПоИдентификаторам.
+Функция ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора(Идентификаторы, КромеНесуществующихИНедоступных)
+
+ Если Идентификаторы.Количество() = 0 Тогда
+ Возврат Новый Соответствие;
+ КонецЕсли;
+
+ ИдентификаторыКонфигурации = Новый Массив;
+ ИдентификаторыРасширений = Новый Массив;
+
+ ДобавленныеИдентификаторыКонфигурации = Новый Соответствие;
+ ДобавленныеИдентификаторыРасширений = Новый Соответствие;
+
+ Для Каждого ТекущийИдентификатор Из Идентификаторы Цикл
+ Если ТипЗнч(ТекущийИдентификатор) = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
+ Если ДобавленныеИдентификаторыКонфигурации[ТекущийИдентификатор] = Неопределено Тогда
+ ИдентификаторыКонфигурации.Добавить(ТекущийИдентификатор);
+ ДобавленныеИдентификаторыКонфигурации.Вставить(ТекущийИдентификатор, Истина);
+ КонецЕсли;
+ ИначеЕсли ТипЗнч(ТекущийИдентификатор) = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
+ Если ДобавленныеИдентификаторыРасширений[ТекущийИдентификатор] = Неопределено Тогда
+ ИдентификаторыРасширений.Добавить(ТекущийИдентификатор);
+ ДобавленныеИдентификаторыРасширений.Вставить(ТекущийИдентификатор, Истина);
+ КонецЕсли;
+ Иначе
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору().
+ |
+ |Неверный тип идентификатора объекта метаданных:
+ |""%1"".'"),
+ ТипЗнч(ТекущийИдентификатор));
+ КонецЕсли;
+ КонецЦикла;
+
+ Если ИдентификаторыКонфигурации.Количество() > 0 Тогда
+ СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, Ложь);
+ КонецЕсли;
+
+ Если ИдентификаторыРасширений.Количество() > 0 Тогда
+ СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, Истина);
+ КонецЕсли;
+
+ Попытка
+ ОбъектыМетаданных = ОбъектыМетаданныхПоИдентификаторамБезПопыткиПовтора(Идентификаторы,
+ ИдентификаторыКонфигурации, ИдентификаторыРасширений, КромеНесуществующихИНедоступных);
+ Исключение
+ Если Не ОбщегоНазначения.РазделениеВключено()
+ Или Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
+ // В случае ошибки, если есть возможность обновления справочника,
+ // нужно выполнить обновление, а после этого повторить получение идентификатора.
+ ОбъектыМетаданных = Неопределено;
+ Иначе
+ ВызватьИсключение;
+ КонецЕсли;
+ КонецПопытки;
+
+ Если ОбъектыМетаданных = Неопределено Тогда
+ ОбновитьДанныеСправочника();
+ ОбъектыМетаданных = ОбъектыМетаданныхПоИдентификаторамБезПопыткиПовтора(Идентификаторы,
+ ИдентификаторыКонфигурации, ИдентификаторыРасширений, КромеНесуществующихИНедоступных);
+ КонецЕсли;
+
+ Возврат ОбъектыМетаданных;
+
+КонецФункции
+
+// Для функции ОбъектыМетаданныхПоИдентификаторамСПопыткойПовтора.
+Функция ОбъектыМетаданныхПоИдентификаторамБезПопыткиПовтора(Идентификаторы,
+ ИдентификаторыКонфигурации, ИдентификаторыРасширений, КромеНесуществующихИНедоступных)
+
+ УстановитьПривилегированныйРежим(Истина);
+
+ Запрос = Новый Запрос;
+
+ Если ИдентификаторыКонфигурации.Количество() > 0 Тогда
+ Запрос.УстановитьПараметр("ИдентификаторыКонфигурации", ИдентификаторыКонфигурации);
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Идентификаторы.Ссылка КАК Ссылка,
+ | Идентификаторы.КлючОбъектаМетаданных КАК КлючОбъектаМетаданных,
+ | Идентификаторы.ПолноеИмя КАК ПолноеИмя,
+ | Идентификаторы.ПометкаУдаления КАК ПометкаУдаления,
+ | ЛОЖЬ КАК ОбъектРасширений,
+ | """" КАК ИмяРасширения
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовМетаданных КАК Идентификаторы
+ |ГДЕ
+ | Идентификаторы.Ссылка В(&ИдентификаторыКонфигурации)";
+ КонецЕсли;
+
+ Если ИдентификаторыРасширений.Количество() > 0 Тогда
+ Запрос.УстановитьПараметр("ИдентификаторыРасширений", ИдентификаторыРасширений);
+ Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
+ Если ЗначениеЗаполнено(Запрос.Текст) Тогда
+ Запрос.Текст = Запрос.Текст +
+ "
+ |
+ |ОБЪЕДИНИТЬ ВСЕ
+ |
+ |";
+ КонецЕсли;
+ Запрос.Текст = Запрос.Текст +
+ "ВЫБРАТЬ
+ | Идентификаторы.Ссылка КАК Ссылка,
+ | Идентификаторы.КлючОбъектаМетаданных КАК КлючОбъектаМетаданных,
+ | ЕСТЬNULL(ВерсииИдентификаторов.ПолноеИмяОбъекта, """") КАК ПолноеИмя,
+ | Идентификаторы.ПометкаУдаления КАК ПометкаУдаления,
+ | ИСТИНА КАК ОбъектРасширений,
+ | Идентификаторы.ИмяРасширения КАК ИмяРасширения
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовРасширений КАК Идентификаторы
+ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
+ | ПО (ВерсииИдентификаторов.Идентификатор = Идентификаторы.Ссылка)
+ |ГДЕ
+ | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений
+ | И Идентификаторы.Ссылка В(&ИдентификаторыРасширений)";
+ КонецЕсли;
+
+ Выгрузка = Запрос.Выполнить().Выгрузить();
+ ЗаголовокОшибки = НСтр("ru = 'Ошибка при выполнении функции ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору().'");
+
+ ОбъектыМетаданныхИдентификаторов = Новый Соответствие;
+
+ ВсегоИдентификаторов = ИдентификаторыКонфигурации.Количество() + ИдентификаторыРасширений.Количество();
+ Если Выгрузка.Количество() < ВсегоИдентификаторов Тогда
+ Для Каждого Идентификатор Из Идентификаторы Цикл
+ Если Выгрузка.Найти(Идентификатор, "Ссылка") = Неопределено Тогда
+ Если КромеНесуществующихИНедоступных Тогда
+ // Объект метаданных не существует.
+ ОбъектыМетаданныхИдентификаторов.Вставить(Идентификатор, Null);
+ Продолжить;
+ Иначе
+ Прервать;
+ КонецЕсли;
+ КонецЕсли;
+ КонецЦикла;
+ Если Не КромеНесуществующихИНедоступных Тогда
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Идентификатор ""%1""
+ |не найден в справочнике ""%2"".'"),
+ Строка(Идентификатор),
+ НазваниеСправочника(ИдентификаторыРасширений.Найти(Идентификатор) <> Неопределено));
+
+ ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+ КонецЕсли;
+ КонецЕсли;
+
+ ВерсияПрограммыОбновленаДинамически = СтандартныеПодсистемыСервер.ВерсияПрограммыОбновленаДинамически();
+
+ // Проверка соответствия ключа объекта метаданных полному имени объекта метаданных.
+ Для Каждого Свойства Из Выгрузка Цикл
+ РезультатПроверки = КлючОбъектаМетаданныхСоответствуетПолномуИмени(Свойства);
+ Если РезультатПроверки.НеСоответствует Тогда
+
+ Если РезультатПроверки.ОбъектМетаданных = Неопределено Тогда
+
+ Если Свойства.ОбъектРасширений И Не Свойства.ПометкаУдаления Тогда
+ // Возможно расширение не удалось подключить.
+ Если КромеНесуществующихИНедоступных Тогда
+ ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, Неопределено);
+ Продолжить;
+ Иначе
+ Отбор = Новый Структура("Имя", Свойства.ИмяРасширения);
+ Если РасширенияКонфигурации.Получить(Отбор, ИсточникРасширенийКонфигурации.СеансОтключенные).Количество() > 0 Тогда
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Расширение конфигурации %1 установлено, но отключено при запуске сеанса.
+ |Обычно, это значит, что при подключении расширения конфигурации возникла ошибка.'"),
+ Свойства.ИмяРасширения);
+ Иначе
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Расширение конфигурации %1 установлено, но не подключено.
+ |Требуется перезапустить сеанс.'"),
+ Свойства.ИмяРасширения);
+ КонецЕсли;
+ КонецЕсли;
+
+ ИначеЕсли Не Свойства.ОбъектРасширений И ВерсияПрограммыОбновленаДинамически Тогда
+ // Возможно объект метаданных будет доступен после перезапуска.
+ Если КромеНесуществующихИНедоступных Тогда
+ ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, Неопределено);
+ Продолжить;
+ Иначе
+ // Стандартное исключение по причине динамического обновления.
+ СтандартныеПодсистемыСервер.ПотребоватьПерезапускСеансаПоПричинеДинамическогоОбновленияВерсииПрограммы();
+ КонецЕсли;
+
+ ИначеЕсли КромеНесуществующихИНедоступных Тогда
+ // Объект метаданных не существует.
+ ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, Null);
+ Продолжить;
+
+ ИначеЕсли РезультатПроверки.КлючОбъектаМетаданных = Неопределено Тогда
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Идентификатору ""%1""
+ |найденному в справочнике ""%2"",
+ |соответствует несуществующий объект метаданных
+ |""%3"".'"),
+ Строка(Свойства.Ссылка),
+ НазваниеСправочника(Свойства.ОбъектРасширений),
+ Свойства.ПолноеИмя);
+ Иначе
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Идентификатору ""%1""
+ |найденному в справочнике ""%2"",
+ |соответствует удаленный объект метаданных.'"),
+ Строка(Свойства.Ссылка),
+ НазваниеСправочника(Свойства.ОбъектРасширений));
+ КонецЕсли;
+ ИначеЕсли ВерсияПрограммыОбновленаДинамически Тогда
+ // Возможно объект метаданных был переименован.
+ ОписаниеОшибки = "";
+ Иначе
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Идентификатору ""%1""
+ |найденному в справочнике ""%2"",
+ |соответствует объект метаданных ""%3"",
+ |полное имя которого отличается от заданного в идентификаторе.'"),
+ Строка(Свойства.Ссылка),
+ НазваниеСправочника(Свойства.ОбъектРасширений),
+ РезультатПроверки.ОбъектМетаданных.ПолноеИмя());
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
+ ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+ КонецЕсли;
+ КонецЕсли;
+
+ Если Не Свойства.ОбъектРасширений И Свойства.ПометкаУдаления И Не ВерсияПрограммыОбновленаДинамически Тогда
+ ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Идентификатор ""%1""
+ |найден в справочнике ""%2"",
+ |но значение реквизита ""Пометка удаления"" установлено Истина.'"),
+ Строка(Свойства.Ссылка),
+ НазваниеСправочника(Свойства.ОбъектРасширений));
+
+ ВызватьИсключение ЗаголовокОшибки + Символы.ПС + Символы.ПС + ОписаниеОшибки
+ + СтандартныеПодсистемыСервер.УточнениеОшибкиПараметровРаботыПрограммыДляРазработчика();
+ КонецЕсли;
+
+ ОбъектыМетаданныхИдентификаторов.Вставить(Свойства.Ссылка, РезультатПроверки.ОбъектМетаданных);
+ КонецЦикла;
+
+ Возврат ОбъектыМетаданныхИдентификаторов;
+
+КонецФункции
+
////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции замены идентификатора в базе данных.
Процедура ЗаменитьДублиПодчиненногоУзлаНайденныеПриЗагрузке(ТолькоПроверка, ЕстьИзменения)
- Если ОбщегоНазначенияПовтИсп.РазделениеВключено() Тогда
+ Если ОбщегоНазначения.РазделениеВключено() Тогда
// В модели сервиса не поддерживается.
Возврат;
КонецЕсли;
@@ -2674,22 +3043,16 @@
Возврат;
КонецЕсли;
- Если МонопольныйРежим() Тогда
- СнятьМонопольныйРежим = Ложь;
- Иначе
- СнятьМонопольныйРежим = Истина;
- УстановитьМонопольныйРежим(Истина);
- КонецЕсли;
+ Выборка = РезультатЗапроса.Выбрать();
+ ЗаменяемыеСсылки = Новый Массив;
+ СтарыеИНовыеСсылки = Новый Соответствие;
+ Пока Выборка.Следующий() Цикл
+ ЗаменяемыеСсылки.Добавить(Выборка.Ссылка);
+ СтарыеИНовыеСсылки.Вставить(Выборка.Ссылка, Выборка.НоваяСсылка);
+ КонецЦикла;
- Попытка
- Выборка = РезультатЗапроса.Выбрать();
- ЗаменяемыеСсылки = Новый Массив;
- СтарыеИНовыеСсылки = Новый Соответствие;
- Пока Выборка.Следующий() Цикл
- ЗаменяемыеСсылки.Добавить(Выборка.Ссылка);
- СтарыеИНовыеСсылки.Вставить(Выборка.Ссылка, Выборка.НоваяСсылка);
- КонецЦикла;
-
+ ТекущаяПопытка = 1;
+ Пока Истина Цикл
НайденныеДанные = НайтиПоСсылкам(ЗаменяемыеСсылки);
НайденныеДанные.Колонки[0].Имя = "Ссылка";
НайденныеДанные.Колонки[1].Имя = "Данные";
@@ -2697,40 +3060,44 @@
НайденныеДанные.Колонки.Добавить("Включено");
НайденныеДанные.ЗаполнитьЗначения(Истина, "Включено");
- Если НайденныеДанные.Количество() > 0 Тогда
- БезОшибок = ВыполнитьЗаменуЭлементов(СтарыеИНовыеСсылки, НайденныеДанные, Истина);
- Если Не БезОшибок Тогда
- ВызватьИсключение
- НСтр("ru = 'Не удалось выполнить замену дублей идентификаторов объектов метаданных.
- |Подробнее см. ошибки при замене идентификатора в журнале регистрации.'");
- КонецЕсли;
-
+ Если НайденныеДанные.Количество() = 0 Тогда
+ Блокировка = Новый БлокировкаДанных;
+ ЭлементБлокировки = Блокировка.Добавить("Справочник.ИдентификаторыОбъектовМетаданных");
+ Для Каждого ЗаменяемаяСсылка Из ЗаменяемыеСсылки Цикл
+ ЭлементБлокировки.УстановитьЗначение(ЗаменяемаяСсылка);
+ КонецЦикла;
НачатьТранзакцию();
Попытка
+ Блокировка.Заблокировать();
// Очистка новых ссылок у дублей идентификаторов.
- Для каждого ЗаменяемаяСсылка Из ЗаменяемыеСсылки Цикл
+ Для Каждого ЗаменяемаяСсылка Из ЗаменяемыеСсылки Цикл
ОбъектДубля = ЗаменяемаяСсылка.ПолучитьОбъект();
ОбъектДубля.НоваяСсылка = Неопределено;
ОбъектДубля.ОбменДанными.Загрузка = Истина;
ОбъектДубля.Записать();
КонецЦикла;
-
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
ВызватьИсключение;
КонецПопытки;
КонецЕсли;
- Исключение
- Если СнятьМонопольныйРежим Тогда
- УстановитьМонопольныйРежим(Ложь);
+
+ Если ТекущаяПопытка > 10 Тогда
+ ВызватьИсключение
+ НСтр("ru = 'Не удалось выполнить замену дублей идентификаторов объектов метаданных.
+ |После 10 попыток все еще имеются данные, которые требуют замены.
+ |Выполните действие в монопольном режиме.'");
КонецЕсли;
- ВызватьИсключение;
- КонецПопытки;
-
- Если СнятьМонопольныйРежим Тогда
- УстановитьМонопольныйРежим(Ложь);
- КонецЕсли;
+
+ БезОшибок = ВыполнитьЗаменуЭлементов(СтарыеИНовыеСсылки, НайденныеДанные, Истина);
+ Если Не БезОшибок Тогда
+ ВызватьИсключение
+ НСтр("ru = 'Не удалось выполнить замену дублей идентификаторов объектов метаданных.
+ |Подробнее см. ошибки при замене идентификатора в журнале регистрации.'");
+ КонецЕсли;
+ ТекущаяПопытка = ТекущаяПопытка + 1;
+ КонецЦикла;
КонецПроцедуры
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Form.form
index 6280f9df6..323455507 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаСписка/Form.form
@@ -204,10 +204,6 @@
ruРежим просмотра
-
- ru
- Форма режим просмотра
- ФормаРежимПросмотраРасширеннаяПодсказка71
@@ -488,6 +484,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -727,9 +727,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Form.form
index bbb19a72c..de06700ae 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/Forms/ФормаЭлемента/Form.form
@@ -184,10 +184,6 @@
ruИмя и синоним объекта метаданных
-
- ru
- Имя и синоним объекта метаданных
- ИмяИСинонимОбъектаМетаданныхExtendedTooltip34
@@ -314,10 +310,6 @@
ruПолное имя и полный синоним объекта метаданных
-
- ru
- Полное имя и полный синоним объекта метаданных
- ПолноеИмяИПолныйСинонимОбъектаМетаданныхExtendedTooltip37
@@ -836,7 +828,7 @@
- CommonCommand.ПрисоединенныеФайлыКОбъекту
+ 0
@@ -854,11 +846,11 @@
- CommonCommand.ЗаполнениеОбъекта
+ 0
- CommonCommand.ОтчетыОбъекта
+ 0
diff --git a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
index a19062cca..a9cfc76f6 100644
--- a/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
+++ b/SSL/src/Catalogs/ИдентификаторыОбъектовРасширений/ManagerModule.bsl
@@ -2,25 +2,9 @@
#Область ПрограммныйИнтерфейс
-// Процедура обновляет данные справочника по метаданным конфигурации.
-//
-// Параметры:
-// ЕстьИзменения - Булево (возвращаемое значение) - в этот параметр возвращается
-// значение Истина, если производилась запись, иначе не изменяется.
-//
-// ЕстьУдаленные - Булево (возвращаемое значение) - в этот параметр возвращается
-// значение Истина, если хотя бы один элемент справочника был помечен
-// на удаление, иначе не изменяется.
-//
-// ТолькоПроверка - Булево (возвращаемое значение) - не производит никаких изменений,
-// а лишь выполняет установку флажков ЕстьИзменения, ЕстьУдаленные.
-//
-Процедура ОбновитьДанныеСправочника(ЕстьИзменения = Ложь, ЕстьУдаленные = Ложь, ТолькоПроверка = Ложь) Экспорт
-
- Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(ЕстьИзменения,
- ЕстьУдаленные, ТолькоПроверка, , , Истина);
-
-КонецПроцедуры
+#Область ДляВызоваИзДругихПодсистем
+
+// СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
// Возвращает реквизиты объекта, которые разрешается редактировать
// с помощью обработки группового изменения реквизитов.
@@ -33,11 +17,14 @@
КонецФункции
-// Возвращает реквизиты справочника, которые образуют естественный ключ
-// для элементов справочника.
+// Конец СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов
+
+// ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
+// Возвращает реквизиты справочника, которые образуют естественный ключ для элементов справочника.
//
-// Возвращаемое значение: Массив(Строка) - массив имен реквизитов, образующих
-// естественный ключ.
+// Возвращаемое значение:
+// Массив(Строка) - массив имен реквизитов, образующих естественный ключ.
//
Функция ПоляЕстественногоКлюча() Экспорт
@@ -45,11 +32,45 @@
КонецФункции
+// Конец ТехнологияСервиса.ВыгрузкаЗагрузкаДанных
+
#КонецОбласти
-#Область СлужебныйПрограммныйИнтерфейс
+#КонецОбласти
-// См. описание одноименной процедуры в общем модуле ОбщегоНазначения.
+#Область СлужебныеПроцедурыИФункции
+
+// Процедура обновляет данные справочника по метаданным конфигурации.
+//
+// Параметры:
+// ЕстьИзменения - Булево - (возвращаемое значение) в этот параметр возвращается
+// значение Истина, если производилась запись, иначе не изменяется.
+//
+// ЕстьУдаленные - Булево - (возвращаемое значение) в этот параметр возвращается
+// значение Истина, если хотя бы один элемент справочника был помечен
+// на удаление, иначе не изменяется.
+//
+// ТолькоПроверка - Булево - не производить никаких изменений, а лишь выполнить
+// установку флажков ЕстьИзменения, ЕстьУдаленные.
+//
+Процедура ОбновитьДанныеСправочника(ЕстьИзменения = Ложь, ЕстьУдаленные = Ложь, ТолькоПроверка = Ложь) Экспорт
+
+ Справочники.ИдентификаторыОбъектовМетаданных.ВыполнитьОбновлениеДанных(ЕстьИзменения,
+ ЕстьУдаленные, ТолькоПроверка, , , Истина);
+
+КонецПроцедуры
+
+// Возвращает Истина, если объект метаданных, которому соответствует
+// идентификатор объектов расширений существует в справочнике и
+// не помечен на удаление, но отсутствует в кэше метаданных расширений.
+//
+// Параметры:
+// Идентификатор - СправочникСсылка.ИдентификаторыОбъектовРасширений - идентификатор
+// объекта метаданных расширения.
+//
+// Возвращаемое значение:
+// Булево - Истина, если отключен.
+//
Функция ОбъектРасширенияОтключен(Идентификатор) Экспорт
СтандартныеПодсистемыПовтИсп.ИдентификаторыОбъектовМетаданныхПроверкаИспользования(Истина, Истина);
@@ -79,6 +100,23 @@
КонецФункции
+// Только для внутреннего использования.
+Функция ИдентификаторыОбъектовТекущейВерсииРасширенийЗаполнены() Экспорт
+
+ Запрос = Новый Запрос;
+ Запрос.УстановитьПараметр("ВерсияРасширений", ПараметрыСеанса.ВерсияРасширений);
+ Запрос.Текст =
+ "ВЫБРАТЬ ПЕРВЫЕ 1
+ | ИСТИНА КАК ЗначениеИстина
+ |ИЗ
+ | РегистрСведений.ИдентификаторыОбъектовВерсийРасширений КАК ВерсииИдентификаторов
+ |ГДЕ
+ | ВерсииИдентификаторов.ВерсияРасширений = &ВерсияРасширений";
+
+ Возврат Не Запрос.Выполнить().Пустой();
+
+КонецФункции
+
#КонецОбласти
-#КонецЕсли
\ No newline at end of file
+#КонецЕсли
diff --git a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Form.form b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Form.form
index b60330d5f..2dbc6ae82 100644
--- a/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Form.form
+++ b/SSL/src/Catalogs/Календари/Forms/РасписаниеРаботы/Form.form
@@ -3,6 +3,10 @@
РасписаниеРаботы1
+
+ ru
+ Расписание работы
+ truetrue
@@ -229,16 +233,12 @@
truetruefalse
- trueAutoAutotruetruetruetrue
- None
- None
- Nonetrue
diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form
index ccc9d8f1e..33d786b37 100644
--- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Form.form
@@ -12,10 +12,6 @@
ruГруппа пользовательских настроек
-
- ru
- Группа пользовательских настроек
- ГруппаПользовательскихНастроекРасширеннаяПодсказка35
@@ -74,10 +70,6 @@
ruКомандная панель
-
- ru
- Командная панель
- КоманднаяПанельРасширеннаяПодсказка33
@@ -97,6 +89,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -253,6 +249,10 @@
ВозможнаяПричина19
+
+ ru
+ Возможная причина
+ truetrue
@@ -439,9 +439,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
@@ -575,7 +572,7 @@
ИзменитьВыделенныеru
- Изменить выделенные
+ Изменить выделенные...1
diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl
index 30a600229..a483b32de 100644
--- a/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/Календари/Forms/ФормаСписка/Module.bsl
@@ -13,9 +13,13 @@
КонецЕсли;
УстановитьПараметрыСписка();
-
+
ЗаполнитьУсловноеОформлениеСписка();
+ МожноРедактировать = ПравоДоступа("Редактирование", Метаданные.Справочники.Календари);
+ ЕстьГрупповоеИзменениеРеквизитов = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов");
+ Элементы.СписокИзменитьВыделенные.Видимость = ЕстьГрупповоеИзменениеРеквизитов И МожноРедактировать;
+
КонецПроцедуры
#КонецОбласти
@@ -24,8 +28,10 @@
&НаКлиенте
Процедура ИзменитьВыделенные(Команда)
- МодульГрупповоеИзменениеОбъектовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ГрупповоеИзменениеОбъектовКлиент");
- МодульГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список);
+ Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ГрупповоеИзменениеОбъектов") Тогда
+ МодульГрупповоеИзменениеОбъектовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ГрупповоеИзменениеОбъектовКлиент");
+ МодульГрупповоеИзменениеОбъектовКлиент.ИзменитьВыделенные(Элементы.Список);
+ КонецЕсли;
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form
index 9434fda14..ba54e119d 100644
--- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Form.form
@@ -7,7 +7,7 @@
НастройкаЗаполненияСтраница283
- Группа
+ ГруппаНаименование75Наименование
@@ -56,8 +56,12 @@
true
+
+ ru
+ Наименование
+
- ГруппаExtendedTooltip
+ ГруппаНаименованиеРасширеннаяПодсказка301Labeltrue
@@ -223,10 +227,6 @@
ruПериод заполнения группа
-
- ru
- Период заполнения группа
- ПериодЗаполненияГруппаExtendedTooltip304
@@ -340,10 +340,6 @@
ruНастройки производственного календаря группа
-
- ru
- Настройки производственного календаря группа
- НастройкиПроизводственногоКалендаряГруппаExtendedTooltip303
@@ -579,10 +575,6 @@
ruДлина цикла дней
-
- ru
- Длина цикла дней
- ГруппаДлинаЦиклаДнейExtendedTooltip318
@@ -813,10 +805,6 @@
ruУчитывать праздники группа
-
- ru
- Учитывать праздники группа
- УчитыватьПраздникиГруппаExtendedTooltip323
@@ -847,10 +835,6 @@
ruНастройки группа
-
- ru
- Настройки группа
- НастройкиГруппаExtendedTooltip313
@@ -878,6 +862,10 @@
ШаблонЗаполнения196
+
+ ru
+ Шаблон заполнения
+ truetrue
@@ -1044,9 +1032,9 @@
ShowAlways
+ 3truetrue
- falsetrue
@@ -1058,10 +1046,6 @@
ruШаблон заполнения группа колонок
-
- ru
- Шаблон заполнения группа колонок
- ШаблонЗаполненияГруппаКолонокExtendedTooltip329
@@ -1174,7 +1158,7 @@
ШаблонЗаполненияКонтекстноеМеню197
- true
+ 457truetrue
@@ -1192,9 +1176,6 @@
Autotruetrue
- None
- None
- Nonetrue
@@ -1207,10 +1188,6 @@
ruШаблон заполнения
-
- ru
- Шаблон заполнения
- ШаблонЗаполненияГруппаExtendedTooltip327
@@ -1240,10 +1217,6 @@
ruНастройка заполнения
-
- ru
- Настройка заполнения
- НастройкаЗаполненияГруппаExtendedTooltip312
@@ -1394,10 +1367,6 @@
ruГоризонт планирования группа
-
- ru
- Горизонт планирования группа
- ГоризонтПланированияГруппаExtendedTooltip336
@@ -1501,10 +1470,6 @@
ruЗаполненность группа
-
- ru
- Заполненность группа
- ЗаполненностьГруппаExtendedTooltip341
@@ -1725,10 +1690,6 @@
ruГоды ручного редактирования
-
- ru
- Годы ручного редактирования
- ГодыРучногоРедактированияГруппаExtendedTooltip347
@@ -1821,10 +1782,6 @@
ruНастройка заполнения страница
-
- ru
- Настройка заполнения страница
- НастройкаЗаполненияСтраницаExtendedTooltip300
@@ -1977,10 +1934,6 @@
ruНастройка результата заполнения группа
-
- ru
- Настройка результата заполнения группа
- НастройкаРезультатаЗаполненияГруппаExtendedTooltip354
@@ -2071,10 +2024,6 @@
ruГрафик работы
-
- ru
- График работы группа
- ГрафикРаботыГруппаExtendedTooltip353
@@ -2104,10 +2053,6 @@
ruРезультат заполнения
-
- ru
- Результат заполнения
- РезультатЗаполненияГруппаExtendedTooltip352
@@ -2197,9 +2142,8 @@
Lefttrue
- true
- true
- false
+ 2
+ 2Style.ПоясняющийТекст
@@ -2214,11 +2158,6 @@
ruРезультат заполнения информационный текст группа
-
- ru
- Результат заполнения информационный текст группа
-
- trueРезультатЗаполненияИнформационныйТекстГруппаExtendedTooltip360
@@ -2281,10 +2220,6 @@
ruРезультат заполнения страница
-
- ru
- Результат заполнения страница
- РезультатЗаполненияСтраницаExtendedTooltip351
@@ -2311,10 +2246,6 @@
ruСтраницы
-
- ru
- Страницы
- СтраницыExtendedTooltip299
diff --git a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl
index 286a709d6..a9a088da3 100644
--- a/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl
+++ b/SSL/src/Catalogs/Календари/Forms/ФормаЭлемента/Module.bsl
@@ -102,6 +102,10 @@
НоваяСтрока.НомерДня = КонтекстВыбора.НомерДня;
КонецЦикла;
+ Если КонтекстВыбора.НомерДня = 0 Тогда
+ РасписаниеПредпраздничногоДня = ПредставлениеРасписанияДня(ЭтотОбъект, 0);
+ КонецЕсли;
+
УстановитьСнятьПризнакСоответствияРезультатовШаблону(ЭтотОбъект, Ложь);
УстановитьСнятьМодифицированностьШаблона(ЭтотОбъект, Истина);
@@ -220,6 +224,8 @@
УстановитьЭлементыНастройкиЗаполнения(ЭтотОбъект);
+ УточнитьДатуОтсчета();
+
СформироватьШаблонЗаполнения(Объект.СпособЗаполнения, Объект.ШаблонЗаполнения, ДлинаЦикла, Объект.ДатаОтсчета);
УстановитьСнятьПризнакСоответствияРезультатовШаблону(ЭтотОбъект, Ложь);
@@ -239,9 +245,7 @@
&НаКлиенте
Процедура ДатаОтсчетаПриИзменении(Элемент)
- Если Объект.ДатаОтсчета < Дата(1900, 1, 1) Тогда
- Объект.ДатаОтсчета = НачалоГода(ОбщегоНазначенияКлиент.ДатаСеанса());
- КонецЕсли;
+ УточнитьДатуОтсчета();
СформироватьШаблонЗаполнения(Объект.СпособЗаполнения, Объект.ШаблонЗаполнения, ДлинаЦикла, Объект.ДатаОтсчета);
@@ -433,7 +437,7 @@
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
- Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Заполнить расписание'"));
+ Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ПредставлениеПустогоРасписания());
//
@@ -501,7 +505,7 @@
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение = Истина;
- Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = 'Заполнить расписание'"));
+ Элемент.Оформление.УстановитьЗначениеПараметра("Текст", ПредставлениеПустогоРасписания());
КонецПроцедуры
@@ -547,6 +551,7 @@
ДатаДня = ДатаОтсчета;
Для Каждого СтрокаДня Из ШаблонЗаполнения Цикл
СтрокаДня.ПредставлениеДня = Формат(ДатаДня, "ДФ=д.ММ");
+ СтрокаДня.ПредставлениеРасписания = ПредставлениеПустогоРасписания();
ДатаДня = ДатаДня + 86400;
КонецЦикла;
КонецЕсли;
@@ -585,7 +590,7 @@
СтроковыеФункцииКлиентСервер.УдалитьПоследнийСимволВСтроке(ПредставлениеИнтервалов, 2);
Если Секунд = 0 Тогда
- Возврат НСтр("ru = 'Заполнить расписание'");
+ Возврат ПредставлениеПустогоРасписания();
КонецЕсли;
Часов = Окр(Секунд / 3600, 1);
@@ -609,6 +614,13 @@
КонецФункции
+&НаКлиентеНаСервереБезКонтекста
+Функция ПредставлениеПустогоРасписания()
+
+ Возврат НСтр("ru = 'Заполнить расписание'");
+
+КонецФункции
+
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьУчитыватьПраздники(Форма)
@@ -888,7 +900,8 @@
ИнформационнаяКартинка = Новый Картинка;
ДоступноЗаполнениеПоШаблону = Ложь;
Если Форма.РучноеРедактирование Тогда
- ИнформационныйТекст = НСтр("ru = 'График работы на текущий год изменен вручную. Нажмите «Заполнить по шаблону» чтобы вернуться к автоматическому заполнению.'");
+ ИнформационныйТекст = НСтр("ru = 'График работы на текущий год изменен вручную.
+ |Нажмите «Заполнить по шаблону» чтобы вернуться к автоматическому заполнению.'");
ИнформационнаяКартинка = БиблиотекаКартинок.Предупреждение;
ДоступноЗаполнениеПоШаблону = Истина;
Иначе
@@ -898,7 +911,8 @@
ИнформационнаяКартинка = БиблиотекаКартинок.Информация;
КонецЕсли;
Иначе
- ИнформационныйТекст = НСтр("ru = 'Отображаемый результат не соответствует настройке шаблона. Нажмите «Заполнить по шаблону», чтобы увидеть как выглядит график работы с учетом изменений шаблона.'");
+ ИнформационныйТекст = НСтр("ru = 'Отображаемый результат не соответствует настройке шаблона.
+ |Нажмите «Заполнить по шаблону», чтобы увидеть как выглядит график работы с учетом изменений шаблона.'");
ИнформационнаяКартинка = БиблиотекаКартинок.Предупреждение;
ДоступноЗаполнениеПоШаблону = Истина;
КонецЕсли;
@@ -954,4 +968,13 @@
КонецПроцедуры
+&НаКлиенте
+Процедура УточнитьДатуОтсчета()
+
+ Если Объект.ДатаОтсчета < Дата(1900, 1, 1) Тогда
+ Объект.ДатаОтсчета = НачалоГода(ОбщегоНазначенияКлиент.ДатаСеанса());
+ КонецЕсли;
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/SSL/src/Catalogs/Календари/ManagerModule.bsl b/SSL/src/Catalogs/Календари/ManagerModule.bsl
index c2bd8179e..4ade63da1 100644
--- a/SSL/src/Catalogs/Календари/ManagerModule.bsl
+++ b/SSL/src/Catalogs/Календари/ManagerModule.bsl
@@ -369,15 +369,15 @@
Пока ВыборкаПоГрафикам.СледующийПоЗначениюПоля("ДатаНачала") Цикл
// Если дата окончания не указана, она будет подобрана по производственному календарю.
ДатаОкончанияЗаполнения = ВыборкаПоГрафикам.ДатаОкончания;
- ДниВключенныеВГрафик = Справочники.Календари.ДниВключенныеВГрафик(
- ВыборкаПоГрафикам.ДатаНачала,
- ВыборкаПоГрафикам.СпособЗаполнения,
- ШаблонЗаполнения,
- ДатаОкончанияЗаполнения,
- ВыборкаПоГрафикам.ПроизводственныйКалендарь,
- ВыборкаПоГрафикам.УчитыватьПраздники,
- ВыборкаПоГрафикам.ДатаОтсчета);
- Справочники.Календари.ЗаписатьДанныеГрафикаВРегистр(ВыборкаПоГрафикам.ГрафикРаботы, ДниВключенныеВГрафик, ВыборкаПоГрафикам.ДатаНачала, ДатаОкончанияЗаполнения);
+ ДниВключенныеВГрафик = ДниВключенныеВГрафик(
+ ВыборкаПоГрафикам.ДатаНачала,
+ ВыборкаПоГрафикам.СпособЗаполнения,
+ ШаблонЗаполнения,
+ ДатаОкончанияЗаполнения,
+ ВыборкаПоГрафикам.ПроизводственныйКалендарь,
+ ВыборкаПоГрафикам.УчитыватьПраздники,
+ ВыборкаПоГрафикам.ДатаОтсчета);
+ ЗаписатьДанныеГрафикаВРегистр(ВыборкаПоГрафикам.ГрафикРаботы, ДниВключенныеВГрафик, ВыборкаПоГрафикам.ДатаНачала, ДатаОкончанияЗаполнения);
КонецЦикла;
КонецЦикла;
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss
similarity index 100%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Attributes/Список/ExtInfo/ListSettings.dcss
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Form.form b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Form.form
similarity index 98%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Form.form
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Form.form
index 800cfa582..644728db0 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Form.form
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Form.form
@@ -3,6 +3,10 @@
Список1
+
+ ru
+ Список
+ truetrue
@@ -408,9 +412,6 @@
Список.DefaultPicture
- None
- None
- Nonetrue60
@@ -512,7 +513,7 @@
true
- Catalog.КлассификаторБанковРФ
+ Catalog.КлассификаторБанковtruetruetrue
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html
similarity index 83%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Help/ru.html
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html
index 938cb5686..6c488192c 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Help/ru.html
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Help/ru.html
@@ -2,7 +2,7 @@
Предназначена для выбора сведений о банках, которые используются при заполнении реквизитов банковских счетов, в документах и других объектах программы.
Банки, деятельность которых прекращена, по умолчанию скрыты. Для того чтобы увидеть в списке эти банки, выполните команду Еще- Показывать недействующие банки.
\ No newline at end of file
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl
similarity index 80%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Module.bsl
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl
index 86fb331ec..90bc20f7c 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаВыбора/Module.bsl
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаВыбора/Module.bsl
@@ -10,16 +10,19 @@
Возврат;
КонецЕсли;
- Если Не Пользователи.ЭтоПолноправныйПользователь() Тогда
- ТолькоПросмотр = Истина;
- КонецЕсли;
+ ИмяОбработки = "ЗагрузкаКлассификатораБанков";
+ ЕстьИсточникЗагрузкиДанных = Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено;
МожноОбновлятьКлассификатор =
- Не ОбщегоНазначенияПовтИсп.РазделениеВключено() // В модели сервиса обновляется автоматически.
+ Не ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически.
И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически.
- И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанковРФ); // Пользователь с необходимыми правами.
+ И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков); // Пользователь с необходимыми правами.
- Элементы.ФормаЗагрузитьКлассификатор.Видимость = МожноОбновлятьКлассификатор;
+ Элементы.ФормаЗагрузитьКлассификатор.Видимость = МожноОбновлятьКлассификатор И ЕстьИсточникЗагрузкиДанных;
+
+ Если Не Пользователи.ЭтоПолноправныйПользователь() Или Не МожноОбновлятьКлассификатор Тогда
+ ТолькоПросмотр = Истина;
+ КонецЕсли;
ПереключитьВидимостьНедействующихБанков(Ложь);
@@ -31,7 +34,7 @@
&НаКлиенте
Процедура ЗагрузитьКлассификатор(Команда)
- ОткрытьФорму("Справочник.КлассификаторБанковРФ.Форма.ЗагрузкаКлассификатора", , ЭтотОбъект);
+ РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss
similarity index 100%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Attributes/Список/ExtInfo/ListSettings.dcss
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Form.form b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Form.form
similarity index 82%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Form.form
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Form.form
index 3367d677c..7afe4fec8 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Form.form
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Form.form
@@ -12,10 +12,6 @@
ruГруппа пользовательских настроек
-
- ru
- Группа пользовательских настроек
- ГруппаПользовательскихНастроекРасширеннаяПодсказка28
@@ -39,58 +35,6 @@
КоманднаяПанель29
-
- ФормаСоздать
- 40
- true
- true
-
- true
-
-
- ФормаСоздатьРасширеннаяПодсказка
- 41
- Label
- true
- true
-
- Left
-
-
- Form.StandardCommand.Create
- Normal
- Auto
- true
- true
- UserCmds
- Auto
-
-
- ФормаСоздатьГруппу
- 42
- true
- true
-
- true
-
-
- ФормаСоздатьГруппуРасширеннаяПодсказка
- 43
- Label
- true
- true
-
- Left
-
-
- Form.StandardCommand.CreateFolder
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- ФормаЗагрузитьКлассификатор16
@@ -117,54 +61,6 @@
UserCmdsAuto
-
- ФормаГруппа1
- 44
- true
- true
-
- true
-
-
- ФормаГруппа1РасширеннаяПодсказка
- 45
- Label
- true
- true
-
- Left
-
-
-
- Form
-
-
-
- Справка
- 46
- true
- true
-
- true
-
-
- СправкаРасширеннаяПодсказка
- 47
- Label
- true
- true
-
- Left
-
-
- Form.StandardCommand.Help
- Normal
- Auto
- true
- true
- UserCmds
- Auto
- truetrue
@@ -174,10 +70,7 @@
ruКомандная панель
-
- ru
- Командная панель
-
+ trueКоманднаяПанельРасширеннаяПодсказка30
@@ -191,11 +84,16 @@
CommandBarLeft
+ FormСписок1
+
+ ru
+ Список
+ truetrue
@@ -577,9 +475,6 @@
Style.BorderColor
- None
- None
- Nonetruetrue
@@ -629,7 +524,7 @@
true
- Catalog.КлассификаторБанковРФ
+ Catalog.КлассификаторБанковtruetruetrue
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl
similarity index 76%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Module.bsl
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl
index 5e743b33f..4221ce109 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаСписка/Module.bsl
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаСписка/Module.bsl
@@ -10,12 +10,15 @@
Возврат;
КонецЕсли;
- МожноОбновлятьКлассификатор =
- Не ОбщегоНазначенияПовтИсп.РазделениеВключено() // В модели сервиса обновляется автоматически.
+ ИмяОбработки = "ЗагрузкаКлассификатораБанков";
+ ЕстьИсточникЗагрузкиДанных = Метаданные.Обработки.Найти(ИмяОбработки) <> Неопределено;
+
+ МожноОбновлятьКлассификатор =
+ Не ОбщегоНазначения.РазделениеВключено() // В модели сервиса обновляется автоматически.
И Не ОбщегоНазначения.ЭтоПодчиненныйУзелРИБ() // В узле РИБ обновляется автоматически.
- И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанковРФ); // Пользователь с необходимыми правами.
-
- Элементы.ФормаЗагрузитьКлассификатор.Видимость = МожноОбновлятьКлассификатор;
+ И ПравоДоступа("Изменение", Метаданные.Справочники.КлассификаторБанков); // Пользователь с необходимыми правами.
+
+ Элементы.ФормаЗагрузитьКлассификатор.Видимость = МожноОбновлятьКлассификатор И ЕстьИсточникЗагрузкиДанных;
Если Не Пользователи.ЭтоПолноправныйПользователь() Или Не МожноОбновлятьКлассификатор Тогда
ТолькоПросмотр = Истина;
@@ -29,8 +32,7 @@
&НаКлиенте
Процедура ЗагрузитьКлассификатор(Команда)
- ПараметрыФормы = Новый Структура("ОткрытиеИзСписка");
- ОткрытьФорму("Справочник.КлассификаторБанковРФ.Форма.ЗагрузкаКлассификатора", ПараметрыФормы, ЭтотОбъект);
+ РаботаСБанкамиКлиент.ОткрытьФормуЗагрузкиКлассификатора(ЭтотОбъект, Истина);
КонецПроцедуры
#КонецОбласти
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Form.form b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Form.form
similarity index 98%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Form.form
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Form.form
index bbf85b95f..98e7ead23 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Form.form
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Form.form
@@ -97,6 +97,10 @@
true
+
+ ru
+ Шапка
+ ГруппаШапкаРасширеннаяПодсказка33
@@ -170,10 +174,6 @@
ruСтраница надпись деятельность прекращена
-
- ru
- Страница надпись деятельность прекращена
- СтраницаНадписьДеятельностьПрекращенаExtendedTooltip25
@@ -241,10 +241,6 @@
ruСтраница флажок деятельность прекращена
-
- ru
- Страница флажок деятельность прекращена
- СтраницаФлажокДеятельностьПрекращенаExtendedTooltip27
@@ -391,10 +387,6 @@
ruКоды
-
- ru
- Коды
- КодыРасширеннаяПодсказка42
@@ -505,6 +497,10 @@
true
+
+ ru
+ Корр счет БИК
+ ГруппаКоррСчетБИКExtendedTooltip30
@@ -677,7 +673,7 @@
Объект1
- CatalogObject.КлассификаторБанковРФ
+ CatalogObject.КлассификаторБанковtrue
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html
similarity index 78%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Help/ru.html
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html
index 3d4e6f203..fd3c9c9ae 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Help/ru.html
+++ b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Help/ru.html
@@ -6,7 +6,7 @@
Входит в группу - по умолчанию указывается регион, в котором находится банк. Можно включить банк в новую группу, для этого выберите из списка нужную группу, нажав Показать все, для ввода новой группы нажмите Создать.
-
Деятельность банка прекращена - программа учитывает недействующие банки и автоматически включает флажок для таких банков. Также можно его включить вручную, если получены сведения о закрытии банка.
+
Деятельность банка прекращена - программа учитывает недействующие банки и автоматически включает флажок для таких банков. Также можно его включить вручную, если получены сведения о закрытии банка.
БИК - БИК банка.
@@ -18,6 +18,6 @@
Адрес - полный адрес банка.
-
Телефоны - адреса и телефоны банков можно загрузить только с диска 1С:ИТС или ввести вручную.
См. также:
+
Телефоны - адреса и телефоны банков можно загрузить только с диска 1С:ИТС или ввести вручную.
\ No newline at end of file
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Module.bsl b/SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl
similarity index 100%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Forms/ФормаЭлемента/Module.bsl
rename to SSL/src/Catalogs/КлассификаторБанков/Forms/ФормаЭлемента/Module.bsl
diff --git a/SSL/src/Catalogs/КлассификаторБанковРФ/Help/ru.html b/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html
similarity index 90%
rename from SSL/src/Catalogs/КлассификаторБанковРФ/Help/ru.html
rename to SSL/src/Catalogs/КлассификаторБанков/Help/ru.html
index ca0397b22..739904d29 100644
--- a/SSL/src/Catalogs/КлассификаторБанковРФ/Help/ru.html
+++ b/SSL/src/Catalogs/КлассификаторБанков/Help/ru.html
@@ -5,7 +5,7 @@
После запуска программы производится проверка актуальности классификатора банков и в случае неактуальности (если классификатор не обновлялся в течение тридцати дней) выводится сообщение с предложением обновить классификатор банков. Перейдите по ссылке Обновить классификатор банков.
-
С помощью кнопки Загрузить классификатор можно обновить сведения о банках.
+
С помощью кнопки Загрузить классификатор можно обновить сведения о банках.
-
Также можно настроить обновление классификатора с сайта 1С автоматически по расписанию с помощью регламентного задания "Загрузка классификатора банков".
+
Также можно настроить обновление классификатора с сайта 1С автоматически по расписанию с помощью регламентного задания "Загрузка классификатора банков".
В карточку банка может загружаться не вся информация. Поля Адрес и Телефоны не заполняются, если классификатор загружается с сайта 1С.
При повторной загрузке перезаписываются только измененные сведения классификатора. При этом если был изменен БИК банка, то будет создана новая запись о банке. Если были изменены другие поля, то они при повторной загрузке будут перезаписаны (кроме полей Адрес и Телефоны в случае, когда классификатор перезагружается с сайта 1С).
Ввод банка
-
При необходимости можно ввести банк, нажав Создать. Заполните необходимые параметры.
См. также:
+
При необходимости можно ввести банк, нажав Создать. Заполните необходимые параметры.