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

Хранилище

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

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



> СКД отбор по текущему пользователю          
Log1c Подменю пользователя
сообщение 21.05.11, 12:04
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Вопрос:
Как организовать отбор по текущему пользователю?
&ТекущийПользователь - не получается

Что делаю:
Конфигуратор - Файл - Новый - Внешний Отчет: Открыть схему компоновки данных.
В основной схеме компоновки данных заполняю вкладки Набор данных и Ресурсы.
Перехожу на вкладку Настройка: добавляю группировку.
В Настройках перехожу на вкладку отбор и добавляю:
Левое значение Ответственный
Вид сравнения Равно
Правое значение &ТекущийПользователь

Сохраняю, выполняю и вижу что выражение Отбор берет в кавычки Ответственный = "&ТекущийПользователь"
Естественно в такой отбор не попадает никаких данных.

Дополнительный вопрос: как в отборе использовать стандартные функции 1с Прав(), Лев() и т. д.



Чем пользовался, СКД
Теория http://pro1c.org.ua/index.php?showtopic=39...=0&#entry81
Практика [необходимо зарегистрироваться для просмотра ссылки]


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

Vofka Подменю пользователя
сообщение 21.05.11, 12:37
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1

Log1c, так нельзя.

Нельзя в отбор запихнуть параметр. Отбор задавайте в режиме предприятия. Отбор в режиме конфигуратора возможен только по предопределённым элементам.

Log1c Подменю пользователя
сообщение 21.05.11, 14:09
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(Vofka @ 21.05.11, 13:37) *
Log1c, так нельзя.

Нельзя в отбор запихнуть параметр. Отбор задавайте в режиме предприятия. Отбор в режиме конфигуратора возможен только по предопределённым элементам.


Понятно, тогда не знаю как тогда реализовать такую задачу:

Есть Пользователь, я ему предоставляю доступ к отчету, выше я описывал как его создаю. Но в этот отчет не должны попадать документы в которых ответственный не этот пользователь.


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

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

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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

попробуйте, может будет работать, или по копайте в эту сторону.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Vofka Подменю пользователя
сообщение 21.05.11, 17:32
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1

Согласен с Логистом. Вариант для вас - программно установить нужный отбор.

Log1c Подменю пользователя
сообщение 21.05.11, 21:00
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(logist @ 21.05.11, 17:54) *
    Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ответственный");
    Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        Отбор.Использование = Истина;
        Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; // это что бы пользователь не видел этот отбор
        Отбор.ПравоеЗначение   = ПараметрыСеанса.ТекущийПользователь;

попробуйте, может будет работать, или по копайте в эту сторону.


Уже копал в эту сторону, вот что получилось...

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

Запустил посмотрел что событие ПриОткрытии() вообще не сработало. Я так понял оно только для форм а не для СКД.

Вопрос:
Куда писать код который я привел выше?


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

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

Общительный
Иконка группы
Группа: Местный
Сообщений: 46
Спасибо сказали: 21 раз
Рейтинг: 0

Создать в сгенеренном отчете основную форму и в нее писать событие. Я так делал (именно для установки параметров) - работает.

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

Log1c Подменю пользователя
сообщение 23.05.11, 18:42
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(yuritch @ 23.05.11, 9:31) *
Создать в сгенеренном отчете основную форму и в нее писать событие. Я так делал (именно для установки параметров) - работает.


спасибо, пробовал так у меня не получалось, после вашего сообщения еще раз попробовал но прицепил код на событие Процедура ПередОткрытием() при открытии отчета это событие ловится уже хорошо. Так что теперь ищу что писать в программном коде.


Цитата(Vofka @ 21.05.11, 18:32) *
Согласен с Логистом. Вариант для вас - программно установить нужный отбор.

Делаю, придложеный вариант:
   ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.
                                 Элементы.Найти("Ответственный")
   ПараметрСКД.Использование = Истина;
   ПараметрСКД.Значение  = Значение;

не работает в ПараметрСКД ничего не пишет и вываливается на строке ПараметрСКД.Использование = Истина; пишет Значение не является значение объектного типа (Использование)

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

падает не проходит компиляцию пишет переменная не определена "Отбор"


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

Vofka Подменю пользователя
сообщение 23.05.11, 18:58
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1

Цитата
падает не проходит компиляцию пишет переменная не определена "Отбор"

Конечно не определена. Покажите строчку, где вы её определили.

Может это поможет http://pro1c.org.ua/index.php?showtopic=3659

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

Log1c Подменю пользователя
сообщение 23.05.11, 21:56
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 178
Из: Харьков
Спасибо сказали: 27 раз
Рейтинг: 0

Цитата(Vofka @ 23.05.11, 19:58) *
Конечно не определена. Покажите строчку, где вы её определили.

Может это поможет http://pro1c.org.ua/index.php?showtopic=3659


Отбор = КомпоновщикНастроек.Настройки.Отбор - так мне понятней.

Код рабочий, т. е. ошибки не выдает но и не отбирает =)
Скопировал код из статьи, запустил, прошелся отладчиком.

Для каждого ЭлементОтбора Из Отбор.Элементы Цикл
//...
//вот в этот цикл у меня никогда не заходит
КонецЦикла;


вопрос остался один, код предложенный в статье под 8.1 должен работать?



уже лег спать и вспомнил что отбор можно ставить не только на набор данных а и на группировку
поставил отбор на набор данных и все заработало =)


Signature
1С:Предприятие 7.7 БУ + ТиС + ЗП и кадры 7.70.031 для Украины
1С:Предприятие 8.3 УТП для Украины 1.2.28.1 (обычные формы)

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


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

 

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