Группа: Пользователи
Сообщений: 159
Спасибо сказали: 5 раз
Рейтинг: 4
Добрый день. Подскажите, как организовать в обычном журнале документов отбор по автору документа? Нужно, чтобы пользователь, вошедший в систему, видел только свои документы и не имел доступа к чужим документам
Группа: Местный
Сообщений: 461
Из: Украина
Спасибо сказали: 151 раз
Рейтинг: 152.8
kostya77 @ Сегодня, 7:45
, Добрый день! Я делал по другому. Создавал общий журнал например "ПриходныеНакладныеСОтбором", куда включены все виды документов. А потом прописывал отбор по автору или контрагенту. При открытии журнала сразу устанавливаем значение отбора по автору с запретом изменения этого значения.
Группа: Местный
Сообщений: 461
Из: Украина
Спасибо сказали: 151 раз
Рейтинг: 152.8
kostya77 @ Сегодня, 8:43
,
// Описание переменных Перем СписокДействий; // Список действий по документу Перем ИмяФормы; Перем КонтрагентДляОтбора,ФирмаДляОтбора,ВидДокументаДляОтбора,АвторДляОтбора,ТипДляОтбора; Перем ЗначениеВВидеСтроки;
Если КонтрагентДляОтбора.Выбран()>0 Тогда УстановитьОтбор("КонтрагентПН", КонтрагентДляОтбора); КонтрагентДляОтбора = КонтрагентДляОтбора.ТекущийЭлемент(); Иначе УстановитьОтбор(""); УстановитьОтбор("ПриходнаяНакладная"); КонецЕсли;
Если АвторДляОтбора.Выбран()>0 Тогда УстановитьОтбор("АвторПН", АвторДляОтбора); АвторДляОтбора = АвторДляОтбора.ТекущийЭлемент(); Иначе УстановитьОтбор(""); УстановитьОтбор("ПриходнаяНакладная"); КонецЕсли;
Если ФирмаДляОтбора.Выбран()>0 Тогда УстановитьОтбор("ФирмаПН", ФирмаДляОтбора); ФирмаДляОтбора = ФирмаДляОтбора.ТекущийЭлемент(); Иначе УстановитьОтбор(""); УстановитьОтбор("ПриходнаяНакладная"); КонецЕсли;
Если ВидОтбора.ТекущаяСтрока() = 4 Тогда // нет быстрого отбора Возврат; КонецЕсли;
ЗначениеИзменилось=0;
Если ВидОтбора.ТекущаяСтрока() = 1 Тогда СтароеЗначение=КонтрагентДляОтбора; ВыбЗначение = СоздатьОбъект("Справочник.Контрагенты"); Если ВыбЗначение.Выбрать("Выбор контрагента","Форма списка")=1 Тогда КонтрагентДляОтбора = ВыбЗначение; Если ВыбЗначение<>СтароеЗначение Тогда ЗначениеИзменилось=1; КонецЕсли; КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 2 Тогда СтароеЗначение=АвторДляОтбора; ВыбЗначение = СоздатьОбъект("Справочник.Пользователи"); Если ВыбЗначение.Выбрать("Выбор автора","Форма списка")=1 Тогда АвторДляОтбора = ВыбЗначение; Если ВыбЗначение<>СтароеЗначение Тогда ЗначениеИзменилось=1; КонецЕсли; КонецЕсли;
ИначеЕсли ВидОтбора.ТекущаяСтрока() = 3 Тогда СтароеЗначение=ФирмаДляОтбора; ВыбЗначение = СоздатьОбъект("Справочник.Фирмы"); Если ВыбЗначение.Выбрать("Выбор фирмы","Форма списка")=1 Тогда ФирмаДляОтбора = ВыбЗначение; Если ВыбЗначение<>СтароеЗначение Тогда ЗначениеИзменилось=1; КонецЕсли; КонецЕсли;
КонецЕсли;
Если ЗначениеИзменилось=1 Тогда ПриУстановкеБыстрогоОтбора(); КонецЕсли;
// определение контрагента для отбора КонтрагентДляОтбора = глВосстановитьЗначение(ИмяФормы, "КонтрагентОтбораЖурнала", ПолучитьПустоеЗначение("Справочник.Контрагенты")); // определение фирмы для отбора ФирмаДляОтбора = глВосстановитьЗначение(ИмяФормы, "ФирмаОтбораЖурнала", ПолучитьПустоеЗначение("Справочник.Фирмы")); // определение автора документа для отбора АвторДляОтбора = глВосстановитьЗначение(ИмяФормы, "АвторДляОтбораЖурнала", ПолучитьПустоеЗначение("Справочник.Пользователи")); КонецПроцедуры //****************************************************************************** Процедура ПриОткрытии() УстановитьОтбор("ПриходнаяНакладная"); // Определение был ли быстрый отбор ТекСтр = глВосстановитьЗначение(ИмяФормы, "ВидОтбораЖурнала", 1); ВидОтбора.ТекущаяСтрока(ТекСтр); // будем отслеживать только реальные изменения этих реквизитов Форма.ВидОтбора.ВыполнятьФормулуТолькоПриИзменении(1); КонецПроцедуры
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!