Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как в настройках выключить отбор ОРганизации

Как в настройках выключить отбор ОРганизации
Я
   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>
 
 
   asisdes
 
1 - 29.01.18 - 10:24
Модуль формы
   asisdes
 
2 - 29.01.18 - 10:24
Модуль формы

Перем ИдентификаторОкнаРасшифровки;
Перем ФормаНастройка;
Перем СтруктураРеквизитов;
Перем НеВосстанавливатьНастройку;
Перем СтруктураСвязиЭлементовСДанными;
Перем НП Экспорт;// Настройка периода


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ

// Управляет пометками кнопок ком. панели

//
// Параметры:

//    Нет.
//

Процедура УправлениеПометкамиКнопокКоманднойПанели()
    
    Если ПоказыватьЗаголовок Тогда
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Заголовок.Пометка = Истина;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Заголовок.Пометка = Истина;

    Иначе
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Заголовок.Пометка = Ложь;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Заголовок.Пометка = Ложь;

    КонецЕсли;

    Если ПоказыватьПодписи Тогда
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подписи.Пометка = Истина;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Подписи.Пометка = Истина;

    Иначе
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подписи.Пометка = Ложь;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Подписи.Пометка = Ложь;

    КонецЕсли;

    Если ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = Ложь;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Ложь;
    Иначе
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = Истина;
        ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Подменю.Кнопки.Отбор.Пометка = Истина;
    КонецЕсли;
    
КонецПроцедуры// УправлениеПометкамиКнопокКоманднойПанели()


// Обновляет таблицу отчета

//
// Параметры:

//    Нет.
//

Процедура ОбновитьОтчет() Экспорт

    СформироватьОтчет(ЭлементыФормы.ДокументРезультат, ПоказыватьЗаголовок, , ПоказыватьПодписи);
    
    Если ЭлементыФормы.ДокументРезультат.Области.Найти("Заголовок") <> Неопределено Тогда
        ЭлементыФормы.ДокументРезультат.Область("Заголовок").Видимость = ПоказыватьЗаголовок;
    КонецЕсли;
    Если ЭлементыФормы.ДокументРезультат.Области.Найти("Подписи") <> Неопределено Тогда
        ЭлементыФормы.ДокументРезультат.Область("Подписи").Видимость = ПоказыватьПодписи;
    КонецЕсли;

    ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ДокументРезультат;

    УправлениеПометкамиКнопокКоманднойПанели();
    
КонецПроцедуры// ОбновитьОтчет()


//  Управляет выводом заголовка

//
// Параметры:

//    Нет.
//

Процедура ВыводЗаголовка()

    // Перезаполнять заголовок можно только у "чистого" отчета

    Если ЭлементыФормы.ДокументРезультат.ВысотаТаблицы = 0 Тогда

        СформироватьОтчет(ЭлементыФормы.ДокументРезультат, ПоказыватьЗаголовок, Истина);
        
    КонецЕсли;

    Если ЭлементыФормы.ДокументРезультат.Области.Найти("Заголовок") <> Неопределено Тогда
        ЭлементыФормы.ДокументРезультат.Область("Заголовок").Видимость = ПоказыватьЗаголовок;
    КонецЕсли;

    УправлениеПометкамиКнопокКоманднойПанели();
    
КонецПроцедуры// ВыводЗаголовка()


// Формирует текст заголовка

//
// Параметры:

//    Нет.
//

Процедура СформироватьЗаголовокФормы()

    Заголовок = УправлениеОтчетами.СформироватьЗаголовокОсновнойФормы(ДатаНач, ДатаКон, "Расчетная ведомость организации", 0);

КонецПроцедуры// СформироватьЗаголовокФормы()


// Формирует структуру, в которую складываются настройки

//
Функция СформироватьСтруктуруДляСохраненияНастроек() Экспорт
    
    СтруктНастр = Новый Структура;
    СтруктНастр.Вставить("НастройкиПостроителя", ПостроительОтчета.ПолучитьНастройки());
    СтруктНастр.Вставить("ЗаголовокПомечен", ПоказыватьЗаголовок);
    СтруктНастр.Вставить("ПодписиПомечены", ПоказыватьПодписи);
    СтруктНастр.Вставить("ОтборПомечен", ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка);
    СтруктНастр.Вставить("Показатели", Показатели.Выгрузить());
    СтруктНастр.Вставить("ИспользоватьСвойстваИКатегории", ИспользоватьСвойстваИКатегории);    
    
    Возврат СтруктНастр;
    
