Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отбор в журнале документов по автору создания          
kostya77 Подменю пользователя
сообщение 21.06.23, 6:45
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 125
Спасибо сказали: 5 раз
Рейтинг: 4

Добрый день. Подскажите, как организовать в обычном журнале документов отбор по автору документа? Нужно, чтобы пользователь, вошедший в систему, видел только свои документы и не имел доступа к чужим документам

Сообщение отредактировал Vofka - 21.06.23, 7:58

denis84 Подменю пользователя
сообщение 21.06.23, 7:23
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

kostya77 @ Сегодня, 7:45 * ,
Добрый день! Я делал по другому. Создавал общий журнал например "ПриходныеНакладныеСОтбором", куда включены все виды документов. А потом прописывал отбор по автору или контрагенту. При открытии журнала сразу устанавливаем значение отбора по автору с запретом изменения этого значения.

kostya77 Подменю пользователя
сообщение 21.06.23, 7:43
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 125
Спасибо сказали: 5 раз
Рейтинг: 4

denis84 @ Сегодня, 8:23 * ,
А как сделать, так. чтобы в журнал попали документы одного вида?

denis84 Подменю пользователя
сообщение 21.06.23, 8:16
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

kostya77 @ Сегодня, 8:43 * ,
// Описание переменных 
Перем СписокДействий;  // Список действий по документу  
Перем ИмяФормы;
Перем КонтрагентДляОтбора,ФирмаДляОтбора,ВидДокументаДляОтбора,АвторДляОтбора,ТипДляОтбора;
Перем ЗначениеВВидеСтроки;

//******************************************************************************
Процедура ПриВыбореКонтрагента()  
    
    Если КонтрагентДляОтбора.Выбран()>0 Тогда
        УстановитьОтбор("КонтрагентПН", КонтрагентДляОтбора);
        КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент();  
    Иначе
        УстановитьОтбор("");
        УстановитьОтбор("ПриходнаяНакладная");
    КонецЕсли;
    
КонецПроцедуры

//******************************************************************************
Процедура ПриВыбореАвтора()  
    
    Если АвторДляОтбора.Выбран()>0 Тогда
        УстановитьОтбор("АвторПН", АвторДляОтбора);
        АвторДляОтбора = АвторДляОтбора.ТекущийЭлемент();
    Иначе
        УстановитьОтбор("");
        УстановитьОтбор("ПриходнаяНакладная");
    КонецЕсли;
    
КонецПроцедуры

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

//******************************************************************************
//
Процедура ПриУстановкеБыстрогоОтбора()
    Перем ТекущДок;                          
    
    ТекущДок = ТекущийДокумент;
    
    Если ВидОтбора.ТекущаяСтрока() = 5 Тогда    // нет быстрого отбора
            
        ЗначениеВВидеСтроки = "";
        
        Форма.кнЗначение.Доступность(0);
        УстановитьОтбор("");
        УстановитьОтбор("ПриходнаяНакладная");
        ВидыОтбора("*");

    Иначе        // есть быстрый отбор
        
        Форма.кнЗначение.Доступность(1);
        
        Если ВидОтбора.ТекущаяСтрока() = 1 Тогда
            ПриВыбореКонтрагента();
            ЗначениеВВидеСтроки=Строка(КонтрагентДляОтбора);
            
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
            ПриВыбореАвтора();                          
            ЗначениеВВидеСтроки=Строка(АвторДляОтбора);
            
        ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
            ПриВыбореФирмы();
            ЗначениеВВидеСтроки=Строка(ФирмаДляОтбора);
        Иначе
            ЗначениеВВидеСтроки = "";
            УстановитьОтбор("");
            УстановитьОтбор("ПриходнаяНакладная");
        КонецЕсли;
        
        ВидыОтбора("");
        
    КонецЕсли;
    
    Попытка
        АктивизироватьОбъект(ТекущДок);
    Исключение    
    КонецПопытки;    
        
КонецПроцедуры // ПриУстановкеБыстрогоОтбора


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

    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда
        СтароеЗначение=АвторДляОтбора;
        ВыбЗначение = СоздатьОбъект("Справочник.Пользователи");
        Если ВыбЗначение.Выбрать("Выбор автора","Форма списка")=1 Тогда
            АвторДляОтбора = ВыбЗначение;
            Если ВыбЗначение<>СтароеЗначение Тогда
                ЗначениеИзменилось=1;    
            КонецЕсли;    
        КонецЕсли;    
    
    ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда
        СтароеЗначение=ФирмаДляОтбора;
        ВыбЗначение = СоздатьОбъект("Справочник.Фирмы");
        Если ВыбЗначение.Выбрать("Выбор фирмы","Форма списка")=1 Тогда
            ФирмаДляОтбора = ВыбЗначение;
            Если ВыбЗначение<>СтароеЗначение Тогда
                ЗначениеИзменилось=1;    
            КонецЕсли;    
        КонецЕсли;    
        
    КонецЕсли;
            
    Если ЗначениеИзменилось=1 Тогда
        ПриУстановкеБыстрогоОтбора();
    КонецЕсли;    

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

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

//******************************************************************************
Процедура ПриЗакрытии() // Предопределенная процедура
    глСохранитьЗначение(ИмяФормы,"КонтрагентОтбораЖурнала",КонтрагентДляОтбора);
    глСохранитьЗначение(ИмяФормы,"ФирмаОтбораЖурнала",ФирмаДляОтбора);
    глСохранитьЗначение(ИмяФормы,"АвторДляОтбораЖурнала",АвторДляОтбора);
    глСохранитьЗначение(ИмяФормы,"ТипДляОтбораЖурнала",ТипДляОтбора);          
КонецПроцедуры // ПриЗакрытии

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

КонтрагентДляОтбора = СоздатьОбъект("Справочник.Контрагенты");  
ФирмаДляОтбора = СоздатьОбъект("Справочник.Фирмы");
АвторДляОтбора = СоздатьОбъект("Справочник.Пользователи");

ЗначениеВВидеСтроки = "";

ИмяФормы = "Журнал.ПриходныеНакладные.Форма.ФормаСписка";

kostya77 Подменю пользователя
сообщение 21.06.23, 8:23
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 125
Спасибо сказали: 5 раз
Рейтинг: 4

denis84 @ Сегодня, 9:16 * ,
Это получается нужно для каждого докумена создавать графу отбора?

denis84 Подменю пользователя
сообщение 21.06.23, 8:27
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

kostya77 @ Сегодня, 9:23 * ,
я делал для каждого вида документа свой журнал с отбором. Это было моё решение, а так вам самим решать как реализовать.

Сообщение отредактировал denis84 - 21.06.23, 8:28

Спасибо сказали: kostya77,

kostya77 Подменю пользователя
сообщение 21.06.23, 8:37
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 125
Спасибо сказали: 5 раз
Рейтинг: 4

denis84 @ Сегодня, 9:27 * ,
я понял. Спасибо

denis84 Подменю пользователя
сообщение 21.06.23, 14:57
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 432
Из: Украина
Спасибо сказали: 138 раз
Рейтинг: 139.5

kostya77 @ Сегодня, 9:37 * ,
для "спасибо", есть специальная кнопка

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 27.04.24, 14:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!