Пользователь должен видеть только свои документы.

1. fromon 14.10.16 10:40 Сейчас в теме
Как сделать чтобы Пользователь мог видеть только свои документы в журналах.
Это должно выполняться программно и не для всех пользователей.
По теме из базы знаний
Найденные решения
12. vcv 89 14.10.16 20:25 Сейчас в теме
Тема очень стара и многократно обсуждалась.
Штатных способов два.
1. Запретить журналы, вместо журналов предложить пользователю обработку, на которой таблица значений заполняется нужными документами. Для примера можно посмотреть, как работает ВыпискаБанка в ТиС. Главная проблема - работает медленно.
2. Воспользоваться отборами в общем журнале. Все прочие журналы запрещаются, в общем журнале фиксируется единственный отбор по автору документа. Проблема - отбор может быть только один. Нельзя отобрать документы одновременно по, например, автору и складу. Решением может быть заведение служебных общих строковых реквизитов с отбором, в которых при записи документов будет запоминаться что-то типа ЗначениеВСтрокуВнутр(Автор)+ЗначениеВСтрокуВнутр(Склад)

Нештатных способов гораздо больше и разнообразней. Это и подмена запросов для SQL баз. Это использование ПоставщикаДанных из 1С++. Есть еще ряд внешних компонентов с требуемым функционалом. Проблема - нужно вложить достаточное количества ума и времени, прежде чем это счастье заработает. Если, конечно, ранее с такими вещами не сталкивался.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Gkmy 28 14.10.16 12:08 Сейчас в теме
(1) fromon, можно в журналах использовать отбор по автору документа
4. fromon 14.10.16 12:32 Сейчас в теме
(3) Gkmy, Как это сделать программно?
5. Cooler 22 14.10.16 12:39 Сейчас в теме
(4) fromon,
Как это сделать программно?
Вы хотите, чтобы вам написали и выложили готовый код? Сомневаюсь, что кто-то станет этим заниматься.

Можете посмотреть, как сделан отбор по автору в журнале ЖурналОбщий и перенести код в другие журналы.

Вот только для "ограниченных" пользователей использование отборов в ЖурналОбщий придется запретить, иначе они увидят не только то, что им положено. Селяви, за все надо платить.
6. Gkmy 28 14.10.16 16:43 Сейчас в теме
Вопрос (4): Как это сделать программно? - мне признаться тоже не ясен.. как? - листая форум в поисках других подсказок или же взяв за основу подсказку (5).. как? - высокопрофессионально.
9. Gkmy 28 14.10.16 19:13 Сейчас в теме
ради интереса заглянул сейчас в первую подвернувшуюся бухгалтерию (7.70.601), а там в очевидном виде и понятий-то таких нет: пользователь, свои документы. единственный общий реквизит для документов это комментарий.. к монитору пользователей автор вопрос свой (1) что ли предполагает привязывать?
10. falcon 14.10.16 19:56 Сейчас в теме
(9) Gkmy, судя по тому, что тема в разделе ТиС, т\с с этим проще... есть и Автор и Пользователи))
11. falcon 14.10.16 19:56 Сейчас в теме
(1) fromon, проще запретить открывать чужие документы...
2. Diego_Iv 34 14.10.16 11:46 Сейчас в теме
Перейти на 8.Х не предлагать? :)
7. dump 14.10.16 16:51 Сейчас в теме
"Как сделать чтобы Пользователь мог видеть только свои документы в журналах." - обратиться к программисту и заплатить ему
корум; +1 Ответить
8. Gkmy 28 14.10.16 18:52 Сейчас в теме
13. dump 14.10.16 20:33 Сейчас в теме
12. vcv 89 14.10.16 20:25 Сейчас в теме
Тема очень стара и многократно обсуждалась.
Штатных способов два.
1. Запретить журналы, вместо журналов предложить пользователю обработку, на которой таблица значений заполняется нужными документами. Для примера можно посмотреть, как работает ВыпискаБанка в ТиС. Главная проблема - работает медленно.
2. Воспользоваться отборами в общем журнале. Все прочие журналы запрещаются, в общем журнале фиксируется единственный отбор по автору документа. Проблема - отбор может быть только один. Нельзя отобрать документы одновременно по, например, автору и складу. Решением может быть заведение служебных общих строковых реквизитов с отбором, в которых при записи документов будет запоминаться что-то типа ЗначениеВСтрокуВнутр(Автор)+ЗначениеВСтрокуВнутр(Склад)