КонецФункции

// Заполняет настройки из структуры - кроме состояния панели "Отбор"

//
Процедура ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками) Экспорт

    ПостроительОтчета.УстановитьНастройки(СтруктураСНастройками.НастройкиПостроителя);
    ПоказыватьЗаголовок = СтруктураСНастройками.ЗаголовокПомечен;
    ИспользоватьСвойстваИКатегории = СтруктураСНастройками.ИспользоватьСвойстваИКатегории;
    ЭлементыФормы.КоманднаяПанельФормы.Кнопки.Отбор.Пометка = СтруктураСНастройками.ОтборПомечен;
    Показатели.Загрузить(СтруктураСНастройками.Показатели);
    
    Врм = Истина;
    Если СтруктураСНастройками.Свойство("ИспользоватьСвойстваИКатегории", Врм) Тогда
        ИспользоватьСвойстваИКатегории = Врм;
    КонецЕсли;
    
    Если СтруктураСНастройками.Свойство("ПодписиПомечены") Тогда
        ПоказыватьПодписи = СтруктураСНастройками.ПодписиПомечены;
    Иначе
        ПоказыватьПодписи = Истина;
    КонецЕсли;

КонецПроцедуры

// Процедура - обработчик события перед сохранением значений формы

//
Процедура ПередСохранениемЗначений(Отказ)

    СохраненныеНастройки = СформироватьСтруктуруДляСохраненияНастроек();

КонецПроцедуры// ПередСохранениемЗначений()


// Процедура - обработчик события после восстановления значений формы

//
Процедура ПослеВосстановленияЗначений()

    Если НеВосстанавливатьНастройку <> Истина Тогда

        Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда

            ВосстановитьНастройкиИзСтруктуры(СохраненныеНастройки);

            ВыводЗаголовка();

            Если Открыта() Тогда
                ЭлементыФормы.ПанельОтбор.Свертка = ?(СохраненныеНастройки.ОтборПомечен, РежимСверткиЭлементаУправления.Нет, РежимСверткиЭлементаУправления.Верх);
                //Это, что выше, не работает при еще не открытой форме.

                УправлениеПометкамиКнопокКоманднойПанели();
            КонецЕсли;
            
            СформироватьЗаголовокФормы();

        КонецЕсли;

    КонецЕсли; 

КонецПроцедуры// ПослеВосстановленияЗначений()


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ НАЖАТИЯ КНОПОК КОМАНДНОЙ ПАНЕЛИ

// Процедура - обработчик нажатия кнопки "Настройка".

//
Процедура КоманднаяПанельФормыНастройка(Кнопка)
    
    //ВызовСтандартнойНастройки(ЭтаФорма);

    
    ФормаНастройка = ПолучитьФорму("ФормаНастройка", ЭтаФорма);

    СтруктураСНастройками = СформироватьСтруктуруДляСохраненияНастроек();

    СтараяДатаНач = ДатаНач;
    СтараяДатаКон = ДатаКон;
    
    РезультатОткрытия = ФормаНастройка.ОткрытьМодально();

    Если РезультатОткрытия = Истина Тогда

        ОбновитьОтчет();

    Иначе
        //форму закрыли эскейпом или по "Закрыть" - восстановим настройки, отчет формировать не будем!

        //восстанавливаем значения

        НеВосстанавливатьНастройку = Ложь;
        ВосстановитьНастройкиИзСтруктуры(СтруктураСНастройками);
        ДатаНач = СтараяДатаНач;
        ДатаКон = СтараяДатаКон;
    КонецЕсли;

КонецПроцедуры

// Процедура - обработчик нажатия кнопки "Отбор".

