|
Как в настройках выключить отбор ОРганизации | ☑ | ||
---|---|---|---|---|
0
asisdes
29.01.18
✎
10:23
|
Доброго дня!
Можете помочь начинающему, я сделал так что в форме отбор выключил (.Доступность = Ложь) и Организацию прописал из Настроек пользователя. Однако если он зайдет в Настройки то может там перевыбирать Организацию. https://ibb.co/krDRyb или <a href="https://ibb.co/krDRyb"><img src="https://thumb.ibb.co/krDRyb/image.png" alt="image" border="0"></a> |
|||
1
asisdes
29.01.18
✎
10:24
|
Модуль формы
|
|||
2
asisdes
29.01.18
✎
10:24
|
Модуль формы
Перем ИдентификаторОкнаРасшифровки; Перем ФормаНастройка; Перем СтруктураРеквизитов; Перем НеВосстанавливатьНастройку; Перем СтруктураСвязиЭлементовСДанными; Перем НП Экспорт; // Настройка периода //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Управляет пометками кнопок ком. панели // // Параметры: // Нет. // Процедура УправлениеПометкамиКнопокКоманднойПанели() Если ПоказыватьЗаголовок Тогда ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Заголовок.Пометка = Истина; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Заголовок.Пометка = Истина; Иначе ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Заголовок.Пометка = Ложь; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Заголовок.Пометка = Ложь; КонецЕсли; Если ПоказыватьПодписи Тогда ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подписи.Пометка = Истина; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Подписи.Пометка = Истина; Иначе ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подписи.Пометка = Ложь; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Подписи.Пометка = Ложь; КонецЕсли; Если ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = Ложь; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Ложь; Иначе ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = Истина; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Истина; КонецЕсли; КонецПроцедуры // УправлениеПометкамиКнопокКоманднойПанели() // Обновляет таблицу отчета // // Параметры: // Нет. // Процедура ОбновитьОтчет() Экспорт СформироватьОтчет(ЭлементыФормы.ДокументРезультат, ПоказыватьЗаголовок, , ПоказыватьПодписи); Если ЭлементыФормы.ДокументРезультат.Области.Найти("Заголовок") <> Неопределено Тогда ЭлементыФормы.ДокументРезультат.Область("Заголовок").Видимость = ПоказыватьЗаголовок; КонецЕсли; Если ЭлементыФормы.ДокументРезультат.Области.Найти("Подписи") <> Неопределено Тогда ЭлементыФормы.ДокументРезультат.Область("Подписи").Видимость = ПоказыватьПодписи; КонецЕсли; ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ДокументРезультат; УправлениеПометкамиКнопокКоманднойПанели(); КонецПроцедуры // ОбновитьОтчет() // Управляет выводом заголовка // // Параметры: // Нет. // Процедура ВыводЗаголовка() // Перезаполнять заголовок можно только у "чистого" отчета Если ЭлементыФормы.ДокументРезультат.ВысотаТаблицы = 0 Тогда СформироватьОтчет(ЭлементыФормы.ДокументРезультат, ПоказыватьЗаголовок, Истина); КонецЕсли; Если ЭлементыФормы.ДокументРезультат.Области.Найти("Заголовок") <> Неопределено Тогда ЭлементыФормы.ДокументРезультат.Область("Заголовок").Видимость = ПоказыватьЗаголовок; КонецЕсли; УправлениеПометкамиКнопокКоманднойПанели(); КонецПроцедуры // ВыводЗаголовка() // Формирует текст заголовка // // Параметры: // Нет. // Процедура СформироватьЗаголовокФормы() Заголовок = УправлениеОтчетами.СформироватьЗаголовокОсновнойФормы(ДатаНач, ДатаКон, "Расчетная ведомость организации", 0); КонецПроцедуры // СформироватьЗаголовокФормы() // Формирует структуру, в которую складываются настройки // Функция СформироватьСтруктуруДляСохраненияНастроек() Экспорт СтруктНастр = Новый Структура; СтруктНастр.Вставить("НастройкиПостроителя", ПостроительОтчета.ПолучитьНастройки()); СтруктНастр.Вставить("ЗаголовокПомечен", ПоказыватьЗаголовок); СтруктНастр.Вставить("ПодписиПомечены", ПоказыватьПодписи); СтруктНастр.Вставить("ОтборПомечен", ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка); СтруктНастр.Вставить("Показатели", Показатели.Выгрузить()); СтруктНастр.Вставить("ИспользоватьСвойстваИКатегории", ИспользоватьСвойстваИКатегории); Возврат СтруктНастр; КонецФункции // Заполняет настройки из структуры - кроме состояния панели "Отбор" // Процедура ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками) Экспорт ПостроительОтчета.УстановитьНастройки(СтруктураСНастройками.НастройкиПостроителя); ПоказыватьЗаголовок = СтруктураСНастройками.ЗаголовокПомечен; ИспользоватьСвойстваИКатегории = СтруктураСНастройками.ИспользоватьСвойстваИКатегории; ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = СтруктураСНастройками.ОтборПомечен; Показатели.Загрузить(СтруктураСНастройками.Показатели); Врм = Истина; Если СтруктураСНастройками.Свойство("ИспользоватьСвойстваИКатегории", Врм) Тогда ИспользоватьСвойстваИКатегории = Врм; КонецЕсли; Если СтруктураСНастройками.Свойство("ПодписиПомечены") Тогда ПоказыватьПодписи = СтруктураСНастройками.ПодписиПомечены; Иначе ПоказыватьПодписи = Истина; КонецЕсли; КонецПроцедуры // Процедура - обработчик события перед сохранением значений формы // Процедура ПередСохранениемЗначений(Отказ) СохраненныеНастройки = СформироватьСтруктуруДляСохраненияНастроек(); КонецПроцедуры // ПередСохранениемЗначений() // Процедура - обработчик события после восстановления значений формы // Процедура ПослеВосстановленияЗначений() Если НеВосстанавливатьНастройку <> Истина Тогда Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда ВосстановитьНастройкиИзСтруктуры(СохраненныеНастройки); ВыводЗаголовка(); Если Открыта() Тогда ЭлементыФормы.ПанельОтбор.Свертка = ?(СохраненныеНастройки.ОтборПомечен, РежимСверткиЭлементаУправления.Нет, РежимСверткиЭлементаУправления.Верх); //Это, что выше, не работает при еще не открытой форме. УправлениеПометкамиКнопокКоманднойПанели(); КонецЕсли; СформироватьЗаголовокФормы(); КонецЕсли; КонецЕсли; КонецПроцедуры // ПослеВосстановленияЗначений() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ НАЖАТИЯ КНОПОК КОМАНДНОЙ ПАНЕЛИ // Процедура - обработчик нажатия кнопки "Настройка". // Процедура КоманднаяПанельФормыНастройка(Кнопка) //ВызовСтандартнойНастройки(ЭтаФорма); ФормаНастройка = ПолучитьФорму("ФормаНастройка", ЭтаФорма); СтруктураСНастройками = СформироватьСтруктуруДляСохраненияНастроек(); СтараяДатаНач = ДатаНач; СтараяДатаКон = ДатаКон; РезультатОткрытия = ФормаНастройка.ОткрытьМодально(); Если РезультатОткрытия = Истина Тогда ОбновитьОтчет(); Иначе //форму закрыли эскейпом или по "Закрыть" - восстановим настройки, отчет формировать не будем! //восстанавливаем значения НеВосстанавливатьНастройку = Ложь; ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками); ДатаНач = СтараяДатаНач; ДатаКон = СтараяДатаКон; КонецЕсли; КонецПроцедуры // Процедура - обработчик нажатия кнопки "Отбор". // Процедура КоманднаяПанельФормыОтбор(Кнопка) Если НЕ ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх; Иначе ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Нет; КонецЕсли; УправлениеПометкамиКнопокКоманднойПанели(); КонецПроцедуры // Процедура - обработчик нажатия кнопки "Обновить". // Процедура КоманднаяПанельФормыСформировать(Кнопка) ОбновитьОтчет(); КонецПроцедуры // ВыполнитьНажатие() // Процедура - обработчик нажатия кнопки "Заголовок". // Процедура КоманднаяПанельЗаголовок(Кнопка) ПоказыватьЗаголовок = Не ПоказыватьЗаголовок; ВыводЗаголовка(); КонецПроцедуры // Процедура - обработчик нажатия кнопки "Подписи". // Процедура КоманднаяПанельФормыПодписи(Кнопка) ПоказыватьПодписи = Не ПоказыватьПодписи; ОбластьПодписи = ЭлементыФормы.ДокументРезультат.Области.Найти("Подписи"); Если ОбластьПодписи <> Неопределено Тогда ОбластьПодписи.Видимость = ПоказыватьПодписи; КонецЕсли; УправлениеПометкамиКнопокКоманднойПанели(); КонецПроцедуры // КоманднаяПанельФормыПодписи() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ // Процедура - обработчик закрытия формы // // Процедура - обработчик обновления данных формы // Процедура ОбновлениеОтображения() СформироватьЗаголовокФормы(); КонецПроцедуры // ОбновлениеОтображения() // Процедура - обработчик события перед открытием формы // Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) //ЯкупоАС 23-01-2018 Если НЕ УчетПоВсемОрганизациям Тогда Организация = ОсновнаяОрганизация; ЭтаФорма.ЭлементыФормы.ФлажокНастройкиОрганизация.Доступность = Ложь; ЭтаФорма.ЭлементыФормы.ПолеВидаСравненияОрганизация.Доступность = Ложь; ЭтаФорма.ЭлементыФормы.ПолеНастройкиОрганизация.Доступность = Ложь; КонецЕсли; //ЯкупоАС 23-01-2018 Если НЕ (неВосстанавливатьНастройку = Истина) Тогда ЗаполнитьНачальныеНастройки(); // восстановим параметры отбора по умолчанию ПроцедурыУправленияПерсоналом.ВосстановитьОбщиеПараметрыОтчетовПоЗарплате(ДатаНач, ДатаКон, ПостроительОтчета.Отбор.Организация.Значение, ПостроительОтчета.Отбор.Организация.ВидСравнения, ПостроительОтчета.Отбор.Организация.Использование, , , , ПостроительОтчета.Отбор.ПодразделениеОрганизации.Значение, ПостроительОтчета.Отбор.ПодразделениеОрганизации.ВидСравнения, ПостроительОтчета.Отбор.ПодразделениеОрганизации.Использование); ВыводЗаголовка(); СформироватьЗаголовокФормы(); КонецЕсли; Если Не ЗначениеЗаполнено(ДатаНач) Тогда ДатаНач = НачалоМесяца(ОбщегоНазначения.ПолучитьРабочуюДату()); ДатаКон = КонецМесяца(ДатаНач); КонецЕсли; УправлениеОтчетами.УстановитьСвязьПолейБыстрогоОтбораНаФорме(ЭлементыФормы, ПостроительОтчета.Отбор, СтруктураСвязиЭлементовСДанными, "ЭтотОтчет.ПостроительОтчета.Отбор"); КонецПроцедуры // ПередОткрытием() ЭтотОбъект // Процедура - обработчик события при открытии формы // Процедура ПриОткрытии() ОтборУстановлен = Ложь; Для Каждого ЭлементОтбора Из ПостроительОтчета.Отбор Цикл Если ЭлементОтбора.Использование Тогда ОтборУстановлен = Истина; Прервать; КонецЕсли; КонецЦикла; Если НЕ ОтборУстановлен Тогда ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх; КонецЕсли; УправлениеПометкамиКнопокКоманднойПанели(); КП = ЭлементыФормы.КоманднаяПанельФормы; НовоеДействие = Новый Действие("ОтправитьНаПочту"); ОбщегоНазначения.ДобавитьКнопкуОтправкиНаПочтуВПанель(КП, НовоеДействие); КонецПроцедуры // Процедура - обработчик события "ПередЗакрытием" формы. // Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка) // сохраним параметры формирования отчета ПроцедурыУправленияПерсоналом.СохранитьОбщиеПараметрыОтчетовПоЗарплате(ДатаНач, ДатаКон, ПостроительОтчета.Отбор.Организация.Значение, ПостроительОтчета.Отбор.Организация.ВидСравнения, ПостроительОтчета.Отбор.Организация.Использование, , , , ПостроительОтчета.Отбор.ПодразделениеОрганизации.Значение, ПостроительОтчета.Отбор.ПодразделениеОрганизации.ВидСравнения, ПостроительОтчета.Отбор.ПодразделениеОрганизации.Использование); КонецПроцедуры // ПередЗакрытием() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ // Процедура - обработчик нажатия кнопки выбора даты начала периода // Процедура ДатаНачПриИзменении(Элемент) ДатаНач = НачалоМесяца(ДатаНач); КонецПроцедуры // Процедура - обработчик нажатия кнопки выбора даты окончания периода // Процедура ДатаКонПриИзменении(Элемент) ДатаКон = КонецМесяца(ДатаКон); КонецПроцедуры // Процедура - обработчик события нажати кнопки "выбор периода" Процедура КнопкаНастройкаПериодаНажатие(Элемент) НП.УстановитьПериод(НачалоМесяца(ДатаНач), КонецМесяца(ДатаКон)); Если НП.Редактировать() Тогда ДатаНач = НачалоМесяца(НП.ПолучитьДатуНачала()); ДатаКон = КонецМесяца(НП.ПолучитьДатуОкончания()); КонецЕсли; КонецПроцедуры // Процедура - обработчик изменения данных в поле значения отбора // Процедура ПолеНастройки1ПриИзменении(Элемент) УправлениеОтчетами.ПолеНастройкиПриИзменении(Элемент, ПостроительОтчета.Отбор); Если Найти(Элемент.Имя,"Организация") > 0 и ЭлементыФормы.Найти("ПолеНастройкиПодразделениеОрганизации") <> Неопределено Тогда Если ТипЗнч(Элемент.Значение) = Тип("СписокЗначений") Тогда ЭлементыФормы.ПолеНастройкиПодразделениеОрганизации.ВыборПоВладельцу = Справочники.Организации.ПустаяСсылка() Иначе ЭлементыФормы.ПолеНастройкиПодразделениеОрганизации.ВыборПоВладельцу = Элемент.Значение КонецЕсли; КонецЕсли; КонецПроцедуры // ПолеНастройки1ПриИзменении() // Процедура - обработчик изменения данных в поле выбора вида сравнения // Процедура ПолеВидаСравнения1ПриИзменении(Элемент) УправлениеОтчетами.ПолеВидаСравненияПриИзменении(Элемент, ЭлементыФормы); КонецПроцедуры // ПолеВидаСравнения1ПриИзменении() // Процедура - обработчик изменения данных в поле значения отбора // Процедура ПолеНастройкиФизЛицоПриИзменении(Элемент) УправлениеОтчетами.ПолеНастройкиПриИзменении(Элемент, ПостроительОтчета.Отбор); КонецПроцедуры // ПолеНастройки1ПриИзменении() Процедура ОтправитьНаПочту(Кнопка) ОбщегоНазначения.ОтправкаПечатнойФормыПоЭлПочте(ЭтаФорма, ЭлементыФормы.ДокументРезультат); КонецПроцедуры Процедура ПолеНастройкиФизЛицоНачалоВыбора(Элемент, СтандартнаяОбработка) ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение; Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда Возврат; КонецЕсли; Если НЕ ТипЗнч(Элемент.Значение) = Тип("СписокЗначений") Тогда ТекОрганизация = Неопределено; Попытка ТекОрганизация = ПостроительОтчета.Отбор.Организация.Значение; Исключение КонецПопытки; Если ЗначениеЗаполнено(ТекОрганизация) Тогда ТекОрганизация = ОбщегоНазначения.ГоловнаяОрганизацияДляУчетаЗарплаты(ТекОрганизация); КонецЕсли; ПроцедурыУправленияПерсоналом.ОткрытьФормуВыбораСотрудникаОрганизации(Элемент, "РасчетныеВедомостиОрганизаций", Истина, ТекущаяДата(), ТекОрганизация, СтандартнаяОбработка, Элемент.Значение,,Истина); Иначе СтандартнаяОбработка = Ложь; ФормаРедактированияСпискаСотрудников = ПолучитьФорму("ФормаРедактированияСпискаСотрудников"); ФормаРедактированияСпискаСотрудников.СписокСотрудников = Элемент.Значение; ФормаРедактированияСпискаСотрудников.ОткрытьМодально(); КонецЕсли; КонецПроцедуры Процедура ПолеНастройкиФизЛицоАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка) ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение; Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда Возврат; КонецЕсли; ТекстАвтоПодбора = ПроцедурыУправленияПерсоналом.ПодобратьФИОРаботникаКандидата("СотрудникиСправочник", Текст,, Истина); СтандартнаяОбработка = Ложь; КонецПроцедуры Процедура ПолеНастройкиФизЛицоОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение; Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда Возврат; КонецЕсли; Значение = ПроцедурыУправленияПерсоналом.ПодобратьСписокРаботниковКандидатов("СотрудникиСправочник", Текст, Элемент.Значение,, Истина); Если ТипЗнч(Значение) = Тип("СписокЗначений") И Значение.Количество() = 0 Тогда СтандартнаяОбработка = Истина; Иначе СтандартнаяОбработка = (Значение = Неопределено); КонецЕсли; КонецПроцедуры //////////////////////////////////////////////////////////////////////////////// // ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ НП = Новый НастройкаПериода; НП.ВариантНастройки = ВариантНастройкиПериода.Период; |
|||
3
Segate
29.01.18
✎
10:30
|
Если ты не хочешь, чтоб пользователи видели данные по другим организациям - пили рлс =)
|
|||
4
asisdes
29.01.18
✎
10:55
|
Самое интересное, это так называемое мягкое ограничение похоже.
Если в Настройках пользователя не стоит Учет по всем организациям, то конфа сама обрезает документы не разрешенных организаций. Единственное я нашел в нескольких отчетах по З/П высвечиваются данные |
|||
5
yavasya
29.01.18
✎
11:59
|
(4) что ты хочешь? включи в недоступные параметры организацию
|
|||
6
asisdes
29.01.18
✎
13:12
|
а можете подсказать как?! В общем модуле текст кода надо прописать?! Что то не могу найти где эти параметры формируются... для Формы настройки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |