3_1_2_182

This commit is contained in:
Компания 1С committed 2019-10-18 13:07:00 +03:00
1 parent 6a232c400c
commit 5bd3d521a7
62 files changed
+1511 -766

No files matched your search

@@ -78,12 +78,7 @@
И (Параметр.Событие = "ЗаконченоРедактирование"
Или Параметр.Событие = "ВерсияСохранена") Тогда
Если Параметры.Файл = Источник Тогда
Элементы.Список.Обновить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -153,9 +153,6 @@
&НаКлиенте
Процедура ПослеОбновленияКомпонентСПортала(Результат, ДополнительныеПараметры) Экспорт
// Ответ:
// - Структура - Выполнено - результат в структуре.
// - Неопределено - Отменено пользователем.
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -978,6 +978,11 @@
&НаКлиенте
Процедура ПослеЗавершенияВыполненияСервернойКомандыВФоне(Задание, ВыполняемаяКоманда) Экспорт
Если Задание = Неопределено Тогда
Возврат;
КонецЕсли;
Если Задание.Статус = "Ошибка" Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось выполнить команду по причине:
@@ -989,6 +994,7 @@
СтандартныеПодсистемыКлиент.ОповеститьФормыОбИзменении(ОповеститьФормы);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
@@ -379,6 +379,10 @@
ТекущийОбъект.ДополнительныеСвойства.ОписаниеПользователяИБ.РезультатДействия);
КонецЕсли;
Если ПараметрыЗаписи.Свойство("ССозданиемПервогоАдминистратора") Тогда
ПользователиСлужебный.СкопироватьНастройкиПользователя("", ПользовательИБИмя);
КонецЕсли;
НастроитьФорму(ТекущийОбъект, , ПараметрыЗаписи);
ОбновитьСпособИзмененияEMailВСервисе();
@@ -876,7 +876,8 @@
Процедура Удалить(Команда)
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Неопределено, Объект.Ссылка, УникальныйИдентификатор);
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
Объект.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
@@ -974,6 +975,13 @@
КонецПроцедуры
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Закрыть();
КонецПроцедуры
&НаСервере
Процедура УдалитьИзСпискаПодписейИЗаписатьФайл()
@@ -5051,6 +5051,20 @@
</edit>
<savedData>true</savedData>
</attributes>
<attributes>
<name>ТекущийЗаголовок</name>
<id>5</id>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<formCommands>
<name>РедактироватьФорматЗначения</name>
<title>
@@ -64,6 +64,8 @@
МультиязычностьСервер.ПриСозданииНаСервере(ЭтотОбъект, Объект);
ТекущийЗаголовок = Объект.Заголовок;
КонецПроцедуры
&НаКлиенте
@@ -86,6 +88,27 @@
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если НЕ ПараметрыЗаписи.Свойство("ПодтвержденоИзменениеНаименования") Тогда
Если ЗначениеЗаполнено(ТекущийЗаголовок) И ТекущийЗаголовок <> Объект.Заголовок Тогда
ТекстВопроса = НСтр("ru = 'Наименование было изменено. Потребуется заново настроить отображение
|дополнительного реквизита в списках и отчетах, а также использование
|в отборах.'");
ТекстВопроса = СтрЗаменить(ТекстВопроса, Символы.ПС, " ");
Кнопки = Новый СписокЗначений;
Кнопки.Добавить("ПродолжитьЗапись", НСтр("ru = 'Переименовать'"));
Кнопки.Добавить("ВернутьНаименование", НСтр("ru = 'Отмена'"));
ПоказатьВопрос(
Новый ОписаниеОповещения("ПослеОтветаНаВопросОбИзмененииНаименования", ЭтотОбъект, ПараметрыЗаписи),
ТекстВопроса, Кнопки, , "ВернутьНаименование");
ОтказПриЗаписи = Истина;
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
Если НЕ ПараметрыЗаписи.Свойство("КогдаНаименованиеУжеИспользуется") Тогда
// Заполнение наименования по набору свойств
@@ -246,6 +269,8 @@
ПараметрыЗаписи.Вставить("ИзмененныйНабор", ТекущийОбъект.ДополнительныеСвойства.ИзмененныйНабор);
КонецЕсли;
ТекущийЗаголовок = Объект.Заголовок;
КонецПроцедуры
&НаКлиенте
@@ -893,6 +918,8 @@
&НаСервере
Процедура КонвертироватьДополнительныйРеквизитВОбщий()
Возврат;
ВыбранныйРеквизит = ПереданныеПараметрыФормы.ВладелецДополнительныхЗначений;
НаборСвойств = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ВыбранныйРеквизит, "НаборСвойств");
Если Не ЗначениеЗаполнено(НаборСвойств) Тогда
@@ -1030,6 +1057,24 @@
КонецПроцедуры
&НаКлиенте
Процедура ПослеОтветаНаВопросОбИзмененииНаименования(Ответ, ПараметрыЗаписи) Экспорт
Если Ответ <> "ПродолжитьЗапись" Тогда
Объект.Заголовок = ТекущийЗаголовок;
Если ПараметрыЗаписи.Свойство("ОбработкаПродолжения") Тогда
ВыполнитьОбработкуОповещения(
Новый ОписаниеОповещения(ПараметрыЗаписи.ОбработкаПродолжения.ИмяПроцедуры,
ЭтотОбъект, ПараметрыЗаписи.ОбработкаПродолжения.Параметры),
Истина);
КонецЕсли;
Иначе
ПараметрыЗаписи.Вставить("ПодтвержденоИзменениеНаименования");
Записать(ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеОтветаНаВопросКогдаИмяУжеИспользуется(Ответ, ПараметрыЗаписи) Экспорт
@@ -165,6 +165,7 @@
СтрокаУИД = СтрЗаменить(Строка(УИД), "-", "");
СвойствоОбъект.Имя = Имя + "_" + СтрокаУИД;
КонецЕсли;
СвойствоОбъект.НаборСвойств = ТекущийНаборСвойств;
СвойствоОбъект.Записать();
НаборСвойствОбъект = ТекущийНаборСвойств.ПолучитьОбъект();
@@ -227,32 +227,12 @@
&НаКлиенте
Процедура ВыполнитьСерверныйМетодОбработкиЗавершение(Задание, ДополнительныеПараметры) Экспорт
Если Задание.Статус = "Выполнено" Тогда
// Показ всплывающего оповещения и закрытие этой формы.
Если ВыполняемаяКоманда.ПоказыватьОповещение Тогда
ПоказатьОповещениеПользователя(
НСтр("ru = 'Команда выполнена'"),
,
ВыполняемаяКоманда.Представление);
Если Задание = Неопределено Тогда
Возврат;
КонецЕсли;
Если Открыта() Тогда
Закрыть();
КонецЕсли;
// Обновление формы владельца.
Если ЭтоФормаОбъекта Тогда
Попытка
ВладелецФормы.Прочитать();
Исключение
// Действие не требуется.
КонецПопытки;
КонецЕсли;
// Оповещение других форм.
РезультатВыполнения = ПолучитьИзВременногоХранилища(Задание.АдресРезультата);
ОповеститьФормы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(РезультатВыполнения, "ОповеститьФормы");
Если ОповеститьФормы <> Неопределено Тогда
СтандартныеПодсистемыКлиент.ОповеститьФормыОбИзменении(ОповеститьФормы);
КонецЕсли;
Иначе
Если Задание.Статус <> "Выполнено" Тогда
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Команда ""%1"" не выполнена:'"),
ВыполняемаяКоманда.Представление);
@@ -261,6 +241,31 @@
КонецЕсли;
ВызватьИсключение Текст + Символы.ПС + Задание.КраткоеПредставлениеОшибки;
КонецЕсли;
// Показ всплывающего оповещения и закрытие этой формы.
Если ВыполняемаяКоманда.ПоказыватьОповещение Тогда
ПоказатьОповещениеПользователя(НСтр("ru = 'Команда выполнена'"),, ВыполняемаяКоманда.Представление);
КонецЕсли;
Если Открыта() Тогда
Закрыть();
КонецЕсли;
// Обновление формы владельца.
Если ЭтоФормаОбъекта Тогда
Попытка
ВладелецФормы.Прочитать();
Исключение
// Действие не требуется.
КонецПопытки;
КонецЕсли;
// Оповещение других форм.
РезультатВыполнения = ПолучитьИзВременногоХранилища(Задание.АдресРезультата);
ОповеститьФормы = ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(РезультатВыполнения, "ОповеститьФормы");
Если ОповеститьФормы <> Неопределено Тогда
СтандартныеПодсистемыКлиент.ОповеститьФормыОбИзменении(ОповеститьФормы);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -298,8 +298,8 @@
Возврат;
КонецЕсли;
Если СтрНайти(Адрес, "@") = 0 ИЛИ СтрНайти(Адрес, ".") = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо ввести адрес электронной почты'"));
Если Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес, Истина) Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо ввести корректный адрес электронной почты.'"));
Отказ = Истина;
Возврат;
КонецЕсли;
@@ -468,7 +468,7 @@
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Необходимо заполнить получателя письма'"),, "ПочтовыеАдресаПолучателей[" + Формат(ПочтовыеАдресаПолучателей.Индекс(ПолучательПочты), "ЧГ=0") + "].Представление");
Результат = Ложь;
ИначеЕсли СтрНайти(Адрес, "@") = 0 Тогда
ИначеЕсли Не ОбщегоНазначенияКлиентСервер.АдресЭлектроннойПочтыСоответствуетТребованиям(Адрес, Ложь) Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'Неверный адрес электронной почты'"),, "ПочтовыеАдресаПолучателей[" + Формат(ПочтовыеАдресаПолучателей.Индекс(ПолучательПочты), "ЧГ=0") + "].Представление");
Результат = Ложь;
@@ -513,6 +513,10 @@
&НаКлиенте
Процедура ПриЗавершенииПолученияВариантовНастроекОбменаДаннымиСВнешнимиСистемами(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
Отказ = Ложь;
@@ -2896,7 +2896,7 @@
Если Строка.ДоступенСписокЗначений
Или ОтчетыКлиентСервер.ЭтоВидСравненияСписка(Строка.ВидСравнения) Тогда
Значение = ОтчетыКлиентСервер.ЗначенияСписком(ТекущееЗначение);
Значение = ОтчетыКлиентСервер.ЗначенияСписком(ТекущееЗначение, Истина);
Значение.ЗаполнитьПометки(Истина);
Если Строка.ДоступныеЗначения <> Неопределено Тогда
@@ -3752,6 +3752,7 @@
Процедура ОбновитьСлужебныеАдресныеСведения(СлужебныеАдресныеСведения)
Набор = РегистрыСведений.СлужебныеАдресныеСведения.СоздатьНаборЗаписей();
Набор.Очистить();
Набор.Загрузить(СлужебныеАдресныеСведения.Сведения);
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Набор);
@@ -5069,8 +5070,8 @@
НераспознаннаяЧастьАдреса.Наименование = "Квартира";
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "Д" Или ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "Д." Тогда
НераспознаннаяЧастьАдреса.Наименование = "Дом";
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ЛИТЕРА" Тогда
НераспознаннаяЧастьАдреса.Наименование = "Литер";
ИначеЕсли ВРЕГ(НераспознаннаяЧастьАдреса.Наименование) = "ЛИТЕР" Тогда
НераспознаннаяЧастьАдреса.Наименование = "Литера";
КонецЕсли;
КонецЦикла;
@@ -5952,7 +5953,7 @@
Если СтрСравнить(ТипЗаписи, "STRSTAT") = 0
И ТекущаяЗапись.ЗначениеАтрибута("ID") = "3"
И СтрСравнить(Значение, "Литер") <> 0 Тогда
И СтрСравнить(Значение, "Литера") <> 0 Тогда
Продолжить;
КонецЕсли;
@@ -149,6 +149,7 @@
//
Процедура НастроитьОтчетВМодулеМенеджера(Настройки, ОтчетМетаданные) Экспорт
НастройкиОтчета = ОписаниеОтчета(Настройки, ОтчетМетаданные);
Попытка
Отчеты[ОтчетМетаданные.Имя].НастроитьВариантыОтчета(Настройки, НастройкиОтчета);
Исключение
@@ -238,6 +239,10 @@
Результат = Настройки.НайтиСтроки(Новый Структура("Отчет, ЭтоВариант", Отчет, Ложь));
КонецЕсли;
Если Результат.Количество() = 0 Тогда
Результат = НайденныеОписанияОтчета(Отчет);
КонецЕсли;
Если Результат.Количество() <> 1 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимое значение параметра Отчет в функции ВариантыОтчетов.ОписаниеОтчета.
@@ -326,15 +331,21 @@
ОписаниеОтчета = ОписаниеОтчета(Настройки, Отчет);
КонецЕсли;
МетаданныеОтчета = ОписаниеОтчета.Метаданные; // ОбъектМетаданныхОтчет
Если Настройки.Найти(ОписаниеОтчета.Тип, "Тип") = Неопределено Тогда
Возврат ОписаниеОтчета;
КонецЕсли;
МетаданныеОтчета = ОписаниеОтчета.Метаданные; // ОбъектМетаданныхОтчет
КлючВариантаОтчета = ?(ПустаяСтрока(КлючВарианта), ОписаниеОтчета.ОсновнойВариант, КлючВарианта);
Результат = Настройки.НайтиСтроки(Новый Структура("Отчет,КлючВарианта,ЭтоВариант", ОписаниеОтчета.Отчет, КлючВариантаОтчета, Истина));
Поиск = Новый Структура("Отчет, КлючВарианта, ЭтоВариант", ОписаниеОтчета.Отчет, КлючВариантаОтчета, Истина);
Результат = Настройки.НайтиСтроки(Поиск);
Если Результат.Количество() <> 1 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Недопустимое значение параметра КлючВарианта в функции ВариантыОтчетов.ОписаниеВарианта:
|вариант ""%1"" отсутствует в отчете ""%2"".'"),
КлючВарианта, МетаданныеОтчета.Имя);
КлючВариантаОтчета, МетаданныеОтчета.Имя);
КонецЕсли;
ЗаполнитьОписаниеСтрокиВарианта(Результат.Получить(0), ОписаниеОтчета);
@@ -1668,6 +1679,9 @@
Если ПолучатьФлажокПустой Тогда
Если ДопСвойства.Свойство("ОтчетПустой") Тогда
Пустой = ДопСвойства.ОтчетПустой;
ИначеЕсли Результат.ТабличныйДокумент.ВысотаТаблицы = 0
И Результат.ТабличныйДокумент.ШиринаТаблицы = 0 Тогда
Пустой = Истина
Иначе
Пустой = ОтчетыСервер.ОтчетПустой(ОтчетОбъект);
КонецЕсли;
@@ -1935,7 +1949,6 @@
ДоступноИспользованиеРазделенныхДанных = ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных();
ПодсистемыОтчетов = РазмещениеОтчетовВПодсистемах();
КэшФлажкаХранилища = Неопределено;
НастройкиДляПоиска = Новый Структура("НаименованияПолей, НаименованияПараметровИОтборов, КлючевыеСлова, ИменаМакетов");
Для Каждого ОтчетМетаданные Из Метаданные.Отчеты Цикл
Если Не ДоступноИспользованиеРазделенныхДанных И ОтчетМетаданные.РасширениеКонфигурации() <> Неопределено Тогда
@@ -1952,22 +1965,7 @@
Продолжить;
КонецЕсли;
ЕстьРеквизиты = (ОтчетМетаданные.Реквизиты.Количество() > 0);
// Настройки.
ОписаниеОтчета = Результат.Добавить();
ОписаниеОтчета.Отчет = ОтчетСсылка;
ОписаниеОтчета.Метаданные = ОтчетМетаданные;
ОписаниеОтчета.Включен = Истина;
ОписаниеОтчета.ВидимостьПоУмолчанию = Истина;
ОписаниеОтчета.Описание = ОтчетМетаданные.Пояснение;
ОписаниеОтчета.Наименование = ОтчетМетаданные.Представление();
ОписаниеОтчета.ОписаниеПолучено = Истина;
ОписаниеОтчета.Тип = ОтчетТип;
ОписаниеОтчета.ГруппироватьПоОтчету = ГруппироватьПоОтчетам;
ОписаниеОтчета.ИспользуетСКД = (ОтчетМетаданные.ОсновнаяСхемаКомпоновкиДанных <> Неопределено);
ОписаниеОтчета.ФорматНастроекСКД = ОписаниеОтчета.ИспользуетСКД И Не ЕстьРеквизиты;
ОписаниеОтчета.НастройкиДляПоиска = НастройкиДляПоиска;
ОписаниеОтчета = ОписаниеОтчетаПоУмолчанию(Результат, ОтчетМетаданные, ОтчетСсылка, ОтчетТип, ГруппироватьПоОтчетам);
// Размещение.
Найденные = ПодсистемыОтчетов.НайтиСтроки(Новый Структура("ОтчетМетаданные", ОтчетМетаданные));
@@ -2065,6 +2063,12 @@
// Механизмы расширения.
Если ТипОтчетов = Неопределено Или ТипОтчетов = "Внутренний" Тогда
НастроитьОтчетВМодулеМенеджера(Результат, Метаданные.Отчеты.УниверсальныйОтчет);
КонецЕсли;
Если ТипОтчетов = Неопределено
Или ТипОтчетов = "Внутренний"
Или ТипОтчетов = "Расширение" Тогда
ИнтеграцияПодсистемБСП.ПриНастройкеВариантовОтчетов(Результат);
ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов(Результат);
КонецЕсли;
@@ -2117,7 +2121,7 @@
Возврат Результат;
КонецФункции
// Определяет подключен-ли отчет к хранилищу вариантов отчетов.
// Определяет подключен ли отчет к хранилищу вариантов отчетов.
Функция ОтчетПодключенКХранилищу(ОтчетМетаданные, ПоУмолчаниюВсеПодключены = Неопределено) Экспорт
ХранилищеМетаданные = ОтчетМетаданные.ХранилищеВариантов;
Если ХранилищеМетаданные = Неопределено Тогда
@@ -3301,9 +3305,6 @@
// 2. Установить пометку удаления вариантов удаленных отчетов.
ПометитьНаУдалениеВариантыУдаленныхОтчетов(Режим, Результат);
// 3. Настроить доступность (видимость) вариантов отчетов в панели отчетов (по умолчанию).
РегистрыСведений.НастройкиВариантовОтчетов.УстановитьДоступностьВариантовОтчетовПоУмолчанию();
Возврат Результат;
КонецФункции
@@ -4781,6 +4782,7 @@
Функция ТипОтчетаСтрокой(ОтчетСсылка) Экспорт
ТипСсылки = ТипЗнч(ОтчетСсылка);
Если ТипСсылки = Тип("СправочникСсылка.ИдентификаторыОбъектовМетаданных") Тогда
Возврат "Внутренний";
ИначеЕсли ТипСсылки = Тип("СправочникСсылка.ИдентификаторыОбъектовРасширений") Тогда
@@ -4790,13 +4792,13 @@
ИначеЕсли ТипСсылки = ТипСсылкиДополнительногоОтчета() Тогда
Возврат "Дополнительный";
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Возвращает тип ссылки дополнительного отчета.
Функция ТипСсылкиДополнительногоОтчета()
Существует = ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки");
Если Существует Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
Возврат Тип("СправочникСсылка.ДополнительныеОтчетыИОбработки");
КонецЕсли;
@@ -6010,7 +6012,7 @@
Процедура ПодготовитьЗапросОтчетовСПростымиОтборами(Знач Запрос, ТекстЗапроса, Знач ЕстьОтборПоТипамОтчетов, Знач ПараметрыПоиска)
ТекстЗапроса = "
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
|ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ВариантыОтчетов.Ссылка КАК Ссылка,
| ВариантыОтчетов.Родитель КАК Родитель,
| ВЫБОР
@@ -6041,9 +6043,9 @@
| ВариантыОтчетов.ТипОтчета КАК ТипОтчета,
| ВариантыОтчетов.Пользовательский КАК Пользовательский,
| ВариантыОтчетов.ПредопределенныйВариант КАК ПредопределенныйВариант,
| ВариантыОтчетов.НаименованияПараметровИОтборов КАК НаименованияПараметровИОтборов,
| ВариантыОтчетов.НаименованияПолей КАК НаименованияПолей,
| ВариантыОтчетов.КлючевыеСлова КАК КлючевыеСлова,
| ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПараметровИОтборов КАК СТРОКА(1000)) КАК НаименованияПараметровИОтборов,
| ВЫРАЗИТЬ(ВариантыОтчетов.НаименованияПолей КАК СТРОКА(1000)) КАК НаименованияПолей,
| ВЫРАЗИТЬ(ВариантыОтчетов.КлючевыеСлова КАК СТРОКА(1000)) КАК КлючевыеСлова,
| ВЫБОР
| КОГДА &НеПолучатьОписания
| ТОГДА НЕОПРЕДЕЛЕНО
@@ -6077,6 +6079,18 @@
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Представления КАК ПредставленияИзРасширений
| ПО ВариантыОтчетов.ПредопределенныйВариант = ПредставленияИзРасширений.Ссылка
| И (ПредставленияИзРасширений.КодЯзыка = &КодЯзыка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СоставыГруппПользователей КАК СоставыГруппПользователей
| ПО СоставыГруппПользователей.Пользователь = &ТекущийПользователь
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВариантовОтчетов КАК ДоступныеВариантыОтчетов
| ПО ДоступныеВариантыОтчетов.Вариант = ВариантыОтчетов.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВариантовОтчетов КАК НедоступныеВариантыОтчетов
| ПО НедоступныеВариантыОтчетов.Вариант = ВариантыОтчетов.Ссылка
| И (НедоступныеВариантыОтчетов.Пользователь В (&ТекущийПользователь, НЕОПРЕДЕЛЕНО)
| ИЛИ ТИПЗНАЧЕНИЯ(&ТекущийПользователь) = ТИП(Справочник.Пользователи)
| И НедоступныеВариантыОтчетов.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыПользователей.ВсеПользователи)
| ИЛИ ТИПЗНАЧЕНИЯ(&ТекущийПользователь) = ТИП(Справочник.ВнешниеПользователи)
| И НедоступныеВариантыОтчетов.Пользователь = ЗНАЧЕНИЕ(Справочник.ГруппыВнешнихПользователей.ВсеВнешниеПользователи))
| И НЕ НедоступныеВариантыОтчетов.Видимость
|ГДЕ
| ВариантыОтчетов.Отчет В (&ОтчетыПользователя)
| И (НЕ &ЕстьОтборПоТипамОтчетов
@@ -6090,7 +6104,10 @@
| ИЛИ НЕ ВариантыОтчетов.ПометкаУдаления)
| И (&ПоказыватьЛичныеВариантыОтчетовДругихАвторов
| ИЛИ НЕ ВариантыОтчетов.ТолькоДляАвтора
| ИЛИ ВариантыОтчетов.Автор = &ТекущийПользователь)";
| ИЛИ ВариантыОтчетов.Автор = &ТекущийПользователь)
| И ЕСТЬNULL(ДоступныеВариантыОтчетов.Пользователь, НЕОПРЕДЕЛЕНО) В (СоставыГруппПользователей.ГруппаПользователей, НЕОПРЕДЕЛЕНО)
| И ЕСТЬNULL(ДоступныеВариантыОтчетов.Видимость, ИСТИНА)
| И НедоступныеВариантыОтчетов.Вариант ЕСТЬ NULL";
КонецПроцедуры
@@ -8065,6 +8082,85 @@
КонецФункции
// Возвращает описание указанного отчета по умолчанию.
//
// Параметры:
// ОписанияОтчетов - ТаблицаЗначений - см. КоллекцияПредопределенныхВариантовОтчетов
// МетаданныеОтчета - ОбъектМетаданныхОтчет -
// СсылкаОтчета - СправочникСсылка.ИдентификаторыОбъектовМетаданных, СправочникСсылка.ИдентификаторыОбъектовРасширений -
// ТипОтчета - Строка - см. ТипОтчетаСтрокой
// ГруппироватьПоОтчетам - Строка - см. ГлобальныеНастройки
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - см. КоллекцияПредопределенныхВариантовОтчетов
//
Функция ОписаниеОтчетаПоУмолчанию(ОписанияОтчетов, МетаданныеОтчета, СсылкаОтчета,
ТипОтчета = Неопределено, ГруппироватьПоОтчетам = Неопределено)
Если ТипОтчета = Неопределено Тогда
ТипОтчета = ТипОтчетаСтрокой(СсылкаОтчета);
КонецЕсли;
Если ГруппироватьПоОтчетам = Неопределено Тогда
ГруппироватьПоОтчетам = ГлобальныеНастройки().ВыводитьОтчетыВместоВариантов;
КонецЕсли;
ИспользуетСКД = (МетаданныеОтчета.ОсновнаяСхемаКомпоновкиДанных <> Неопределено);
ФорматНастроекСКД = (ИспользуетСКД И МетаданныеОтчета.Реквизиты.Количество() = 0);
НастройкиДляПоиска = Новый Структура("НаименованияПолей, НаименованияПараметровИОтборов, КлючевыеСлова, ИменаМакетов");
ОписаниеОтчета = ОписанияОтчетов.Добавить();
ОписаниеОтчета.Отчет = СсылкаОтчета;
ОписаниеОтчета.Метаданные = МетаданныеОтчета;
ОписаниеОтчета.Включен = Истина;
ОписаниеОтчета.ВидимостьПоУмолчанию = Истина;
ОписаниеОтчета.Описание = МетаданныеОтчета.Пояснение;
ОписаниеОтчета.Наименование = МетаданныеОтчета.Представление();
ОписаниеОтчета.ОписаниеПолучено = Истина;
ОписаниеОтчета.Тип = ТипОтчета;
ОписаниеОтчета.ГруппироватьПоОтчету = ГруппироватьПоОтчетам;
ОписаниеОтчета.ИспользуетСКД = ИспользуетСКД;
ОписаниеОтчета.ФорматНастроекСКД = ФорматНастроекСКД;
ОписаниеОтчета.НастройкиДляПоиска = НастройкиДляПоиска;
Возврат ОписаниеОтчета;
КонецФункции
// Возвращает массив с одним элементом - описание по умолчанию указанного отчета.
//
// Параметры:
// Отчет - ОбъектМетаданныхОтчет, СправочникСсылка.ИдентификаторыОбъектовМетаданных - метаданные или ссылка отчета.
//
// Возвращаемое значение:
// Массив - из:
// * СтрокаТаблицыЗначений - см. КоллекцияПредопределенныхВариантовОтчетов
//
Функция НайденныеОписанияОтчета(Отчет)
НайденныеОписанияОтчета = Новый Массив;
Если ТипЗнч(Отчет) = Тип("ОбъектМетаданных") Тогда
СсылкаОтчета = ОбщегоНазначения.ИдентификаторОбъектаМетаданных(Отчет);
МетаданныеОтчета = Отчет;
Иначе
СсылкаОтчета = Отчет;
МетаданныеОтчета = ОбщегоНазначения.ОбъектМетаданныхПоИдентификатору(Отчет);
КонецЕсли;
Если Не ОтчетПодключенКХранилищу(МетаданныеОтчета) Тогда
Возврат НайденныеОписанияОтчета;
КонецЕсли;
ОписанияОтчетов = КоллекцияПредопределенныхВариантовОтчетов();
ОписаниеОтчета = ОписаниеОтчетаПоУмолчанию(ОписанияОтчетов, МетаданныеОтчета, СсылкаОтчета);
НайденныеОписанияОтчета.Добавить(ОписаниеОтчета);
Возврат НайденныеОписанияОтчета;
КонецФункции
// Конструктор результата актуализации вариантов отчетов.
//
// Возвращаемое значение:
@@ -346,13 +346,6 @@
КонецФункции
Функция РезультатОтправкиПолученияПочтыПользователя(АдресРезультата) Экспорт
Результат = ПолучитьИзВременногоХранилища(АдресРезультата);
Возврат Результат;
КонецФункции
Функция СтруктураДанныхФайла()
СтруктураДанныхФайла = Новый Структура;
@@ -3749,6 +3749,92 @@
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
Процедура ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("Взаимодействия"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗаметкиПользователя") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ЗаметкиПользователяСлужебный"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер"));
КонецЕсли;
ОбработчикиЗаполненияДел.Добавить(ОбновлениеИнформационнойБазыСлужебный);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер"));
КонецЕсли;
ОбработчикиЗаполненияДел.Добавить(ПользователиСлужебный);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("РаботаСБанками"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалют"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("РассылкаОтчетов"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("СоединенияИБ"));
КонецЕсли;
ОбработчикиЗаполненияДел.Добавить(СтандартныеПодсистемыСервер);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("УправлениеИтогамиИАгрегатамиСлужебный"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("Справочники.ПрофилиГруппДоступа"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный"));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
ОбработчикиЗаполненияДел.Добавить(ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный"));
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриОпределенииОбработчиковТекущихДел Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриОпределенииОбработчиковТекущихДел(ОбработчикиЗаполненияДел);
@@ -3764,112 +3850,6 @@
// См. ТекущиеДелаСлужебный.СформироватьСписокТекущихДелПользователя.
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.АдресныйКлассификатор") Тогда
МодульАдресныйКлассификаторСлужебный = ОбщегоНазначения.ОбщийМодуль("АдресныйКлассификаторСлужебный");
МодульАдресныйКлассификаторСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.БизнесПроцессыИЗадачи") Тогда
МодульБизнесПроцессыИЗадачиСервер = ОбщегоНазначения.ОбщийМодуль("БизнесПроцессыИЗадачиСервер");
МодульБизнесПроцессыИЗадачиСервер.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ВерсионированиеОбъектов") Тогда
МодульВерсионированиеОбъектов = ОбщегоНазначения.ОбщийМодуль("ВерсионированиеОбъектов");
МодульВерсионированиеОбъектов.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Взаимодействия") Тогда
МодульВзаимодействия = ОбщегоНазначения.ОбщийМодуль("Взаимодействия");
МодульВзаимодействия.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
МодульДополнительныеОтчетыИОбработки.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗаметкиПользователя") Тогда
МодульЗаметкиПользователяСлужебный = ОбщегоНазначения.ОбщийМодуль("ЗаметкиПользователяСлужебный");
МодульЗаметкиПользователяСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗащитаПерсональныхДанных") Тогда
МодульЗащитаПерсональныхДанных = ОбщегоНазначения.ОбщийМодуль("ЗащитаПерсональныхДанных");
МодульЗащитаПерсональныхДанных.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОбменДанными") Тогда
МодульОбменДаннымиСервер = ОбщегоНазначения.ОбщийМодуль("ОбменДаннымиСервер");
МодульОбменДаннымиСервер.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
ОбновлениеИнформационнойБазыСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ПолнотекстовыйПоиск") Тогда
МодульПолнотекстовыйПоискСервер = ОбщегоНазначения.ОбщийМодуль("ПолнотекстовыйПоискСервер");
МодульПолнотекстовыйПоискСервер.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
ПользователиСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Банки") Тогда
МодульРаботаСБанками = ОбщегоНазначения.ОбщийМодуль("РаботаСБанками");
МодульРаботаСБанками.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Валюты") Тогда
МодульРаботаСКурсамиВалют = ОбщегоНазначения.ОбщийМодуль("РаботаСКурсамиВалют");
МодульРаботаСКурсамиВалют.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РаботаСФайлами") Тогда
МодульРаботаСФайламиСлужебный = ОбщегоНазначения.ОбщийМодуль("РаботаСФайламиСлужебный");
МодульРаботаСФайламиСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РассылкаОтчетов") Тогда
МодульРассылкаОтчетов = ОбщегоНазначения.ОбщийМодуль("РассылкаОтчетов");
МодульРассылкаОтчетов.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.РезервноеКопированиеИБ") Тогда
МодульРезервноеКопированиеИБСервер = ОбщегоНазначения.ОбщийМодуль("РезервноеКопированиеИБСервер");
МодульРезервноеКопированиеИБСервер.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЗавершениеРаботыПользователей") Тогда
МодульСоединенияИБ = ОбщегоНазначения.ОбщийМодуль("СоединенияИБ");
МодульСоединенияИБ.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
СтандартныеПодсистемыСервер.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеИтогамиИАгрегатами") Тогда
МодульУправлениеИтогамиИАгрегатамиСлужебный = ОбщегоНазначения.ОбщийМодуль("УправлениеИтогамиИАгрегатамиСлужебный");
МодульУправлениеИтогамиИАгрегатамиСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
МодульУправлениеПечатью = ОбщегоНазначения.ОбщийМодуль("УправлениеПечатью");
МодульУправлениеПечатью.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УправлениеДоступом") Тогда
МодульСправочникиПрофилиГруппДоступа = ОбщегоНазначения.ОбщийМодуль("Справочники.ПрофилиГруппДоступа");
МодульСправочникиПрофилиГруппДоступа.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.КонтрольВеденияУчета") Тогда
МодульКонтрольВеденияУчетаСлужебный = ОбщегоНазначения.ОбщийМодуль("КонтрольВеденияУчетаСлужебный");
МодульКонтрольВеденияУчетаСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ЦентрМониторинга") Тогда
МодульЦентрМониторингаСлужебный = ОбщегоНазначения.ОбщийМодуль("ЦентрМониторингаСлужебный");
МодульЦентрМониторингаСлужебный.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
КонецЕсли;
Если ИнтеграцияПодсистемБСППовтИсп.ПодпискиБТС().ПриЗаполненииСпискаТекущихДел Тогда
МодульИнтеграцияПодсистемБТС = ОбщегоНазначения.ОбщийМодуль("ИнтеграцияПодсистемБТС");
МодульИнтеграцияПодсистемБТС.ПриЗаполненииСпискаТекущихДел(ТекущиеДела);
@@ -2699,7 +2699,7 @@
КонецЦикла;
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1000
"ВЫБРАТЬ
| ОбъектМетаданных.Регистратор КАК РегистраторРеквизитСсылка,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ОбъектМетаданных.Регистратор) КАК РегистраторПредставление,
| ОбъектМетаданных.Период КАК Период
@@ -2713,7 +2713,7 @@
|УПОРЯДОЧИТЬ ПО
| ОбъектМетаданных.Период");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя + ".ДвиженияССубконто(, , Период > &ДатаНачалаПроверки, , )");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных", ПолноеИмя + ".ДвиженияССубконто(, , Период > &ДатаНачалаПроверки, , 1000)");
Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки);
Результат = Запрос.Выполнить().Выгрузить();
@@ -3156,7 +3156,7 @@
ИначеЕсли ОбщегоНазначения.ЭтоРегистрБухгалтерии(ОбъектМетаданных) Тогда
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1000
"ВЫБРАТЬ
| ОбъектМетаданных.Регистратор КАК РегистраторРеквизитСсылка,
| ПРЕДСТАВЛЕНИЕССЫЛКИ(ОбъектМетаданных.Регистратор) КАК РегистраторПредставление,
| ОбъектМетаданных.Период КАК Период
@@ -3171,7 +3171,7 @@
| ОбъектМетаданных.Период");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ОбъектМетаданных",
ПолноеИмя + ".ДвиженияССубконто(, , Период > &ДатаНачалаПроверки И Регистратор > &Регистратор, , )");
ПолноеИмя + ".ДвиженияССубконто(, , Период > &ДатаНачалаПроверки И Регистратор > &Регистратор, , 1000)");
Запрос.УстановитьПараметр("ДатаНачалаПроверки", ПараметрыПроверки.ДатаНачалаПроверки);
Иначе
@@ -41,7 +41,7 @@
Процедура ПриДобавленииПодсистемы(Описание) Экспорт
Описание.Имя = "СтандартныеПодсистемы";
Описание.Версия = "3.1.2.176";
Описание.Версия = "3.1.2.182";
Описание.ИдентификаторИнтернетПоддержки = "SSL";
Описание.РежимВыполненияОтложенныхОбработчиков = "Параллельно";
Описание.ПараллельноеОтложенноеОбновлениеСВерсии = "2.3.3.0";
@@ -3776,12 +3776,7 @@
//
Функция ОписаниеТипаСтрока(ДлинаСтроки) Экспорт
Массив = Новый Массив;
Массив.Добавить(Тип("Строка"));
КвалификаторСтроки = Новый КвалификаторыСтроки(ДлинаСтроки, ДопустимаяДлина.Переменная);
Возврат Новый ОписаниеТипов(Массив, , КвалификаторСтроки);
Возврат Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(ДлинаСтроки));
КонецФункции
@@ -3795,15 +3790,14 @@
//
// Возвращаемое значение:
// ОписаниеТипов - описание типа Число.
Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, ЗнакЧисла = Неопределено) Экспорт
//
Функция ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, Знач ЗнакЧисла = Неопределено) Экспорт
Если ЗнакЧисла = Неопределено Тогда
КвалификаторЧисла = Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти);
Иначе
КвалификаторЧисла = Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла);
ЗнакЧисла = ДопустимыйЗнак.Любой;
КонецЕсли;
Возврат Новый ОписаниеТипов("Число", КвалификаторЧисла);
Возврат Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Разрядность, РазрядностьДробнойЧасти, ЗнакЧисла));
КонецФункции
@@ -3814,14 +3808,10 @@
//
// Возвращаемое значение:
// ОписаниеТипов - описание типа Дата.
//
Функция ОписаниеТипаДата(ЧастиДаты) Экспорт
Массив = Новый Массив;
Массив.Добавить(Тип("Дата"));
КвалификаторДаты = Новый КвалификаторыДаты(ЧастиДаты);
Возврат Новый ОписаниеТипов(Массив, , , КвалификаторДаты);
Возврат Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты));
КонецФункции
@@ -1402,67 +1402,22 @@
// Имя - содержит имя файла с расширением, без пути к файлу.
// Расширение - содержит расширение файла.
// ИмяБезРасширения - содержит имя файла без расширения и без пути к файлу.
// Пример: если ПолноеИмяФайла = "c:\temp\test.txt", то структура заполнится следующим образом:
// ПолноеИмя: "c:\temp\test.txt".
// Путь: "c:\temp\"
// Имя: "test.txt"
// Расширение: ".txt"
//
// Пример:
// ПолноеИмяФайла = "c:\temp\test.txt";
// ЧастиИмениФайла = РазложитьПолноеИмяФайла(ПолноеИмяФайла);
//
// В результате структура полей будет заполнена следующим образом:
// ПолноеИмя: "c:\temp\test.txt",
// Путь: "c:\temp\",
// Имя: "test.txt",
// Расширение: ".txt",
// ИмяБезРасширения: "test".
//
Функция РазложитьПолноеИмяФайла(Знач ПолноеИмяФайла, ЭтоПапка = Ложь) Экспорт
СтруктураИмениФайла = Новый Структура("ПолноеИмя,Путь,Имя,Расширение,ИмяБезРасширения");
// Убираем из полного имени файла завершающий слеш и сохраняем получившееся полное имя в структуре.
Если ЭтоПапка И (Прав(ПолноеИмяФайла, 1) = "/" Или Прав(ПолноеИмяФайла, 1) = "\") Тогда
Если ЭтоПапка Тогда
ПолноеИмяФайла = Сред(ПолноеИмяФайла, 1, СтрДлина(ПолноеИмяФайла) - 1);
Иначе
// Если путь к файлу заканчивается слешем, то у файла нет имени.
СтруктураИмениФайла.Вставить("ПолноеИмя", ПолноеИмяФайла);
СтруктураИмениФайла.Вставить("Путь", ПолноеИмяФайла);
СтруктураИмениФайла.Вставить("Имя", "");
СтруктураИмениФайла.Вставить("Расширение", "");
СтруктураИмениФайла.Вставить("ИмяБезРасширения", "");
Возврат СтруктураИмениФайла;
КонецЕсли;
КонецЕсли;
СтруктураИмениФайла.Вставить("ПолноеИмя", ПолноеИмяФайла);
// Если полное имя файла оказалось пустым, то остальные параметры структуры возвращаем пустыми.
Если СтрДлина(ПолноеИмяФайла) = 0 Тогда
СтруктураИмениФайла.Вставить("Путь", "");
СтруктураИмениФайла.Вставить("Имя", "");
СтруктураИмениФайла.Вставить("Расширение", "");
СтруктураИмениФайла.Вставить("ИмяБезРасширения", "");
Возврат СтруктураИмениФайла;
КонецЕсли;
// Выделяем путь к файлу и имя файла.
Если СтрНайти(ПолноеИмяФайла, "/") > 0 Тогда
ПозицияРазделителя = СтрНайти(ПолноеИмяФайла, "/", НаправлениеПоиска.СКонца);
ИначеЕсли СтрНайти(ПолноеИмяФайла, "\") > 0 Тогда
ПозицияРазделителя = СтрНайти(ПолноеИмяФайла, "\", НаправлениеПоиска.СКонца);
Иначе
ПозицияРазделителя = 0;
КонецЕсли;
СтруктураИмениФайла.Вставить("Путь", Лев(ПолноеИмяФайла, ПозицияРазделителя));
СтруктураИмениФайла.Вставить("Имя", Сред(ПолноеИмяФайла, ПозицияРазделителя + 1));
// Папки не имеют расширений, а для файла выделяем расширение.
Если ЭтоПапка Тогда
СтруктураИмениФайла.Вставить("Расширение", "");
СтруктураИмениФайла.Вставить("ИмяБезРасширения", СтруктураИмениФайла.Имя);
Иначе
ПозицияТочки = СтрНайти(СтруктураИмениФайла.Имя, ".", НаправлениеПоиска.СКонца);
Если ПозицияТочки = 0 Тогда
СтруктураИмениФайла.Вставить("Расширение", "");
СтруктураИмениФайла.Вставить("ИмяБезРасширения", СтруктураИмениФайла.Имя);
Иначе
СтруктураИмениФайла.Вставить("Расширение", Сред(СтруктураИмениФайла.Имя, ПозицияТочки));
СтруктураИмениФайла.Вставить("ИмяБезРасширения", Лев(СтруктураИмениФайла.Имя, ПозицияТочки - 1));
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(СтруктураИмениФайла, Новый Файл(ПолноеИмяФайла));
Возврат СтруктураИмениФайла;
@@ -103,7 +103,10 @@
// Для вызова из события ПриСозданииНаСервере формы отчета.
//
// Параметры:
// ФормаОтчета - ФормаКлиентскогоПриложения - форма отчета, в которую добавляется команда.
// ФормаОтчета - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета - форма отчета, в которую
// добавляется команда, где:
// * ПостоянныеРеквизиты - СписокЗначений -
// * ПостоянныеКоманды - СписокЗначений -
// КомандаИлиКоманды - КомандаФормы - команда, с которой будут связаны выводимые кнопки.
// Если в свойстве Действие указана пустая строка,
// то при выполнении команды будет вызвана процедура ОтчетыКлиентПереопределяемый.ОбработчикКоманды.
@@ -331,6 +334,13 @@
#Область СлужебныйПрограммныйИнтерфейс
// Выводит и группирует элементы формы, связанные с пользовательскими настройками.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета -
// УзелИерархииЭлементов - ГруппаФормы -
// ПараметрыОбновления - Структура, Неопределено -
//
Процедура ОбновитьЭлементыФормыНастроек(Форма, УзелИерархииЭлементов, ПараметрыОбновления = Неопределено) Экспорт
Если ОбщегоНазначения.ЭтоМобильныйКлиент() Тогда
Форма.СоздатьЭлементыФормыПользовательскихНастроек(УзелИерархииЭлементов);
@@ -483,7 +493,7 @@
Процедура УстановитьДоступныеЗначения(Отчет, Форма) Экспорт
КомпоновщикНастроек = Форма.Отчет.КомпоновщикНастроек;
КоллекцииНастроек = Новый Массив;
КоллекцииНастроек = Новый Массив; // массив из ПользовательскиеНастройкиКомпоновкиДанных, ЗначенияПараметровДанныхКомпоновкиДанных, ОтборКомпоновкиДанных
КоллекцииНастроек.Добавить(КомпоновщикНастроек.ПользовательскиеНастройки);
КоллекцииНастроек.Добавить(КомпоновщикНастроек.Настройки.ПараметрыДанных);
КоллекцииНастроек.Добавить(КомпоновщикНастроек.Настройки.Отбор);
@@ -596,69 +606,7 @@
// * ИдентификаторТекущегоУзлаКД - ИдентификаторКомпоновкиДанных, Неопределено - идентификатор текущей настройки.
//
// Возвращаемое значение:
// Структура - содержит:
// * ТолькоПользовательские - Булево.
// * ТолькоБыстрые - Булево.
// * ИдентификаторТекущегоУзлаКД - ИдентификаторКомпоновкиДанных, Неопределено - идентификатор текущей настройки.
// * НастройкиКД - НастройкиКомпоновкиДанных - см. Синтакс-помощник: КомпоновщикНастроекКомпоновкиДанных.Настройки.
// * НастройкиОтчета - Структура - см. ВариантыОтчетов.НастройкиФормыОтчета().
// * ОтчетОбъектИлиПолноеИмя - ОтчетОбъект, Строка - объект компонуемого отчета или его полное имя метаданных.
// * ДеревоВарианта - ДеревоЗначений - см. ОтчетыСервер.ДеревоВарианта().
// Хранит свойства и признаки настройки компоновки данных и всей иерархии ее структуры.
// * НастройкиВарианта - ДеревоЗначений - см. ОтчетыСервер.ТаблицаНастроекВарианта().
// Хранит ссылку на каждую строку раннее инициализированного дерева ДеревоВарианта,
// а также свойства и признаки соответствующих коллекций настроек: Отбор, Порядок и т.д.
// * ПользовательскиеНастройки - ТаблицыЗначений - см. ОтчетыСервер.ТаблицаПользовательскихНастроек().
// Хранит ссылку на каждую строку раннее инициализированного дерева
// ДеревоВарианта, а также свойства и признаки по каждой из пользовательских
// настроек.
// * ОтключаемыеСвязи - Массив:
// * ПоТипу - ТаблицыЗначений - см. ОтчетыСервер.ТаблицаСвязейПоТипу().
// Хранит ссылку на строку дерева раннее инициализированного свойства ДеревоВарианта,
// а также значения свойств параметра редактирования СвязьПоТипу
// доступных полей отбора и параметров данных настроек компоновки данных.
// * ПараметровВыбора - ТаблицыЗначений - см. ОтчетыСервер.ТаблицаСвязейПараметровВыбора().
// Хранит ссылку на строку дерева раннее инициализированного
// свойства ДеревоВарианта, а также значения свойств параметра
// редактирования СвязиПараметровВыбора доступных полей отбора и
// параметров данных настроек компоновки данных.
// * ОбъектовМетаданных - ТаблицыЗначений - см. ОтчетыСервер.ТаблицаСвязейОбъектовМетаданных().
// * ДополнительныеНастройкиЭлементов - Соответствие - хранится в КомпоновщикНастроекКомпоновкиДанных.ПользовательскиеНастройки.ДополнительныеСвойства,
// по ключу ЭлементыФормы:
// * Ключ - Строка - производная от универсального идентификатора
// пользовательской настройки - составная часть элемента
// управления, ссылающегося на пользовательскую настройку.
// * Значение - Структура - свойства пользовательских настроек.
// * СоответствиеИменОбъектовМетаданных - Соответствие - содержит:
// * Ключ - Тип - ссылочный тип.
// * Значение - Строка - полное имя объекта метаданных
// соответствующего текущему ключу.
// * Поиск - Структура - содержит:
// * НастройкиВариантаПоПолюКД - Соответствие:
// * Ключ - ПолеКомпоновкиДанных.
// * Значение - СтрокаДереваЗначений - ссылка на строку дерева
// раннее инициализированного свойства ДеревоВарианта.
// * ПользовательскиеНастройки - Соответствие.
// * Ключ - Строка - производная от универсального идентификатора
// пользовательской настройки - составная часть элемента
// управления, ссылающегося на пользовательскую настройку.
// * Значение - СтрокаТаблицыЗначений - ссылка на строку таблицы
// значений раннее инициализированного свойства ПользовательскиеНастройки.
// * ЕстьБыстрыеНастройки - Булево - Истина, если хотя бы для одной из пользовательских настроек
// РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ
// или РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Авто.
// * ЕстьОбычныеНастройки - Булево - Истина, если хотя бы для одной из пользовательских настроек
// РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный.
// * ЕстьНесуществующиеПоля - Булево - признак того, что поле отсутствует в доступных полях.
// * ЕстьВложенныеОтчеты - Булево - признак того, что тип хотя бы одного из элементов настроек - НастройкиВложенногоОбъектаКомпоновкиДанных.
// * ЕстьВложенноеОформление - Булево - см. Синтакс-помощник - НастройкиКомпоновкиДанных.НаличиеУсловногоОформленияУЭлемента().
// * ЕстьВложенныеПоля - Булево - см. Синтакс-помощник - НастройкиКомпоновкиДанных.НаличиеВыбораУЭлемента().
// * ЕстьВложенныеСортировки - Булево - см. Синтакс-помощник - НастройкиКомпоновкиДанных.НаличиеПорядкаУЭлемента().
// * СвойстваГруппЭлементов - Структура - см. ОтчетыСервер.СвойстваГруппыЭлементовФормы() -
// настройки группы элементов быстрых (выводимых на форму) настроек по умолчанию.
// * ГруппыЭлементов - Соответствие - коллекция для установки частных свойств групп элементов быстрых настроек.
// * ДеревоВариантаКорневаяСтрока - СтрокаДереваЗначений - ссылка на строку раннее инициализированного
// дерева ДеревоВарианта, соответствующую текущему элементу настройки.
// Структура - см. СвойстваРасширеннойИнформацииОНастройках
//
Функция РасширеннаяИнформацияОНастройках(КомпоновщикНастроекКД, НастройкиОтчета, ОтчетОбъектИлиПолноеИмя, УсловияВывода = Неопределено) Экспорт
НастройкиКД = КомпоновщикНастроекКД.Настройки;
@@ -669,50 +617,13 @@
ДополнительныеНастройкиЭлементов = Новый Соответствие;
КонецЕсли;
Информация = Новый Структура;
Информация.Вставить("ТолькоПользовательские", Ложь);
Информация.Вставить("ТолькоБыстрые", Ложь);
Информация.Вставить("ИдентификаторТекущегоУзлаКД", Неопределено);
Если УсловияВывода <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Информация, УсловияВывода);
КонецЕсли;
Информация.Вставить("НастройкиКД", НастройкиКД);
Информация.Вставить("НастройкиОтчета", НастройкиОтчета);
Информация.Вставить("ОтчетОбъектИлиПолноеИмя", ОтчетОбъектИлиПолноеИмя);
Информация.Вставить("ДеревоВарианта", ДеревоВарианта());
Информация.Вставить("НастройкиВарианта", ТаблицаНастроекВарианта());
Информация.Вставить("ПользовательскиеНастройки", ТаблицаПользовательскихНастроек());
Информация.Вставить("ОтключаемыеСвязи", Новый Массив);
Информация.Вставить("Связи", Новый Структура);
Информация.Связи.Вставить("ПоТипу", ТаблицаСвязейПоТипу());
Информация.Связи.Вставить("ПараметровВыбора", ТаблицаСвязейПараметровВыбора());
Информация.Связи.Вставить("ОбъектовМетаданных", ТаблицаСвязейОбъектовМетаданных(НастройкиОтчета, Информация.ОтчетОбъектИлиПолноеИмя));
Информация.Вставить("ДополнительныеНастройкиЭлементов", ДополнительныеНастройкиЭлементов);
Информация.Вставить("СоответствиеИменОбъектовМетаданных", Новый Соответствие);
Информация.Вставить("Поиск", Новый Структура);
Информация.Поиск.Вставить("НастройкиВариантаПоПолюКД", Новый Соответствие);
Информация.Поиск.Вставить("ПользовательскиеНастройки", Новый Соответствие);
Информация.Вставить("ЕстьБыстрыеНастройки", Ложь);
Информация.Вставить("ЕстьОбычныеНастройки", Ложь);
Информация.Вставить("ЕстьНесуществующиеПоля", Ложь);
Информация.Вставить("ЕстьВложенныеОтчеты", Ложь);
Информация.Вставить("ЕстьВложенныеОтборы", Ложь);
Информация.Вставить("ЕстьВложенноеОформление", Ложь);
Информация.Вставить("ЕстьВложенныеПоля", Ложь);
Информация.Вставить("ЕстьВложенныеСортировки", Ложь);
// Настройки группы элементов быстрых (выводимых на форму) настроек по умолчанию.
Информация.Вставить("СвойстваГруппЭлементов", СвойстваГруппыЭлементовФормы());
// Коллекция для установки частных свойств групп элементов быстрых настроек.
Информация.Вставить("ГруппыЭлементов", Новый Соответствие);
Информация = СвойстваРасширеннойИнформацииОНастройках(
НастройкиКД, НастройкиОтчета, ОтчетОбъектИлиПолноеИмя, УсловияВывода, ДополнительныеНастройкиЭлементов);
Для Каждого ПользовательскаяНастройкаКД Из ПользовательскиеНастройкиКД.Элементы Цикл
СвойстваНастройки = Информация.ПользовательскиеНастройки.Добавить();
ПользовательскиеНастройки = Информация.ПользовательскиеНастройки; // см. ТаблицаПользовательскихНастроек
СвойстваНастройки = ПользовательскиеНастройки.Добавить();
СвойстваНастройки.ПользовательскаяНастройкаКД = ПользовательскаяНастройкаКД;
СвойстваНастройки.Идентификатор = ПользовательскаяНастройкаКД.ИдентификаторПользовательскойНастройки;
СвойстваНастройки.ИндексВКоллекции = ПользовательскиеНастройкиКД.Элементы.Индекс(ПользовательскаяНастройкаКД);
@@ -740,13 +651,136 @@
Возврат Информация;
КонецФункции
// Конструктор коллекции расширенной информации о настройках отчета.
//
// Параметры:
// НастройкиКД - НастройкиКомпоновкиДанных -
// НастройкиОтчета - Структура -
// ОтчетОбъектИлиПолноеИмя - ОтчетОбъект, Строка -
// УсловияВывода - Неопределено, Структура -
// * ТолькоПользовательские - Булево -
// * ТолькоБыстрые - Булево -
// * ИдентификаторТекущегоУзлаКД - ИдентификаторКомпоновкиДанных, Неопределено -
// ДополнительныеНастройкиЭлементов - Соответствие, Неопределено, Произвольный -
//
// Возвращаемое значение:
// Структура - содержит:
// * ТолькоПользовательские - Булево -
// * ТолькоБыстрые - Булево -
// * ИдентификаторТекущегоУзлаКД - ИдентификаторКомпоновкиДанных, Неопределено -
// * НастройкиКД - НастройкиКомпоновкиДанных -
// * НастройкиОтчета - Структура - см. ВариантыОтчетов.НастройкиФормыОтчета.
// * ОтчетОбъектИлиПолноеИмя - ОтчетОбъект, Строка -
// * ДеревоВарианта - ДеревоЗначений - см. ДеревоВарианта
// * НастройкиВарианта - ДеревоЗначений - см. ТаблицаНастроекВарианта
// * ПользовательскиеНастройки - ТаблицыЗначений - см. ТаблицаПользовательскихНастроек
// * ОтключаемыеСвязи - Массив - где:
// * ПоТипу - ТаблицыЗначений - см. ТаблицаСвязейПоТипу
// * ПараметровВыбора - ТаблицыЗначений - см. ТаблицаСвязейПараметровВыбора
// * ОбъектовМетаданных - ТаблицыЗначений - см. ТаблицаСвязейОбъектовМетаданных
// * ДополнительныеНастройкиЭлементов - Соответствие - где:
// ** Ключ - Строка -
// ** Значение - Структура -
// * СоответствиеИменОбъектовМетаданных - Соответствие - где:
// ** Ключ - Тип - ссылочный тип.
// ** Значение - Строка -
// * Поиск - Структура - где:
// ** НастройкиВариантаПоПолюКД - Соответствие - где:
// *** Ключ - ПолеКомпоновкиДанных -
// *** Значение - СтрокаДереваЗначений -
// * ПользовательскиеНастройки - Соответствие - где:
// ** Ключ - Строка -
// ** Значение - СтрокаТаблицыЗначений -
// * ЕстьБыстрыеНастройки - Булево -
// * ЕстьОбычныеНастройки - Булево -
// * ЕстьНесуществующиеПоля - Булево -
// * ЕстьВложенныеОтчеты - Булево -
// * ЕстьВложенноеОформление - Булево -
// * ЕстьВложенныеПоля - Булево -
// * ЕстьВложенныеСортировки - Булево -
// * СвойстваГруппЭлементов - Структура -
// * ГруппыЭлементов - Соответствие -
// * ДеревоВариантаКорневаяСтрока - СтрокаДереваЗначений -
//
Функция СвойстваРасширеннойИнформацииОНастройках(НастройкиКД, НастройкиОтчета, ОтчетОбъектИлиПолноеИмя,
УсловияВывода, ДополнительныеНастройкиЭлементов)
Информация = Новый Структура;
Информация.Вставить("ТолькоПользовательские", Ложь);
Информация.Вставить("ТолькоБыстрые", Ложь);
Информация.Вставить("ИдентификаторТекущегоУзлаКД", Неопределено);
Если УсловияВывода <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Информация, УсловияВывода);
КонецЕсли;
Информация.Вставить("НастройкиКД", НастройкиКД);
Информация.Вставить("НастройкиОтчета", НастройкиОтчета);
Информация.Вставить("ОтчетОбъектИлиПолноеИмя", ОтчетОбъектИлиПолноеИмя);
ДеревоВарианта = ДеревоВарианта();
Информация.Вставить("ДеревоВарианта", ДеревоВарианта);
НастройкиВарианта = ТаблицаНастроекВарианта();
Информация.Вставить("НастройкиВарианта", НастройкиВарианта);
ПользовательскиеНастройки = ТаблицаПользовательскихНастроек();
Информация.Вставить("ПользовательскиеНастройки", ПользовательскиеНастройки);
Информация.Вставить("ОтключаемыеСвязи", Новый Массив);
СвязиПоТипу = ТаблицаСвязейПоТипу();
СвязиПараметровВыбора = ТаблицаСвязейПараметровВыбора();
СвязиОбъектовМетаданных = ТаблицаСвязейОбъектовМетаданных(НастройкиОтчета, Информация.ОтчетОбъектИлиПолноеИмя);
Связи = Новый Структура;
Связи.Вставить("ПоТипу", СвязиПоТипу);
Связи.Вставить("ПараметровВыбора", СвязиПараметровВыбора);
Связи.Вставить("ОбъектовМетаданных", СвязиОбъектовМетаданных);
Информация.Вставить("Связи", Связи);
Информация.Вставить("ДополнительныеНастройкиЭлементов", ДополнительныеНастройкиЭлементов);
Информация.Вставить("СоответствиеИменОбъектовМетаданных", Новый Соответствие);
Поиск = Новый Структура;
Поиск.Вставить("НастройкиВариантаПоПолюКД", Новый Соответствие);
Поиск.Вставить("ПользовательскиеНастройки", Новый Соответствие);
Информация.Вставить("Поиск", Поиск);
Информация.Вставить("ЕстьБыстрыеНастройки", Ложь);
Информация.Вставить("ЕстьОбычныеНастройки", Ложь);
Информация.Вставить("ЕстьНесуществующиеПоля", Ложь);
Информация.Вставить("ЕстьВложенныеОтчеты", Ложь);
Информация.Вставить("ЕстьВложенныеОтборы", Ложь);
Информация.Вставить("ЕстьВложенноеОформление", Ложь);
Информация.Вставить("ЕстьВложенныеПоля", Ложь);
Информация.Вставить("ЕстьВложенныеСортировки", Ложь);
// Настройки группы элементов быстрых (выводимых на форму) настроек по умолчанию.
СвойстваГруппЭлементов = СвойстваГруппыЭлементовФормы();
Информация.Вставить("СвойстваГруппЭлементов", СвойстваГруппЭлементов);
// Коллекция для установки частных свойств групп элементов быстрых настроек.
Информация.Вставить("ГруппыЭлементов", Новый Соответствие);
Возврат Информация;
КонецФункции
// Очистить от циклических ссылок для освобождения памяти.
Процедура ОчиститьРасширеннуюИнформациюОНастройках(ИнформацияОНастройках) Экспорт
ОчиститьДеревоЗначений(ИнформацияОНастройках.ДеревоВарианта);
ОчиститьДеревоЗначений(ИнформацияОНастройках.НастройкиВарианта);
ИнформацияОНастройках.Поиск.Очистить();
ИнформацияОНастройках.ПользовательскиеНастройки.Колонки.Очистить();
ПользовательскиеНастройки = ИнформацияОНастройках.ПользовательскиеНастройки; // см. ТаблицаПользовательскихНастроек
ПользовательскиеНастройки.Колонки.Очистить();
ИнформацияОНастройках.Связи.Очистить();
ИнформацияОНастройках.Очистить();
@@ -754,6 +788,9 @@
// Очистить дерево значений от циклических ссылок для освобождения памяти.
//
// Параметры:
// Дерево - ДеревоЗначений -
//
Процедура ОчиститьДеревоЗначений(Знач Дерево)
СтрокиДерева = Дерево.Строки;
@@ -839,6 +876,20 @@
Возврат Результат;
КонецФункции
// Добавляет строку в дерево вариантов.
//
// Параметры:
// Информация - Структура - см. СвойстваРасширеннойИнформацииОНастройках
// УзелКД - ДиаграммаКомпоновкиДанных -
// - НастройкиКомпоновкиДанных -
// - НастройкиВложенногоОбъектаКомпоновкиДанных -
// - ТаблицаКомпоновкиДанных -
// - ГруппировкаКомпоновкиДанных -
// НаборСтрокДерева - КоллекцияСтрокДереваЗначений -
// Подтип - Строка -
// Возвращаемое значение:
// СтрокаДереваЗначений -
//
Функция ЗарегистрироватьУзелДереваВарианта(Информация, НастройкиКД, УзелКД, НаборСтрокДерева, Подтип = "")
СтрокаДерева = НаборСтрокДерева.Добавить();
СтрокаДерева.УзелКД = УзелКД;
@@ -946,6 +997,16 @@
Возврат СтрокаДерева;
КонецФункции
// Возвращает значение параметра вывода Заголовок.
//
// Параметры:
// ПараметрыВывода - ЗначенияПараметровВыводаГруппировкиКомпоновкиДанных -
// - ЗначенияПараметровВыводаДиаграммыКомпоновкиДанных -
// - ЗначенияПараметровВыводаТаблицыКомпоновкиДанных -
// - ЗначенияПараметровВыводаКомпоновкиДанных -
// Возвращаемое значение:
// Строка -
//
Функция ЗаголовокИзПараметровВывода(ПараметрыВывода)
ВыводитьЗаголовокКД = ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьЗаголовок"));
Если ВыводитьЗаголовокКД = Неопределено Тогда
@@ -1031,6 +1092,48 @@
Возврат Результат;
КонецФункции
// Возвращает таблицу с описанием пользовательских настроек.
//
// Возвращаемое значение:
// ТаблицаЗначений - где:
// * УзелКД
// * НастройкаВариантаКД
// * ПользовательскаяНастройкаКД
// * ДоступнаяНастройкаКД
// * СтрокаДерева
// * НастройкаВарианта
// * ИдентификаторКД
// * ИндексВКоллекции - Число -
// * Идентификатор - Строка -
// * ИдентификаторЭлемента - Строка -
// * Тип - Строка -
// * Подтип - Строка -
// * Состояние - Строка -
// * ПолеКД
// * Значение
// * ВидСравнения
// * ВводСписком - Булево -
// * ИнформацияОТипах
// * ОтмеченныеЗначения
// * ПараметрыВыбора
// * ОписаниеТипов
// * ЗначенияДляВыбора
// * ЗапросЗначенийВыбора
// * БыстрыйВыбор - Булево -
// * ОграничиватьВыборУказаннымиЗначениями - Булево -
// * ПредставлениеПоУмолчанию - Строка -
// * Представление - Строка -
// * Быстрая - Булево -
// * Обычная - Булево -
// * ВыводРазрешен - Булево -
// * ВыводитьФлажок - Булево -
// * ВыводитьТолькоФлажок - Булево -
// * ГруппаЭлементов - Строка -
// * ПоложениеЗаголовка - ПоложениеЗаголовкаЭлементаФормы -
// * ТипЭлементов - Строка -
// * ВыборГруппИЭлементов
// * Дополнительно - Структура -
//
Функция ТаблицаПользовательскихНастроек()
Результат = Новый ТаблицаЗначений;
@@ -1118,6 +1221,24 @@
Возврат ТаблицаСвязей;
КонецФункции
// Конструктор коллекции связей элементов настроек.
//
// Параметры:
// НастройкиОтчета - Структура -
// ОтчетОбъектИлиПолноеИмя - ОтчетОбъект, Строка -
//
// Возвращаемое значение:
// ТаблицаЗначений - содержит:
// * ВедущийТип - Тип -
// * ПодчиненныйТип - Тип -
// * ПодчиненныйРеквизит - Строка -
// * ЕстьВедущие - Булево -
// * ЕстьПодчиненные - Булево -
// * Ведущие - Массив -
// * Подчиненные - Массив -
// * ВедущийПолноеИмя - Строка -
// * ПодчиненныйПолноеИмя - Строка -
//
Функция ТаблицаСвязейОбъектовМетаданных(НастройкиОтчета, ОтчетОбъектИлиПолноеИмя)
// Связи из метаданных.
Результат = Новый ТаблицаЗначений;
@@ -1227,6 +1348,17 @@
КонецПроцедуры
// Добавляет строку дерева значений с описанием настройки варианта отчета.
//
// Параметры:
// НастройкиКД - НастройкиКомпоновкиДанных -
// Информация - Структура - см. СвойстваРасширеннойИнформацииОНастройках
// СтрокаДерева - СтрокаДереваЗначений -
// ИмяКоллекции - Строка -
// НаборЭлементов - Неопределено -
// Родитель - Неопределено -
// Владелец - Неопределено -
//
Процедура ЗарегистрироватьУзелНастроек(НастройкиКД, Информация, СтрокаДерева, ИмяКоллекции, НаборЭлементов = Неопределено, Родитель = Неопределено, Владелец = Неопределено)
УзелКД = СтрокаДерева.УзелКД[ИмяКоллекции];
@@ -1280,6 +1412,17 @@
КонецПроцедуры
// Добавляет запись в коллекцию свойств элементов настроек отчета.
//
// Параметры:
// Информация - Структура - см. СвойстваРасширеннойИнформацииОНастройках
// УзелКД
// НаборЭлементов - КоллекцияЗначенийПараметровКомпоновкиДанных -
// - КоллекцияЭлементовОтбораКомпоновкиДанных -
// - ГруппаЭлементовОтбораКомпоновкиДанных -
// Владелец - СтрокаДереваЗначений -
// Родитель - СтрокаДереваЗначений -
//
Процедура ЗарегистрироватьЭлементыНастроек(Информация, УзелКД, НаборЭлементов, Владелец, Родитель)
ЕстьНеПомеченные = Ложь;
ЕстьПомеченные = Ложь;
@@ -1477,6 +1620,12 @@
КонецПроцедуры
// Добавляет запись в коллекции связей.
//
// Параметры:
// Информация - Структура - см. СвойстваРасширеннойИнформацииОНастройках
// НастройкаВарианта - СтрокаДереваЗначений -
//
Процедура ЗарегистрироватьТипыИСвязи(Информация, НастройкаВарианта)
///////////////////////////////////////////////////////////////////
@@ -1534,8 +1683,9 @@
КонецЕсли;
// Поиск типа в глобальных связях среди подчиненных.
Найденные = Информация.Связи.ОбъектовМетаданных.НайтиСтроки(Новый Структура("ПодчиненныйТип", Тип));
Для Каждого СвязьПоМетаданным Из Найденные Цикл // Регистрация настройки как подчиненной.
Для Каждого СвязьПоМетаданным Из Найденные Цикл
СвязьПоМетаданным.ЕстьПодчиненные = Истина;
СвязьПоМетаданным.Подчиненные.Добавить(НастройкаВарианта);
КонецЦикла;
@@ -1925,6 +2075,18 @@
////////////////////////////////////////////////////////////////////////////////
// Пользовательские настройки
// Добавляет запись с описанием пользовательской настройки.
//
// Параметры:
// Информация - Структура - см. СвойстваРасширеннойИнформацииОНастройках
// СвойстваНастройки - СтрокаДереваЗначений - где:
// * Обычная - Булево -
// СтрокаДерева - СтрокаДереваЗначений, Неопределено -
// НастройкаВарианта - СтрокаДереваЗначений, Неопределено -
//
// Возвращаемое значение:
// СтрокаДереваЗначений -
//
Функция ЗарегистрироватьПользовательскуюНастройку(Информация, СвойстваНастройки, СтрокаДерева, НастройкаВарианта)
ПользовательскаяНастройкаКД = СвойстваНастройки.ПользовательскаяНастройкаКД;
@@ -2101,6 +2263,18 @@
Возврат СвойстваНастройки;
КонецФункции
// Определяет заголовок и признак пометки на удаление элемента настройки отчета.
//
// Параметры:
// СвойстваНастройки - СтрокаДереваЗначений, Неопределено -
// * Обычная - Булево -
// НастройкаВариантаКД - ЭлементОтбораКомпоновкиДанных -
// - ЗначениеПараметраКомпоновкиДанных -
// - ВыбранноеПолеКомпоновкиДанных -
// - ГруппаВыбранныхПолейКомпоновкиДанных -
// ПользовательскаяНастройкаКД - Неопределено -
// ДоступнаяНастройкаКД - ДоступноеПолеОтбораКомпоновкиДанных, ДоступныйПараметрКомпоновкиДанных -
//
Процедура ЗаполнитьПредставлениеИСостояниеНастройки(СвойстваНастройки, НастройкаВариантаКД, ПользовательскаяНастройкаКД, ДоступнаяНастройкаКД)
Если ПользовательскаяНастройкаКД = Неопределено Тогда
ПользовательскаяНастройкаКД = НастройкаВариантаКД;
@@ -2390,6 +2564,19 @@
////////////////////////////////////////////////////////////////////////////////
// Обновление элементов формы пользовательских настроек
// Возвращает коллекцию свойств элементов формы отчета (настроек отчета), связанные с настройками,
// которые доступны для переопределения в модуле объекта отчета.
//
// Параметры:
// ТипФормы - ТипФормыОтчета -
// КомпоновщикНастроек - КомпоновщикНастроекКомпоновкиДанных -
// ДополнительныеПараметры - Структура - см. ВариантыОтчетов.НастройкиФормыОтчета
//
// Возвращаемое значение:
// Структура - содержит:
// * Группы - ТаблицаЗначений -
// * Поля - ТаблицаЗначений -
//
Функция СвойстваЭлементовФормыНастроек(ТипФормы, КомпоновщикНастроек, ДополнительныеПараметры)
#Область ПодготовкаСтруктуры
@@ -2432,7 +2619,7 @@
ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
Для Каждого ЭлементПользовательскойНастройки Из ПользовательскиеНастройки.Элементы Цикл
НайденныеСведения = Сведения[ЭлементПользовательскойНастройки.ИдентификаторПользовательскойНастройки];
ЭлементНастройки = НайденныеСведения.ЭлементНастройки;
ЭлементНастройки = НайденныеСведения.ЭлементНастройки; // ГруппировкаКомпоновкиДанных, ГруппировкаТаблицыКомпоновкиДанных, ГруппировкаДиаграммыКомпоновкиДанных
Если ЭлементНастройки = Неопределено
Или НедоступныеЭлементыСтруктуры.Получить(ТипЗнч(ЭлементНастройки)) = ТипФормы
@@ -2496,6 +2683,15 @@
// Получение сведений об основных настройках, включенных в состав пользовательских.
// Возвращает проиндексированные свойства пользовательских настроек отчета такие как соответствующие
// элементы основных настроек, дополнительные поля компоновки данных.
//
// Параметры:
// Настройки - НастройкиКомпоновкиДанных -
//
// Возвращаемое значение:
// Соответствие - см. ВидыСведений
//
Функция СведенияОПользовательскихНастройках(Настройки)
Сведения = Новый Соответствие;
ПолучитьСведенияОГруппировке(Настройки, Сведения);
@@ -2632,6 +2828,17 @@
КонецЦикла;
КонецПроцедуры
// Добавляет сведения о элементах отборов, значениях параметров и т.д.
//
// Параметры:
// Настройки - НастройкиКомпоновкиДанных -
// Свойство - ОтборКомпоновкиДанных -
// - ЗначенияПараметровДанныхКомпоновкиДанных -
// - ЗначенияПараметровВыводаКомпоновкиДанных -
// - УсловноеОформлениеКомпоновкиДанных -
// ИдентификаторСвойства - Строка -
// Сведения - Соответствие - см. ВидыСведений
//
Процедура ПолучитьСведенияОЭлементахСвойстваНастроек(Настройки, Свойство, ИдентификаторСвойства, Сведения)
СвойстваСЭлементами = Новый Структура("Отбор, ПараметрыДанных, ПараметрыВывода, УсловноеОформление");
Если Не СвойстваСЭлементами.Свойство(ИдентификаторСвойства) Тогда
@@ -2694,12 +2901,35 @@
КонецЦикла;
КонецПроцедуры
// Конструктор индекса свойств пользовательских настроек.
//
// Возвращаемое значение:
// Структура - содержит:
// * Настройки - НастройкиКомпоновкиДанных -
// * ЭлементНастройки - ЭлементОтбораКомпоновкиДанных -
// - ЗначениеПараметраКомпоновкиДанных -
// - ВыбранноеПолеКомпоновкиДанных -
// * ОписаниеНастройки - ДоступноеПолеОтбораКомпоновкиДанных -
// - ДоступныйПараметрКомпоновкиДанных -
//
Функция ВидыСведений()
Возврат Новый Структура("Настройки, ЭлементНастройки, ОписаниеНастройки");
КонецФункции
// Перегруппировка элементов формы, связанных с пользовательскими настройками.
// Формирует коллекции имен реквизитов, сгруппированных по стилям: Период, Флажок, Список.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета -
// ВидыЭлементов - Массив из Строка -
//
// Возвращаемое значение:
// Структура - содержит:
// * Сгенерированных - Структура -
// * Предопределенных - Структура -
//
Функция ИменаРеквизитовЭлементовНастроек(Форма, ВидыЭлементов)
ИменаРеквизитовПредопределенных = Новый Структура;
ИменаРеквизитовСгенерированных = Новый Структура;
@@ -2923,6 +3153,17 @@
Возврат ЭлементыНастроек;
КонецФункции
// Выполняет поиск элементов формы, связанных с пользовательскими настройками отчета,
// созданных методом СоздатьЭлементыФормыПользовательскихНастроек.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета - где:
// * Элементы - ВсеЭлементыФормы -
// * Отчет - ОтчетОбъект -
// ГруппаЭлементов - ГруппаФормы -
// ЭлементыНастроек - ТаблицаЗначений - см. ПалитраКоллекцииЭлементовНастроек
// ОписаниеНастроек - ТаблицаЗначений -
//
Процедура НайтиЭлементыФормыНастроек(Форма, ГруппаЭлементов, ЭлементыНастроек, ОписаниеНастроек)
ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
@@ -3020,6 +3261,16 @@
КонецЦикла;
КонецПроцедуры
// Переопределяет при необходимости свойства элементов формы, связанных с настройками:
// видимость, Ширина, РастягиватьПоГоризонтали и др.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета -
// ЭлементыНастроек - ТаблицаЗначений - см. ПалитраКоллекцииЭлементовНастроек
// СвойстваЭлементов - Структура - содержит:
// * Группы - Структура -
// * Поля - ТаблицаЗначений -
//
Процедура УстановитьСвойстваЭлементовФормыНастроек(Форма, ЭлементыНастроек, СвойстваЭлементов)
КомпоновщикНастроек = Форма.Отчет.КомпоновщикНастроек;
@@ -3035,7 +3286,7 @@
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("СвойствоНастройки", "Использование"));
Для Каждого Элемент Из НайденныеЭлементы Цикл
Поле = Элемент.Поле;
Поле = Элемент.Поле; // ПолеФормы
СвойстваПоля = СвойстваЭлементов.Поля.Найти(Элемент.ИндексНастройки, "ИндексНастройки");
Если ЗначениеЗаполнено(СвойстваПоля.Представление) Тогда
@@ -3055,12 +3306,12 @@
ЭлементНастройки = СвойстваПоля.ЭлементНастройки;
Если ТипЗнч(ЭлементНастройки) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
Поле.Заголовок = Элемент.Поле.Заголовок + ":";
Поле.Заголовок = Поле.Заголовок + ":";
ИначеЕсли ТипЗнч(ЭлементНастройки) = Тип("ЭлементОтбораКомпоновкиДанных") Тогда
Если Исключения.Найти(ЭлементНастройки.ВидСравнения) <> Неопределено Тогда
Поле.Заголовок = Элемент.Поле.Заголовок + ":";
Поле.Заголовок = Поле.Заголовок + ":";
ИначеЕсли Не ЗначениеЗаполнено(ЭлементНастройки.Представление) Тогда
Поле.Заголовок = Элемент.Поле.Заголовок + " (" + НРег(ЭлементНастройки.ВидСравнения) + "):";
Поле.Заголовок = Поле.Заголовок + " (" + НРег(ЭлементНастройки.ВидСравнения) + "):";
КонецЕсли;
КонецЕсли;
КонецЦикла;
@@ -3071,7 +3322,8 @@
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("СвойствоНастройки", "ВидСравнения"));
Для Каждого Элемент Из НайденныеЭлементы Цикл
Элемент.Поле.Видимость = Ложь;
Поле = Элемент.Поле; // ПолеФормы
Поле.Видимость = Ложь;
КонецЦикла;
#КонецОбласти
@@ -3083,7 +3335,7 @@
НайденныеЭлементы = ЭлементыНастроек.НайтиСтроки(Новый Структура("СвойствоНастройки", "Значение"));
Для Каждого Элемент Из НайденныеЭлементы Цикл
Поле = Элемент.Поле;
Поле = Элемент.Поле; // ПолеФормы
Если ТипЗнч(Поле) = Тип("ДекорацияФормы") Тогда
Поле.Заголовок = " ";
@@ -3091,7 +3343,7 @@
Поиск = Новый Структура("ИндексНастройки, СвойствоНастройки", Элемент.ИндексНастройки, "Использование");
НайденныеСвязанныеЭлементы = ЭлементыНастроек.НайтиСтроки(Поиск);
СвязанноеПоле = НайденныеСвязанныеЭлементы[0].Поле;
СвязанноеПоле = НайденныеСвязанныеЭлементы.Получить(0).Поле; // ПолеФормы
Если СтрЗаканчиваетсяНа(СвязанноеПоле.Заголовок, ":") Тогда
СвязанноеПоле.Заголовок = Лев(СвязанноеПоле.Заголовок, СтрДлина(СвязанноеПоле.Заголовок) - 1);
КонецЕсли;
@@ -3160,6 +3412,15 @@
#КонецОбласти
КонецПроцедуры
// Выделяет группу для списка, ссылающегося на настройку с видом сравнения:
// ВСписке, НеВСписке и т.д.
//
// Параметры:
// ЭлементыНастроек - ТаблицаЗначений - см. ПалитраКоллекцииЭлементовНастроек
// СвойстваЭлементов - Структура - Описание:
// * Группы - Структура -
// * Поля - ТаблицаЗначений -
//
Процедура ВынестиСписокВОтдельнуюГруппу(ЭлементыНастроек, СвойстваЭлементов)
Поиск = Новый Структура("ЭтоСписок", Истина);
Статистика = ЭлементыНастроек.Скопировать(Поиск);
@@ -3502,8 +3763,9 @@
Продолжить;
КонецЕсли;
ЗаголовокЭлемента = Элемент.Поле.Заголовок;
ШаблонИмениЭлемента = СтрЗаменить(Элемент.Поле.Имя, СвойстваВидовЭлементов[ВидЭлемента], "%1");
Поле = Элемент.Поле; // ПолеФормы
ЗаголовокЭлемента = Поле.Заголовок;
ШаблонИмениЭлемента = СтрЗаменить(Поле.Имя, СвойстваВидовЭлементов[ВидЭлемента], "%1");
ИмяРеквизита = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонИмениЭлемента, ВидЭлемента);
Если Сгенерированные.Найти(ИмяРеквизита) = Неопределено Тогда
@@ -3569,7 +3831,7 @@
ИнициализироватьПериод(Форма, Элемент.ИндексНастройки);
Поле = Элемент.Поле;
Родитель = Поле.Родитель;
Родитель = Поле.Родитель; // ГруппаФормы
СледующийЭлемент = Неопределено;
ИндексЭлемента = Родитель.ПодчиненныеЭлементы.Индекс(Поле);
@@ -3669,6 +3931,14 @@
Кнопка.ИмяКоманды = ИмяЭлемента;
КонецПроцедуры
// Устанавливает значения свойствам стандартного периода: ДатаНачала, ДатаОкончания
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета - где:
// * Элементы - ВсеЭлементыФормы -
// * Отчет - ОтчетОбъект -
// Индекс - Число -
//
Процедура ИнициализироватьПериод(Форма, Индекс)
ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
ЭлементНастройки = ПользовательскиеНастройки.Элементы[Индекс];
@@ -3701,9 +3971,21 @@
КонецЦикла;
КонецПроцедуры
// Создает элементы формы типа ТаблицаФормы, ссылающиеся на реквизит типа СписокЗначений
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета - где:
// * Отчет - ОтчетОбъект -
// ЭлементНастройки - СтрокаТаблицыЗначений -
// ОписаниеЭлементаНастройки - СтрокаТаблицыЗначений, Неопределено -
// ИмяСписка - Строка -
// ИменаРеквизитов - Структура - содержит:
// * Сгенерированных - Структура -
// * Предопределенных - Структура -
//
Процедура ДобавитьЭлементыСписка(Форма, ЭлементНастройки, ОписаниеЭлементаНастройки, ИмяСписка, ИменаРеквизитов)
Элементы = Форма.Элементы;
Поле = ЭлементНастройки.Поле;
Поле = ЭлементНастройки.Поле; // ПолеФормы
ИменаРеквизитовПредопределенных = ИменаРеквизитов.Предопределенных.Список;
@@ -3900,7 +4182,7 @@
ЭлементСписка.Пометка = (НайденныйЭлемент <> Неопределено);
КонецЦикла;
ПолеСписка = Форма.Элементы[Путь];
ПолеСписка = Форма.Элементы[Путь]; // ТаблицаФормы
Если ЭлементНастройки.Использование Тогда
ПолеСписка.ЦветТекста = Новый Цвет;
Иначе
@@ -3943,6 +4225,13 @@
КонецЦикла;
КонецПроцедуры
// Устанавливает значение флажка.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеУправляемойФормыДляОтчета - где:
// * Отчет - ОтчетОбъект -
// Индекс - Число -
//
Процедура ИнициализироватьФлажок(Форма, Индекс)
ПользовательскиеНастройки = Форма.Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;
ЭлементНастройки = ПользовательскиеНастройки.Элементы[Индекс];
@@ -3958,9 +4247,21 @@
////////////////////////////////////////////////////////////////////////////////
// Сохранение состояния формы
// Запоминает состояние формы.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения -
// ИмяТаблицы - Строка -
// КлючевыеКолонки - Строка -
//
// Возвращаемое значение:
// Структура - содержит:
// * Текущая - Неопределено -
// * Выделенные - Массив -
//
Функция ЗапомнитьВыделенныеСтроки(Форма, ИмяТаблицы, КлючевыеКолонки) Экспорт
ТаблицаРеквизит = Форма[ИмяТаблицы];
ТаблицаЭлемент = Форма.Элементы[ИмяТаблицы];
ТаблицаЭлемент = Форма.Элементы.Найти(ИмяТаблицы); // ТаблицаФормы
Результат = Новый Структура;
Результат.Вставить("Выделенные", Новый Массив);
@@ -3994,9 +4295,16 @@
Возврат Результат;
КонецФункции
// Восстанавливает состояние формы.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения -
// ИмяТаблицы - Строка -
// КлючевыеКолонки - Строка -
//
Процедура ВосстановитьВыделенныеСтроки(Форма, ИмяТаблицы, СтрокиТаблицы) Экспорт
ТаблицаРеквизит = Форма[ИмяТаблицы];
ТаблицаЭлемент = Форма.Элементы[ИмяТаблицы];
ТаблицаЭлемент = Форма.Элементы[ИмяТаблицы]; // ТаблицаФормы
ТаблицаЭлемент.ВыделенныеСтроки.Очистить();
@@ -172,8 +172,10 @@
// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или
// "муниципальный район", если
// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА.
// * КодМуниципальногоРайона - Число - код муниципального района: 1- муниципальный район; 2- городской округ; 3 -
// внутригородская территория города федерального значения.
// * КодМуниципальногоРайона - Строка - код муниципального района:
// 1- муниципальный район; 2- городской округ; 3 - внутригородская территория
// города федерального значения; 4 - муниципальный округ.
// Если не удалось определить код, то возвращается пустая строка.
// * Город - Строка - текстовое представление города у адресов по административно-территориальному делению.
// * ГородТипПолный - Строка - полное наименование типа города у адресов по административно-территориальному делению.
// * ГородТипКраткий - Строка - текстовое представление города у адресов по административно-территориальному делению.
@@ -187,7 +189,7 @@
// муниципальному делению, например: "с. п.", если
// ДополнительныеПараметры.ПолноеНаименованиеСокращений = ЛОЖЬ, или "сельское
// поселение", если ДополнительныеПараметры.ПолноеНаименованиеСокращений = ИСТИНА
// * КодПоселения - Число - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная
// * КодПоселения - Строка - код поселения: 1 - городское поселение; 2 - сельское поселение; 3- межселенная
// территория в составе муниципального района; 4 - внутригородской район городского округа;
// * ВнутригородскойРайон - Строка - текстовое представление внутригородского района.
// * ВнутригородскойРайонТипПолный - Строка - полное наименование типа внутригородского района. Например: "микрорайон".
@@ -1828,10 +1830,10 @@
Результат.ТипАдреса = Адрес.AddressType;
Результат.Страна = Адрес.Country;
Результат.КодСтраны = КодыСтраны(Адрес);
НаименованиеРегиона = СокрЛП(Адрес["Area"] + " " +Адрес["AreaType"]);
ЭтоНациональныйАдрес = ?(СтрСравнить(Адрес.Country, РаботаСАдресамиКлиентСервер.ОсновнаяСтрана().Наименование) = 0, Истина, Ложь);
КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(Адрес["Area"] + " " +Адрес["AreaType"]), "");
Результат.КодРегиона = КодРегиона;
Результат.КодРегиона = ?(ЭтоНациональныйАдрес, КодРегиона(НаименованиеРегиона), "");;
СоответствиеУровней = Новый Соответствие;
СоответствиеУровней.Вставить("area", Новый Структура("Имя, Уровень", "Регион", 1));
@@ -1877,7 +1879,8 @@
КонецЦикла;
// Коды мун. уровней
Результат.КодМуниципальногоРайона = КодМуниципальногоРайона(Адрес.munDistrictType);
Результат.КодМуниципальногоРайона = КодМуниципальногоРайона(Адрес.munDistrictType, Адрес.oktmo,
ЭтоГородФедеральногоЗначения(НаименованиеРегиона));
Результат.КодПоселения = КодПоселения(Адрес.settlementType);
Если Параметры.КодыАдреса Тогда
@@ -1992,10 +1995,28 @@
КонецФункции
Функция КодМуниципальногоРайона(Знач ТипМуниципальногоРайона)
Функция КодМуниципальногоРайона(Знач ТипМуниципальногоРайона, ОКТМО, ЭтоГородФедеральногоЗначения)
КодМуниципальногоРайона = "";
Если СтрДлина(ОКТМО) > 3 Тогда
КодВторойСтупениКлассификации = Сред(ОКТМО, 3, 1);
Если КодВторойСтупениКлассификации = "3"
ИЛИ ЭтоГородФедеральногоЗначения И КодВторойСтупениКлассификации = "9" Тогда
КодМуниципальногоРайона = "3";
ИначеЕсли КодВторойСтупениКлассификации = "6" Тогда
КодМуниципальногоРайона = "1";
ИначеЕсли КодВторойСтупениКлассификации = "7" Тогда
КодМуниципальногоРайона = "2";
ИначеЕсли КодВторойСтупениКлассификации = "9" И НЕ ЭтоГородФедеральногоЗначения Тогда
КодМуниципальногоРайона = "4";
ИначеЕсли КодВторойСтупениКлассификации = "8" Тогда
КодМуниципальногоРайона = "4";
КонецЕсли;
Иначе
Если СтрСравнить(ТипМуниципальногоРайона, НСтр("ru = 'м.р-н'")) = 0 Тогда
КодМуниципальногоРайона = "1";
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, НСтр("ru = 'г.о.'")) = 0 Тогда
@@ -2003,6 +2024,10 @@
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, НСтр("ru = 'вн.тер.'")) = 0
Или СтрСравнить(ТипМуниципальногоРайона, НСтр("ru = 'вн.тер. г.'")) = 0 Тогда
КодМуниципальногоРайона = "3";
ИначеЕсли СтрСравнить(ТипМуниципальногоРайона, НСтр("ru = 'мун. окр.'")) = 0 Тогда
КодМуниципальногоРайона = "4";
КонецЕсли;
КонецЕсли;
Возврат КодМуниципальногоРайона;
@@ -359,14 +359,6 @@
Профиль = ИнтернетПочтовыйПрофиль(УчетнаяЗапись);
УстановитьОтключениеБезопасногоРежима(Ложь);
Если Не ЗначениеЗаполнено(ПротоколПочты) Или ПротоколПочты = "Все" Тогда
ОшибочныеПолучатели = Соединение.Послать(Письмо, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать,
ПротоколИнтернетПочты.SMTP);
ПараметрыОтправки.ИдентификаторСообщения = Письмо.ИдентификаторСообщения;
ПараметрыОтправки.ОшибочныеПолучатели = ОшибочныеПолучатели;
КонецЕсли;
Если ПротоколПочты = "IMAP" Или ПротоколПочты = "Все" И Не ПочтовыйСерверХранитПисьмаОтправленныеПоSMTP(Профиль) Тогда
Соединение.Послать(Письмо, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать, ПротоколИнтернетПочты.IMAP);
ПараметрыОтправки.ИдентификаторСообщенияОтправкаIMAP = Письмо.ИдентификаторСообщения;
@@ -378,6 +370,14 @@
Соединение.УстановитьФлагиСообщений(ФлагиПисем);
КонецЕсли;
Если Не ЗначениеЗаполнено(ПротоколПочты) Или ПротоколПочты = "Все" Тогда
ОшибочныеПолучатели = Соединение.Послать(Письмо, ОбработкаТекстаИнтернетПочтовогоСообщения.НеОбрабатывать,
ПротоколИнтернетПочты.SMTP);
ПараметрыОтправки.ИдентификаторСообщения = Письмо.ИдентификаторСообщения;
ПараметрыОтправки.ОшибочныеПолучатели = ОшибочныеПолучатели;
КонецЕсли;
КонецПроцедуры
Процедура ОпределитьПапкуОтправленные(Соединение)
@@ -7843,8 +7843,11 @@
Если ОбъектСсылка.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе Тогда
ХранилищеФайла = РаботаСФайлами.ХранилищеФайлаИзИнформационнойБазы(ОбъектСсылка);
ДвоичныеДанныеФайла = ХранилищеФайла.Получить();
Если ХранилищеФайла = Неопределено Тогда
Возврат "";
КонецЕсли;
ДвоичныеДанныеФайла = ХранилищеФайла.Получить();
Если ТипЗнч(ДвоичныеДанныеФайла) <> Тип("ДвоичныеДанные") Тогда
Возврат "";
КонецЕсли;
@@ -8064,6 +8067,11 @@
КонецЕсли;
КонецЕсли;
Если ПустаяСтрока(ИмяФайлаСДвоичнымиДанными) Тогда
РазблокироватьДанныеДляРедактирования(ФайлБезТекста.Ссылка);
ФайлЗаблокирован = Ложь;
Иначе
РезультатИзвлеченияТекста = ИзвлечьТекстИзФайлаНаДиске(ИмяФайлаСДвоичнымиДанными, ФайлБезТекста.Кодировка);
ФайлОбъект.СтатусИзвлеченияТекста = РезультатИзвлеченияТекста.СтатусИзвлеченияТекста;
ФайлОбъект.ТекстХранилище = РезультатИзвлеченияТекста.ТекстХранилище;
@@ -8076,6 +8084,8 @@
КонецЕсли;
КонецЕсли;
ЗафиксироватьТранзакцию();
Исключение
@@ -2233,8 +2233,9 @@
АвторизованныйПользователь = Пользователи.АвторизованныйПользователь();
Если ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ФайлИлиВерсия, "Автор") <> АвторизованныйПользователь Тогда
Результат.ТекстПредупреждения = НСтр("ru = 'Только автор может удалить'") + " "
+ ?(ЭтоВерсияФайла, НСтр("ru = 'версию файла.'"), НСтр("ru = 'файл.'"));
Результат.ТекстПредупреждения = ?(ЭтоВерсияФайла,
НСтр("ru = 'Только автор может удалить версию файла.'"),
НСтр("ru = 'Только автор может удалить файл.'"));
Возврат Результат;
@@ -10573,11 +10573,11 @@
ЭтоВерсияФайла = ТипЗнч(ФайлИлиВерсия) = Тип("СправочникСсылка.ВерсииФайлов");
ТекстВопроса = НСтр("ru = 'Удалить'") + " "
+ ?(ЭтоВерсияФайла, НСтр("ru = 'версию файла'"), НСтр("ru = 'файл'"))
+ " " + НСтр("ru = 'без возможности восстановления?'");
ТекстЗаголовка = НСтр("ru = 'Удаление'") + " "
+ ?(ЭтоВерсияФайла, НСтр("ru = 'версии файла'"), НСтр("ru = 'файла'"));
ТекстВопроса = ?(ЭтоВерсияФайла,
НСтр("ru = 'Удалить версию файла без возможности восстановления?'"),
НСтр("ru = 'Удалить файл без возможности восстановления?'"));
ТекстЗаголовка = ?(ЭтоВерсияФайла, НСтр("ru = 'Удаление версии файла'"), НСтр("ru = 'Удаление файла'"));
ПоказатьВопрос(Новый ОписаниеОповещения("УдалитьДанныеПослеОтветаНаВопрос", ЭтотОбъект, Контекст),
ТекстВопроса, РежимДиалогаВопрос.ДаНет, 20, КодВозвратаДиалога.Нет, ТекстЗаголовка, КодВозвратаДиалога.Нет);
@@ -10600,12 +10600,8 @@
НачатьУдалениеФайлаИзКеша(Результат);
ИначеЕсли Не ПустаяСтрока(Результат.ТекстПредупреждения) Тогда
ПоказатьПредупреждение(Контекст.ОбработчикЗавершения, Результат.ТекстПредупреждения);
ИначеЕсли Контекст.ОбработчикЗавершения <> Неопределено Тогда
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения);
Иначе
Оповестить("Запись_Файл", Новый Структура);
ОповеститьОбУдаленииДанных(Контекст.ОбработчикЗавершения, Результат.ТекстПредупреждения);
КонецЕсли;
КонецПроцедуры
@@ -10625,12 +10621,17 @@
Возврат;
КонецЕсли;
Если Не ПустаяСтрока(Контекст.ТекстПредупреждения) Тогда
ПоказатьПредупреждение(Контекст.ОбработчикЗавершения, Контекст.ТекстПредупреждения);
ИначеЕсли Контекст.ОбработчикЗавершения <> Неопределено Тогда
ВыполнитьОбработкуОповещения(Контекст.ОбработчикЗавершения);
Иначе
ОповеститьОбУдаленииДанных(Контекст.ОбработчикЗавершения, Контекст.ТекстПредупреждения)
КонецПроцедуры
Процедура ОповеститьОбУдаленииДанных(ОбработчикЗавершения, ТекстПредупреждения)
Оповестить("Запись_Файл", Новый Структура);
Если Не ПустаяСтрока(ТекстПредупреждения) Тогда
ПоказатьПредупреждение(ОбработчикЗавершения, ТекстПредупреждения);
ИначеЕсли ОбработчикЗавершения <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ОбработчикЗавершения);
КонецЕсли;
КонецПроцедуры
@@ -16,7 +16,7 @@
// * ИмяСобытия - Строка - имя события (или группы событий).
// * Метаданные - ОбъектМетаданных - метаданные для привязки события журнала регистрации.
// * Данные - Произвольный - данные для привязки события журнала регистрации.
// ДополнительныеНастройки - Структура - настройки, которые переопределяют стандартные параметры рассылки.
// ДополнительныеНастройки - Структура - настройки, которые переопределяют стандартные параметры рассылки, где:
// * Получатели - Соответствие - набор получателей и их e-mail адресов.
// ** Ключ - СправочникСсылка - получатель.
// ** Значение - Строка - набор e-mail адресов получателя в строке с разделителями.
@@ -204,18 +204,23 @@
ПараметрыДоставки.Вставить("Получатели", Получатели);
КонецЕсли;
ПараметрыДоставки.Вставить("ПараметрыПисьма", Новый Структура);
Если ЗначениеЗаполнено(Рассылка.АдресОтвета) Тогда
ПараметрыДоставки.ПараметрыПисьма.Вставить("АдресОтвета", Рассылка.АдресОтвета);
ТипТекста = ?(Рассылка.ПисьмоВФорматеHTML, "HTML", "ПростойТекст");
Картинки = Новый Структура;
ПараметрыПисьма = Новый Структура;
ПараметрыПисьма.Вставить("ТипТекста", ТипТекста);
ПараметрыПисьма.Вставить("Картинки", Картинки);
Если Рассылка.ПисьмоВФорматеHTML Тогда
ПараметрыПисьма.Картинки = Рассылка.КартинкиПисьмаВФорматеHTML.Получить();
КонецЕсли;
// Вложения
ПараметрыДоставки.ПараметрыПисьма.Вставить("ТипТекста", ?(Рассылка.ПисьмоВФорматеHTML, "HTML", "ПростойТекст"));
ПараметрыДоставки.ПараметрыПисьма.Вставить("Картинки", Новый Структура);
Если Рассылка.ПисьмоВФорматеHTML Тогда
ПараметрыДоставки.ПараметрыПисьма.Картинки = Рассылка.КартинкиПисьмаВФорматеHTML.Получить();
Если ЗначениеЗаполнено(Рассылка.АдресОтвета) Тогда
ПараметрыПисьма.Вставить("АдресОтвета", Рассылка.АдресОтвета);
КонецЕсли;
ПараметрыДоставки.Вставить("ПараметрыПисьма", ПараметрыПисьма);
КонецЕсли;
Если Не ПараметрыДоставки.Свойство("ЗапускЗафиксирован") Или Не ПараметрыДоставки.ЗапускЗафиксирован Тогда
@@ -766,8 +771,10 @@
// Добавляет команды создания рассылок в форму отчета.
//
// Места использования:
// ОбщаяФорма.ФормаОтчета.ПриСозданииНаСервере().
// Параметры:
// Форма - ФормаКлиентскогоПриложения, РасширениеФормыОтчета -
// Отказ - Булево -
// СтандартнаяОбработка - булево -
//
Процедура ФормаОтчетаДобавитьКоманды(Форма, Отказ, СтандартнаяОбработка) Экспорт
@@ -820,7 +827,11 @@
////////////////////////////////////////////////////////////////////////////////
// Обработчики событий подсистем конфигурации.
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок.
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииИсключенийПоискаСсылок
//
// Параметры:
// ИсключенияПоискаСсылок - Массив -
//
Процедура ПриДобавленииИсключенийПоискаСсылок(ИсключенияПоискаСсылок) Экспорт
ИсключенияПоискаСсылок.Добавить(Метаданные.Справочники.РассылкиОтчетов.Реквизиты.ТипПолучателейРассылки);
@@ -828,6 +839,10 @@
КонецПроцедуры
// См. РаботаВБезопасномРежимеПереопределяемый.ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам.
//
// Параметры:
// ЗапросыРазрешений - Массив -
//
Процедура ПриЗаполненииРазрешенийНаДоступКВнешнимРесурсам(ЗапросыРазрешений) Экспорт
Если Не ОбщегоНазначения.ДоступноИспользованиеРазделенныхДанных() Тогда
@@ -867,7 +882,11 @@
КонецПроцедуры
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел.
// См. ТекущиеДелаПереопределяемый.ПриОпределенииОбработчиковТекущихДел
//
// Параметры:
// ТекущиеДела - Массив -
//
Процедура ПриЗаполненииСпискаТекущихДел(ТекущиеДела) Экспорт
Если Не ПравоДобавления() Тогда
Возврат;
@@ -928,6 +947,10 @@
КонецПроцедуры
// См. РегламентныеЗаданияПереопределяемый.ПриОпределенииНастроекРегламентныхЗаданий.
//
// Параметры:
// Зависимости - ТаблицаЗначений -
//
Процедура ПриОпределенииНастроекРегламентныхЗаданий(Зависимости) Экспорт
Зависимость = Зависимости.Добавить();
Зависимость.РегламентноеЗадание = Метаданные.РегламентныеЗадания.РассылкаОтчетов;
@@ -943,6 +966,10 @@
КонецПроцедуры
// См. ОбновлениеИнформационнойБазыПереопределяемый.ПриОпределенииНастроек
//
// Параметры:
// Объекты - Массив -
//
Процедура ПриОпределенииОбъектовСНачальнымЗаполнением(Объекты) Экспорт
Объекты.Добавить(Метаданные.Справочники.РассылкиОтчетов);
@@ -1845,8 +1872,10 @@
Продолжить;
КонецЕсли;
ДокументРезультат = СтрокаОтчет.Значение; // ТабличныйДокумент
Попытка
СтрокаОтчет.Значение.Записать(ПолноеИмяФайла, ПараметрыФормата.ТипФайла);
ДокументРезультат.Записать(ПолноеИмяФайла, ПараметрыФормата.ТипФайла);
Исключение
ЗаписьЖурнала(ПараметрыЖурнала, УровеньЖурналаРегистрации.Ошибка,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ЗаголовокОшибки, СтрокаОтчет.Ключ, ПараметрыФормата.Имя),
@@ -2602,6 +2631,13 @@
КонецФункции
// Проверяет право текущего пользователя на вывод информации. Если прав нет - производится запись в журнал регистрации.
//
// Параметры:
// ПараметрыЖурнала - Структура -
//
// Возвращаемое значение:
// Булево -
//
Функция ПравоВывода(ПараметрыЖурнала)
ПравоВывода = ПравоДоступа("Вывод", Метаданные);
Если Не ПравоВывода Тогда
@@ -2814,7 +2850,7 @@
// Возвращает список значений перечисления "ФорматыСохраненияОтчетов".
//
// Возвращаемое значение:
// СписокФорматов - СписокЗначений - Список форматов, с пометками на системных форматах по умолчанию.
// СписокФорматов - СписокЗначений - Список форматов, с пометками на системных форматах по умолчанию, где:
// * Значение - ПеречислениеСсылка.ФорматыСохраненияОтчетов - Ссылка на описываемый формат.
// * Представление - Строка - Пользовательское представление описываемого формата.
// * Пометка - Булево - Признак использования как формата по умолчанию.
@@ -2854,6 +2890,11 @@
КонецФункции
// Получает пустое значение для поиска по таблице "Отчеты" или "ФорматыОтчетов" справочника "РассылкиОтчетов".
//
// Возвращаемое значение:
// - СправочникСсылка.ДополнительныеОтчетыИОбработки -
// - СправочникСсылка.ВариантыОтчетов -
//
Функция ПустоеЗначениеОтчета() Экспорт
УстановитьПривилегированныйРежим(Истина);
Возврат Метаданные.Справочники.РассылкиОтчетов.ТабличныеЧасти.ФорматыОтчетов.Реквизиты.Отчет.Тип.ПривестиЗначение();
@@ -229,6 +229,7 @@
КонецПроцедуры
// Конструктор для структуры параметров открытия формы контактной информации.
// Состав полей может быть расширен в общем модуле РаботаСАдресамиКлиент свойствами с национальной спецификой.
//
// Параметры:
// ВидКонтактнойИнформации - СправочникСсылка.ВидыКонтактнойИнформации - вид редактируемой контактной информации.
@@ -258,6 +259,10 @@
// * НомерТелефона - Строка - телефонный номер, только если указан тип контактной информации Телефон.
// * Добавочный - Строка - добавочный телефонный номер, только если указан тип контактной информации Телефон.
// * Заголовок - Строка - заголовок формы. По умолчанию, представление вида контактной информации.
// * ТипАдреса - Строка - варианты: Пустая строка (по умолчанию), "ВСвободнойФорме", "ЕАЭС";
// Для РФ: "Муниципальный" или "АдминистративноТерриториальный".
// Если не указан (пустая строка), то для существующего адреса будет установлен адрес
// выбранный пользователем в форме ввода адреса, для нового адреса - Муниципальный".
//
Функция ПараметрыФормыКонтактнойИнформации(ВидКонтактнойИнформации, Значение,
Представление = Неопределено, Комментарий = Неопределено, ТипКонтактнойИнформации = Неопределено) Экспорт
@@ -267,6 +272,7 @@
ПараметрыФормы.Вставить("Значение", Значение);
ПараметрыФормы.Вставить("Представление", Представление);
ПараметрыФормы.Вставить("Комментарий", Комментарий);
ПараметрыФормы.Вставить("ТипАдреса", "");
Если ТипКонтактнойИнформации <> Неопределено Тогда
ПараметрыФормы.Вставить("ТипКонтактнойИнформации", ТипКонтактнойИнформации);
Если ТипКонтактнойИнформации = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
@@ -282,12 +282,12 @@
ПредставлениеОшибочныхАдресатов = РезультатАнализа.ПредставлениеОшибочныхАдресатов;
Если ЭтоПроблемаОтвергнутыхСерверомПочтовыхАдресов И Не ВсеАдресатыПисьмаОтвергнутыСервером Тогда
ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты электронного письма %1 не приняты почтовым сервером:
ШаблонСообщенияОбОшибке = НСтр("ru = 'Следующие адресаты письма %1 не приняты почтовым сервером:
|%2. Письмо отправлено остальным адресатам.'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
ВыборкаПисьма.ПредставлениеПисьма, ПредставлениеОшибочныхАдресатов);
Иначе
ШаблонСообщенияОбОшибке = НСтр("ru = 'Во время отправки электронного письма %1 произошла ошибка
ШаблонСообщенияОбОшибке = НСтр("ru = 'Не удалось отправить письмо %1 по причине:
|%2'", ОбщегоНазначения.КодОсновногоЯзыка());
ТекстСообщенияОбОшибке = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщенияОбОшибке,
ВыборкаПисьма.ПредставлениеПисьма, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
@@ -447,7 +447,7 @@
// записей.
// ЕстьОшибки - Булево - признак наличия ошибок при получении писем.
//
Процедура ЗагрузитьПочтуПользователя(ПолученоПисем, ДоступноУчетныхЗаписей, ЕстьОшибки)
Процедура ЗагрузитьПочтуПользователя(Результат)
Запрос = Новый Запрос;
Запрос.Текст =
@@ -484,10 +484,11 @@
Выборка = Запрос.Выполнить().Выбрать();
ПолученоПисем = 0;
ДоступноУчетныхЗаписей = Выборка.Количество();
Если ДоступноУчетныхЗаписей = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нет доступных для получения почты учетных записей'"));
Результат.ПолученоПисем = 0;
Результат.ДоступноУчетныхЗаписей = Выборка.Количество();
Если Результат.ДоступноУчетныхЗаписей = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(НСтр("ru = 'Нет доступных учетных записей для получения почты.'"));
Результат.ЕстьОшибки = Истина;
Возврат;
КонецЕсли;
@@ -496,21 +497,22 @@
Пока Выборка.Следующий() Цикл
Получено = 0;
СтруктураМассивовПисем = ПолученныеПисьма();
ПолученныеПисьма = ПолученныеПисьма();
ПолучитьПисьма(Выборка, ЕстьОшибки, Получено, СтруктураМассивовПисем);
ПолученоПисем = ПолученоПисем + Получено;
ОпределитьЗагруженныеРанееПодчиненныеПисьма(Выборка.Ссылка, СтруктураМассивовПисем.ВсеПолученныеПисьма);
Взаимодействия.ЗаполнитьКонтактыМассиваВзаимодействий(СтруктураМассивовПисем.ВсеПолученныеПисьма);
Взаимодействия.УстановитьПапкиДляМассиваПисем(СтруктураМассивовПисем.ПисьмаДляОпределенияПапок);
Взаимодействия.РассчитатьРассмотреноПоПредметам(СтруктураМассивовПисем.ВсеПолученныеПисьма);
Взаимодействия.РассчитатьРассмотреноПоКонтактам(СтруктураМассивовПисем.ВсеПолученныеПисьма);
ПолучитьПисьма(Выборка, Результат.ЕстьОшибки, Получено, ПолученныеПисьма);
Результат.ПолученоПисем = Результат.ПолученоПисем + Получено;
ОпределитьЗагруженныеРанееПодчиненныеПисьма(Выборка.Ссылка, ПолученныеПисьма.ВсеПолученныеПисьма);
Взаимодействия.ЗаполнитьКонтактыМассиваВзаимодействий(ПолученныеПисьма.ВсеПолученныеПисьма);
Взаимодействия.УстановитьПапкиДляМассиваПисем(ПолученныеПисьма.ПисьмаДляОпределенияПапок);
Взаимодействия.РассчитатьРассмотреноПоПредметам(ПолученныеПисьма.ВсеПолученныеПисьма);
Взаимодействия.РассчитатьРассмотреноПоКонтактам(ПолученныеПисьма.ВсеПолученныеПисьма);
КонецЦикла;
КонецПроцедуры
Процедура ОтправитьПочтуПользователя()
Процедура ОтправитьПочтуПользователя(Результат)
Запрос = Новый Запрос;
Запрос.Текст = "
@@ -560,8 +562,9 @@
ПисьмаДляОпределенияПапок = Новый Массив;
ВыборкаУчетныеЗаписи = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
УстановитьПривилегированныйРежим(Истина);
Результат.ОтправленоПисем = 0;
УстановитьПривилегированныйРежим(Истина);
Пока ВыборкаУчетныеЗаписи.Следующий() Цикл
Подключение = ПодключитьсяКПочтовомуСерверу(ВыборкаУчетныеЗаписи.УчетнаяЗапись, Истина);
@@ -573,6 +576,8 @@
Пока ВыборкаПисьма.Следующий() Цикл
Если Не ОтправитьЭлектронноеПисьмо(ВыборкаПисьма, Подключение, Истина) Тогда
Результат.ЕстьОшибки = Истина;
Результат.ОтправленоПисем = Результат.ОтправленоПисем + 1;
Продолжить;
КонецЕсли;
@@ -595,19 +600,16 @@
Процедура ОтправитьЗагрузитьПочтуПользователя(ПараметрыВыгрузки, АдресХранилища) Экспорт
ПолученоПисем = 0;
ДоступноУчетныхЗаписей = 0;
ЕстьОшибки = Ложь;
Результат = Новый Структура;
Результат.Вставить("ОтправленоПисем", 0);
Результат.Вставить("ПолученоПисем", 0);
Результат.Вставить("ДоступноУчетныхЗаписей", 0);
Результат.Вставить("ЕстьОшибки", Ложь);
ОтправитьПочтуПользователя();
ЗагрузитьПочтуПользователя(ПолученоПисем, ДоступноУчетныхЗаписей, ЕстьОшибки);
ОтправитьПочтуПользователя(Результат);
ЗагрузитьПочтуПользователя(Результат);
СтруктураВозврата = Новый Структура;
СтруктураВозврата.Вставить("ПолученоПисем", ПолученоПисем);
СтруктураВозврата.Вставить("ДоступноУчетныхЗаписей", ДоступноУчетныхЗаписей);
СтруктураВозврата.Вставить("ЕстьОшибки", ЕстьОшибки);
ПоместитьВоВременноеХранилище(СтруктураВозврата, АдресХранилища);
ПоместитьВоВременноеХранилище(Результат, АдресХранилища);
КонецПроцедуры
@@ -78,6 +78,7 @@
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЭлементСписок", ЭлементСписок);
ДополнительныеПараметры.Вставить("НавигационнаяСсылка", Форма.Окно.ПолучитьНавигационнуюСсылку());
Если ДлительнаяОперация.Статус = "Выполнено" Тогда
ОтправитьЗагрузитьПочтуПользователяЗавершение(ДлительнаяОперация, ДополнительныеПараметры);
@@ -93,28 +94,27 @@
Если Результат = Неопределено Тогда
Возврат;
ИначеЕсли Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
ИначеЕсли Результат.Статус = "Выполнено" Тогда
РезультатВыполнения = ВзаимодействияВызовСервера.РезультатОтправкиПолученияПочтыПользователя(Результат.АдресРезультата);
Если РезультатВыполнения = Неопределено Тогда
Возврат;
КонецЕсли;
Если ДополнительныеПараметры.Свойство("ЭлементСписок")
И ДополнительныеПараметры.ЭлементСписок <> Неопределено Тогда
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
Если Результат.Статус = "Выполнено" Тогда
Если ДополнительныеПараметры.ЭлементСписок <> Неопределено Тогда
ДополнительныеПараметры.ЭлементСписок.Обновить();
КонецЕсли;
ТекстСообщения = ПредставлениеРезультатаОтправкиПолученияПисемПользователя(РезультатВыполнения);
ПоказатьОповещениеПользователя(ТекстСообщения);
Заголовок = НСтр("ru = 'Отправка и получение почты'");
РезультатВыполнения = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
Если РезультатВыполнения.ЕстьОшибки Тогда
ОбщегоНазначенияКлиент.СообщитьПользователю(
НСтр("ru = 'При получении почты были ошибки. Подробности см. в журнале регистрации'"));
ПоказатьОповещениеПользователя(Заголовок, ДополнительныеПараметры.НавигационнаяСсылка,
НСтр("ru = 'Не удалось выполнить все действия. Технические подробности для администратора в журнале регистрации.'"),
БиблиотекаКартинок.Ошибка32, СтатусОповещенияПользователя.Важное);
Иначе
ПоказатьОповещениеПользователя(Заголовок, ДополнительныеПараметры.НавигационнаяСсылка,
РезультатОтправкиПолученияПисем(РезультатВыполнения));
КонецЕсли;
Оповестить("ВыполненаОтправкаПолучениеПисем");
@@ -122,11 +122,23 @@
КонецПроцедуры
Функция ПредставлениеРезультатаОтправкиПолученияПисемПользователя(РезультатВыполнения)
Функция РезультатОтправкиПолученияПисем(РезультатВыполнения)
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Загружено писем: %1'"), РезультатВыполнения.ПолученоПисем);
Если РезультатВыполнения.ПолученоПисем > 0 И РезультатВыполнения.ОтправленоПисем > 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Получено: %1, отправлено: %2'"),
РезультатВыполнения.ПолученоПисем, РезультатВыполнения.ОтправленоПисем);
ИначеЕсли РезультатВыполнения.ПолученоПисем > 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Получено: %1'"),
РезультатВыполнения.ПолученоПисем);
ИначеЕсли РезультатВыполнения.ПолученоПисем > 0 Тогда
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = 'Отправлено: %1'"),
РезультатВыполнения.ОтправленоПисем);
Иначе
ТекстСообщения = НСтр("ru = 'Нет новых писем'");
КонецЕсли;
Если РезультатВыполнения.ДоступноУчетныхЗаписей > 1 Тогда
ТекстСообщения = ТекстСообщения + " " + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '(учетных записей: %1)'"),
ТекстСообщения = ТекстСообщения + Символы.ПС
+ СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru = '(учетных записей: %1)'"),
РезультатВыполнения.ДоступноУчетныхЗаписей);
КонецЕсли;
@@ -147,7 +147,9 @@
КонецФункции
Процедура ПослеОбновленияИдентификатора(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
Оповестить("ОбновлениеИдентификатораЦентрМониторинга", Результат);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -2236,7 +2236,7 @@
Иначе
КаталогДампов.Путь = СоздатьФайлНастроекСбораДампов(ПутьКаталога, ТипДампа);
Если НЕ СборПолныхДамповВключен Тогда
Если НЕ СборПолныхДамповВключен = Истина Тогда
КаталогДампов.УдалятьДампы = Истина;
КонецЕсли;
Если КаталогДампов.Путь = Неопределено Тогда
@@ -374,7 +374,11 @@
Возврат ТипЗнч(ШаблонСсылка) = Тип("СправочникСсылка.ШаблоныСообщений");
КонецФункции
// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.
// См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании
//
// Параметры:
// Объекты - См. СозданиеНаОснованииПереопределяемый.ПриОпределенииОбъектовСКомандамиСозданияНаОсновании.Объекты
//
Процедура ПриОпределенииОбъектовСКомандамиСозданияНаОсновании(Объекты) Экспорт
Объекты.Добавить(Метаданные.Справочники.ШаблоныСообщений);
@@ -396,6 +400,21 @@
#Область СлужебныеПроцедурыИФункции
// Параметры отправки
//
// Параметры:
// Шаблон - СправочникСсылка.ШаблоныСообщений -
// Предмет - ОпределяемыйТип.ПредметШаблонаСообщения -
// УникальныйИдентификатор - УникальныйИдентификатор -
// ДополнительныеПараметры - Неопределено, Структура -
//
// Возвращаемое значение:
// Структура - Описание:
// * ДополнительныеПараметры - Структура -
// * УникальныйИдентификатор - УникальныйИдентификатор -
// * Предмет - ОпределяемыйТип.ПредметШаблонаСообщения -
// * Шаблон - СправочникСсылка.ШаблоныСообщений -
//
Функция СформироватьПараметрыОтправки(Шаблон, Предмет, УникальныйИдентификатор, ДополнительныеПараметры = Неопределено)
ПараметрыОтправки = ШаблоныСообщенийКлиентСервер.КонструкторПараметровОтправки(Шаблон.Ссылка, Предмет, УникальныйИдентификатор);
@@ -59,7 +59,33 @@
// Конструктор параметров шаблона.
//
// Возвращаемое значение:
// Структура - список параметров шаблона.
// Структура - список параметров шаблона, где:
// * Тема - Строка - тема шаблонов (для электронных писем).
// * Текст - Строка - текст шаблона;
// * ПодписьИПечать - Булево - признак подписи и печати в печатных формах;
// * ПараметрыСообщения - Структура - дополнительные параметры сообщения;
// * Наименование - Строка - наименование шаблона сообщения;
// * Ссылка - Неопределено - Ссылка на элемент справочника;
// * ВладелецШаблона - Неопределено - владельца контекстного шаблона;
// * ПараметрыСКД - Соответствие - набор параметров при получении данных с использованием СКД;
// * Параметры - Соответствие - параметры шаблона;
// * Макет - Строка - Имя макета СКД;
// * ВыбранныеВложения - Соответствие - выбранные печатные формы и вложения в шаблон;
// * ФорматыВложений - СписокЗначений - Формат, в котором сохраняются печатные формы;
// * РазворачиватьСсылочныеРеквизиты - Булево - Если Истина, то у ссылочных реквизитов доступны их реквизиты.
// * ШаблонПоВнешнейОбработке - Булево - Если Истина, то шаблон формирует внешней обработкой;
// * ВнешняяОбработка - Неопределено - Ссылка на внешнюю обработку;
// * Отправитель - Строка - электронная почта отправителя;
// * ПеревестиВТранслит - Булево - Если Истина, то сформированные печатные формы и файлы будут иметь имена,
// содержащие только латинские буквы и цифры, для возможности переноса между
// различными операционными системами. Например, файл "Счет на оплату.pdf"
// будет сохранен с именем "Schet na oplaty.pdf";
// * УпаковатьВАрхив - Булево - Признак того, что вложения и печатные формы должны быть упакованы в архив
// при отправке;
// * ФорматПисьма - ПеречислениеСсылка.СпособыРедактированияЭлектронныхПисем - Вид текста письма: HTML или ОбычныйТекст;
// * ПолноеИмяТипаНазначения - Строка - Полное имя объекта метаданных, на основании которого создается сообщения;
// * Назначение - Строка - Назначение шаблона сообщений;
// * ТипШаблона - Строка - варианты: "Письмо" или "SMS".
//
Функция ОписаниеПараметровШаблона() Экспорт
Результат = Новый Структура;
@@ -17,7 +17,7 @@
// ** Представление - Строка - Представление варианта.
// ** Макет - Строка - Имя макета СКД, если состав реквизитов определяется посредством СКД.
// ** ЗначенияПараметровСКД - Структура - Значения параметров СКД для текущего предмета шаблона сообщения.
// * ОбщиеРеквизиты - ТаблицаЗначений - Содержит описание общих реквизитов доступных во всех шаблонах. Колонки:
// * ОбщиеРеквизиты - ДеревоЗначений - Содержит описание общих реквизитов доступных во всех шаблонах. Колонки:
// ** Имя - Строка - Уникальное имя общего реквизита.
// ** Представление - Строка - Представление общего реквизита.
// ** Тип - Тип - Тип общего реквизита. По умолчанию строка.
@@ -36,17 +36,17 @@
//
// Параметры:
// Реквизиты - ДеревоЗначений - список реквизитов шаблона.
// ** Имя - Строка - Уникальное имя общего реквизита.
// ** Представление - Строка - Представление общего реквизита.
// ** Тип - Тип - Тип реквизита. По умолчанию строка.
// ** Подсказка - Строка - Расширенная информация о реквизите.
// ** Формат - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
// Вложения - ТаблицаЗначений - печатные формы и вложения
// ** Имя - Строка - Уникальное имя вложения.
// ** Представление - Строка - Представление варианта.
// ** Подсказка - Строка - Расширенная информация о вложении.
// ** ТипФайла - Строка - Тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl"
// и др.
// * Имя - Строка - Уникальное имя общего реквизита;
// * Представление - Строка - Представление общего реквизита;
// * Тип - Тип - Тип реквизита. По умолчанию строка;
// * Подсказка - Строка - Расширенная информация о реквизите;
// * Формат - Строка - Формат вывода значения для чисел, дат, строк и булевых значений.
// Вложения - ТаблицаЗначений - печатные формы и вложения, где:
// * Имя - Строка - уникальное имя вложения;
// * Идентификатор - Строка - идентификатор вложения;
// * Представление - Строка - представление варианта;
// * Подсказка - Строка - расширенная информация о вложении;
// * ТипФайла - Строка - тип вложения, который соответствует расширению файла: "pdf", "png", "jpg", mxl" и др.
// НазначениеШаблона - Строка - Имя назначения шаблон сообщения.
// ДополнительныеПараметры - Структура - дополнительные сведения о шаблоне сообщения.
//
@@ -9,7 +9,24 @@
#Область СлужебныйПрограммныйИнтерфейс
// Создание сообщения по шаблону
// Параметры:
// ПараметрыОтправки - Структура - где:
// * ДополнительныеПараметры - Структура -
//
// Возвращаемое значение:
// Структура - Описание:
// * Вложения - ТаблицаЗначений - где:
// ** Представление - Строка -
// ** АдресВоВременномХранилище - Строка -
// ** Кодировка - Строка -
// ** Идентификатор - Строка -
// * СообщенияПользователю - ФиксированныйМассив -
// * ДополнительныеПараметры - Структура - где:
// ** Отправитель - Строка -
// * Получатель - Неопределено -
// * Текст - Строка -
// * Тема - Строка -
//
Функция СформироватьСообщение(ПараметрыОтправки) Экспорт
Если ПараметрыОтправки.Шаблон = Справочники.ШаблоныСообщений.ПустаяСсылка() Тогда
@@ -101,6 +118,17 @@
КонецФункции
// Сформировать сообщение и сразу отправить.
//
// Параметры:
// ПараметрыОтправки - Структура - содержит:
// * ДополнительныеПараметры - Структура -
//
// Возвращаемое значение:
// Структура - содержит:
// * Отправлено - Булево -
// * ОписаниеОшибки - Строка -
//
Функция СформироватьСообщениеИОтправить(ПараметрыОтправки) Экспорт
Результат = Новый Структура("Отправлено, ОписаниеОшибки", Ложь);
@@ -255,6 +283,10 @@
// Обработчики событий подсистем конфигурации.
// См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.
//
// Параметры:
// Обработчики - См. ОбновлениеИнформационнойБазыБСП.ПриДобавленииОбработчиковОбновления.Обработчики
//
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
Обработчик = Обработчики.Добавить();
@@ -316,6 +348,24 @@
КонецФункции
// Функция-конструктор параметров сообщения
//
// Параметры:
// ПараметрыШаблона - Структура, Неопределено -
//
// Возвращаемое значение:
// Структура - Описание:
// * Тема - Строка -
// * Текст - Строка -
// * Получатель - СписокЗначений -
// * Вложения - ТаблицаЗначений - где:
// ** Представление - Строка -
// ** АдресВоВременномХранилище - Строка -
// ** Кодировка - Строка -
// ** Идентификатор - Строка -
// * СообщенияПользователю - ФиксированныйМассив -
// * ДополнительныеПараметры - Неопределено, Структура -
//
Функция КонструкторСообщения(ПараметрыШаблона = Неопределено) Экспорт
Сообщение = Новый Структура();
@@ -343,13 +393,10 @@
Функция СведенияОШаблоне(ПараметрыШаблона) Экспорт
СведенияОШаблоне = Новый Структура("Реквизиты, ОбщиеРеквизиты, Вложения, Назначение");
СведенияОШаблоне.Реквизиты = ДеревоРеквизитов();
СведенияОШаблоне.Вложения = ТаблицаВложений();
СведенияОШаблоне = КонструкторСведенийОШаблоне();
НастройкиШаблоновСообщений = ШаблоныСообщенийСлужебныйПовтИсп.ПриОпределенииНастроек();
СведенияОШаблоне.ОбщиеРеквизиты = НастройкиШаблоновСообщений.ОбщиеРеквизиты;
ИмяУзлаОбщихРеквизитов = ИмяУзлаОбщихРеквизитов();
Если ТипЗнч(СведенияОШаблоне.ОбщиеРеквизиты) = Тип("ДеревоЗначений") Тогда
Для каждого ОбщийРеквизит Из ОбщиеРеквизиты(СведенияОШаблоне.ОбщиеРеквизиты).Строки Цикл
Если Не СтрНачинаетсяС(ОбщийРеквизит.Имя, ИмяУзлаОбщихРеквизитов + ".") Тогда
@@ -365,6 +412,46 @@
ОпределитьСписокРеквизитовИВложений(СведенияОШаблоне, ПараметрыШаблона);
Возврат СведенияОШаблоне;
КонецФункции
// Функция-конструктор сведений о шаблоне.
//
// Возвращаемое значение:
// Структура - Описание:
// * Назначение - Строка -
// * Вложения - ТаблицаЗначений - где:
// ** Имя - Строка -
// ** Идентификатор - Строка -
// ** Представление - Строка -
// ** МенеджерПечати - Строка -
// ** ПараметрыПечати - Структура -
// ** ТипФайла - Строка -
// ** Статус - Строка -
// ** Реквизит - Строка -
// ** ИмяПараметра - Строка -
// * ОбщиеРеквизиты
// * Реквизиты - ДеревоЗначений - где:
// ** Имя - Строка -
// ** Представление - Строка -
// ** Подсказка - Строка -
// ** Формат - Строка -
// ** Тип - ОписаниеТипов -
// ** ПроизвольныйПараметр - Булево -
//
Функция КонструкторСведенийОШаблоне()
СведенияОШаблоне = Новый Структура();
НастройкиШаблоновСообщений = ШаблоныСообщенийСлужебныйПовтИсп.ПриОпределенииНастроек();
СведенияОШаблоне.Вставить("Реквизиты", ДеревоРеквизитов());
СведенияОШаблоне.Вставить("ОбщиеРеквизиты", НастройкиШаблоновСообщений.ОбщиеРеквизиты);
СведенияОШаблоне.Вставить("Вложения", ТаблицаВложений());
СведенияОШаблоне.Вставить("Назначение", "");
Возврат СведенияОШаблоне;
КонецФункции
Процедура ОпределитьСписокРеквизитовИВложений(СведенияОШаблоне, ПараметрыШаблона)
@@ -705,7 +792,19 @@
КонецФункции
// Реквизиты объекты основания.
// Реквизиты объекта основания.
//
// Параметры:
// Реквизиты - ДеревоЗначений - где:
// * Имя - Строка -
// * Представление - Строка -
// ПолноеИмяТипаНазначения - Строка -
// Представление - Строка -
//
// Возвращаемое значение:
// ДеревоЗначений - где:
// * Имя - Строка -
// * Представление - Строка -
//
Функция РеквизитыОбъектаНазначения(Реквизиты, ПолноеИмяТипаНазначения, Знач Представление = "")
@@ -902,6 +1001,20 @@
КонецПроцедуры
// Функция-конструктор таблицы вложений
//
// Возвращаемое значение:
// ТаблицаЗначений - содержит колонки:
// * Имя - Строка -
// * Идентификатор- Строка -
// * Представление - Строка -
// * МенеджерПечати - Строка -
// * ПараметрыПечати - Структура -
// * ТипФайла - Строка -
// * Статус - Строка -
// * Реквизит- Строка -
// * ИмяПараметра - Строка -
//
Функция ТаблицаВложений()
ТипСтрока = Новый ОписаниеТипов("Строка");
@@ -942,6 +1055,14 @@
// Определение и заполнение параметров(реквизитов) в тексте сообщения
//
// Параметры:
// Шаблон - ДанныеФормыСтруктура, СправочникСсылка.ШаблоныСообщений -
// * Отправитель - Строка -
// * ПечатныеФормыИВложения - Структура - где:
// ** Идентификатор - Строка -
//
// Возвращаемое значение:
// см. ШаблоныСообщенийКлиентСервер.ОписаниеПараметровШаблона
Функция ПараметрыШаблона(Шаблон) Экспорт
Результат = ШаблоныСообщенийКлиентСервер.ОписаниеПараметровШаблона();
@@ -1218,7 +1339,8 @@
Если Предмет <> Неопределено
И ЗначениеЗаполнено(ПараметрыШаблона.ПолноеИмяТипаНазначения) Тогда
ИмяОбъекта = Предмет.Метаданные().Имя;
ПредметМетаданные = Предмет.Метаданные(); // ОбъектМетаданных
ИмяОбъекта = ПредметМетаданные.Имя;
Если ПараметрыТекстаСообщения[ИмяОбъекта] <> Неопределено Тогда
@@ -1267,7 +1389,9 @@
ПараметрыТекстаСообщения[ШаблоныСообщенийКлиентСервер.ЗаголовокПроизвольныхПараметров()][КлючПараметра] = ЗначениеПроизвольногоПараметра;
КонецЕсли;
Иначе
ИмяОбъекта = ЗначениеПроизвольногоПараметра.Метаданные().Имя;
ЗначениеПроизвольногоПараметраМетаданные = ЗначениеПроизвольногоПараметра.Метаданные(); // ОбъектМетаданных
ИмяОбъекта = ЗначениеПроизвольногоПараметраМетаданные.Имя;
Если ПараметрыТекстаСообщения[ИмяОбъекта] <> Неопределено Тогда
ЗаполнитьРеквизитыПоПредмету(ПараметрыТекстаСообщения[ИмяОбъекта], ЗначениеПроизвольногоПараметра);
ЗаполнитьРеквизитыСвойствИКонтактнойИнформации(ПараметрыТекстаСообщения[ИмяОбъекта], ЗначениеПроизвольногоПараметра);
@@ -1938,6 +2062,16 @@
КонецФункции
// Работа с реквизитами вспомогательные методы
//
// Возвращаемое значение:
// ДеревоЗначений - содержит колонки:
// * Имя - Строка -
// * Представление - Строка -
// * Подсказка - Строка -
// * Формат - Строка -
// * Тип - ОписаниеТипов -
// * ПроизвольныйПараметр - Булево -
//
Функция ДеревоРеквизитов()
ТипСтрока = Новый ОписаниеТипов("Строка");
+9 -9
View File
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="ee95573f-022a-4354-8ef3-1d76e424e0b1">
<mdclass:Configuration xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="9425be86-50d0-4138-855d-f316743e2386">
<name>БиблиотекаСтандартныхПодсистем</name>
<synonym>
<key>ru</key>
<value>Библиотека стандартных подсистем, редакция 3.1</value>
</synonym>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="b596525c-0277-4a54-875b-b3c8f569f138"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="7173a910-07cd-4dd5-9d0e-13c38cda0f7b"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="844f5336-2882-476e-816d-934c91d5842b"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="7d5240f8-7d37-4a5b-bdd4-4405c8bd31a1"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="9bead23e-9dc3-41f5-8224-e7f868cfd853"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="d7c6a56c-d193-44f3-b918-723e93240b9a"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="7c0fab82-57a2-4ae0-9363-8a083f7aadaa"/>
<containedObjects classId="9cd510cd-abfc-11d4-9434-004095e12fc7" objectId="89972e87-6770-4208-b3ad-0339f55800cd"/>
<containedObjects classId="9fcd25a0-4822-11d4-9414-008048da11f9" objectId="dd34562a-64ce-4736-8d54-1cac2285f9bd"/>
<containedObjects classId="e3687481-0a87-462c-a166-9f34594f9bba" objectId="79f9cfa5-29ab-4d61-8b3d-e7c37485dcbb"/>
<containedObjects classId="9de14907-ec23-4a07-96f0-85521cb6b53b" objectId="bc56feb2-0157-4ae0-ae13-216abb78cc93"/>
<containedObjects classId="51f2d5d8-ea4d-4064-8892-82951750031e" objectId="3b47d3b6-4208-4727-86df-9c2014c945b1"/>
<containedObjects classId="e68182ea-4237-4383-967f-90c1e3370bc7" objectId="b6db39ed-be39-4155-a201-9cb5373ee220"/>
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="27a588af-7db7-48d7-8acf-e4cff17b1d73"/>
<defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes>
<scriptVariant>Russian</scriptVariant>
@@ -19,7 +19,7 @@
<defaultRoles>Role.АдминистраторСистемы</defaultRoles>
<defaultRoles>Role.ИнтерактивноеОткрытиеВнешнихОтчетовИОбработок</defaultRoles>
<vendor>Фирма &quot;1С&quot;</vendor>
<version>3.1.2.176</version>
<version>3.1.2.182</version>
<updateCatalogAddress>http://downloads.v8.1c.ru/tmplts/</updateCatalogAddress>
<includeHelpInContents>true</includeHelpInContents>
<usedMobileApplicationFunctionalities>
@@ -1 +1 @@
{6,1,1,711e059e-afbe-4765-9d6b-002d8cc2b36c,1,750e295a-3316-46b4-9cc7-c1bd47834e50,"3.1.2.176","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5901,1,0,ee95573f-022a-4354-8ef3-1d76e424e0b1,ee95573f-022a-4354-8ef3-1d76e424e0b1,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
{6,1,1,5a00459f-ea06-4662-9b16-d3e8b7eb2bd9,1,eba2b56c-b2e1-4362-aa9f-093638aace44,"3.1.2.182","Фирма ""1С""","БиблиотекаСтандартныхПодсистем",5901,1,0,9425be86-50d0-4138-855d-f316743e2386,9425be86-50d0-4138-855d-f316743e2386,1,0,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,db4a9ccb-9ef5-4b3c-8577-b6fe5db1b62e,1,0,9233322b-dfdb-4c66-91fe-1299292d40a5,9233322b-dfdb-4c66-91fe-1299292d40a5,1,0,7795348b-2f52-47f7-bf00-e11e5e795a43,7795348b-2f52-47f7-bf00-e11e5e795a43,1,0,0421b67e-ed26-491d-ab98-ec59002ed4ce,0421b67e-ed26-491d-ab98-ec59002ed4ce,1,0,bb47ced2-31f9-4870-8633-20b986e53ccc,bb47ced2-31f9-4870-8633-20b986e53ccc,1,0,7d8acec9-f5a9-411e-921c-446ed0dd3332,7d8acec9-f5a9-411e-921c-446ed0dd3332,1,0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,739c01a9-1125-45ef-ab4e-8c73af4eeff0,1,0,cdbd26b1-9583-46e8-adf7-8cc705639892,cdbd26b1-9583-46e8-adf7-8cc705639892,1,0,c0e38c3e-7088-4e35-9d84-2d0ab9655402,c0e38c3e-7088-4e35-9d84-2d0ab9655402,1,0,1098786f-dd24-4cce-b212-be0cb5f01735,1098786f-dd24-4cce-b212-be0cb5f01735,1,0,3c0037f3-4422-4836-b116-8c72e32bdd55,3c0037f3-4422-4836-b116-8c72e32bdd55,1,0,6f7c6c31-206b-4010-bdad-1ad2e304f154,6f7c6c31-206b-4010-bdad-1ad2e304f154,1,0,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,a8659e53-8c6b-4b0c-9736-fe93a91e4d69,1,0,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,fe9a1d1a-19c0-499f-8e1b-09cadabe882f,1,0,5b68d479-7880-44de-84e3-7f578b43f0dc,5b68d479-7880-44de-84e3-7f578b43f0dc,1,0,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,bf9ca98c-5c95-4cfb-9181-8c1d847f9fbb,1,0,b4629308-42de-4ce8-8591-cf0c2399a9a2,b4629308-42de-4ce8-8591-cf0c2399a9a2,1,0,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,c7e984ae-1dbb-4041-b18a-bfd0d63a002f,1,0,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,bb0424b8-dfd1-4a27-bd66-9dea3ffc77c4,1,0,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,a4ac0a50-ee39-4dc1-b84f-eec8fe485f03,1,0,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1861ee4f-fd8c-4afa-8441-c074bf51f67e,1,0,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,de7ed8f7-3c02-47e0-aea8-4747ac68a5d5,1,0,b93b8760-6200-40ee-8bdc-875ba80a6155,b93b8760-6200-40ee-8bdc-875ba80a6155,1,0,e8b248d9-9049-456a-9c7d-7a0462cc67ab,e8b248d9-9049-456a-9c7d-7a0462cc67ab,1,0,d4562287-440d-4462-9de2-7097ccbf3764,d4562287-440d-4462-9de2-7097ccbf3764,1,0,1983fe34-c984-4659-ba41-0e94504f8989,1983fe34-c984-4659-ba41-0e94504f8989,1,0,ec797c75-02c5-4cf5-9dd4-26cd46c99519,ec797c75-02c5-4cf5-9dd4-26cd46c99519,1,0,6fccdf59-fc99-4a2b-a144-fffe438a147c,6fccdf59-fc99-4a2b-a144-fffe438a147c,1,0,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,af8bd73a-d8e8-487d-8f36-d835ab10ea3a,1,0,08a413ff-bebd-42e5-8ff3-2115746a0844,08a413ff-bebd-42e5-8ff3-2115746a0844,1,0,da9b32e6-5b93-45a6-84b2-238d57541e18,da9b32e6-5b93-45a6-84b2-238d57541e18,1,0,e43d69c8-b284-47da-b236-611bc94a15b6,e43d69c8-b284-47da-b236-611bc94a15b6,1,0,31eeaa05-6c49-41fe-b840-1edbad4ccac7,31eeaa05-6c49-41fe-b840-1edbad4ccac7,1,0,842c8662-8f39-405e-9665-cbdabc116159,842c8662-8f39-405e-9665-cbdabc116159,1,0,fca4b033-02c4-4d61-9e51-87783c3cef1a,fca4b033-02c4-4d61-9e51-87783c3cef1a,1,0,396ef757-d7f6-411f-8c4c-1acb1106a009,396ef757-d7f6-411f-8c4c-1acb1106a009,1,0,839e29b1-a0d2-40fa-9f3e-46e66b943358,839e29b1-a0d2-40fa-9f3e-46e66b943358,1,0,c56d2cc7-630a-441b-b23f-ba78c34849bd,c56d2cc7-630a-441b-b23f-ba78c34849bd,1,0,9aecf4f5-46ed-4d1c-a584-cd028e467895,9aecf4f5-46ed-4d1c-a584-cd028e467895,1,0,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,21d92c2f-6c78-43ce-b1f4-59d7845b5a91,1,0,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,a1c379be-43d3-4e02-83bb-d2e7de2d4ae3,1,0,a1f10624-22e9-4a04-b370-fd085bdd0f67,a1f10624-22e9-4a04-b370-fd085bdd0f67,1,0,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,2a4b10be-3cd7-4755-905f-7b4d02ff6a22,1,0,3cffb795-2a28-4beb-92f4-5813f5994022,3cffb795-2a28-4beb-92f4-5813f5994022,1,0,3323ca68-1382-4710-a933-23fc56588935,3323ca68-1382-4710-a933-23fc56588935,1,0,d6b12775-3255-42b8-88b2-62684f873e7d,d6b12775-3255-42b8-88b2-62684f873e7d,1,0,cc23d903-ccc5-42f4-862f-5e7278c4e346,cc23d903-ccc5-42f4-862f-5e7278c4e346,1,0,98f033e0-fa40-46e0-b51a-87a066749a35,98f033e0-fa40-46e0-b51a-87a066749a35,1,0,e8b4cb2d-1180-4101-954a-4cb5464f198c,e8b4cb2d-1180-4101-954a-4cb5464f198c,1,0,a379287d-1ce8-460d-a503-910e728e28f1,a379287d-1ce8-460d-a503-910e728e28f1,1,0,f765c4ba-c677-42ac-8d0c-43bb485405b9,f765c4ba-c677-42ac-8d0c-43bb485405b9,1,0,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,2fd1287d-d96d-4480-baf7-8815ae5ffbfb,1,0,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,d8c58e53-b7b9-4426-bdfa-d0816adf8cc1,1,0,4009cb3a-6754-481f-911b-907558cea38a,4009cb3a-6754-481f-911b-907558cea38a,1,0,653a7fd8-91c7-49aa-aa63-45da087e0d0a,653a7fd8-91c7-49aa-aa63-45da087e0d0a,1,0,d7cf3981-cf63-4a21-868b-8175a7704a8f,d7cf3981-cf63-4a21-868b-8175a7704a8f,1,0,0ae93712-74e8-41c7-8f2d-4dfc8983697d,0ae93712-74e8-41c7-8f2d-4dfc8983697d,1,0,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,9e4dfdfa-ec05-4c9e-89bd-fc24f60f2678,1,0,64f548c8-c1fc-434e-b3ee-5be367ead1db,64f548c8-c1fc-434e-b3ee-5be367ead1db,1,0,cd592a5d-b184-4558-8a28-7079ccf28b89,cd592a5d-b184-4558-8a28-7079ccf28b89,1,0,2009c673-c1a5-45fc-8da2-a36c435085a6,2009c673-c1a5Line truncated
@@ -2595,6 +2595,10 @@
&НаКлиенте
Процедура ПослеЗагрузкиФайлаСДаннымиВТабличныйДокумент(ФоновоеЗадание, ДополнительныеПараметры) Экспорт
Если ФоновоеЗадание = Неопределено Тогда
Возврат;
КонецЕсли;
Если ФоновоеЗадание.Статус = "Выполнено" Тогда
ШаблонСДанными = ПолучитьИзВременногоХранилища(ФоновоеЗадание.АдресРезультата);
СопоставитьЗагружаемыеДанные();
@@ -2630,6 +2634,10 @@
&НаКлиенте
Процедура ПослеСопоставленияЗагружаемыхДанных(ФоновоеЗадание, ДополнительныеПараметры) Экспорт
Если ФоновоеЗадание = Неопределено Тогда
Возврат;
КонецЕсли;
Если ФоновоеЗадание.Статус = "Выполнено" Тогда
ВыполнитьШагСопоставлениеЗагружаемыхДанныхПослеСопоставленияНаСервере(ФоновоеЗадание.АдресРезультата);
ВыполнитьШагСопоставлениеЗагружаемыхДанныхКлиент();
@@ -2666,6 +2674,10 @@
&НаКлиенте
Процедура ПослеЗаписиЗагружаемыхДанныхОтчет(ФоновоеЗадание, ДополнительныеПараметры) Экспорт
Если ФоновоеЗадание = Неопределено Тогда
Возврат;
КонецЕсли;
Если ФоновоеЗадание.Статус = "Ошибка" Тогда
ВывестиСообщениеОбОшибке(НСтр("ru = 'Не удалось произвести запись данных.'"), ФоновоеЗадание.КраткоеПредставлениеОшибки);
ИначеЕсли ФоновоеЗадание.Статус = "Выполнено" Тогда
@@ -2710,6 +2722,10 @@
&НаКлиенте
Процедура ПослеСозданияОтчета(Задание, ДополнительныеРезультаты) Экспорт
Если Задание = Неопределено Тогда
Возврат;
КонецЕсли;
Если Задание.Статус = "Выполнено" Тогда
ПоказатьОтчет(Задание.АдресРезультата);
ПодтверждениеЗакрытияФормы = Истина;
@@ -889,8 +889,8 @@
НастройкиОжидания.ВыводитьОкноОжидания = Ложь;
Обработчик = Новый ОписаниеОповещения("ПослеЗавершенияФоновогоЗадания", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания);
КонецПроцедуры
&НаСервереБезКонтекста
@@ -908,6 +908,12 @@
&НаКлиенте
Процедура ПослеЗавершенияФоновогоЗадания(Задание, ДополнительныеПараметры) Экспорт
Если Задание = Неопределено Тогда
ПерейтиНаШагМастера(Элементы.ШагВыборЦелевогоЭлемента);
Возврат;
КонецЕсли;
НастройкиМастера.ПоказатьДиалогПередЗакрытием = Ложь;
Если Задание.Статус <> "Выполнено" Тогда
@@ -1047,8 +1047,8 @@
НастройкиОжидания.ВыводитьОкноОжидания = Ложь;
Обработчик = Новый ОписаниеОповещения("ПослеЗавершенияФоновогоЗадания", ЭтотОбъект);
ДлительныеОперацииКлиент.ОжидатьЗавершение(Задание, Обработчик, НастройкиОжидания);
КонецПроцедуры
&НаСервере
@@ -1088,8 +1088,12 @@
&НаКлиенте
Процедура ПослеЗавершенияФоновогоЗадания(Задание, ДополнительныеПараметры) Экспорт
НастройкиМастера.ПоказатьДиалогПередЗакрытием = Ложь;
Если Задание = Неопределено Тогда
Возврат;
КонецЕсли;
НастройкиМастера.ПоказатьДиалогПередЗакрытием = Ложь;
Если Задание.Статус <> "Выполнено" Тогда
Кратко = НСтр("ru = 'При замене элементов возникла ошибка:'") + Символы.ПС + Задание.КраткоеПредставлениеОшибки;
Подробно = Кратко + Символы.ПС + Символы.ПС + Задание.ПодробноеПредставлениеОшибки;
@@ -3770,7 +3770,7 @@
Результат = Контекст.РезультатПослеВызоваПолучитьСледующийКонтейнерКлючей;
ПараметрыВызова = Контекст.ПараметрыВызоваПослеВызоваПолучитьСледующийКонтейнерКлючей;
Если Не Результат Тогда
Если Результат <> Истина Тогда
Если Контекст.ПервыйПроход Тогда
Контекст.ПервыйПроход = Ложь;
@@ -221,9 +221,12 @@
&НаКлиенте
Процедура ЗавершениеПолученияПараметровНастройки(Результат, ДополнительныеПараметры) Экспорт
Если Результат.Статус <> "Выполнено" Тогда
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус <> "Выполнено" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
АдресХранилища = Результат.АдресРезультата;
ЗагрузитьПараметрыНастройки();
@@ -154,7 +154,8 @@
Процедура Удалить(Команда)
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Неопределено, ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
@@ -162,6 +163,13 @@
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Закрыть();
КонецПроцедуры
&НаСервере
Процедура НастроитьОбъектФормы(Знач НовыйОбъект)
@@ -211,6 +211,7 @@
Возврат;
ИначеЕсли ИмяСобытия = "Запись_Файл" Тогда
Элементы.Список.Обновить();
Если Не ЗначениеЗаполнено(Источник)
Или (ТипЗнч(Источник) = Тип("Массив")
И Источник.Количество() = 0) Тогда
@@ -224,7 +225,6 @@
Если Параметр.Свойство("ЭтоНовый") И Параметр.ЭтоНовый Тогда
Элементы.Список.Обновить();
Элементы.Список.ТекущаяСтрока = СсылкаНаФайл;
УстановитьДоступностьФайловыхКоманд();
@@ -765,7 +765,8 @@
Процедура Удалить(Команда)
РаботаСФайламиСлужебныйКлиент.УдалитьДанные(
Неопределено, ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
Новый ОписаниеОповещения("ПослеУдаленияДанных", ЭтотОбъект),
ЭтотОбъект.Объект.Ссылка, УникальныйИдентификатор);
КонецПроцедуры
@@ -878,6 +879,13 @@
КонецПроцедуры
&НаКлиенте
Процедура ПослеУдаленияДанных(Результат, ДополнительныеПараметры) Экспорт
Закрыть();
КонецПроцедуры
&НаСервере
Процедура УдалитьИзСпискаПодписейИЗаписатьФайл()
@@ -4811,6 +4811,13 @@
</dateQualifiers>
</valueType>
</parameters>
<parameters>
<name>ТипАдреса</name>
<valueType>
<types>String</types>
<stringQualifiers/>
</valueType>
</parameters>
<commandInterface>
<navigationPanel/>
<commandBar/>
@@ -82,6 +82,8 @@
Если МеждународныйФорматАдреса И Не УправлениеКонтактнойИнформациейКлиентСервер.ЭтоАдресВСвободнойФорме(НаселенныйПунктДетально.AddressType) Тогда
НаселенныйПунктДетально.AddressType = УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес();
ИначеЕсли ЗначениеЗаполнено(Параметры.ТипАдреса) Тогда
УстановитьТипАдреса(Параметры.ТипАдреса);
КонецЕсли;
ЗаполнитьПредопределенныеВариантыАдреса(Параметры);
@@ -1373,7 +1375,7 @@
КонецЦикла;
Если ЭтоИностранныйАдрес(НаселенныйПунктДетально.AddressType)
Если ЭтоМеждународныйАдрес(НаселенныйПунктДетально.AddressType)
И НаселенныйПунктДетально.Свойство("Street") Тогда
СписокЭлементовАдреса = Новый Массив;
@@ -2860,7 +2862,7 @@
&НаКлиенте
Процедура ПослеПроверкиДоступностиКлассификатораВФоне(Задание, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Задание) <> Тип("Структура") Тогда
Если Задание = Неопределено Тогда
Возврат;
КонецЕсли;
@@ -3204,8 +3206,23 @@
КонецПроцедуры
&НаСервере
Процедура УстановитьТипАдреса(ТипАдреса)
Если СтрСравнить(Параметры.ТипАдреса, "АдминистративноТерриториальный") = 0 Тогда
НаселенныйПунктДетально.AddressType = РаботаСАдресамиКлиентСервер.АдминистративноТерриториальныйАдрес();
ИначеЕсли СтрСравнить(Параметры.ТипАдреса, "ВСвободнойФорме") = 0 Тогда
НаселенныйПунктДетально.AddressType = УправлениеКонтактнойИнформациейКлиентСервер.АдресВСвободнойФорме();
ИначеЕсли СтрСравнить(Параметры.ТипАдреса, "ЕАЭС") = 0 Тогда
НаселенныйПунктДетально.AddressType = УправлениеКонтактнойИнформациейКлиентСервер.АдресЕАЭС();
Иначе
НаселенныйПунктДетально.AddressType = РаботаСАдресамиКлиентСервер.МуниципальныйАдрес();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ЭтоИностранныйАдрес(ТипАдреса)
Функция ЭтоМеждународныйАдрес(ТипАдреса)
Возврат СтрСравнить(УправлениеКонтактнойИнформациейКлиентСервер.ИностранныйАдрес(), ТипАдреса) = 0;
КонецФункции
@@ -467,9 +467,9 @@
ПараметрыТекста = РезервноеКопированиеИБСервер.ПодготовитьОбщиеПараметрыСкрипта(ПараметрыСкрипта);
ПараметрыТекста["[ФайлРезервнойКопии]"] = РезервноеКопированиеИБСервер.ПодготовитьТекст(Объект.ФайлЗагрузкиРезервнойКопии);
// Используется КаталогВременныхФайлов, т.к. автоматическое удаление временного каталога не допустимо.
// АПК:495-выкл Используется КаталогВременныхФайлов, т.к. автоматическое удаление временного каталога не допустимо.
ПараметрыТекста["[КаталогВременныхФайлов]"] = РезервноеКопированиеИБСервер.ПодготовитьТекст(КаталогВременныхФайлов());
// АПК:495-вкл
Возврат РезервноеКопированиеИБСервер.ПодставитьПараметрыВТекст(Текст, ПараметрыТекста);
КонецФункции
@@ -77,7 +77,7 @@
Процедура ЗапуститьОбновлениеЗавершение(Результат, ДополнительныеПараметры) Экспорт
РезультатОбновления = Неопределено;
Если Результат.Статус = "Выполнено" Тогда
Если Результат <> Неопределено И Результат.Статус = "Выполнено" Тогда
РезультатОбновления = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
КонецЕсли;
@@ -49,14 +49,14 @@
Обработчик = Новый ОписаниеОповещения("ДлительнаяОперацияПослеВыводаРезультата", ЭтотОбъект);
Если Операция = Неопределено Тогда
ВыполнитьОбработкуОповещения(Обработчик, Ложь);
Иначе
Возврат;
КонецЕсли;
Если Операция.Статус = "Выполнено" Тогда
ПоказатьОповещениеПользователя(НСтр("ru = 'Оптимизация успешно завершена'"),,, БиблиотекаКартинок.Успешно32);
ВыполнитьОбработкуОповещения(Обработчик, Истина);
Иначе
ВызватьИсключение Операция.КраткоеПредставлениеОшибки;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -314,6 +314,9 @@
&НаКлиенте
Процедура ОбработатьРезультатВыполнениеЗадания(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.ПодробноеПредставлениеОшибки;
КонецЕсли;
@@ -329,6 +332,9 @@
&НаКлиенте
Процедура СкрытиеКонфиденциальнойИнформацииЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус = "Ошибка" Тогда
ВызватьИсключение Результат.ПодробноеПредставлениеОшибки;
КонецЕсли;
@@ -575,15 +581,15 @@
ПараметрыВыполненияВФоне.НаименованиеФоновогоЗадания = НСтр("ru = 'Скрытие конфиденциальной информации'");
ПараметрыВыполненияВФоне.ОжидатьЗавершение = Ложь;
РезультатФоновогоЗадания = МодульДлительныеОперации.ВыполнитьВФоне(
РезультатДлительнойОперации = МодульДлительныеОперации.ВыполнитьВФоне(
ОбработкаОбъект.Метаданные().ПолноеИмя() + ".МодульОбъекта.ВыполнитьСкрытиеНаСервере",
ПараметрыПроцедуры,
ПараметрыВыполненияВФоне);
АдресХранилищаВторой = РезультатФоновогоЗадания.АдресРезультата;
ИдентификаторЗаданияВторой = РезультатФоновогоЗадания.ИдентификаторЗадания;
АдресХранилищаВторой = РезультатДлительнойОперации.АдресРезультата;
ИдентификаторЗаданияВторой = РезультатДлительнойОперации.ИдентификаторЗадания;
Возврат РезультатФоновогоЗадания;
Возврат РезультатДлительнойОперации;
КонецФункции
@@ -441,7 +441,9 @@
ДлительнаяОперация = Ложь;
ДлительнаяОперацияЗавершена = Истина;
Если Результат.Статус = "Ошибка" Или Результат.Статус = "Отменено" Тогда
Если Результат = Неопределено Тогда
ПерейтиНазад();
ИначеЕсли Результат.Статус = "Ошибка" Или Результат.Статус = "Отменено" Тогда
ЗафиксироватьОшибку(Результат.ПодробноеПредставлениеОшибки);
ПерейтиНазад();
Иначе
@@ -1320,8 +1320,7 @@
ДлительнаяОперацияЗавершена = Истина;
Если Результат = Неопределено Тогда
// Фоновое задание аварийно отменилось.
ЗафиксироватьОшибку(НСтр("ru = 'Фоновое задание аварийно отменилось.'"));
ЗафиксироватьОшибку(НСтр("ru = 'Фоновое задание отменено администратором.'"));
ПерейтиНазад();
ИначеЕсли Результат.Статус = "Ошибка" Или Результат.Статус = "Отменено" Тогда
ЗафиксироватьОшибку(Результат.ПодробноеПредставлениеОшибки);
@@ -750,7 +750,7 @@
КонецЕсли;
Если СтрНайти(Адрес, "@") = 0 ИЛИ СтрНайти(Адрес, ".") = 0 Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо ввести адрес электронной почты'"));
ПодключитьОбработчикОжидания("ПоказатьПредупреждениеОНеобходимостиВвестиАдресЭлектроннойПочты", 0.1, Истина);
Отказ = Истина;
Возврат;
КонецЕсли;
@@ -2483,6 +2483,11 @@
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьПредупреждениеОНеобходимостиВвестиАдресЭлектроннойПочты()
ПоказатьПредупреждение(, НСтр("ru = 'Необходимо ввести адрес электронной почты'"));
КонецПроцедуры
&НаСервере
Функция ВыполнитьОтправкуНаСервере()
@@ -2769,7 +2774,8 @@
ЗаполнитьЗначенияСвойств(НовыйПараграф, ДобавляемыйЭлемент, "ТипПараграфа, ГоризонтальноеПоложение, МеждустрочныйИнтервал,Отступ");
ДобавитьФорматированныйДокументКФорматированномуДокументу(НовыйПараграф, ДобавляемыйЭлемент);
Иначе
Если ТипЗнч(ДобавляемыйЭлемент) = Тип("ТекстФорматированногоДокумента") Тогда
Если ТипЗнч(ДобавляемыйЭлемент) = Тип("ТекстФорматированногоДокумента")
И Не ДобавляемыйЭлемент.Текст = "" Тогда
НовыйЭлемент = ПриемникДокумент.Элементы.Добавить(ДобавляемыйЭлемент.Текст, Тип("ТекстФорматированногоДокумента"));
ЗаполнитьЗначенияСвойств(НовыйЭлемент,ДобавляемыйЭлемент,,"ЗакладкаКонца, ЗакладкаНачала, Родитель");
ИначеЕсли ТипЗнч(ДобавляемыйЭлемент) = Тип("КартинкаФорматированногоДокумента") Тогда
@@ -906,7 +906,7 @@
Процедура УстановитьОтборВСпискеРегионов(Знач Текст)
Если ЗначениеЗаполнено(Текст) Тогда
Отбор = Новый ФиксированнаяСтруктура(Новый Структура("Представление", Текст));
Отбор = Новый ФиксированнаяСтруктура(Новый Структура("Представление", ПреобразоватьВводАдреса(Текст)));
Элементы.СубъектыРФ.ОтборСтрок = Отбор;
Иначе
Элементы.СубъектыРФ.ОтборСтрок = Неопределено;
@@ -914,4 +914,25 @@
КонецПроцедуры
// Преобразует введенные английские буквы к русской раскладке при подборе адреса
//
&НаКлиенте
Функция ПреобразоватьВводАдреса(Текст)
РусскиеКлавиши = "ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮЁ";
АнглийскиеКлавиши = "QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,.`";
Текст = ВРег(Текст);
Для Позиция = 0 По СтрДлина(Текст) Цикл
Символ = Сред(Текст, Позиция, 1);
ПозицияСимвола = СтрНайти(АнглийскиеКлавиши, Символ);
Если ПозицияСимвола > 0 Тогда
Текст = СтрЗаменить(Текст, Символ, Сред(РусскиеКлавиши, ПозицияСимвола, 1));
КонецЕсли;
КонецЦикла;
Возврат Текст;
КонецФункции
#КонецОбласти
@@ -118,6 +118,9 @@
&НаКлиенте
Процедура ПриЗавершенииФормированияОтчета(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСостояниеПоляТабличногоДокумента(Элементы.ТаблицаОтчета, "НеИспользовать");
Если Результат.Статус = "Выполнено" Тогда
ТаблицаОтчета = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
@@ -439,95 +439,6 @@
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Настройка доступности вариантов отчетов по умолчанию.
Процедура УстановитьДоступностьВариантовОтчетовПоУмолчанию() Экспорт
Запрос = Новый Запрос(ТекстЗапросаНастроекДоступностиВариантовОтчетовПоУмолчанию());
Данные = Запрос.Выполнить().Выбрать();
МетаданныеРегистра = Метаданные.РегистрыСведений.НастройкиВариантовОтчетов;
КодОсновногоЯзыка = ОбщегоНазначения.КодОсновногоЯзыка();
Пока Данные.Следующий() Цикл
Попытка
ПеренестиНастройкиДоступностиВариантаОтчета(Данные);
Исключение
ШаблонКомментария = НСтр("ru = 'Не удалось установить доступность варианта отчета ""%1"" по умолчанию
|по причине: %2'");
Комментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонКомментария,
Данные.Вариант,
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации(
НСтр("ru = 'Варианты отчетов.Установка настроек доступности по умолчанию'", КодОсновногоЯзыка),
УровеньЖурналаРегистрации.Предупреждение,
МетаданныеРегистра,,
Комментарий);
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Функция ТекстЗапросаНастроекДоступностиВариантовОтчетовПоУмолчанию()
Возврат "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Отчеты.Ссылка КАК Вариант,
| ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) КАК Подсистема,
| НЕОПРЕДЕЛЕНО КАК Пользователь,
| ВЫБОР
| КОГДА Отчеты.ВидимостьПоУмолчаниюПереопределена
| ИЛИ ЕСТЬNULL(ОтчетыКонфигурации.ВидимостьПоУмолчанию, ОтчетыРасширений.ВидимостьПоУмолчанию) ЕСТЬ NULL
| ТОГДА Отчеты.ВидимостьПоУмолчанию
| ИНАЧЕ ЕСТЬNULL(ОтчетыКонфигурации.ВидимостьПоУмолчанию, ОтчетыРасширений.ВидимостьПоУмолчанию)
| КОНЕЦ КАК Видимость,
| ЛОЖЬ КАК БыстрыйДоступ
|ПОМЕСТИТЬ Настройки
|ИЗ
| Справочник.ВариантыОтчетов КАК Отчеты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК РазмещениеОтчетов
| ПО РазмещениеОтчетов.Ссылка = Отчеты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ОтчетыКонфигурации
| ПО ОтчетыКонфигурации.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК РазмещениеОтчетовКонфигурации
| ПО РазмещениеОтчетовКонфигурации.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ОтчетыРасширений
| ПО ОтчетыРасширений.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК РазмещениеОтчетовРасширений
| ПО РазмещениеОтчетовРасширений.Ссылка = Отчеты.ПредопределенныйВариант
|ГДЕ
| ЕСТЬNULL(РазмещениеОтчетов.Использование, ИСТИНА)
| И НЕ ЕСТЬNULL(РазмещениеОтчетов.Подсистема,
| ЕСТЬNULL(РазмещениеОтчетовКонфигурации.Подсистема, РазмещениеОтчетовРасширений.Подсистема)) ЕСТЬ NULL
|;
|
|ВЫБРАТЬ
| Настройки.Вариант,
| Настройки.Подсистема,
| Настройки.Пользователь,
| Настройки.Видимость,
| Настройки.БыстрыйДоступ
|ИЗ
| Настройки КАК Настройки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВариантовОтчетов КАК НастройкиСуществующие
| ПО НастройкиСуществующие.Вариант = Настройки.Вариант
| И НастройкиСуществующие.Подсистема = Настройки.Подсистема
|ГДЕ
| Настройки.Видимость
| И НастройкиСуществующие.Вариант ЕСТЬ NULL";
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Обработчики оповещения пользователей варианта отчета.
@@ -716,7 +627,51 @@
//
Процедура ЗарегистрироватьДанныеКОбработкеДляПереходаНаНовуюВерсию(Параметры) Экспорт
Запрос = Новый Запрос(ТекстЗапросаНастроекДоступностиВариантовОтчетовПоУмолчанию());
Запрос = Новый Запрос(
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| Отчеты.Ссылка КАК Вариант,
| ЗНАЧЕНИЕ(Справочник.ИдентификаторыОбъектовМетаданных.ПустаяСсылка) КАК Подсистема,
| НЕОПРЕДЕЛЕНО КАК Пользователь,
| ВЫБОР
| КОГДА Отчеты.ВидимостьПоУмолчаниюПереопределена
| ИЛИ ЕСТЬNULL(ОтчетыКонфигурации.ВидимостьПоУмолчанию, ОтчетыРасширений.ВидимостьПоУмолчанию) ЕСТЬ NULL
| ТОГДА Отчеты.ВидимостьПоУмолчанию
| ИНАЧЕ ЕСТЬNULL(ОтчетыКонфигурации.ВидимостьПоУмолчанию, ОтчетыРасширений.ВидимостьПоУмолчанию)
| КОНЕЦ КАК Видимость,
| ЛОЖЬ КАК БыстрыйДоступ
|ПОМЕСТИТЬ Настройки
|ИЗ
| Справочник.ВариантыОтчетов КАК Отчеты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВариантыОтчетов.Размещение КАК РазмещениеОтчетов
| ПО РазмещениеОтчетов.Ссылка = Отчеты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов КАК ОтчетыКонфигурации
| ПО ОтчетыКонфигурации.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетов.Размещение КАК РазмещениеОтчетовКонфигурации
| ПО РазмещениеОтчетовКонфигурации.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений КАК ОтчетыРасширений
| ПО ОтчетыРасширений.Ссылка = Отчеты.ПредопределенныйВариант
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПредопределенныеВариантыОтчетовРасширений.Размещение КАК РазмещениеОтчетовРасширений
| ПО РазмещениеОтчетовРасширений.Ссылка = Отчеты.ПредопределенныйВариант
|ГДЕ
| ЕСТЬNULL(РазмещениеОтчетов.Использование, ИСТИНА)
| И НЕ ЕСТЬNULL(РазмещениеОтчетов.Подсистема,
| ЕСТЬNULL(РазмещениеОтчетовКонфигурации.Подсистема, РазмещениеОтчетовРасширений.Подсистема)) ЕСТЬ NULL
|;
|
|ВЫБРАТЬ
| Настройки.Вариант,
| Настройки.Подсистема,
| Настройки.Пользователь,
| Настройки.Видимость,
| Настройки.БыстрыйДоступ
|ИЗ
| Настройки КАК Настройки
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиВариантовОтчетов КАК НастройкиСуществующие
| ПО НастройкиСуществующие.Вариант = Настройки.Вариант
| И НастройкиСуществующие.Подсистема = Настройки.Подсистема
|ГДЕ
| Настройки.Видимость
| И НастройкиСуществующие.Вариант ЕСТЬ NULL");
Ссылки = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Вариант");
@@ -523,9 +523,12 @@
&НаКлиенте
Процедура ОчиститьДанныеНастройкиЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если ТипЗнч(Результат) <> Тип("Структура") ИЛИ НЕ Результат.Свойство("Статус") ИЛИ Результат.Статус <> "Выполнено" Тогда
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат.Статус <> "Выполнено" Тогда
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
КонецЕсли;
ОчиститьДанныеНастройкиНаСервере(ДополнительныеПараметры.ТекущаяСтрока);
@@ -2782,6 +2782,93 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right>
@@ -4790,93 +4877,6 @@
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>true</value>
</right>
<right>
<name>DataAdministration</name>
<value>true</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>true</value>
</right>
<right>
<name>ExclusiveMode</name>
<value>true</value>
</right>
<right>
<name>ActiveUsers</name>
<value>true</value>
</right>
<right>
<name>EventLog</name>
<value>true</value>
</right>
<right>
<name>ThinClient</name>
<value>true</value>
</right>
<right>
<name>WebClient</name>
<value>true</value>
</right>
<right>
<name>ThickClient</name>
<value>true</value>
</right>
<right>
<name>ExternalConnection</name>
<value>true</value>
</right>
<right>
<name>Automation</name>
<value>true</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeNormal</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeEmbeddedWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeFullscreenWorkplace</name>
<value>true</value>
</right>
<right>
<name>MainWindowModeKiosk</name>
<value>true</value>
</right>
<right>
<name>AnalyticsSystemClient</name>
<value>true</value>
</right>
<right>
<name>SaveUserData</name>
<value>true</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>true</value>
</right>
<right>
<name>Output</name>
<value>true</value>
</right>
</object>
<object>
<name>InformationRegister.ПакетыДляОтправки</name>
<right>
@@ -3949,6 +3949,45 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>Constant.ИспользоватьАльтернативныйСерверДляЗагрузкиКурсовВалют</name>
<right>
@@ -6509,45 +6548,6 @@
<value>false</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
<name>Administration</name>
<value>false</value>
</right>
<right>
<name>UpdateDataBaseConfiguration</name>
<value>false</value>
</right>
<right>
<name>ThickClient</name>
<value>false</value>
</right>
<right>
<name>ExternalConnection</name>
<value>false</value>
</right>
<right>
<name>Automation</name>
<value>false</value>
</right>
<right>
<name>TechnicalSpecialistMode</name>
<value>false</value>
</right>
<right>
<name>ConfigurationExtensionsAdministration</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtDataProcessors</name>
<value>false</value>
</right>
<right>
<name>InteractiveOpenExtReports</name>
<value>false</value>
</right>
</object>
<object>
<name>InformationRegister.ПакетыДляОтправки</name>
<right>
@@ -3,13 +3,6 @@
<setForNewObjects>false</setForNewObjects>
<setForAttributesByDefault>true</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
<right>
@@ -41,6 +34,13 @@
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации.Command.ЖурналРегистрации</name>
<right>
<name>View</name>
<value>true</value>
</right>
</object>
<object>
<name>DataProcessor.ЖурналРегистрации</name>
<right>