//
Процедура КоманднаяПанельФормыОтбор(Кнопка)

    Если НЕ ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх Тогда
        ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх;
    Иначе
        ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Нет;
    КонецЕсли;

    УправлениеПометкамиКнопокКоманднойПанели();
    
КонецПроцедуры

// Процедура - обработчик нажатия кнопки "Обновить".

//
Процедура КоманднаяПанельФормыСформировать(Кнопка)

    ОбновитьОтчет();

КонецПроцедуры// ВыполнитьНажатие()


// Процедура - обработчик нажатия кнопки "Заголовок".

//
Процедура КоманднаяПанельЗаголовок(Кнопка)
    ПоказыватьЗаголовок = Не ПоказыватьЗаголовок;
    ВыводЗаголовка();
КонецПроцедуры

// Процедура - обработчик нажатия кнопки "Подписи".

//
Процедура КоманднаяПанельФормыПодписи(Кнопка)
    
    ПоказыватьПодписи = Не ПоказыватьПодписи;
        
    ОбластьПодписи = ЭлементыФормы.ДокументРезультат.Области.Найти("Подписи");
    Если ОбластьПодписи <> Неопределено Тогда
        ОбластьПодписи.Видимость = ПоказыватьПодписи; 
    КонецЕсли;

    УправлениеПометкамиКнопокКоманднойПанели();

КонецПроцедуры// КоманднаяПанельФормыПодписи()


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ФОРМЫ

// Процедура - обработчик закрытия формы

//

// Процедура - обработчик обновления данных формы

//
Процедура ОбновлениеОтображения()

    СформироватьЗаголовокФормы();
    
КонецПроцедуры// ОбновлениеОтображения()


// Процедура - обработчик события перед открытием формы

//
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    
        
        //ЯкупоАС 23-01-2018

        Если НЕ УчетПоВсемОрганизациям Тогда
        Организация = ОсновнаяОрганизация;
        ЭтаФорма.ЭлементыФормы.ФлажокНастройкиОрганизация.Доступность = Ложь;
        ЭтаФорма.ЭлементыФормы.ПолеВидаСравненияОрганизация.Доступность = Ложь;
        ЭтаФорма.ЭлементыФормы.ПолеНастройкиОрганизация.Доступность = Ложь;
        КонецЕсли;
        //ЯкупоАС 23-01-2018



    Если НЕ (неВосстанавливатьНастройку = Истина) Тогда

        ЗаполнитьНачальныеНастройки();

        // восстановим параметры отбора по умолчанию

        ПроцедурыУправленияПерсоналом.ВосстановитьОбщиеПараметрыОтчетовПоЗарплате(ДатаНач, ДатаКон,
                                                        ПостроительОтчета.Отбор.Организация.Значение,
                                                        ПостроительОтчета.Отбор.Организация.ВидСравнения,
                                                        ПостроительОтчета.Отбор.Организация.Использование,
                                                        ,
                                                        ,
                                                        ,
                                                        ПостроительОтчета.Отбор.ПодразделениеОрганизации.Значение,
                                                        ПостроительОтчета.Отбор.ПодразделениеОрганизации.ВидСравнения,
                                                        ПостроительОтчета.Отбор.ПодразделениеОрганизации.Использование);

        ВыводЗаголовка();

        СформироватьЗаголовокФормы();
    КонецЕсли;

    Если Не ЗначениеЗаполнено(ДатаНач) Тогда
        ДатаНач = НачалоМесяца(ОбщегоНазначения.ПолучитьРабочуюДату());
        ДатаКон = КонецМесяца(ДатаНач);
    КонецЕсли;

    УправлениеОтчетами.УстановитьСвязьПолейБыстрогоОтбораНаФорме(ЭлементыФормы, ПостроительОтчета.Отбор, СтруктураСвязиЭлементовСДанными, "ЭтотОтчет.ПостроительОтчета.Отбор");
    
КонецПроцедуры// ПередОткрытием()     ЭтотОбъект


// Процедура - обработчик события при открытии формы