Нештатных способов гораздо больше и разнообразней. Это и подмена запросов для SQL баз. Это использование ПоставщикаДанных из 1С++. Есть еще ряд внешних компонентов с требуемым функционалом. Проблема - нужно вложить достаточное количества ума и времени, прежде чем это счастье заработает. Если, конечно, ранее с такими вещами не сталкивался.
14. fromon 19.10.16 14:32 Сейчас в теме
Создал справочник с дополнительными правами пользователей.
Там прописал права на открытие и просмотр необходимых документов (нужны не все разумеется).
В доках "ПриОткрытии()" прописал проверку на права, и в журналах соответственно.
Документы в журналах видно, но ни сумма ни контрагент не отображается.
Все довольны)
15. vcv 89 19.10.16 18:37 Сейчас в теме
(14) fromon, В типовой торговле много удобных глобальных функций, которые позволяют не вносить массовые изменения формы документов.
16. falcon 19.10.16 22:29 Сейчас в теме
(14) fromon,
в типовой ТиС документ можно напечатать из журнала, минуя ПриОткрытии()....
17. vcv 89 20.10.16 05:43 Сейчас в теме
(16) falcon,
в типовой ТиС документ можно напечатать из журнала, минуя ПриОткрытии()....


Нельзя.
В типовой ТиС печать документа из журнала выглядит так:
Процедура глПечатьДокумента(ДокДляПечати, Способ = "ПечатьНаЭкран")  Экспорт

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

а в документе следующий код:
Процедура ПриОткрытии()     
	                        
	// Заполним таблицу для выбора печатной формы
	НомерТекущейФормы = глУстановкаКнопкиПечать(Контекст, "Документ." + Вид(),ТаблицаПечФорм);
	
    Парам = Форма.Параметр;
	Если ТипЗначенияСтр(Парам)="СписокЗначений" Тогда
		Если ПустоеЗначение(Парам.Получить("Команда"))=1 Тогда
			Сообщить("В форму документа "+Вид()+" передан неверный параметр!","I");
			СтатусВозврата(0);Возврат;
		КонецЕсли;
		Если Парам.Получить("Команда") = "ПечатьНаПринтер" Тогда
			КолЭкз = Макс(Число(Парам.Получить("КолЭкз")),1);
			ПоКнопкеПечать(1,КолЭкз);
			СтатусВозврата(0);Возврат;
		ИначеЕсли Парам.Получить("Команда") = "ПечатьНаЭкран" Тогда
			ПоКнопкеПечать(0);                
			СтатусВозврата(0);Возврат;
		Иначе
			Сообщить("В форму документа "+Вид()+" передана неверная команда "+Парам.Получить("Команда")+"!","I");
			СтатусВозврата(0);Возврат;
		КонецЕсли;
	КонецЕсли;         
...
Показать
18. imax26 91 07.11.16 02:38 Сейчас в теме
Можно сделать составным отбором - например по контрагенту и автору документа.
19. imax26 91 07.11.16 02:39 Сейчас в теме
Ну или, например, в форме журнала документа графы нужные (например сумма) отдавать фукнцией с проверкой по автору, и при открытии тоже проверять автора.
20. CheBurator 2712 08.11.16 04:04 Сейчас в теме
если вдобавок к обсуждаемому не приложить кучу усилий по запилу остальных "дырок" - то вариантов получить инфу по "закрытом" документу - их есть...
22. vcv 89 09.11.16 06:09 Сейчас в теме
(20)(21) Не такую уж и кучу усилий.
В ТиС во всех документах вызывается глПроверкаРазрешенияРедактирования(). Вставляем в одно место код и открыть запрещенный документ нельзя хоть из журнала, хоть из отчета.
Практически во всех отчетах есть глФильтрПоПеременнойЗапроса(). Модифицируем её и разом накладываем дополнительные фильтры на почти все отчеты.
Правами забираем открытие внешних обработок и встроенные обработки типа ПодборОбъектов и ВыпискаБанка, могущие показать лишнее. Ну или немного доделать их.
21. imax26 91 09.11.16 04:49 Сейчас в теме
Да, вполне можно открыть отчет и ткнуть в нужный документ.
23. imax26 91 25.04.17 06:17 Сейчас в теме
глФильтрПоПеременнойЗапроса() - в программном коде не порверяютс права, только при интерактивной работе.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот