This commit is contained in:
Компания 1С committed 2013-07-19 14:29:00 +03:00
1 parent 39fb383848
commit b4c3b3c785
1470 files changed
+109281 -25572

No files matched your search

@@ -1124,6 +1124,10 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>ChoiceProcessing</event>
<name>ОбработкаВыбора</name>
</handlers>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
@@ -2,6 +2,8 @@
Перем ОткрытаФормаВыбораИсполнителя; // признак того, что исполнитель выбирается из формы, а не быстрым вводом
&НаКлиенте
Перем ОткрытаФормаВыбораПроверяющего; // признак того, что проверяющий выбирается из формы, а не быстрым вводом
&НаКлиенте
Перем КонтекстВыбора;
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
@@ -66,6 +68,32 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.ВыборРолиИсполнителя") Тогда
Если КонтекстВыбора = "ИсполнительПриИзменении" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Объект.Исполнитель = ВыбранноеЗначение.РольИсполнителя;
КонецЕсли;
УстановитьДоступностьПроверяющего(ЭтаФорма);
ИначеЕсли КонтекстВыбора = "ПроверяющийПриИзменении" Тогда
Если ТипЗнч(ВыбранноеЗначение) = Тип("Структура") Тогда
Объект.Проверяющий = ВыбранноеЗначение.РольИсполнителя;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
@@ -134,16 +162,18 @@
Если ТипЗнч(Объект.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Исполнитель) Тогда
Если ИспользуетсяСОбъектамиАдресации(Объект.Исполнитель) Тогда
Результат = ОткрытьФормуМодально("ОбщаяФорма.ВыборРолиИсполнителя",
Новый Структура("РольИсполнителя, ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации",
Объект.Исполнитель,
ОсновнойОбъектАдресации,
ДополнительныйОбъектАдресации),
ЭтаФорма);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Объект.Исполнитель = Результат.РольИсполнителя;
КонецЕсли;
КонтекстВыбора = "ИсполнительПриИзменении";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РольИсполнителя", Объект.Исполнитель);
ПараметрыФормы.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);
ПараметрыФормы.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);
ОткрытьФорму("ОбщаяФорма.ВыборРолиИсполнителя", ПараметрыФормы, ЭтаФорма);
Возврат;
КонецЕсли;
КонецЕсли;
@@ -205,16 +235,16 @@
Если ТипЗнч(Объект.Проверяющий) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(Объект.Проверяющий) Тогда
Если ИспользуетсяСОбъектамиАдресации(Объект.Проверяющий) Тогда
Результат = ОткрытьФормуМодально("ОбщаяФорма.ВыборРолиИсполнителя",
Новый Структура("РольИсполнителя, ОсновнойОбъектАдресации, ДополнительныйОбъектАдресации",
Объект.Проверяющий,
ОсновнойОбъектАдресации,
ДополнительныйОбъектАдресации),
ЭтаФорма);
Если ТипЗнч(Результат) = Тип("Структура") Тогда
Объект.Проверяющий = Результат.РольИсполнителя;
КонецЕсли;
КонтекстВыбора = "ПроверяющийПриИзменении";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("РольИсполнителя", Объект.Проверяющий);
ПараметрыФормы.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);
ПараметрыФормы.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);
ОткрытьФорму("ОбщаяФорма.ВыборРолиИсполнителя", ПараметрыФормы, ЭтаФорма);
КонецЕсли;
КонецЕсли;
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">ЗадачаИсточник</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="dcscor:DesignTimeValue">Задача.ЗадачаИсполнителя.ПустаяСсылка</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
@@ -9,6 +9,12 @@
КонецЕсли;
ПоАвтору = Пользователи.ТекущийПользователь();
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ЗадачаИсточник", Задачи.ЗадачаИсполнителя.ПустаяСсылка(),
ВидСравненияКомпоновкиДанных.Равно, , ,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
УстановитьОтбор();
КонецПроцедуры
@@ -82,34 +88,34 @@
&НаСервере
Процедура УстановитьОтборСписка(ПараметрыОтбора)
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "Завершен");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Завершен");
Если НЕ ПараметрыОтбора["ПоказыватьЗавершенныеЗадания"] Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Завершен", Ложь);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "Остановлен");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Остановлен");
Если НЕ ПараметрыОтбора["ПоказыватьОстановленные"] Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Остановлен", Ложь);
КонецЕсли;
Если ПараметрыОтбора["ПоАвтору"].Пустая() Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "Автор");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Автор");
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Автор", ПараметрыОтбора["ПоАвтору"]);
КонецЕсли;
Если ПараметрыОтбора["ПоИсполнителю"].Пустая() Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "Исполнитель");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Исполнитель");
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Исполнитель", ПараметрыОтбора["ПоИсполнителю"]);
КонецЕсли;
Если ПараметрыОтбора["ПоПроверяющему"].Пустая() Тогда
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(Список.Отбор, "Проверяющий");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Проверяющий");
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Проверяющий", ПараметрыОтбора["ПоПроверяющему"]);
@@ -1,3 +1,3 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Этот бизнес-процесс состоит из двух шагов - исполнение и проверка, при этом проверяющий может вернуть задачу на доработку.</p>
<p>См. также: <a href="v8help://1cv8/EnterprWorkingWithBusinessProcesses_StandardInterface">Общая информация о бизнес-процессах.</a></p></body></html>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Общероссийский классификатор валют содержит общую информацию о валютах и предназначен для добавления новых валют.</p>
<h2><a name="Команды">Реквизиты:</a></h2>
<p></p>
@@ -111,8 +111,7 @@
ПоказатьОповещениеПользователя(
НСтр("ru = 'Валюты добавлены.'"), ,
?(ОбщегоНазначенияПовтИсп.РазделениеВключено() И ЕстьКурсы, НСтр("ru = 'Курсы будут загружены автоматически через непродолжительное время.'"), ""),
БиблиотекаКартинок.Информация32
);
БиблиотекаКартинок.Информация32);
Закрыть();
КонецПроцедуры
@@ -11,8 +11,7 @@
ДатаКурса = НачалоДня(ТекущаяДатаСеанса());
Элементы.Курс.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Курс на %1'"),
Формат(ДатаКурса, "ДЛФ=DD")
);
Формат(ДатаКурса, "ДЛФ=DD"));
Элементы.Курс.Подсказка = Элементы.Курс.Заголовок;
Список.Параметры.УстановитьЗначениеПараметра("КонецПериода", ДатаКурса);
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Справочник «Валюты» предназначен для хранения списка используемых валют и их курсов.</p>
<h2><a name="Команды">Реквизиты:</a></h2>
<p></p>
@@ -55,8 +55,7 @@
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Необходимо указать основную валюту'"), ,
"Объект.ОсновнаяВалюта", ,
Отказ
);
Отказ);
КонецЕсли;
Иначе
Объект.ОсновнаяВалюта = Неопределено;
@@ -285,9 +284,6 @@
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСвойстваЭлементовГруппыЗависимойВалюты(Форма)
// Управляет видимостью реквизитов зависимости от базовой валюты:
// ссылки на базовую валюту и коэфициента
Объект = Форма.Объект;
Элементы = Форма.Элементы;
+1 -1
View File
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Справочник «Валюты» предназначен для хранения списка используемых валют и их курсов.</p>
<h2><a name="Команды">Реквизиты:</a></h2>
<p></p>
@@ -7,15 +7,13 @@
Если ЗагружаетсяИзИнтернета И ЗначениеЗаполнено(ОсновнаяВалюта) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Зависимая валюта не может быть загружена с сайта РБК'")
);
НСтр("ru = 'Зависимая валюта не может быть загружена с сайта РБК'"));
Отказ = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(ОсновнаяВалюта.ОсновнаяВалюта) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Основная валюта не может быть зависимой.'")
);
НСтр("ru = 'Основная валюта не может быть зависимой.'"));
Отказ = Истина;
КонецЕсли;
@@ -29,8 +27,7 @@
И РаботаСКурсамиВалют.ПолучитьСписокЗависимыхВалют(Ссылка).Количество() > 0
И ЗначениеЗаполнено(ОсновнаяВалюта) Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Валюта не может быть подчиненной, так как она является основной для других валют.'")
);
НСтр("ru = 'Валюта не может быть подчиненной, так как она является основной для других валют.'"));
Отказ = Истина;
КонецЕсли;
@@ -107,6 +107,7 @@
<Item Code="704" CodeSymbol="VND" Name="Донг" Description="Вьетнам" RBCLoading="ложь"/>
<Item Code="706" CodeSymbol="SOS" Name="Сомалийский шиллинг" Description="Сомали" RBCLoading="ложь"/>
<Item Code="710" CodeSymbol="ZAR" Name="Рэнд" Description="Лесото; Намибия; Южная Африка" RBCLoading="истина"/>
<Item Code="728" CodeSymbol="SSP" Name="Южносуданский фунт" Description="Южный Судан" RBCLoading="ложь"/>
<Item Code="748" CodeSymbol="SZL" Name="Лилангени" Description="Свазиленд" RBCLoading="ложь"/>
<Item Code="752" CodeSymbol="SEK" Name="Шведская крона" Description="Швеция" RBCLoading="истина"/>
<Item Code="756" CodeSymbol="CHF" Name="Швейцарский франк" Description="Лихтенштейн; Швейцария" RBCLoading="истина"/>
@@ -133,6 +134,7 @@
<Item Code="936" CodeSymbol="GHS" Name="Ганский седи" Description="Гана" RBCLoading="ложь"/>
<Item Code="937" CodeSymbol="VEF" Name="Боливар" Description="Венесуэла" RBCLoading="ложь"/>
<Item Code="938" CodeSymbol="SDG" Name="Суданский фунт" Description="Судан" RBCLoading="ложь"/>
<Item Code="940" CodeSymbol="UYI" Name="Уругвайское песо в индексированных единицах" Description="Уругвай" RBCLoading="ложь"/>
<Item Code="941" CodeSymbol="RSD" Name="Сербский динар" Description="Сербия" RBCLoading="ложь"/>
<Item Code="943" CodeSymbol="MZN" Name="Мозамбикский метикал" Description="Мозамбик" RBCLoading="ложь"/>
<Item Code="944" CodeSymbol="AZN" Name="Азербайджанский манат" Description="Азербайджан" RBCLoading="истина"/>
@@ -9,6 +9,4 @@
Возврат;
КонецЕсли;
Анкетирование.УстановитьПараметрыОтбораФормуВыбора(Параметры,Список.Отбор);
КонецПроцедуры
@@ -12,9 +12,7 @@
Предупреждение(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пользовательские настройки выбранных вариантов отчетов (%1 шт) не заданы или уже сброшены.'"),
Формат(КоличествоВариантов, "ЧГ=")
)
);
Формат(КоличествоВариантов, "ЧГ=")));
Возврат;
КонецЕсли;
@@ -24,8 +22,7 @@
|
|Нажмите ""Продолжить"" что бы сбросить пользовательские настройки
|быстрого доступа и видимости выбранных вариантов отчетов (%1 шт).'"),
Формат(КоличествоВариантов, "ЧГ=")
);
Формат(КоличествоВариантов, "ЧГ="));
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(1, НСтр("ru = 'Продолжить'"));
@@ -41,8 +38,7 @@
ПоказатьОповещениеПользователя(
НСтр("ru = 'Сброшены пользовательские настройки варианта отчета'"),
ПолучитьНавигационнуюСсылку(МассивВариантов[0]),
Строка(МассивВариантов[0])
);
Строка(МассивВариантов[0]));
Иначе
ПоказатьОповещениеПользователя(
,
@@ -50,9 +46,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сброшены пользовательские настройки
|вариантов отчетов (%1 шт.).'"),
Формат(МассивВариантов.Количество(), "ЧН=0; ЧГ=0")
)
);
Формат(МассивВариантов.Количество(), "ЧН=0; ЧГ=0")));
КонецЕсли;
КонецПроцедуры
@@ -18,9 +18,7 @@
|- Выбраны только пользовательские варианты отчетов.
|- Выбранные варианты отчетов помечены на удаление.
|- Выбраны варианты дополнительных или внешних отчетов.'"),
Формат(КоличествоПредопределенных, "ЧГ=")
)
);
Формат(КоличествоПредопределенных, "ЧГ=")));
Возврат;
КонецЕсли;
@@ -30,8 +28,7 @@
|
|Нажмите ""Продолжить"" что бы сбросить настройки размещения,
|видимости и доступности выбранных вариантов отчетов (%1 шт).'"),
Формат(КоличествоПредопределенных, "ЧГ=")
);
Формат(КоличествоПредопределенных, "ЧГ="));
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(1, НСтр("ru = 'Продолжить'"));
@@ -48,8 +45,7 @@
ПоказатьОповещениеПользователя(
НСтр("ru = 'Сброшены настройки размещения варианта отчета'"),
ПолучитьНавигационнуюСсылку(ВариантСсылка),
Строка(ВариантСсылка)
);
Строка(ВариантСсылка));
Иначе
ПоказатьОповещениеПользователя(
,
@@ -57,9 +53,7 @@
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Сброшены настройки размещения
|вариантов отчетов (%1 шт.).'"),
Формат(МассивВариантов.Количество(), "ЧН=0; ЧГ=0")
)
);
Формат(МассивВариантов.Количество(), "ЧН=0; ЧГ=0")));
КонецЕсли;
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы();
@@ -1,3 +1,3 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Позволяет настраивать размещение нескольких вариантов отчетов в разделах программы.</p>
<p>См. также: <a href="Catalog.ВариантыОтчетов.Form.ФормаЭлемента/Help">Вариант отчета</a>, <a href="v8help://frame/form_common">Общая информация о формах</a>.</p></body></html>
@@ -104,8 +104,7 @@
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Необходимо заполнить список ""Варианты отчетов""'"),
,
"ИзменяемыеВарианты"
);
"ИзменяемыеВарианты");
Возврат Ложь;
КонецЕсли;
Возврат Истина;
@@ -119,9 +118,7 @@
,
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Изменены настройки вариантов отчетов (%1 шт.).'"),
Формат(ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0")
)
);
Формат(ИзменяемыеВарианты.Количество(), "ЧН=0; ЧГ=0")));
Модифицированность = Ложь;
ВариантыОтчетовКлиент.ОбновитьОткрытыеФормы();
@@ -320,14 +317,12 @@
ТекстСообщения = СтрЗаменить(
НСтр("ru = 'После проверки варианты отчетов (%1 шт.) были исключены из списка выбранных.'"),
"%1",
Формат(КоличествоОшибок, "ЧГ=")
);
Формат(КоличествоОшибок, "ЧГ="));
Элементы.ДеревоПодсистем.Доступность = Истина;
КонецЕсли;
РезультатВыполнения.Вставить("ВыводПредупреждения",
Новый Структура("Использование, Текст, ПутьКРеквизитуФормы, ТекстОшибок", Истина, ТекстСообщения, "ИзменяемыеВарианты", ТекстОшибок)
);
Новый Структура("Использование, Текст, ПутьКРеквизитуФормы, ТекстОшибок", Истина, ТекстСообщения, "ИзменяемыеВарианты", ТекстОшибок));
РезультатВыполнения = Новый ФиксированнаяСтруктура(РезультатВыполнения);
Иначе
Элементы.ДеревоПодсистем.Доступность = Истина;
@@ -711,7 +711,6 @@
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<searchStringLocation>None</searchStringLocation>
<viewStatusLocation>None</viewStatusLocation>
@@ -1593,6 +1592,23 @@
<segments>ОтборАвтор</segments>
</settingsSavedData>
</attributes>
<attributes>
<name>КорневаяПодсистема</name>
<title>
<key>ru</key>
<value>Корневая подсистема</value>
</title>
<id>8</id>
<valueType>
<types>CatalogRef.ИдентификаторыОбъектовМетаданных</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
</attributes>
<attributes>
<name>ОтборНаименование</name>
<title>
@@ -9,6 +9,7 @@
ВключаяПодчиненные = Истина;
//КорневаяПодсистема = Справочники.ИдентификаторыОбъектовМетаданных.Подсистемы;
ДеревоЗначений = ВариантыОтчетовПовтИсп.ПодсистемыТекущегоПользователя();
ЗначениеВРеквизитФормы(ДеревоЗначений, "ДеревоПодсистем");
@@ -57,7 +58,6 @@
ПолныеПраваНаВарианты = ВариантыОтчетов.ПолныеПраваНаВарианты();
Если НЕ ПолныеПраваНаВарианты Тогда
Элементы.ОтборТипОтчета.Видимость = Ложь;
ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(Список.Отбор, "ПометкаУдаления", ВидСравненияКомпоновкиДанных.Равно, Ложь,,Истина,РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
КонецЕсли;
СписокВыбора = Элементы.ОтборТипОтчета.СписокВыбора;
@@ -79,6 +79,12 @@
Список.Параметры.УстановитьЗначениеПараметра("ОтборТипОтчета", ОтборТипОтчета);
ТекущийЭлемент = Элементы.Список;
// Установка отбора динамического списка.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, ВидСравненияКомпоновкиДанных.Равно, , ,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
КонецПроцедуры
&НаКлиенте
@@ -105,11 +111,10 @@
Элементы.ОтборНаименование.СписокВыбора.ЗагрузитьЗначения(ОтборНаименованиеСписокВыбора);
КонецЕсли;
ДеревоПодсистемУстановитьПараметрыСписка();
Список.Параметры.УстановитьЗначениеПараметра("ОтборНаименование", ОтборНаименование);
Список.Параметры.УстановитьЗначениеПараметра("ОтборАвтор", ОтборАвтор);
Список.Параметры.УстановитьЗначениеПараметра("ОтборТипОтчета", ОтборТипОтчета);
//Список.Параметры.УстановитьЗначениеПараметра("ВключаяПодчиненные", ВключаяПодчиненные);
КонецПроцедуры
&НаСервере
@@ -161,6 +166,7 @@
&НаКлиенте
Процедура ВключаяПодчиненныеПриИзменении(Элемент)
//Список.Параметры.УстановитьЗначениеПараметра("ВключаяПодчиненные", ВключаяПодчиненные);
ДеревоПодсистемТекущаяСтрока = -1;
ПодключитьОбработчикОжидания("ДеревоПодсистемОбработчикАктивизацииСтроки", 0.1, Истина);
КонецПроцедуры
@@ -261,8 +267,7 @@
Размещение.Варианты.Представление,
Формат(Размещение.Варианты.Всего, "ЧГ=0"),
Размещение.Источник.ПолноеПредставление,
Размещение.Приемник.ПолноеПредставление
);
Размещение.Приемник.ПолноеПредставление);
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, 60, КодВозвратаДиалога.Да);
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
@@ -488,8 +493,7 @@
ВыводОповещения.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Вариант отчета ""%1"" размещен в ""%2"".'"),
Размещение.Варианты.Представление,
Размещение.Приемник.ПолноеПредставление
);
Размещение.Приемник.ПолноеПредставление);
ВыводОповещения.Текст = Размещение.Варианты.Представление;
ВыводОповещения.Ссылка = ПолучитьНавигационнуюСсылку(Размещение.Варианты.Массив[0]);
Иначе
@@ -497,8 +501,7 @@
НСтр("ru = 'Варианты отчетов ""%1"" (%2 шт.) размещены в ""%3"".'"),
Размещение.Варианты.Представление,
Формат(Размещение.Варианты.Всего, "ЧН=0; ЧГ=0"),
Размещение.Приемник.ПолноеПредставление
);
Размещение.Приемник.ПолноеПредставление);
КонецЕсли;
Иначе
РезультатВыполнения.Вставить("ВыводПредупреждения", Новый Структура("Использование, Текст, ТекстОшибок"));
@@ -507,8 +510,7 @@
ВыводПредупреждения.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Размещено вариантов отчетов: %1 из %2'"),
Формат(Размещено, "ЧН=0; ЧГ=0"),
Формат(Размещение.Варианты.Всего, "ЧН=0; ЧГ=0")
);
Формат(Размещение.Варианты.Всего, "ЧН=0; ЧГ=0"));
ВыводПредупреждения.ТекстОшибок = НСтр("ru = 'Варианты отчетов, которые не могут размещаться в командном интерфейсе:'")
+ Символы.ПС
+ ТекстОшибок;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Справочник предназначен для хранения вариантов отчетов и настройки их размещения в командном интерфейсе.</p>
<h2><a name="Реквизиты">Реквизиты:</a></h2>
<p></p>
@@ -120,8 +120,7 @@
Объект.Описание,
Объект.Описание,
Модифицированность,
НСтр("ru = 'Описание'")
);
НСтр("ru = 'Описание'"));
КонецПроцедуры
&НаКлиенте
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Редактирование, открытие и выбор вариантов отчетов.</p>
<p>В левой части формы расположено дерево разделов и групп командного интерфейса.<br>Перемещаясь по узлам дерева, список "<strong>Варианты отчетов</strong>" автоматически фильтруется по выбранному разделу или группе.<br>Варианты отчетов можно перемещать из текущего раздела/группы в другие при помощи перетаскивания. Если при перетаскивании зажать клавишу Ctrl, то вариант отчета будет добавлен в новую группу, а также останется в текущей группе.</p>
<p>Чтобы быстро найти нужный вариант отчета в списке "<strong>Варианты отчетов</strong>" также можно применять быстрые отборы по <strong>Наименованию</strong> и <strong>Автору</strong>. Для этого нужно указать искомые значения в соответствующих полях, расположенных над списком.</p>
@@ -20,8 +20,7 @@
Наименование
),
,
"Наименование"
);
"Наименование");
КонецЕсли;
КонецПроцедуры
@@ -33,8 +32,7 @@
ПользователемИзмененаПометкаУдаления = (
НЕ ЭтоНовый()
И ПометкаУдаления <> Ссылка.ПометкаУдаления
И НЕ ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных")
);
И НЕ ДополнительныеСвойства.Свойство("ЗаполнениеПредопределенных"));
Если НЕ Пользовательский И ПользователемИзмененаПометкаУдаления Тогда
Если ПометкаУдаления Тогда
@@ -54,13 +52,11 @@
Если НаименованиеЗанято Тогда
ТекстОшибки = ТекстОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Наименование ""%1"" уже занято другим вариантом этого отчета.'"),
Наименование
);
Наименование);
Иначе
ТекстОшибки = ТекстОшибки + СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ключ варианта ""%1"" уже занят другим вариантом этого отчета.'"),
КлючВарианта
);
КлючВарианта);
КонецЕсли;
ТекстОшибки = ТекстОшибки + НСтр("ru = 'Перед снятием пометки удаления варианта отчета
|необходимо установить пометку удаления конфликтующего варианта отчета.'");
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">DeletionMark</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
@@ -321,6 +321,10 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>70</width>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
@@ -0,0 +1,31 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
// Отбор не помеченных на удаление.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
// Оформление помеченных на удаление.
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.НедоступныеДанныеЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ПометкаУдаления");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("Список");
ЭлементОформляемогоПоля.Использование = Истина;
КонецПроцедуры
@@ -137,7 +137,7 @@
<horizontalAlign>Right</horizontalAlign>
</autoCommandBar>
<excludedCommands>CustomizeForm</excludedCommands>
<windowOpeningMode>DontBlock</windowOpeningMode>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
@@ -20,6 +20,8 @@
ОбщегоНазначенияВызовСервера.ХранилищеОбщихНастроекСохранитьМассивИОбновитьПовторноИспользуемыеЗначения(
МассивСтруктур);
Закрыть(КодВозвратаДиалога.ОК);
РезультатВыбора = КодВозвратаДиалога.ОК;
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
@@ -1,41 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<use>false</use>
<field>ДатаСоздания</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<item>
<selection/>
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">true</right>
</item>
</filter>
<appearance>
<dcscor:item xsi:type="SettingsParameterValue">
<dcscor:parameter>ЦветТекста</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">web:Gray</dcscor:value>
</dcscor:item>
</appearance>
</item>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
@@ -657,6 +657,10 @@
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
</handlers>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>Delete</excludedCommands>
@@ -1,6 +1,32 @@
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
// Оформление помеченных на удаление.
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.НедоступныеДанныеЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ПометкаУдаления");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("Список");
ЭлементОформляемогоПоля.Использование = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
@@ -1,45 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">DeletionMark</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<use>false</use>
<field>ДатаСоздания</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<item>
<selection/>
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">true</right>
</item>
</filter>
<appearance>
<dcscor:item xsi:type="SettingsParameterValue">
<dcscor:parameter>ЦветТекста</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">web:Gray</dcscor:value>
</dcscor:item>
<dcscor:item xsi:type="SettingsParameterValue">
<dcscor:parameter>Шрифт</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Font" ref="sys:DefaultGUIFont" bold="false" italic="false" underline="false" strikeout="true" kind="WindowsFont"/>
</dcscor:item>
</appearance>
</item>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
@@ -948,6 +948,10 @@
</items>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<handlers>
<event>ChoiceProcessing</event>
<name>ОбработкаВыбора</name>
</handlers>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
@@ -1,3 +1,9 @@
&НаКлиенте
Перем Ссылка1;
&НаКлиенте
Перем Ссылка2;
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
@@ -8,12 +14,25 @@
Возврат;
КонецЕсли;
Элементы.ФормаСравнить.Видимость = Не ОбщегоНазначенияКлиентСервер.ЭтоLinuxКлиент();
УникальныйИдентификаторКарточкиФайла = Параметры.УникальныйИдентификаторКарточкиФайла;
ЗаполнитьДеревоВерсий();
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("Справочник.ВерсииФайлов.Форма.ФормаВыбораСпособаСравненияВерсий") Тогда
Если ВыбранноеЗначение <> КодВозвратаДиалога.ОК Тогда
Возврат;
КонецЕсли;
СпособСравненияВерсийФайлов = ФайловыеФункцииСлужебныйКлиентСервер.ПерсональныеНастройкиРаботыСФайлами().СпособСравненияВерсийФайлов;
ПродолжитьСравнениеВерсий(СпособСравненияВерсийФайлов);
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ШАПКИ ФОРМЫ
@@ -139,9 +158,6 @@
// Сравнить 2 выбранные версии.
&НаКлиенте
Процедура Сравнить(Команда)
Перем Ссылка1;
Перем Ссылка2;
ЧислоВыделенныхСтрок = Элементы.Список.ВыделенныеСтроки.Количество();
Если ЧислоВыделенныхСтрок = 2 ИЛИ ЧислоВыделенныхСтрок = 1 Тогда
@@ -180,63 +196,18 @@
Если Расширение = "odt" Тогда
СпособСравненияВерсийФайлов = "OpenOfficeOrgWriter";
КонецЕсли;
Если Расширение = "htm" ИЛИ Расширение = "html" Тогда
ИначеЕсли Расширение = "htm" ИЛИ Расширение = "html" Тогда
СпособСравненияВерсийФайлов = "MicrosoftOfficeWord";
КонецЕсли;
Если СпособСравненияВерсийФайлов = Неопределено Тогда
ИначеЕсли СпособСравненияВерсийФайлов = Неопределено Тогда
СпособСравненияВерсийФайлов = ФайловыеФункцииСлужебныйКлиентСервер.ПерсональныеНастройкиРаботыСФайлами().СпособСравненияВерсийФайлов;
КонецЕсли;
Если СпособСравненияВерсийФайлов = Неопределено Тогда // первый вызов - еще не инициализирована настройка
Результат = ОткрытьФормуМодально("Справочник.ВерсииФайлов.Форма.ФормаВыбораСпособаСравненияВерсий");
Если Результат <> КодВозвратаДиалога.ОК Тогда
ПараметрыФормы = Новый Структура;
ОткрытьФорму("Справочник.ВерсииФайлов.Форма.ФормаВыбораСпособаСравненияВерсий", ПараметрыФормы, ЭтаФорма);
Возврат;
КонецЕсли;
СпособСравненияВерсийФайлов = ФайловыеФункцииСлужебныйКлиентСервер.ПерсональныеНастройкиРаботыСФайлами().СпособСравненияВерсийФайлов;
КонецЕсли;
Если СпособСравненияВерсийФайлов = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеФайла1 = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаДляОткрытия(Неопределено, Ссылка1, УникальныйИдентификатор);
ДанныеФайла2 = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаДляОткрытия(Неопределено, Ссылка2, УникальныйИдентификатор);
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Выполняется сравнение версий файла ""%1""...'"), ДанныеФайла1.Ссылка);
Состояние(ТекстСостояния);
ПолноеИмяФайла1 = "";
Результат1 = РаботаСФайламиСлужебныйКлиент.ПолучитьФайлВерсииВРабочийКаталог(
ДанныеФайла1, ПолноеИмяФайла1);
ПолноеИмяФайла2 = "";
Результат2 = РаботаСФайламиСлужебныйКлиент.ПолучитьФайлВерсииВРабочийКаталог(
ДанныеФайла2, ПолноеИмяФайла2);
Если Результат1 И Результат2 Тогда
ПутьКФайлу1 = "";
ПутьКФайлу2 = "";
Если ДанныеФайла1.НомерВерсии < ДанныеФайла2.НомерВерсии Тогда
ПутьКФайлу1 = ПолноеИмяФайла1;
ПутьКФайлу2 = ПолноеИмяФайла2;
Иначе
ПутьКФайлу1 = ПолноеИмяФайла2;
ПутьКФайлу2 = ПолноеИмяФайла1;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.СравнитьФайлы(
ПутьКФайлу1, ПутьКФайлу2, СпособСравненияВерсийФайлов);
КонецЕсли;
Состояние();
ПродолжитьСравнениеВерсий(СпособСравненияВерсийФайлов);
#Иначе
Предупреждение(НСтр("ru = 'Сравнение версий в веб-клиенте не поддерживается.'"));
#КонецЕсли
@@ -432,7 +403,7 @@
Если ТекущиеДанные.ПометкаУдаления Тогда
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Cнять с ""%1"" пометку на удаление?'"),
НСтр("ru = 'Снять с ""%1"" пометку на удаление?'"),
Строка(ТекущиеДанные.Ссылка));
Иначе
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
@@ -456,4 +427,47 @@
КонецПроцедуры
&НаКлиенте
Процедура ПродолжитьСравнениеВерсий(СпособСравненияВерсийФайлов)
#Если НЕ ВебКлиент Тогда
Если СпособСравненияВерсийФайлов = Неопределено Тогда
Возврат;
КонецЕсли;
ДанныеФайла1 = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаДляОткрытия(Неопределено, Ссылка1, УникальныйИдентификатор);
ДанныеФайла2 = РаботаСФайламиСлужебныйВызовСервера.ПолучитьДанныеФайлаДляОткрытия(Неопределено, Ссылка2, УникальныйИдентификатор);
ТекстСостояния = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Выполняется сравнение версий файла ""%1""...'"), ДанныеФайла1.Ссылка);
Состояние(ТекстСостояния);
ПолноеИмяФайла1 = "";
Результат1 = РаботаСФайламиСлужебныйКлиент.ПолучитьФайлВерсииВРабочийКаталог(
ДанныеФайла1, ПолноеИмяФайла1);
ПолноеИмяФайла2 = "";
Результат2 = РаботаСФайламиСлужебныйКлиент.ПолучитьФайлВерсииВРабочийКаталог(
ДанныеФайла2, ПолноеИмяФайла2);
Если Результат1 И Результат2 Тогда
ПутьКФайлу1 = "";
ПутьКФайлу2 = "";
Если ДанныеФайла1.НомерВерсии < ДанныеФайла2.НомерВерсии Тогда
ПутьКФайлу1 = ПолноеИмяФайла1;
ПутьКФайлу2 = ПолноеИмяФайла2;
Иначе
ПутьКФайлу1 = ПолноеИмяФайла2;
ПутьКФайлу2 = ПолноеИмяФайла1;
КонецЕсли;
РаботаСФайламиСлужебныйКлиент.СравнитьФайлы(
ПутьКФайлу1, ПутьКФайлу2, СпособСравненияВерсийФайлов);
КонецЕсли;
Состояние();
#КонецЕсли
КонецПроцедуры
@@ -4,6 +4,10 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
Если ТипЗнч(Объект.Владелец) = Тип("СправочникСсылка.Файлы") Тогда
Элементы.ПолноеНаименование.ТолькоПросмотр = Истина;
КонецЕсли;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Для просмотра списка всех версий файла откройте его карточку (<strong>F2</strong> или команда "<strong>Открыть карточку</strong>") и перейдите в раздел "<strong>Версии файлов</strong>".</p>
<p>В списке версий можно:</p>
<ul><li>открыть файл версии соответствующим приложением для просмотра (команда "<strong>Открыть карточку</strong>");
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p class="Usual">Для каждого физического лица можно указать реквизиты документа, удостоверяющего личность. Для указания вида документа и используется этот справочник.</p>
<p class="Usual">Справочник уже содержит основные документы, удостоверяющие личность, но может быть расширен пользователем.</p>
<p class="Usual"> </p>
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">ЭтоГруппа</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">true</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
@@ -198,6 +198,10 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Copy</excludedCommands>
<excludedCommands>Create</excludedCommands>
<excludedCommands>CreateFolder</excludedCommands>
@@ -0,0 +1,12 @@
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(Список, "ЭтоГруппа", Истина);
КонецПроцедуры
@@ -211,13 +211,13 @@
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<selectionMode>MultiRow</selectionMode>
<header>true</header>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<horizontalLinesBWA>false</horizontalLinesBWA>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandAllLevels</initialTreeView>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Конфигурация позволяет хранить следующие типы контактной информации:</p>
<ul><li>
<div>Адрес — реквизит с таким типом контактной информации предназначен для хранения адреса в виде произвольной строки или в виде шаблона адреса. Позволяет заполнять адрес, используя адресный классификатор, из формы‑шаблона ввода адреса. Если адрес заполняется с помощью адресного классификатора, то индекс адреса устанавливается из классификатора автоматически, после окончания ввода адреса. Предопределенные фактический и юридический адреса используются в печатных формах документов.</div>
@@ -1,4 +1,3 @@
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
@@ -21,25 +20,19 @@
КонецЕсли;
Если ОбъектНаСервере.ЭтоНовый() Тогда
Объект.МожноИзменятьСпособРедактирования = Истина;
Объект.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
Иначе
Если ЭтоПредопределенный Тогда
Элементы.Наименование.ТолькоПросмотр = Истина;
Элементы.Родитель.ТолькоПросмотр = Истина;
Элементы.Тип.ТолькоПросмотр = Истина;
Элементы.Подсказка.ТолькоПросмотр = Истина;
Иначе
Если Не ИспользуетсяЗапретРедактированияРеквизитов Тогда
Элементы.Родитель.ТолькоПросмотр = Истина;
Элементы.Тип.ТолькоПросмотр = Истина;
КонецЕсли;
КонецЕсли;
@@ -49,11 +42,9 @@
Элементы.РазрешитьВводНесколькихЗначений.Доступность = ?(ОбъектНаСервере.Уровень() = 2, Ложь, Истина);
Если Не Объект.МожноИзменятьСпособРедактирования Тогда
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Элементы.РазрешитьВводНесколькихЗначений.Доступность = Ложь;
Элементы.ГруппаНаименованиеНастройкиПоТипам.Доступность = Ложь;
КонецЕсли;
КонецПроцедуры
@@ -61,7 +52,7 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриИзмененииТип();
ИзменитьОтображениеПриИзмененииТипа();
КонецПроцедуры
@@ -78,10 +69,8 @@
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если Не ЭтоПредопределенный Тогда
// Обработчик подсистемы запрета редактирования реквизитов объектов.
УправлениеКонтактнойИнформацией.ПриБлокировкеРеквизитовОбъекта(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
@@ -99,21 +88,30 @@
&НаКлиенте
Процедура ТипПриИзменении(Элемент)
ПриИзмененииТип();
ИзменитьРеквизитыПриИзмененииТипа();
ИзменитьОтображениеПриИзмененииТипа();
КонецПроцедуры
&НаКлиенте
Процедура АдресТолькоРоссийскийПриИзменении(Элемент)
ПриИзмененииАдресТолькоРоссийский();
ИзменитьРеквизитыПриИзмененииТолькоРоссии();
ИзменитьОтображениеПриИзмененииТолькоРоссии();
КонецПроцедуры
&НаКлиенте
Процедура ПроверятьПоКлассификаторуПриИзменении(Элемент)
ПриИзмененииПроверятьКорректность();
ИзменитьРеквизитыПриИзмененииПроверятьКорректность();
КонецПроцедуры
&НаКлиенте
Процедура ПроверятьКорректностьПриИзменении(Элемент)
ИзменитьРеквизитыПриИзмененииПроверятьКорректность();
КонецПроцедуры
@@ -124,16 +122,12 @@
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
Если Не ЭтоПредопределенный Тогда
РедактированиеРазрешено = Ложь;
УправлениеКонтактнойИнформациейКлиент.ПриРазрешенииРедактированияРеквизитовОбъекта(ЭтаФорма, РедактированиеРазрешено);
Если РедактированиеРазрешено Тогда
УправлениеКонтактнойИнформациейКлиент.ПриУстановкеДоступностиЭлементовФормы(ЭтаФорма);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -142,58 +136,75 @@
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаКлиенте
Процедура ПриИзмененииАдресТолькоРоссийский()
Элементы.ПроверятьПоКлассификатору.Доступность = Объект.АдресТолькоРоссийский;
Элементы.СкрыватьНеактуальныеАдреса.Доступность = Объект.АдресТолькоРоссийский;
Если Не Объект.АдресТолькоРоссийский Тогда
Объект.ПроверятьКорректность = Ложь;
Объект.СкрыватьНеактуальныеАдреса = Ложь;
КонецЕсли;
ПриИзмененииПроверятьКорректность();
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииТип()
Процедура ИзменитьОтображениеПриИзмененииТипа()
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Адрес;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования;
ПриИзмененииАдресТолькоРоссийский();
ИзменитьОтображениеПриИзмененииТолькоРоссии();
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.АдресЭлектроннойПочты;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Объект.РедактированиеТолькоВДиалоге = Ложь;
ПриИзмененииПроверятьКорректность();
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон")
Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Другое;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Объект.МожноИзменятьСпособРедактирования;
Иначе
Элементы.Проверки.ТекущаяСтраница = Элементы.Проверки.ПодчиненныеЭлементы.Другое;
Элементы.РедактированиеТолькоВДиалоге.Доступность = Ложь;
Объект.РедактированиеТолькоВДиалоге = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверятьКорректностьПриИзменении(Элемент)
Процедура ИзменитьРеквизитыПриИзмененииТипа()
Если Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Адрес") Тогда
ИзменитьРеквизитыПриИзмененииТолькоРоссии();
ПриИзмененииПроверятьКорректность();
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.АдресЭлектроннойПочты") Тогда
Объект.РедактированиеТолькоВДиалоге = Ложь;
ИзменитьРеквизитыПриИзмененииПроверятьКорректность();
ИначеЕсли Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Телефон")
Или Объект.Тип = ПредопределенноеЗначение("Перечисление.ТипыКонтактнойИнформации.Факс") Тогда
// Нет изменений
Иначе
Объект.РедактированиеТолькоВДиалоге = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииПроверятьКорректность()
Процедура ИзменитьОтображениеПриИзмененииТолькоРоссии()
Элементы.ПроверятьПоКлассификатору.Доступность = Объект.АдресТолькоРоссийский;
Элементы.СкрыватьНеактуальныеАдреса.Доступность = Объект.АдресТолькоРоссийский;
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьРеквизитыПриИзмененииТолькоРоссии()
Если Не Объект.АдресТолькоРоссийский Тогда
Объект.ПроверятьКорректность = Ложь;
Объект.СкрыватьНеактуальныеАдреса = Ложь;
КонецЕсли;
ИзменитьРеквизитыПриИзмененииПроверятьКорректность();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьРеквизитыПриИзмененииПроверятьКорректность()
Объект.ЗапрещатьВводНекорректного = Объект.ПроверятьКорректность;
КонецПроцедуры
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Справочник <strong>Виды контактной информации</strong> имеет двухуровневую иерархию.  Группы справочника соответствуют справочникам-носителям контактной информации, а элементы внутри этих групп определяют состав контактной информации этих справочников. Добавление новых групп в этот справочник запрещено. Поставка конфигурации осуществляется c предопределенными группами и элементами справочника. Для добавления произвольного реквизита в один из этих справочников, необходимо добавить в справочник <strong>Виды контактной информации</strong> в соответствующую группу новый элемент.</p>
<p><strong><font size="2">См. также</font></strong></p>
<ul><li><font size="1"><a href="Catalog.ВидыКонтактнойИнформации.Form.ФормаЭлемента/Help">Типы контактной информации</a></font></li></ul></body></html>
@@ -1,45 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">Недействителен</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Наименование</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
<conditionalAppearance>
<item>
<selection/>
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">Недействителен</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">true</right>
</item>
</filter>
<appearance>
<dcscor:item xsi:type="SettingsParameterValue">
<dcscor:parameter>ЦветТекста</dcscor:parameter>
<dcscor:value xsi:type="v8ui:Color">style:ТекстЗапрещеннойЯчейкиЦвет</dcscor:value>
</dcscor:item>
</appearance>
</item>
<viewMode>Normal</viewMode>
<userSettingID>b75fecce-942b-4aed-abc9-e6a02e460fb3</userSettingID>
</conditionalAppearance>
@@ -5,14 +5,6 @@
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Предопределенный</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>Наименование</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
@@ -1455,7 +1455,7 @@
</handlers>
<handlers>
<event>BeforeLoadDataFromSettingsAtServer</event>
<name>ПриЗагрузкеДанныхИзНастроекНаСервере</name>
<name>ПередЗагрузкеДанныхИзНастроекНаСервере</name>
</handlers>
<excludedCommands>Create</excludedCommands>
<width>80</width>
@@ -1488,6 +1488,9 @@
<edit>
<common>true</common>
</edit>
<notDefaultUseAlwaysAttributes xsi:type="form:DataPath">
<segments>ВнешниеПользователиСписок.Недействителен</segments>
</notDefaultUseAlwaysAttributes>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<queryText>ВЫБРАТЬ
@@ -31,11 +31,10 @@
ЗаполнитьПараметрыДинамическихСписков();
Если Параметры.РежимВыбора Тогда
КлючНазначенияИспользования = "ВыборПодбор";
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
КонецЕсли;
ОбновитьОтборНедействительныхПользователей(ЭтаФорма);
// Скрытие пользователей с пустым идентификатором, если значение параметра Истина.
Если Параметры.ДоступКИнформационнойБазеРазрешен Тогда
@@ -62,9 +61,11 @@
"Ссылка",
Параметры.СкрываемыеПользователи,
ВидСравненияКД);
КонецЕсли;
НастроитьПорядокГруппыВсеВнешниеПользователи(ГруппыВнешнихПользователей);
ОформитьИСкрытьНедействительныхВнешнихПользователей();
ХранимыеПараметры.Вставить("РасширенныйПодбор", Параметры.РасширенныйПодбор);
Элементы.ВыбранныеПользователиИГруппы.Видимость = ХранимыеПараметры.РасширенныйПодбор;
ХранимыеПараметры.Вставить(
@@ -81,7 +82,9 @@
КонецЕсли;
// Отбор не помеченных на удаление.
ВнешниеПользователиСписок.Отбор.Элементы[0].Использование = Истина;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ВнешниеПользователиСписок, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
Элементы.ВнешниеПользователиСписок.РежимВыбора = Истина;
Элементы.ГруппыВнешнихПользователей.РежимВыбора =
@@ -140,7 +143,7 @@
КонецПроцедуры
&НаСервере
Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Процедура ПередЗагрузкеДанныхИзНастроекНаСервере(Настройки)
Если ТипЗнч(Настройки["ВыбиратьИерархически"]) = Тип("Булево") Тогда
ВыбиратьИерархически = Настройки["ВыбиратьИерархически"];
@@ -208,7 +211,7 @@
ОповеститьОВыборе(Значение);
Иначе
ПолучитьКартинкиИзаполнитьСписокВыбранных(Значение);
ПолучитьКартинкиИЗаполнитьСписокВыбранных(Значение);
КонецЕсли;
@@ -314,7 +317,7 @@
ИначеЕсли Не ГруппаПомеченаНаУдаление Тогда
ШаблонВопроса = НСтр("ru = '%1 пользователей (%2) в группу ""%3""?'");
Иначе
ТекстВопроса = НСтр("ru = '%1 пользователей (%2) в эту группу?'");
ШаблонВопроса = НСтр("ru = '%1 пользователей (%2) в эту группу?'");
КонецЕсли;
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ШаблонВопроса, ДействиеСПользователем, КоличествоПользователей,
@@ -382,7 +385,7 @@
ОповеститьОВыборе(Значение);
Иначе
ПолучитьКартинкиИзаполнитьСписокВыбранных(Значение);
ПолучитьКартинкиИЗаполнитьСписокВыбранных(Значение);
КонецЕсли;
@@ -445,7 +448,12 @@
&НаКлиенте
Процедура ПоказыватьНедействительныхПользователей(Команда)
ОбновитьОтборНедействительныхПользователей(ЭтаФорма, Истина);
Элементы.ПоказыватьНедействительныхПользователей.Пометка =
НЕ Элементы.ПоказыватьНедействительныхПользователей.Пометка;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ВнешниеПользователиСписок, "Недействителен", Ложь, , ,
НЕ Элементы.ПоказыватьНедействительныхПользователей.Пометка);
КонецПроцедуры
@@ -566,6 +574,61 @@
КонецПроцедуры
&НаСервере
Процедура НастроитьПорядокГруппыВсеВнешниеПользователи(Список)
Перем Порядок;
// Порядок.
Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
Порядок = Список.КомпоновщикНастроек.Настройки.Порядок;
Порядок.ИдентификаторПользовательскойНастройки = "ОсновнойПорядок";
Иначе
Порядок = Список.Порядок;
КонецЕсли;
Порядок.Элементы.Очистить();
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Предопределенный");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура ОформитьИСкрытьНедействительныхВнешнихПользователей()
// Оформление.
ЭлементУсловногоОформления = УсловноеОформление.Элементы.Добавить();
ЭлементЦветаОформления = ЭлементУсловногоОформления.Оформление.Элементы.Найти("TextColor");
ЭлементЦветаОформления.Значение = Метаданные.ЭлементыСтиля.НедоступныеДанныеЦвет.Значение;
ЭлементЦветаОформления.Использование = Истина;
ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ВнешниеПользователиСписок.Недействителен");
ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбораДанных.ПравоеЗначение = Истина;
ЭлементОтбораДанных.Использование = Истина;
ЭлементОформляемогоПоля = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
ЭлементОформляемогоПоля.Поле = Новый ПолеКомпоновкиДанных("ВнешниеПользователиСписок");
ЭлементОформляемогоПоля.Использование = Истина;
// Скрытие.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
ВнешниеПользователиСписок, "Недействителен", Ложь, , , Истина);
КонецПроцедуры
&НаСервере
Процедура УдалитьИзСпискаВыбранных(УдалитьВсех = Ложь)
@@ -585,7 +648,7 @@
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьКартинкиИзаполнитьСписокВыбранных(МассивВыбранныхЭлементов)
Процедура ПолучитьКартинкиИЗаполнитьСписокВыбранных(МассивВыбранныхЭлементов)
ВыбранныеЭлементыИКартинки = Новый Массив;
Для Каждого ВыбранныйЭлемент Из МассивВыбранныхЭлементов Цикл
@@ -621,7 +684,7 @@
ВыбранныеПользователиИГруппы.Загрузить(ПараметрыРасширеннойФормыПодбора.ВыбранныеПользователи);
ХранимыеПараметры.Вставить("ЗаголовокФормыПодбора", ПараметрыРасширеннойФормыПодбора.ЗаголовокФормыПодбора);
Пользователи.ЗаполнитьНомераКартинокПользователей(ВыбранныеПользователиИГруппы, "Пользователь", "НомерКартинки");
// Установка параметров раширенной формы подбора.
// Установка параметров расширенной формы подбора.
Элементы.ЗавершитьИЗакрыть.Видимость = Истина;
Элементы.ГруппаВыбратьПользователя.Видимость = Истина;
// Включение видимости списка выбранных пользователей.
@@ -699,34 +762,6 @@
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьОтборНедействительныхПользователей(Форма, ИзменитьОтбор = Ложь)
Элементы = Форма.Элементы;
Если ИзменитьОтбор Тогда
Элементы.ПоказыватьНедействительныхПользователей.Пометка =
НЕ Элементы.ПоказыватьНедействительныхПользователей.Пометка;
ИначеЕсли Форма.Параметры.Отбор.Свойство("Недействителен") Тогда
Элементы.ПоказыватьНедействительныхПользователей.Пометка =
Форма.Параметры.Отбор.Недействителен;
КонецЕсли;
Если Элементы.ПоказыватьНедействительныхПользователей.Пометка Тогда
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Форма.ВнешниеПользователиСписок, "Недействителен", Ложь, , , Ложь);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Форма.ВнешниеПользователиСписок, "Недействителен", Ложь, , , Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииИспользованияГруппПользователей()
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Для редактирования сведений о внешнем ользователе необходимы права администрирования или права ответственного за внешних пользователей. В остальных случаях, доступен только просмотр сведений о себе, а также возможность изменить свой пароль, язык программы и контактную информацию.</p>
<p>Внешний пользователь связан с каким-то объектом программы (например, контрагентом, сотрудником и т.п.), указанным в поле <strong>Объект</strong>.</p>
<p>Флажок <strong>Недействителен</strong> по умолчанию снят для всех внешних пользователей. Но если пользователь по каким-либо причинам более не работает с программой, и в то же время его нельзя удалить из-за наличия ссылок на него из других объектов программы, то рекомендуется установить флажок <strong>Недействителен</strong>. Такого внешнего пользователя нельзя выбрать, и он не отображается в списке внешних пользователей.</p>
@@ -205,8 +205,12 @@
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если ДействияВФорме.СвойстваПользователяИБ = "РедактированиеВсех"
ИЛИ ДействияВФорме.СвойстваПользователяИБ = "РедактированиеСвоих" Тогда
ПараметрыЗаписи.Вставить(
ТекущийОбъект.ДополнительныеСвойства.ОписаниеПользователяИБ.РезультатДействия);
КонецЕсли;
ПрочитатьПользователяИБ();
@@ -417,7 +421,7 @@
ИначеЕсли РольДоступна("ДобавлениеИзменениеВнешнихПользователей") Тогда
// Менеджер внешних пользователей.
ДействияВФорме.Роли = "";
ДействияВФорме.СвойстваПользователяИБ = "РедактированиеВсех";
ДействияВФорме.СвойстваПользователяИБ = "ПросмотрВсех";
ДействияВФорме.СвойстваЭлемента = "Просмотр";
ИначеЕсли Объект.Ссылка = ПользователиКлиентСервер.АвторизованныйПользователь() Тогда
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>В этом списке ведется учет пользователей, которые работают с программой "извне". Их доступ, как правило, сильно ограничен, они не принимают активного участия в процессах учета, работают обособленно, не взаимодействуют между собой.</p>
<p>Основной способ создания и редактирования внешних пользователей через команду <strong>Внешний доступ</strong>, которая размещается в командной панели формы объектов, например, в карточке контрагента, физического лица. При выполнении команды сразу создается внешний пользователь, связанный с объектом, или открывается существующий внешний пользователь.</p>
<p>В случае большого количества внешних пользователей список может быть сгруппирован, например, по видам отношений с ними: партнеры, контрагенты и т.д. Для того чтобы увидеть всех внешних пользователей, включенных в дочерние группы с учетом иерархии, необходимо установить флажок <strong>Показывать внешних пользователей дочерних групп</strong> в нижней части списка. Для добавления новых групп внешних пользователей воспользуйтесь командами в левой части списка. Для добавления в группу большого числа внешних пользователей можно открыть форму группы и воспользоваться командой <strong>Подобрать</strong>. Один и тот же внешний пользователь может одновременно входить в разные группы внешних пользователей.</p>
@@ -13,25 +13,7 @@
Процедура ОбработкаПолученияФормы(ВидФормы, Параметры, ВыбраннаяФорма, ДополнительнаяИнформация, СтандартнаяОбработка)
Если ВидФормы = "ФормаВыбора" Тогда
ПараметрИзменен = Ложь;
Если Не Параметры.Свойство("Отбор") Тогда
Параметры.Вставить("Отбор", Новый Структура("Недействителен", Ложь));
ПараметрИзменен = Истина;
ИначеЕсли Не Параметры.Отбор.Свойство("Недействителен") Тогда
Параметры.Отбор.Вставить("Недействителен", Ложь);
ПараметрИзменен = Истина;
КонецЕсли;
Если ПараметрИзменен Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаСписка";
КонецЕсли;
ИначеЕсли ВидФормы = "ФормаОбъекта" И Параметры.Свойство("ОбъектАвторизации") Тогда
Если ВидФормы = "ФормаОбъекта" И Параметры.Свойство("ОбъектАвторизации") Тогда
СтандартнаяОбработка = Ложь;
ВыбраннаяФорма = "ФормаЭлемента";
@@ -1,30 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">Ссылка</left>
<comparisonType>NotInList</comparisonType>
<right xsi:type="dcscor:DesignTimeValue">Справочник.ГруппыВнешнихПользователей.ВсеВнешниеПользователи</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Предопределенный</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>Наименование</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
@@ -240,6 +240,7 @@
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>65</width>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
@@ -8,14 +8,24 @@
Возврат;
КонецЕсли;
НастроитьПорядокГруппыВсеВнешниеПользователи(Список);
Если Параметры.РежимВыбора Тогда
КлючНазначенияИспользования = "ВыборПодбор";
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Элементы.Список.РежимВыбора = Истина;
// Отбор не помеченных на удаление.
Список.Отбор.Элементы[0].Использование = Истина;
Список.Отбор.Элементы[1].Использование = Параметры.Свойство("ВыборРодителя");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
// Исключение выбора группы Все внешние пользователи в качестве родителя.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка", Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи,
ВидСравненияКомпоновкиДанных.НеРавно, , Параметры.Свойство("ВыборРодителя"));
Если Параметры.ЗакрыватьПриВыборе = Ложь Тогда
// Режим подбора.
@@ -28,3 +38,35 @@
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Процедура НастроитьПорядокГруппыВсеВнешниеПользователи(Список)
Перем Порядок;
// Порядок.
Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
Порядок = Список.КомпоновщикНастроек.Настройки.Порядок;
Порядок.ИдентификаторПользовательскойНастройки = "ОсновнойПорядок";
Иначе
Порядок = Список.Порядок;
КонецЕсли;
Порядок.Элементы.Очистить();
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Предопределенный");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Карточка группы внешних пользователей позволяет просматривать и редактировать свойства группы.</p>
<p>Для группы пользователей можно установить <strong>Тип участников </strong>(например, контрагенты). Группа может неявно включать всех внешних пользователей для установленного типа участников. Для этого нужно установить флажок <strong>Все</strong>.</p>
<p>При редактировании состава пользователей группы нужно учитывать, что они неявно входят в состав групп-родителей. Для добавления большого числа пользователей можно использовать команду <strong>Подобрать</strong>.</p>
@@ -16,14 +16,17 @@
// Подготовка вспомогательных данных.
ЗаполнитьСписокТиповОбъектовАвторизации();
ОтобратьДоступныеДляВыбораТипыУчастниковГруппы();
Если Объект.Ссылка = Справочники.ГруппыВнешнихПользователей.ПустаяСсылка()
И Объект.Родитель = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи Тогда
Если Не ЗначениеЗаполнено(Объект.Ссылка) Тогда
Если Объект.Родитель = Справочники.ГруппыВнешнихПользователей.ВсеВнешниеПользователи
Или ОбщегоНазначения.ПолучитьЗначениеРеквизита(Объект.Родитель, "ВсеОбъектыАвторизации") Тогда
Объект.Родитель = Справочники.ГруппыВнешнихПользователей.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
ОтобратьДоступныеДляВыбораТипыУчастниковГруппы();
ОпределитьДействияВФорме();
// Установка постоянной доступности свойств.
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p class="Usual">В этом списке ведется учет групп внешних пользователей.</p>
<p class="Usual">Группы внешних пользователей могут использоваться для группировки большого числа внешних пользователей, а также когда нужно указывать не только внешнего пользователя, но и группу внешних пользователей, например, при настройке доступа.<br></p>
<p class="Usual">Группы создаются плоским списком или иерархическим. В иерархическом списке, внешние пользователи вложенных групп неявно входят в группы-родители.</p>
@@ -110,6 +110,10 @@
ВызватьИсключение
НСтр("ru = 'Предопределенная группа ""Все внешние пользователи""
|не может быть родителем.'");
ИначеЕсли Родитель.ВсеОбъектыАвторизации Тогда
ВызватьИсключение
НСтр("ru = 'Группа, у которой стоит тип участников ""Все пользователи заданного типа""
|не может быть родителем.'");
КонецЕсли;
Если ТипОбъектовАвторизации = Неопределено Тогда
@@ -172,6 +176,31 @@
КонецЕсли;
КонецЕсли;
// Если группе внешних пользователей устанавливается тип участников "Все пользователи заданного типа",
// проверяем наличие подчиненных групп.
Если ВсеОбъектыАвторизации
И ЗначениеЗаполнено(Ссылка) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕ(ГруппыВнешнихПользователей.Ссылка) КАК СсылкаПредставление
|ИЗ
| Справочник.ГруппыВнешнихПользователей КАК ГруппыВнешнихПользователей
|ГДЕ
| ГруппыВнешнихПользователей.Родитель = &Ссылка";
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'У группы внешних пользователей ""%1""
|невозможно изменить тип участников,
|так как существует нижестоящая группа внешних пользователей'"),
Наименование);
КонецЕсли;
КонецЕсли;
// Проверка, что при изменении типа объектов авторизации
// нет подчиненных элементов другого типа (очистка типа допустима).
Если ТипОбъектовАвторизации <> Неопределено
@@ -37,19 +37,20 @@
| Справочник.ГруппыДоступа КАК ГруппыДоступа
|ГДЕ
| ВЫБОР
| КОГДА ГруппыДоступа.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА ГруппыДоступа.ЭтоГруппа
| ТОГДА ИСТИНА
| КОГДА ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы)
| ТОГДА ЛОЖЬ
| КОГДА ГруппыДоступа.Ссылка В (&Выбранные)
| ТОГДА ЛОЖЬ
| КОГДА &ПолноправныйОтветственный = ЛОЖЬ
| И ГруппыДоступа.Ответственный <> &Ответственный
| КОГДА ГруппыДоступа.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА ГруппыДоступа.Профиль.ПометкаУдаления
| ТОГДА ЛОЖЬ
| КОГДА ГруппыДоступа.Ссылка = ЗНАЧЕНИЕ(Справочник.ГруппыДоступа.Администраторы)
| ТОГДА &ПолноправныйОтветственный
| И ТИПЗНАЧЕНИЯ(&ПользовательГрупп) = ТИП(Справочник.Пользователи)
| КОГДА &ПолноправныйОтветственный = ЛОЖЬ
| И ГруппыДоступа.Ответственный <> &Ответственный
| ТОГДА ЛОЖЬ
| ИНАЧЕ ВЫБОР
| КОГДА ГруппыДоступа.Пользователь = НЕОПРЕДЕЛЕНО
| ТОГДА ИСТИНА
@@ -167,7 +168,7 @@
Элементы.ГруппыДоступа.Развернуть(Элементы.ГруппыДоступа.ТекущаяСтрока);
КонецЕсли;
Иначе
Закрыть(ТекущиеДанные.Ссылка);
ОповеститьОВыборе(ТекущиеДанные.Ссылка);
КонецЕсли;
КонецЕсли;
@@ -193,7 +193,7 @@
<excludedCommands>Retry</excludedCommands>
<excludedCommands>SaveValues</excludedCommands>
<excludedCommands>Yes</excludedCommands>
<windowOpeningMode>DontBlock</windowOpeningMode>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
@@ -0,0 +1,238 @@
<?xml version="1.0" encoding="UTF-8"?>
<form:Form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:core="http://g5.1c.ru/v8/dt/mcore" xmlns:form="http://g5.1c.ru/v8/dt/form">
<items xsi:type="form:Table">
<name>Список</name>
<id>1</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список</segments>
</dataPath>
<defaultItem>true</defaultItem>
<titleLocation>None</titleLocation>
<excludedCommands>Create</excludedCommands>
<items xsi:type="form:FormField">
<name>Наименование</name>
<id>4</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Список.Description</segments>
</dataPath>
<defaultItem>true</defaultItem>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>16</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>НаименованиеКонтекстноеМеню</name>
<id>5</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
</extInfo>
</items>
<commandBarLocation>None</commandBarLocation>
<autoCommandBar>
<name>СписокКоманднаяПанель</name>
<id>3</id>
<horizontalAlign>Left</horizontalAlign>
</autoCommandBar>
<searchStringAddition>
<name>СписокСтрокаПоиска</name>
<id>7</id>
<extendedTooltip>
<name>СписокСтрокаПоискаРасширеннаяПодсказка</name>
<id>9</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСтрокаПоискаКонтекстноеМеню</name>
<id>8</id>
<autoFill>true</autoFill>
</contextMenu>
<source>Список</source>
<extInfo xsi:type="form:SearchStringAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchStringAddition>
<viewStatusAddition>
<name>СписокСостояниеПросмотра</name>
<id>10</id>
<extendedTooltip>
<name>СписокСостояниеПросмотраРасширеннаяПодсказка</name>
<id>12</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокСостояниеПросмотраКонтекстноеМеню</name>
<id>11</id>
<autoFill>true</autoFill>
</contextMenu>
<type>ViewStatusAddition</type>
<source>Список</source>
<extInfo xsi:type="form:ViewStatusAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</viewStatusAddition>
<searchControlAddition>
<name>СписокУправлениеПоиском</name>
<id>13</id>
<extendedTooltip>
<name>СписокУправлениеПоискомРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокУправлениеПоискомКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>SearchControlAddition</type>
<source>Список</source>
<extInfo xsi:type="form:SearchControlAdditionExtInfo">
<autoMaxWidth>true</autoMaxWidth>
</extInfo>
</searchControlAddition>
<extendedTooltip>
<name>СписокРасширеннаяПодсказка</name>
<id>6</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>СписокКонтекстноеМеню</name>
<id>2</id>
<autoFill>true</autoFill>
</contextMenu>
<representation>Tree</representation>
<changeRowSet>true</changeRowSet>
<changeRowOrder>true</changeRowOrder>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<autoMaxRowsCount>true</autoMaxRowsCount>
<choiceMode>true</choiceMode>
<selectionMode>MultiRow</selectionMode>
<headerHeight>1</headerHeight>
<footerHeight>1</footerHeight>
<horizontalScrollBar>AutoUse</horizontalScrollBar>
<verticalScrollBar>AutoUse</verticalScrollBar>
<horizontalLines>true</horizontalLines>
<verticalLines>true</verticalLines>
<horizontalLinesBWA>false</horizontalLinesBWA>
<verticalLinesBWA>false</verticalLinesBWA>
<useAlternationRowColorBWA>false</useAlternationRowColorBWA>
<searchOnInput>Auto</searchOnInput>
<initialListView>Auto</initialListView>
<initialTreeView>ExpandTopLevel</initialTreeView>
<horizontalStretch>true</horizontalStretch>
<verticalStretch>true</verticalStretch>
<enableStartDrag>true</enableStartDrag>
<enableDrag>true</enableDrag>
<rowPictureDataPath xsi:type="form:DataPath">
<segments>Список.DefaultPicture</segments>
</rowPictureDataPath>
<searchStringLocation>None</searchStringLocation>
<viewStatusLocation>None</viewStatusLocation>
<searchControlLocation>None</searchControlLocation>
<autoMaxCardHeight>true</autoMaxCardHeight>
<extInfo xsi:type="form:DynamicListTableExtInfo">
<autoRefreshPeriod>60</autoRefreshPeriod>
<period>
<startDate>0001-01-01T00:00:00</startDate>
<endDate>0001-01-01T00:00:00</endDate>
</period>
<choiceFoldersAndItems>Folders</choiceFoldersAndItems>
<topLevelParent xsi:type="core:UndefinedValue"/>
<showRoot>true</showRoot>
<allowRootChoice>true</allowRootChoice>
<allowGettingCurrentRowURL>true</allowGettingCurrentRowURL>
</extInfo>
</items>
<autoCommandBar>
<name>ФормаКоманднаяПанель</name>
<id>-1</id>
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<excludedCommands>Create</excludedCommands>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
<group>Vertical</group>
<autoFillCheck>true</autoFillCheck>
<allowFormCustomize>true</allowFormCustomize>
<enabled>true</enabled>
<verticalScroll>UseIfNecessary</verticalScroll>
<showTitle>auto</showTitle>
<showCloseButton>true</showCloseButton>
<attributes>
<name>Список</name>
<id>1</id>
<valueType>
<types>DynamicList</types>
</valueType>
<view>
<common>true</common>
</view>
<edit>
<common>true</common>
</edit>
<main>true</main>
<extInfo xsi:type="form:DynamicListExtInfo">
<mainTable>Catalog.ГруппыДоступа</mainTable>
<dynamicDataRead>true</dynamicDataRead>
<autoFillAvailableFields>true</autoFillAvailableFields>
<autoSaveUserSettings>true</autoSaveUserSettings>
<getInvisibleFieldPresentations>true</getInvisibleFieldPresentations>
</extInfo>
</attributes>
<commandInterface>
<navigationPanel/>
<commandBar/>
</commandInterface>
<extInfo xsi:type="form:DynamicListFormExtInfo"/>
</form:Form>
@@ -0,0 +1,18 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Возврат;
КонецЕсли;
// Отбор только групп.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ЭтоГруппа", Истина, , , Истина);
// Отбор не помеченных на удаление.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
КонецПроцедуры
@@ -11,6 +11,10 @@
<dataPath xsi:type="form:DataPath">
<segments>Объект.Description</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Наименование группы (папки)</value>
</toolTip>
<extendedTooltip>
<name>НаименованиеРасширеннаяПодсказка</name>
<id>5</id>
@@ -44,6 +48,10 @@
<items xsi:type="form:FormField">
<name>Родитель</name>
<id>3</id>
<title>
<key>ru</key>
<value>Вышестоящая группа (папка)</value>
</title>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
@@ -52,6 +60,10 @@
<dataPath xsi:type="form:DataPath">
<segments>Объект.Parent</segments>
</dataPath>
<toolTip>
<key>ru</key>
<value>Вышестоящая группа (папка), объединяющая группы (папки) для удобства поиска</value>
</toolTip>
<extendedTooltip>
<name>РодительРасширеннаяПодсказка</name>
<id>7</id>
@@ -1,21 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<left xsi:type="dcscor:Field">Ссылка</left>
<comparisonType>NotInList</comparisonType>
<right xsi:type="v8:ValueListType">
<v8:valueType/>
<v8:lastId xsi:type="xs:decimal">-1</v8:lastId>
</right>
<viewMode>Inaccessible</viewMode>
</item>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
@@ -655,12 +655,6 @@
Справочник.ГруппыДоступа КАК ГруппыДоступа
ГДЕ
ВЫБОР
КОГДА &amp;РежимВыбора
И &amp;РежимВыбораТолькоГрупп
ТОГДА ГруппыДоступа.ЭтоГруппа
ИНАЧЕ ИСТИНА
КОНЕЦ
И ВЫБОР
КОГДА &amp;Профиль = ЗНАЧЕНИЕ(Справочник.ПрофилиГруппДоступа.ПустаяСсылка)
ТОГДА ИСТИНА
ИНАЧЕ ГруппыДоступа.Профиль = &amp;Профиль
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p><a href="Catalog.ГруппыДоступа/Help">Назначение групп доступа см. здесь.</a></p>
<p>Список групп доступа позволяет посмотреть имеющиеся настройки прав с ограничениями по нименованию.</p>
<p>Для удобства сделана возможность отоборажения профиля группы.</p>
@@ -8,6 +8,10 @@
Возврат;
КонецЕсли;
Если Параметры.РежимВыбора Тогда
КлючНазначенияИспользования = "ВыборПодбор";
КонецЕсли;
Элементы.Список.РежимВыбора = Параметры.РежимВыбора;
РодительПерсональныхГруппДоступа = Справочники.ГруппыДоступа.РодительПерсональныхГруппДоступа(Истина);
@@ -27,8 +31,7 @@
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Автозаголовок = Ложь;
Заголовок = УправлениеДоступомСлужебный.ЗаголовокПодчиненнойФормы(
НСтр("ru = 'Группы доступа: %1 (%2)'"), Параметры.Профиль);
Заголовок = НСтр("ru = 'Группы доступа'");
Элементы.ФормаСоздатьГруппу.Видимость = Ложь;
Элементы.СписокКонтекстноеМенюСоздатьГруппу.Видимость = Ложь;
@@ -48,20 +51,14 @@
СписокНедоступныхГрупп = Новый СписокЗначений;
Если НЕ Пользователи.ЭтоПолноправныйПользователь() Тогда
СписокНедоступныхГрупп.Добавить(Справочники.ГруппыДоступа.Администраторы);
// Скрытие группы доступа Администраторы.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка", Справочники.ГруппыДоступа.Администраторы,
ВидСравненияКомпоновкиДанных.НеРавно, , Истина);
КонецЕсли;
Список.Отбор.Элементы[0].ПравоеЗначение = СписокНедоступныхГрупп;
РежимВыбора = Параметры.РежимВыбора;
Список.Параметры.УстановитьЗначениеПараметра(
"РежимВыбора",
Параметры.РежимВыбора);
Список.Параметры.УстановитьЗначениеПараметра(
"РежимВыбораТолькоГрупп",
Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы);
Список.Параметры.УстановитьЗначениеПараметра(
"ОшибкаОбъектНеНайден",
НСтр("ru = '<Объект не найден>'"));
@@ -71,17 +68,12 @@
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
// Отбор не помеченных на удаление.
Список.Отбор.Элементы[1].Использование = Истина;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
Элементы.Список.РежимВыбора = Истина;
Элементы.Список.ВыборГруппИЭлементов = Параметры.ВыборГруппИЭлементов;
Если Параметры.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы Тогда
Элементы.Список.НачальноеОтображениеДерева =
НачальноеОтображениеДерева.РаскрыватьВерхнийУровень;
Элементы.Список.Отображение = ОтображениеТаблицы.Дерево;
КонецЕсли;
АвтоЗаголовок = Ложь;
Если Параметры.ЗакрыватьПриВыборе = Ложь Тогда
@@ -2630,6 +2630,10 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>ChoiceProcessing</event>
<name>ОбработкаВыбора</name>
</handlers>
<handlers>
<event>OnOpen</event>
<name>ПриОткрытии</name>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p><a href="Catalog.ГруппыДоступа/Help">Назначение групп доступа см. здесь.</a></p>
<p>Для группы доступа задается профиль, список участников и ограничения доступа.</p>
<p>Профиль определит права (списком ролей) и возможности ограничения прав по "разрезам" (видам доступа), например, ограничения по видам Организации, Склады, ...<br>Виды доступа из профиля будут добавлены в группу доступа автоматически.</p>
@@ -79,14 +79,14 @@
Элементы.ВидыДоступаИзменить.Доступность = НЕ ТолькоПросмотр;
Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
И Объект.Ссылка <> Справочники.ГруппыДоступа.Администраторы Тогда
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
ДействияСПользователемСервиса = Неопределено;
УправлениеДоступомСлужебный.ПриПолученииДействийСПользователемСервиса(ДействияСПользователемСервиса);
Если НЕ ДействияСПользователемСервиса.ИзменениеАдминистративногоДоступа Тогда
ВызватьИсключение
НСтр("ru = 'Не достаточно прав доступа для изменения состава администраторов'");
НСтр("ru = 'Не достаточно прав доступа для изменения состава администраторов.'");
КонецЕсли;
КонецЕсли;
@@ -146,6 +146,18 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("ОбщаяФорма.АутентификацияВСервисе")
И ВыбранноеЗначение <> Неопределено Тогда
ПарольПользователяСервиса = ВыбранноеЗначение;
Записать();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
@@ -160,8 +172,17 @@
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().РазделениеВключено Тогда
СтандартныеПодсистемыКлиент.ПриЗапросеПароляДляАутентификацииВСервисе(ПарольПользователяСервиса, Отказ);
Если СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента().РазделениеВключено
И Объект.Ссылка = ПредопределенноеЗначение("Справочник.ГруппыДоступа.Администраторы") Тогда
ПарольЕщёНеВведен = Ложь;
СтандартныеПодсистемыКлиент.ПриЗапросеПароляДляАутентификацииВСервисе(
ЭтаФорма, ПарольПользователяСервиса, ПарольЕщёНеВведен);
Если ПарольЕщёНеВведен Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
@@ -197,7 +218,8 @@
Если ОбщегоНазначенияПовтИсп.РазделениеВключено()
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПарольПользователяСервиса", ПарольПользователяСервиса);
ТекущийОбъект.ДополнительныеСвойства.Вставить(
"ПарольПользователяСервиса", ПарольПользователяСервиса);
КонецЕсли;
КонецПроцедуры
@@ -393,30 +415,13 @@
Если НЕ ОбщегоНазначенияПовтИсп.РазделениеВключено()
И Объект.Ссылка = Справочники.ГруппыДоступа.Администраторы Тогда
Пользователи.НайтиНеоднозначныхПользователейИБ();
// Проверка пустого списка пользователей ИБ в группе доступа Администраторы.
УстановитьПривилегированныйРежим(Истина);
НайденПользовательИБ = Ложь;
Для каждого ОписаниеПользователя ИЗ ПользователиГруппы.ПолучитьЭлементы() Цикл
Если ЗначениеЗаполнено(ОписаниеПользователя.Пользователь)
И ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(
ОписаниеПользователя.Пользователь.ИдентификаторПользователяИБ) <> Неопределено Тогда
НайденПользовательИБ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ НайденПользовательИБ Тогда
ОписаниеОшибки = "";
УправлениеДоступомСлужебный.ПроверитьНаличиеПользователяИБВГруппеДоступаАдминистраторы(
ПользователиГруппы.ПолучитьЭлементы(), ОписаниеОшибки);
Если ЗначениеЗаполнено(ОписаниеОшибки) Тогда
ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю(Ошибки,
"ПользователиГруппы",
НСтр("ru = 'В группе доступа Администраторы
|должен быть хотя бы один пользователь,
|которому разрешен доступ к информационной базе.'"));
"ПользователиГруппы", ОписаниеОшибки);
КонецЕсли;
КонецЕсли;
@@ -1969,4 +1974,3 @@
КонецЕсли;
КонецПроцедуры
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Группы доступа предназначены для настройки прав и ограничений прав доступа конкретным пользователям и группам пользователей системы.</p>
<p>Набор прав и возможности по их ограничению определяются заданным <a href="Catalog.ПрофилиГруппДоступа/Help">профилем групп доступа</a>. Например, группа доступа "Менеджеры по продажам ПО делового назначения" с пользователями Иванов и Петров может ссылаться на профиль "Менеджер по продажам", в котором предусмотрена возможность ограничения по виду доступа "Виды номенклатуры". Тогда если по этому виду доступа для всех значений указать вариант "Запрещены", а в список добавить вид номенклатуры "ПО делового назначения", то Иванову и Петрову будут доступны только те данные и операции, которые связаны с ПО делового назначения.</p>
<p>Рекомендуется задавать наименования групп таким образом, чтобы название отражало как суть профиля, так и смысл ограничений, заданных в группе.</p>
@@ -178,4 +178,15 @@
КонецФункции
////////////////////////////////////////////////////////////////////////////////
// Обновление информационной базы
Процедура ЗаполнитьПрофильГруппыДоступаАдминистраторы() Экспорт
Объект = Администраторы.ПолучитьОбъект();
Объект.Профиль = Справочники.ПрофилиГруппДоступа.Администратор;
ОбновлениеИнформационнойБазы.ЗаписатьДанные(Объект);
КонецПроцедуры
#КонецЕсли
@@ -68,9 +68,13 @@
<standardAttributes>
<dataHistory>Use</dataHistory>
<name>Parent</name>
<synonym>
<key>ru</key>
<value>Группа (папка)</value>
</synonym>
<toolTip>
<key>ru</key>
<value>Папка, объединяющая группы доступа для удобства поиска</value>
<value>Группа (папка), объединяющая группы доступа для удобства поиска</value>
</toolTip>
<fillFromFillingValue>true</fillFromFillingValue>
<fillValue xsi:type="core:ReferenceValue">
@@ -134,7 +138,7 @@
<defaultFolderForm>Catalog.ГруппыДоступа.Form.ФормаГруппы</defaultFolderForm>
<defaultListForm>Catalog.ГруппыДоступа.Form.ФормаСписка</defaultListForm>
<defaultChoiceForm>Catalog.ГруппыДоступа.Form.ФормаСписка</defaultChoiceForm>
<defaultFolderChoiceForm>Catalog.ГруппыДоступа.Form.ФормаСписка</defaultFolderChoiceForm>
<defaultFolderChoiceForm>Catalog.ГруппыДоступа.Form.ФормаВыбораГруппы</defaultFolderChoiceForm>
<attributes uuid="5035aa55-d557-419a-89e2-10ed0f8d109b">
<name>Профиль</name>
<synonym>
@@ -239,6 +243,25 @@
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="245814f7-028c-4c13-98eb-15412e851f81">
<name>ОсновнаяГруппаДоступаПоставляемогоПрофиля</name>
<synonym>
<key>ru</key>
<value>Основная группа доступа поставляемого профиля</value>
</synonym>
<type>
<types>Boolean</types>
</type>
<toolTip>
<key>ru</key>
<value>Определяет основную группу доступа поставляемого профиля без видов доступа для программного управления составом пользователей.</value>
</toolTip>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<tabularSections uuid="0132e564-2cd3-4930-8962-1068532f4be4">
<producedTypes>
<objectType typeId="80257c67-a204-4f2a-948a-f34b9227f036" valueTypeId="f2d301f8-8692-4afc-873e-2441147b4061"/>
@@ -436,6 +459,15 @@
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="83f51efe-e2af-459a-b59f-2c036124ac23">
<name>ФормаВыбораГруппы</name>
<synonym>
<key>ru</key>
<value>Форма выбора группы</value>
</synonym>
<usePurposes>PersonalComputer</usePurposes>
<usePurposes>MobileDevice</usePurposes>
</forms>
<forms uuid="e3ca64af-7766-48e2-b7c6-2a96f4539905">
<name>ОбновлениеДанныхОграниченияДоступа</name>
<synonym>
@@ -1,30 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<Settings xmlns="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core">
<filter>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">ПометкаУдаления</left>
<comparisonType>Equal</comparisonType>
<right xsi:type="xs:boolean">false</right>
</item>
<item xsi:type="FilterItemComparison">
<use>false</use>
<left xsi:type="dcscor:Field">Ссылка</left>
<comparisonType>NotInList</comparisonType>
<right xsi:type="dcscor:DesignTimeValue">Справочник.ГруппыПользователей.ВсеПользователи</right>
</item>
<viewMode>Normal</viewMode>
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Предопределенный</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>Наименование</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
@@ -243,6 +243,7 @@
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<width>65</width>
<windowOpeningMode>DontBlock</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
@@ -8,14 +8,24 @@
Возврат;
КонецЕсли;
НастроитьПорядокГруппыВсеПользователи(Список);
Если Параметры.РежимВыбора Тогда
КлючНазначенияИспользования = "ВыборПодбор";
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
Элементы.Список.РежимВыбора = Истина;
// Отбор не помеченных на удаление.
Список.Отбор.Элементы[0].Использование = Истина;
Список.Отбор.Элементы[1].Использование = Параметры.Свойство("ВыборРодителя");
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "ПометкаУдаления", Ложь, , , Истина,
РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ);
// Исключение выбора группы Все внешние пользователи в качестве родителя.
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список, "Ссылка", Справочники.ГруппыПользователей.ВсеПользователи,
ВидСравненияКомпоновкиДанных.НеРавно, , Параметры.Свойство("ВыборРодителя"));
Если Параметры.ЗакрыватьПриВыборе = Ложь Тогда
// Режим подбора.
@@ -28,3 +38,35 @@
КонецЕсли;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Процедура НастроитьПорядокГруппыВсеПользователи(Список)
Перем Порядок;
// Порядок.
Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
Порядок = Список.КомпоновщикНастроек.Настройки.Порядок;
Порядок.ИдентификаторПользовательскойНастройки = "ОсновнойПорядок";
Иначе
Порядок = Список.Порядок;
КонецЕсли;
Порядок.Элементы.Очистить();
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Предопределенный");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Карточка группы пользователей позволяет просматривать и редактировать свойства группы.</p>
<p>При редактировании состава пользователей группы нужно учитывать, что они неявно входят в состав групп-родителей. Для добавления большого числа пользователей можно использовать команду <strong>Подобрать</strong>.</p>
<h3>См. также</h3>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p class="Usual">В этом списке ведется учет групп пользователей.</p>
<p class="Usual">Группы пользователей могут использоваться для группировки большого числа пользователей, а также когда нужно указывать не только пользователя, но и группу пользователей, например, при настройке доступа, в ролях исполнителей задач бизнес-процессов и др.<br></p>
<p class="Usual">Группы создаются плоским списком или иерархическим. В иерархическом списке, пользователи вложенных групп неявно входят в группы-родители.</p>
@@ -772,7 +772,7 @@
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>DontBlock</windowOpeningMode>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoUrl>true</autoUrl>
<group>Vertical</group>
@@ -3,15 +3,13 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Быстрый доступ к команде ""%1""'"),
Параметры.ПредставлениеКоманды
);
Параметры.ПредставлениеКоманды);
Для Каждого ПользовательСтрока Из Параметры.ПользователиСБыстрымДоступом Цикл
НоваяСтрока = ПользователиКороткогоСписка.Добавить();
@@ -122,13 +120,13 @@
&НаКлиенте
Процедура ОК(Команда)
Результат = Новый СписокЗначений;
РезультатВыбора = Новый СписокЗначений;
Для Каждого ЭлементКоллекции Из ПользователиКороткогоСписка Цикл
Результат.Добавить(ЭлементКоллекции.Пользователь);
РезультатВыбора.Добавить(ЭлементКоллекции.Пользователь);
КонецЦикла;
Закрыть(Результат);
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
@@ -318,7 +318,7 @@
<event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name>
</handlers>
<windowOpeningMode>DontBlock</windowOpeningMode>
<windowOpeningMode>LockOwner</windowOpeningMode>
<saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle>
<autoUrl>true</autoUrl>
@@ -3,8 +3,7 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
@@ -48,15 +47,15 @@
&НаКлиенте
Процедура ОК(Команда)
Результат = Новый СписокЗначений;
РезультатВыбора = Новый СписокЗначений;
Для Каждого РазделЭлемент Из Разделы Цикл
Если РазделЭлемент.Используется Тогда
Результат.Добавить(РазделЭлемент.Раздел);
РезультатВыбора.Добавить(РазделЭлемент.Раздел);
КонецЕсли;
КонецЦикла;
Закрыть(Результат);
ОповеститьОВыборе(РезультатВыбора);
КонецПроцедуры
@@ -748,7 +748,7 @@
КОГДА &amp;ПубликацияОтбор = НЕОПРЕДЕЛЕНО
ТОГДА ИСТИНА
КОГДА &amp;ПубликацияОтбор = 1
ТОГДА Таблица.Публикация В (&amp;ВсеПубликацииКромеНеиспользуюшихся)
ТОГДА Таблица.Публикация В (&amp;ВсеПубликацииКромеНеиспользующихся)
ИНАЧЕ Таблица.Публикация = &amp;ПубликацияОтбор
КОНЕЦ
И ВЫБОР
@@ -28,19 +28,18 @@
ДоступныеВидыПубликации = ДополнительныеОтчетыИОбработкиПовтИсп.ДоступныеВидыПубликации();
ВсеПубликацииКромеНеиспользуюшихся = Новый Массив;
ВсеПубликацииКромеНеиспользуюшихся.Добавить(ВидИспользуется);
ВсеПубликацииКромеНеиспользующихся = Новый Массив;
ВсеПубликацииКромеНеиспользующихся.Добавить(ВидИспользуется);
Если ДоступныеВидыПубликации.Найти(ВидРежимОтладки) <> Неопределено Тогда
ВсеПубликацииКромеНеиспользуюшихся.Добавить(ВидРежимОтладки);
ВсеПубликацииКромеНеиспользующихся.Добавить(ВидРежимОтладки);
КонецЕсли;
Если ВсеПубликацииКромеНеиспользуюшихся.Количество() > 1 Тогда
Если ВсеПубликацииКромеНеиспользующихся.Количество() > 1 Тогда
ПредставлениеМассива = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = '%1 или %2'"),
Строка(ВсеПубликацииКромеНеиспользуюшихся[0]),
Строка(ВсеПубликацииКромеНеиспользуюшихся[1])
);
Строка(ВсеПубликацииКромеНеиспользующихся[0]),
Строка(ВсеПубликацииКромеНеиспользующихся[1]));
СписокВыбора.Добавить(1, ПредставлениеМассива);
@@ -67,7 +66,7 @@
Список.Параметры.УстановитьЗначениеПараметра("ПубликацияОтбор", ПубликацияОтбор);
Список.Параметры.УстановитьЗначениеПараметра("ВидОтбор", ВидОтбор);
Список.Параметры.УстановитьЗначениеПараметра("ВидыДопОтчетов", ВидыДопОтчетов);
Список.Параметры.УстановитьЗначениеПараметра("ВсеПубликацииКромеНеиспользуюшихся", ВсеПубликацииКромеНеиспользуюшихся);
Список.Параметры.УстановитьЗначениеПараметра("ВсеПубликацииКромеНеиспользующихся", ВсеПубликацииКромеНеиспользующихся);
Элементы.КнопкиДобавления.Видимость = ДополнительныеОтчетыИОбработки.ПравоДобавления();
@@ -2553,6 +2553,10 @@
<horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill>
</autoCommandBar>
<handlers>
<event>ChoiceProcessing</event>
<name>ОбработкаВыбора</name>
</handlers>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Для <a href="Catalog.ДополнительныеОтчетыИОбработки/Help">дополнительных обработок или отчетов</a>, предназначенных для работы с конкретными объектами, можно определить состав объектов, в которых будут доступны команды обработки или отчета (команда <strong>Назначение обработки</strong>). </p>
<p>Команды обработок или отчетов могут быть доступны из списка выбранных объектов, если установлен флаг <strong>Использовать для форм списка</strong> и из формы самого объекта, если установлен флаг <strong>Использовать для форм объекта</strong>. </p>
<p>Для обработок и отчетов, которые вызываются из командного интерфейса (не прикрепляются к объектам конфигурации):</p>
@@ -1,3 +1,6 @@
&НаКлиенте
Перем КлиентскийКэш;
////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ
@@ -47,8 +50,7 @@
АдресРазрешений = ПоместитьВоВременноеХранилище(
РеквизитФормыВЗначение("Объект").Разрешения.Выгрузить(),
ЭтаФорма.УникальныйИдентификатор
);
ЭтаФорма.УникальныйИдентификатор);
УстановитьВидимостьДоступность();
@@ -57,6 +59,8 @@
&НаКлиенте
Процедура ПриОткрытии(Отказ)
КлиентскийКэш = Новый Структура;
Если ЭтоНовый Тогда
Если НЕ ОткрытьДиалогЗагрузкиФайлаОбработкиОтчета(Истина) Тогда
@@ -67,6 +71,53 @@
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)
Если ВРег(ИсточникВыбора.ИмяФормы) = ВРег("Справочник.ДополнительныеОтчетыИОбработки.Форма.ПодборРазделов") Тогда
Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда
Возврат;
КонецЕсли;
Объект.Разделы.Очистить();
Для Каждого ЭлементСписка Из ВыбранноеЗначение Цикл
НоваяСтрока = Объект.Разделы.Добавить();
НоваяСтрока.Раздел = ЭлементСписка.Значение;
КонецЦикла;
Модифицированность = Истина;
УстановитьВидимостьДоступность();
ИначеЕсли ВРег(ИсточникВыбора.ИмяФормы) = ВРег("Справочник.ДополнительныеОтчетыИОбработки.Форма.БыстрыйДоступКДополнительнымОтчетамИОбработкам") Тогда
Если ТипЗнч(ВыбранноеЗначение) <> Тип("СписокЗначений") Тогда
Возврат;
КонецЕсли;
ЭлементКоманда = Объект.Команды.НайтиПоИдентификатору(КлиентскийКэш.ИдентификаторСтрокиКоманды);
Если ЭлементКоманда = Неопределено Тогда
Возврат;
КонецЕсли;
Найденные = БыстрыйДоступ.НайтиСтроки(Новый Структура("ИдентификаторКоманды", ЭлементКоманда.Идентификатор));
Для Каждого СтрокаТаблицы Из Найденные Цикл
БыстрыйДоступ.Удалить(СтрокаТаблицы);
КонецЦикла;
Для Каждого ЭлементСписка Из ВыбранноеЗначение Цикл
СтрокаТаблицы = БыстрыйДоступ.Добавить();
СтрокаТаблицы.ИдентификаторКоманды = ЭлементКоманда.Идентификатор;
СтрокаТаблицы.Пользователь = ЭлементСписка.Значение;
КонецЦикла;
ЭлементКоманда.БыстрыйДоступПредставление = ПредставлениеБыстрогоДоступаПользователей(ВыбранноеЗначение.Количество());
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
@@ -85,8 +136,7 @@
АдресДанныхОбработки = ПоместитьВоВременноеХранилище(
ТекущийОбъект.ХранилищеОбработки.Получить(),
УникальныйИдентификатор
);
УникальныйИдентификатор);
КонецЕсли;
@@ -123,13 +173,15 @@
ТекущийОбъект.ДополнительныеСвойства.Вставить("БыстрыйДоступ", БыстрыйДоступ.Выгрузить());
ТекущийОбъект.Разрешения.Загрузить(
ПолучитьИзВременногоХранилища(АдресРазрешений)
);
ПолучитьИзВременногоХранилища(АдресРазрешений));
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
Если ТекущийОбъект.ДополнительныеСвойства.Свойство("ОшибкаПодключения") Тогда
Сообщить(ТекущийОбъект.ДополнительныеСвойства.ОшибкаПодключения);
КонецЕсли;
ЭтоНовый = Ложь;
УстановитьВидимостьДоступность();
КонецПроцедуры
@@ -143,8 +195,7 @@
ОбщегоНазначенияКлиент.ОткрытьФормуРедактированияКомментария(
Объект.Комментарий,
Объект.Комментарий,
Модифицированность
);
Модифицированность);
КонецПроцедуры
&НаКлиенте
@@ -174,8 +225,7 @@
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Пометить ""%1"" на удаление?'"),
Вариант.Наименование
);
Вариант.Наименование);
Ответ = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
Если Ответ <> КодВозвратаДиалога.Да Тогда
@@ -311,7 +361,12 @@
МассивВариантов.Добавить(Вариант.Ссылка);
КонецЕсли;
КонецЦикла;
ДополнительныеОтчетыИОбработкиКлиент.ПриОткрытииДиалогаРазмещенияВариантовДополнительныхОтчетовВРазделах(МассивВариантов);
// Открывает диалог размещения нескольких вариантов отчетов в разделах командного интерфейса.
Если ОбщегоНазначенияКлиентСервер.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
МодульВариантыОтчетовКлиент = ОбщегоНазначенияКлиентСервер.ОбщийМодуль("ВариантыОтчетовКлиент");
МодульВариантыОтчетовКлиент.ОткрытьДиалогРазмещенияВариантовВРазделах(МассивВариантов);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
@@ -325,20 +380,11 @@
Разделы.Добавить(СтрокаТаблицы.Раздел);
КонецЦикла;
СписокРазделов = ОткрытьФормуМодально(
"Справочник.ДополнительныеОтчетыИОбработки.Форма.ПодборРазделов",
Новый Структура("Разделы,ВидОбработки", Разделы, Объект.Вид)
);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Разделы", Разделы);
ПараметрыФормы.Вставить("ВидОбработки", Объект.Вид);
Если ТипЗнч(СписокРазделов) = Тип("СписокЗначений") Тогда
Объект.Разделы.Очистить();
Для Каждого ЭлементСписка Из СписокРазделов Цикл
НоваяСтрока = Объект.Разделы.Добавить();
НоваяСтрока.Раздел = ЭлементСписка.Значение;
КонецЦикла;
Модифицированность = Истина;
УстановитьВидимостьДоступность();
КонецЕсли;
ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.ПодборРазделов", ПараметрыФормы, ЭтаФорма);
Иначе
// Выбор объектов метаданных
ПараметрыФормы = ПодготовитьПараметрыФормыВыборОбъектовМетаданных();
@@ -420,8 +466,7 @@
ПоказатьОповещениеПользователя(
НСтр("ru = 'Файл обработки успешно загружен'"),
?(ЭтоНовый, "", ПолучитьНавигационнуюСсылку(Объект.Ссылка)),
ПараметрыРегистрации.ИмяФайла
);
ПараметрыРегистрации.ИмяФайла);
Возврат Истина;
КонецЕсли;
@@ -462,12 +507,11 @@
|
|Доступные действия:
|1. ""Продолжить"" - продолжить загрузку, отключив Публикацию текущего отчета (обработки).
|2. ""Отключить конфликтующие"" - продолжить загрузку, отключив Публикацию отчетов (обработок), конфликтующих с загружамой по имени.
|3. ""Показать конфликтующие"" - отменить загрузку и показать список отчетов (обработок), конфликтующих с загружамой по имени.
|2. ""Отключить конфликтующие"" - продолжить загрузку, отключив Публикацию отчетов (обработок), конфликтующих с загружаемой по имени.
|3. ""Показать конфликтующие"" - отменить загрузку и показать список отчетов (обработок), конфликтующих с загружаемой по имени.
|4. ""Отмена"" - отменить загрузку.'"),
РезультатРегистрации.ИмяОбъекта,
ПредставлениеЗанявших
);
ПредставлениеЗанявших);
КнопкиВопроса = Новый СписокЗначений;
КнопкиВопроса.Добавить(1, НСтр("ru = 'Продолжить'"));
@@ -501,7 +545,7 @@
ИначеЕсли Ответ = 3 Тогда
// Показать конфлиткующие (отмена далее)
// Показать конфликтующие (отмена далее)
Если КоличествоКонфликтующих = 1
И (
ЭтоНовый
@@ -518,8 +562,7 @@
ПараметрыСписка.Отбор = Новый Структура("ИмяОбъекта, ЭтоГруппа", РезультатРегистрации.ИмяОбъекта, Ложь);
ПараметрыСписка.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Дополнительные отчеты и обработки с именем объекта ""%1""'"),
РезультатРегистрации.ИмяОбъекта
);
РезультатРегистрации.ИмяОбъекта);
ПараметрыСписка.Отображение = "Список";
ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.ФормаСписка", ПараметрыСписка, , Истина);
@@ -543,9 +586,7 @@
Предупреждение(
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Вариант отчета ""%1"" не зарегистрирован.'"),
Вариант.Наименование
)
);
Вариант.Наименование));
Иначе
ОткрытьЗначение(Вариант.Ссылка);
КонецЕсли;
@@ -566,9 +607,7 @@
НСтр("ru = 'Команда с вариантом запуска ""%1""
|не может использоваться в регламентных заданиях.'"),
"%1",
Строка(ЭлементКоманда.ВариантЗапуска)
)
);
Строка(ЭлементКоманда.ВариантЗапуска)));
Если ИзмененФлажок тогда
ЭлементКоманда.РегламентноеЗаданиеИспользование = НЕ ЭлементКоманда.РегламентноеЗаданиеИспользование;
КонецЕсли;
@@ -625,27 +664,13 @@
ПользователиСБыстрымДоступом.Добавить(СтрокаТаблицы.Пользователь);
КонецЦикла;
ПараметрыФормы = Новый Структура("ПользователиСБыстрымДоступом, ПредставлениеКоманды", ПользователиСБыстрымДоступом, ЭлементКоманда.Представление);
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПользователиСБыстрымДоступом", ПользователиСБыстрымДоступом);
ПараметрыФормы.Вставить("ПредставлениеКоманды", ЭлементКоманда.Представление);
СписокПользователей = ОткрытьФормуМодально("Справочник.ДополнительныеОтчетыИОбработки.Форма.БыстрыйДоступКДополнительнымОтчетамИОбработкам", ПараметрыФормы);
КлиентскийКэш.Вставить("ИдентификаторСтрокиКоманды", ЭлементКоманда.ПолучитьИдентификатор());
ОткрытьФорму("Справочник.ДополнительныеОтчетыИОбработки.Форма.БыстрыйДоступКДополнительнымОтчетамИОбработкам", ПараметрыФормы, ЭтаФорма);
Если ТипЗнч(СписокПользователей) <> Тип("СписокЗначений") Тогда
Возврат;
КонецЕсли;
Для Каждого СтрокаТаблицы Из Найденные Цикл
БыстрыйДоступ.Удалить(СтрокаТаблицы);
КонецЦикла;
Для Каждого ЭлементСписка Из СписокПользователей Цикл
СтрокаТаблицы = БыстрыйДоступ.Добавить();
СтрокаТаблицы.ИдентификаторКоманды = ЭлементКоманда.Идентификатор;
СтрокаТаблицы.Пользователь = ЭлементСписка.Значение;
КонецЦикла;
ЭлементКоманда.БыстрыйДоступПредставление = ПредставлениеБыстрогоДоступаПользователей(СписокПользователей.Количество());
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
@@ -708,8 +733,7 @@
БыстрыйДоступПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
БыстрыйДоступПредставление,
Формат(КоличествоПользователей, "ЧГ=0")
);
Формат(КоличествоПользователей, "ЧГ=0"));
Возврат БыстрыйДоступПредставление;
КонецФункции
@@ -822,8 +846,7 @@
Элементы.СтраницыВарианты.ТекущаяСтраница = Элементы.ВариантыПоказать;
Элементы.СтраницаВарианты.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Варианты отчета (%1)'"),
Формат(КоличествоВариантов, "ЧГ=")
);
Формат(КоличествоВариантов, "ЧГ="));
КонецЕсли;
Иначе
@@ -842,8 +865,7 @@
Элементы.СтраницаКоманды.Видимость = Истина;
Элементы.СтраницаКоманды.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Команды (%1)'"),
Формат(КоличествоКоманд, "ЧГ=")
);
Формат(КоличествоКоманд, "ЧГ="));
КонецЕсли;
@@ -856,8 +878,7 @@
Элементы.СтраницаРазрешения.Видимость = Истина;
Элементы.СтраницаРазрешения.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Разрешения (%1)'"),
Формат(КоличествоРазрешений, "ЧГ=")
);
Формат(КоличествоРазрешений, "ЧГ="));
СформироватьСписокРазрешений();
КонецЕсли;
@@ -957,8 +978,7 @@
Процедура СформироватьСписокРазрешений()
ПредставлениеРазрешений = ДополнительныеОтчетыИОбработкиВБезопасномРежимеСлужебный.СформироватьПредставлениеРазрешений(
ПолучитьТаблицуРазрешений()
);
ПолучитьТаблицуРазрешений());
КонецПроцедуры
@@ -974,8 +994,7 @@
Если Объект.Вид = ВидДополнительнаяОбработка ИЛИ Объект.Вид = ВидДополнительныйОтчет Тогда
Найденные = БыстрыйДоступ.НайтиСтроки(Новый Структура("ИдентификаторКоманды", ЭлементКоманда.Идентификатор));
ЭлементКоманда.БыстрыйДоступПредставление = ПредставлениеБыстрогоДоступаПользователей(
Найденные.Количество()
);
Найденные.Количество());
КонецЕсли;
ЭлементКоманда.РегламентноеЗаданиеИспользование = Ложь;
@@ -1020,8 +1039,7 @@
Иначе
ЭлементКоманда.РегламентноеЗаданиеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не применимо для команд с вариантом запуска ""%1""'"),
Строка(ЭлементКоманда.ВариантЗапуска)
);
Строка(ЭлементКоманда.ВариантЗапуска));
КонецЕсли;
КонецЦикла;
@@ -1031,7 +1049,14 @@
Процедура ВариантыДополнительногоОтчетаЗаполнить()
ВариантыДополнительногоОтчета.Очистить();
Попытка
ВнешнийОбъект = ДополнительныеОтчетыИОбработки.ПолучитьОбъектВнешнейОбработки(Объект.Ссылка);
Исключение
ТекстОшибки = НСтр("ru = 'Не удалось получить список вариантов отчета из-за ошибки, возникшей при подключении этого отчета:'");
Сообщить(ТекстОшибки + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()), СтатусСообщения.Важное);
Возврат;
КонецПопытки;
ОтчетМетаданные = ВнешнийОбъект.Метаданные();
СхемаКДМетаданные = ОтчетМетаданные.ОсновнаяСхемаКомпоновкиДанных;
Если СхемаКДМетаданные <> Неопределено Тогда
@@ -1089,3 +1114,4 @@
Возврат ПолучитьИзВременногоХранилища(АдресРазрешений);
КонецФункции
@@ -1,2 +1,2 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>Для хранения в ИБ дополнительных отчетов и обработок служит справочник <strong>Дополнительные отчеты и обработки</strong>. По команде <strong>Создать</strong> система предложит выбрать файл <a href="v8help://1cv8/ExtRepotrs">внешней обработки или отчета</a>, и <a href="Catalog.ДополнительныеОтчетыИОбработки.Form.ФормаЭлемента/Help">настроить его параметры</a>.</p></body></html>
@@ -17,8 +17,7 @@
,
,
"Объект.ИспользоватьДляФормыОбъекта",
Отказ
);
Отказ);
КонецЕсли;
КонецЕсли;
@@ -72,8 +71,7 @@
Строка(Перечисления.ВариантыПубликацииДополнительныхОтчетовИОбработок.Отключена)
),
,
"Объект.Публикация"
);
"Объект.Публикация");
КонецЕсли;
КонецЕсли;
@@ -96,8 +94,7 @@
Если НЕ ЭтоНовый() И Вид <> ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "Вид") Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Невозможно сменить вид существующего дополнительного отчета или обработки.'"),,,,
Отказ
);
Отказ);
Возврат;
КонецЕсли;
@@ -229,8 +226,7 @@
// Создать и зарегистрировать
Команда.РегламентноеЗаданиеGUID =
ДополнительныеОтчетыИОбработкиРегламентныеЗадания.ПолучитьИдентификаторЗадания(
Задание
);
Задание);
Иначе
// Действие не требуется
@@ -294,8 +290,7 @@
Использование,
Лев(ПредставлениеЗадания(Команда), 120),
ПараметрыЗадания,
Расписание
);
Расписание);
КонецЦикла;
@@ -346,8 +341,7 @@
+ " / "
+ НСтр("ru = 'Команда'")
+ ": "
+ СокрЛП(Команда.Представление)
);
+ СокрЛП(Команда.Представление));
КонецФункции
Функция РасписаниеЗадано(Расписание)
@@ -400,15 +394,21 @@
Процедура ПриЗаписиГлобальногоОтчета(Отказ)
Если ОбщегоНазначенияКлиентСервер.ПодсистемаСуществует("СтандартныеПодсистемы.ВариантыОтчетов") Тогда
Попытка
Если ЭтоНовый() Тогда
ВнешнийОбъект = ВнешниеОтчеты.Создать(ИмяОбъекта);
Иначе
ВнешнийОбъект = ДополнительныеОтчетыИОбработки.ПолучитьОбъектВнешнейОбработки(Ссылка);
КонецЕсли;
Исключение
ТекстОшибки = НСтр("ru = 'Ошибка подключения:'") + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
ДополнительныеОтчетыИОбработки.ЗаписатьОшибку(Ссылка, ТекстОшибки);
ДополнительныеСвойства.Вставить("ОшибкаПодключения", ТекстОшибки);
Возврат;
КонецПопытки;
Модуль = ОбщегоНазначенияКлиентСервер.ОбщийМодуль("ВариантыОтчетов");
Модуль.ОбработкаВариантовДополнительногоОтчета(ЭтотОбъект, Отказ, ВнешнийОбъект);
МодульВариантыОтчетов = ОбщегоНазначенияКлиентСервер.ОбщийМодуль("ВариантыОтчетов");
МодульВариантыОтчетов.ОбработкаВариантовДополнительногоОтчета(ЭтотОбъект, Отказ, ВнешнийОбъект);
КонецЕсли;
@@ -9,10 +9,17 @@
Возврат;
КонецЕсли;
Если Параметры.Свойство("Отбор") И Параметры.Отбор.Свойство("Владелец") Тогда
ЭлементОтбора = Параметры.Отбор.Владелец;
Параметры.Отбор.Удалить("Владелец");
Иначе
ЭлементОтбора = Пользователи.АвторизованныйПользователь();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
Список,
"Владелец",
Пользователи.АвторизованныйПользователь(),
ЭлементОтбора,
ВидСравненияКомпоновкиДанных.Равно);
КонецПроцедуры
@@ -8,5 +8,9 @@
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПриСозданииФормыНаСервере(ЭтаФорма, СтандартнаяОбработка, Отказ) Тогда
Возврат;
КонецЕсли;
Список.Параметры.УстановитьЗначениеПараметра("Пользователь", Пользователи.ТекущийПользователь());
КонецПроцедуры
@@ -5,18 +5,6 @@
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Владелец</field>
<orderType>Asc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>ЭтоПапка</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>Ссылка</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
@@ -9,20 +9,14 @@
Возврат;
КонецЕсли;
Если Параметры.Отбор.Свойство("_Владелец", Свойство)
И ЗначениеЗаполнено(Свойство) Тогда
Параметры.Отбор.Удалить("_Владелец");
Параметры.Отбор.Вставить("Владелец", Свойство);
ИначеЕсли Параметры.Отбор.Свойство("Владелец")
И ЗначениеЗаполнено(Параметры.Отбор.Владелец) Тогда
Если Параметры.Отбор.Свойство("Владелец") Тогда
Свойство = Параметры.Отбор.Владелец;
Параметры.Отбор.Удалить("Владелец");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Свойство) Тогда
Элементы.Свойство.Видимость = Истина;
НастроитьПорядокЗначенийПоСвойствам(Список);
КонецЕсли;
Если Параметры.РежимВыбора Тогда
@@ -99,6 +93,41 @@
////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Процедура НастроитьПорядокЗначенийПоСвойствам(Список)
Перем Порядок;
// Порядок.
Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
Порядок = Список.КомпоновщикНастроек.Настройки.Порядок;
Порядок.ИдентификаторПользовательскойНастройки = "ОсновнойПорядок";
Иначе
Порядок = Список.Порядок;
КонецЕсли;
Порядок.Элементы.Очистить();
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Владелец");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("ЭтоГруппа");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовок()
@@ -169,8 +198,7 @@
Элементы.Владелец.Видимость = Ложь;
Элементы.Список.Шапка = Ложь;
Иначе
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(
Список.Отбор, "Владелец");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Владелец");
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Элементы.Список.ИзменятьСоставСтрок = Ложь;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>В списке <strong>Значения свойств объектов</strong> задаются значения <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения/Help">дополнительных реквизитов и сведений</a>. При этом для каждого дополнительного реквизита или сведения список значений будет свой. Если список значений большой, то может быть удобно создать группы и разнести значения по ним.</p>
<p>При формировании списка значений можно указать не только наименование в поле <strong>Значение</strong>, но и указать <strong>Вес</strong> значения (числовое поле). Это поле в дальнейшем можно использовать для анализа в отчетах. Логику использования этого поля пользователю необходимо продумывать самостоятельно. Например, для значений свойства Надежность можно задать вес следующим образом: для значений от единицы до тройки поставить вес равным нулю, а для значений четыре и пять равным единице. При таких весах в отчет можно быстро вывести надежных клиентов (у которых вес значения больше нуля).</p>
<p> </p></body></html>
@@ -5,18 +5,6 @@
<userSettingID>dfcece9d-5077-440b-b6b3-45a5cb4538eb</userSettingID>
</filter>
<order>
<item xsi:type="OrderItemField">
<field>Владелец</field>
<orderType>Asc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>ЭтоПапка</field>
<orderType>Desc</orderType>
</item>
<item xsi:type="OrderItemField">
<field>Ссылка</field>
<orderType>Asc</orderType>
</item>
<viewMode>Normal</viewMode>
<userSettingID>88619765-ccb3-46c6-ac52-38e9c992ebd4</userSettingID>
</order>
@@ -9,20 +9,14 @@
Возврат;
КонецЕсли;
Если Параметры.Отбор.Свойство("_Владелец", Свойство)
И ЗначениеЗаполнено(Свойство) Тогда
Параметры.Отбор.Удалить("_Владелец");
Параметры.Отбор.Вставить("Владелец", Свойство);
ИначеЕсли Параметры.Отбор.Свойство("Владелец")
И ЗначениеЗаполнено(Параметры.Отбор.Владелец) Тогда
Если Параметры.Отбор.Свойство("Владелец") Тогда
Свойство = Параметры.Отбор.Владелец;
Параметры.Отбор.Удалить("Владелец");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Свойство) Тогда
Элементы.Свойство.Видимость = Истина;
НастроитьПорядокЗначенийПоСвойствам(Список);
КонецЕсли;
Если Параметры.РежимВыбора Тогда
@@ -75,6 +69,35 @@
////////////////////////////////////////////////////////////////////////////////
// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ
&НаСервере
Процедура НастроитьПорядокЗначенийПоСвойствам(Список)
Перем Порядок;
// Порядок.
Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
Порядок = Список.КомпоновщикНастроек.Настройки.Порядок;
Порядок.ИдентификаторПользовательскойНастройки = "ОсновнойПорядок";
Иначе
Порядок = Список.Порядок;
КонецЕсли;
Порядок.Элементы.Очистить();
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Владелец");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
ЭлементПорядка = Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных"));
ЭлементПорядка.Поле = Новый ПолеКомпоновкиДанных("Наименование");
ЭлементПорядка.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Возр;
ЭлементПорядка.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
ЭлементПорядка.Использование = Истина;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовок()
@@ -138,8 +161,7 @@
Элементы.Владелец.Видимость = Ложь;
Элементы.Список.Шапка = Ложь;
Иначе
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(
Список.Отбор, "Владелец");
ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбораДинамическогоСписка(Список, "Владелец");
Элементы.Список.Отображение = ОтображениеТаблицы.Список;
Элементы.Список.ИзменятьСоставСтрок = Ложь;
@@ -1,4 +1,4 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16455"></meta></head><body>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta content="text/html; charset=utf-8" http-equiv="Content-Type"></meta><link rel="stylesheet" type="text/css" href="v8help://service_book/service_style"></link><meta name="GENERATOR" content="MSHTML 9.00.8112.16470"></meta></head><body>
<p>В списке <strong>Значения свойств объектов (иерархия)</strong> задаются значения <a href="ChartOfCharacteristicTypes.ДополнительныеРеквизитыИСведения/Help">дополнительных реквизитов и сведений</a>. При этом для каждого дополнительного реквизита или сведения список значений будет свой. В списке можно использовать иерархию значений.</p>
<p>При формировании списка значений можно указать не только наименование в поле <strong>Значение</strong>, но и указать <strong>Вес</strong> значения (числовое поле). Это поле в дальнейшем можно использовать для анализа в отчетах. Логику использования этого поля пользователю необходимо продумывать самостоятельно. Например, для значений свойства Надежность можно задать вес следующим образом: для значений от единицы до тройки поставить вес равным нулю, а для значений четыре и пять равным единице. При таких весах в отчет можно быстро вывести надежных клиентов (у которых вес значения больше нуля).</p>
<p> </p></body></html>
Loaded 100 of 1470 files, more files were not shown because too many files have changed in this diff. Show more