//
Процедура ПриОткрытии()

            
    ОтборУстановлен = Ложь;
    Для Каждого ЭлементОтбора Из ПостроительОтчета.Отбор Цикл
        Если ЭлементОтбора.Использование Тогда
            ОтборУстановлен = Истина;
            Прервать;
        КонецЕсли;
    КонецЦикла;

    Если НЕ ОтборУстановлен Тогда
        ЭлементыФормы.ПанельОтбор.Свертка = РежимСверткиЭлементаУправления.Верх;
    КонецЕсли;
    УправлениеПометкамиКнопокКоманднойПанели();
    
    КП = ЭлементыФормы.КоманднаяПанельФормы;
    НовоеДействие = Новый Действие("ОтправитьНаПочту");
    
    ОбщегоНазначения.ДобавитьКнопкуОтправкиНаПочтуВПанель(КП, НовоеДействие);

КонецПроцедуры

// Процедура - обработчик события "ПередЗакрытием" формы.

//
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)

    // сохраним параметры формирования отчета

    ПроцедурыУправленияПерсоналом.СохранитьОбщиеПараметрыОтчетовПоЗарплате(ДатаНач, ДатаКон,
                                                ПостроительОтчета.Отбор.Организация.Значение,
                                                ПостроительОтчета.Отбор.Организация.ВидСравнения,
                                                ПостроительОтчета.Отбор.Организация.Использование,
                                                ,
                                                ,
                                                ,
                                                ПостроительОтчета.Отбор.ПодразделениеОрганизации.Значение,
                                                ПостроительОтчета.Отбор.ПодразделениеОрганизации.ВидСравнения,
                                                ПостроительОтчета.Отбор.ПодразделениеОрганизации.Использование);
    
КонецПроцедуры// ПередЗакрытием()


////////////////////////////////////////////////////////////////////////////////

// ПРОЦЕДУРЫ - ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ

// Процедура - обработчик нажатия кнопки выбора даты начала периода

//
Процедура ДатаНачПриИзменении(Элемент)
    
    ДатаНач = НачалоМесяца(ДатаНач);
    
КонецПроцедуры

// Процедура - обработчик нажатия кнопки выбора даты окончания периода

//
Процедура ДатаКонПриИзменении(Элемент)
    
    ДатаКон = КонецМесяца(ДатаКон);
    
КонецПроцедуры

// Процедура - обработчик события нажати кнопки "выбор периода"

Процедура КнопкаНастройкаПериодаНажатие(Элемент)
    
    НП.УстановитьПериод(НачалоМесяца(ДатаНач), КонецМесяца(ДатаКон));
    Если НП.Редактировать() Тогда
        
        ДатаНач = НачалоМесяца(НП.ПолучитьДатуНачала());
        ДатаКон = КонецМесяца(НП.ПолучитьДатуОкончания());
        
    КонецЕсли;

КонецПроцедуры

// Процедура - обработчик изменения данных в поле значения отбора

//
Процедура ПолеНастройки1ПриИзменении(Элемент)

    УправлениеОтчетами.ПолеНастройкиПриИзменении(Элемент, ПостроительОтчета.Отбор);
    Если Найти(Элемент.Имя,"Организация") > 0 и ЭлементыФормы.Найти("ПолеНастройкиПодразделениеОрганизации") <> Неопределено Тогда
        Если ТипЗнч(Элемент.Значение) = Тип("СписокЗначений") Тогда
            ЭлементыФормы.ПолеНастройкиПодразделениеОрганизации.ВыборПоВладельцу = Справочники.Организации.ПустаяСсылка()
        Иначе
            ЭлементыФормы.ПолеНастройкиПодразделениеОрганизации.ВыборПоВладельцу = Элемент.Значение
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры// ПолеНастройки1ПриИзменении()


// Процедура - обработчик изменения данных в поле выбора вида сравнения

//
Процедура ПолеВидаСравнения1ПриИзменении(Элемент)

    УправлениеОтчетами.ПолеВидаСравненияПриИзменении(Элемент, ЭлементыФормы);
    
КонецПроцедуры// ПолеВидаСравнения1ПриИзменении()


// Процедура - обработчик изменения данных в поле значения отбора

//
Процедура ПолеНастройкиФизЛицоПриИзменении(Элемент)

    УправлениеОтчетами.ПолеНастройкиПриИзменении(Элемент, ПостроительОтчета.Отбор);    
    
КонецПроцедуры// ПолеНастройки1ПриИзменении()



Процедура ОтправитьНаПочту(Кнопка)
    
    ОбщегоНазначения.ОтправкаПечатнойФормыПоЭлПочте(ЭтаФорма, ЭлементыФормы.ДокументРезультат);
    
КонецПроцедуры

Процедура ПолеНастройкиФизЛицоНачалоВыбора(Элемент, СтандартнаяОбработка)
    
    ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение;
    Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда
        Возврат;
    КонецЕсли;
    
    Если НЕ ТипЗнч(Элемент.Значение) = Тип("СписокЗначений") Тогда
        ТекОрганизация = Неопределено;
        Попытка
            ТекОрганизация = ПостроительОтчета.Отбор.Организация.Значение;
        Исключение
        КонецПопытки;
        
        Если ЗначениеЗаполнено(ТекОрганизация) Тогда
            ТекОрганизация = ОбщегоНазначения.ГоловнаяОрганизацияДляУчетаЗарплаты(ТекОрганизация);
        КонецЕсли;
        ПроцедурыУправленияПерсоналом.ОткрытьФормуВыбораСотрудникаОрганизации(Элемент, "РасчетныеВедомостиОрганизаций", Истина, ТекущаяДата(), ТекОрганизация, СтандартнаяОбработка, Элемент.Значение,,Истина);
    Иначе
        СтандартнаяОбработка = Ложь;
        ФормаРедактированияСпискаСотрудников = ПолучитьФорму("ФормаРедактированияСпискаСотрудников");
        ФормаРедактированияСпискаСотрудников.СписокСотрудников = Элемент.Значение;
        ФормаРедактированияСпискаСотрудников.ОткрытьМодально();        
    КонецЕсли;           
    
КонецПроцедуры

Процедура ПолеНастройкиФизЛицоАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
    
    ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение;
    Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда
        Возврат;
    КонецЕсли;
    
    ТекстАвтоПодбора = ПроцедурыУправленияПерсоналом.ПодобратьФИОРаботникаКандидата("СотрудникиСправочник", Текст,, Истина);
    СтандартнаяОбработка = Ложь;    
    
КонецПроцедуры

Процедура ПолеНастройкиФизЛицоОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    
    ВидСравненияРаботника = ЭлементыФормы.ПолеВидаСравненияФизЛицо.Значение;
    Если ВидСравненияРаботника = ВидСравнения.ВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.ВСпискеПоИерархии ИЛИ ВидСравненияРаботника = ВидСравнения.НеВСпискеПоИерархии Тогда
        Возврат;
    КонецЕсли;
    
    Значение = ПроцедурыУправленияПерсоналом.ПодобратьСписокРаботниковКандидатов("СотрудникиСправочник", Текст, Элемент.Значение,, Истина);
    Если ТипЗнч(Значение) = Тип("СписокЗначений") И Значение.Количество() = 0 Тогда
        СтандартнаяОбработка = Истина;
    Иначе
        СтандартнаяОбработка = (Значение = Неопределено);
    КонецЕсли;
    
КонецПроцедуры


////////////////////////////////////////////////////////////////////////////////

// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

НП = Новый НастройкаПериода;
НП.ВариантНастройки = ВариантНастройкиПериода.Период;
   Segate
 
3 - 29.01.18 - 10:30
Если ты не хочешь, чтоб пользователи видели данные по другим организациям - пили рлс =)
   asisdes
 
4 - 29.01.18 - 10:55
Самое интересное, это так называемое мягкое ограничение похоже.
Если в Настройках пользователя не стоит Учет по всем организациям, то конфа сама обрезает документы не разрешенных организаций. Единственное я нашел в нескольких отчетах по З/П высвечиваются данные
   yavasya
 
5 - 29.01.18 - 11:59
(4) что ты хочешь? включи в недоступные параметры организацию
   asisdes
 
6 - 29.01.18 - 13:12
а можете подсказать как?! В общем модуле текст кода надо прописать?! Что то не могу найти где эти параметры формируются... для Формы настройки

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует