Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/75: Рейтинг темы: голосов - 75, средняя оценка - 4.95
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
1
1C 8.x

Поле выбора отбора в отчёте СКД

13.03.2017, 10:13. Показов 14042. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую ребята, вопрос возник. Хочу вывести поле выбора отбора в отчёте, но что-то стопорится у меня это дело, нужен ваш совет...

Для поля контрагенты внёс код такой, он делает внутренний отбор, а как для поля слева отобразить ВидСравнения и привязать его к Пользователям?

1C
1
2
3
4
5
6
7
8
9
10
11
Процедура ПользователиПриИзменении(Элемент) Экспорт
    
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Пользователи"));
    Параметр.Значение = Пользователи;
    Параметр.Использование = Истина;
 
    ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ОтветственныйЗаОтветНаЗапрос");
    ЭлементОтбора.ПравоеЗначение = Пользователи;
КонецПроцедуры
Миниатюры
Поле выбора отбора в отчёте СКД  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.03.2017, 10:13
Ответы с готовыми решениями:

добавление доступных полей выбора СКД
Всем Добрый день. Столкнулся с такой проблемой. Делаю отчет на СКД. В качестве набора данных есть...

СКД с возможностью выбора некоторых строк
Всем Здравствуйте! Помогите пожалуйста реализовать следующее. У меня есть вот такой простенький...

Как сделать так, чтобы после выбора данного элемента в поле выбора отобразились еще и названия групп?
Ситуация такая: Имеем Документ с Полем Выбора; - кликаем на кнопку выбора(1) и выбираем элемент...

Поле отбора компоновщика настроек
На форме есть компоновщик настроек, есть поле для отбора "склад" там по умолчанию быстрый выбор(не...

18
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
13.03.2017, 11:19  [ТС] 2
1C
1
2
3
4
5
6
7
8
9
10
СтандартнаяОбработка = Ложь;
 
    СписокВыбора = Новый СписокЗначений;
 
    СписокВыбора.Добавить(ВидСравнения.Равно, "Равно");
    СписокВыбора.Добавить(ВидСравнения.НеРавно, "Не равно");
    СписокВыбора.Добавить(ВидСравнения.ВСписке, "В списке");
    СписокВыбора.Добавить(ВидСравнения.НеВСписке, "Не в списке");
 
    ВыбЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора);
Если пишу такой код для отбора - пустота...
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
13.03.2017, 18:36 3
1C
1
ВыбЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора).Значение;
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
14.03.2017, 08:41  [ТС] 4
Dethmontt,
{ВнешнийОтчет.СреднееЗначениеНаОтвет.Форма.ФормаОтчета.Форма(25)}: Значение не является значением объектного типа (Значение)
ВыбЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора).Значение;
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
14.03.2017, 09:51  [ТС] 5
Такое ощущение, что я занимаюсь ерундой, по идее надо просто вывести окно отбора СКД через быстрый доступ, но получаю просто строку при выведении результата, никакого окна не вижу...
Миниатюры
Поле выбора отбора в отчёте СКД   Поле выбора отбора в отчёте СКД  
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
14.03.2017, 10:12  [ТС] 6
Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

Вроде как нашёл тут решение своего вопроса...
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
29.03.2017, 11:16  [ТС] 7
Пришлось вернуться к этому отчёту, хочу понять как сделать так, чтобы в окне отбора (его отдельно на форму вывел) выбирая нужного пользователя и нажимая кнопку сформировать - выводился отчёт по пользователю?
Сейчас пустота... нужен ваш совет спецы, куда копать...
Миниатюры
Поле выбора отбора в отчёте СКД  
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
29.03.2017, 11:53 8
Godunov, данные полученные запросом не соответствуют установленному отбору.
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
29.03.2017, 12:18  [ТС] 9
Dethmontt, а можно как-то связку сделать между отбором и запросом?
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
29.03.2017, 12:43 10
Цитата Сообщение от Godunov Посмотреть сообщение
а можно как-то связку сделать между отбором и запросом?
Не надо ничего делать, отбор накладывается на результирующую таблицу запроса
1
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
29.03.2017, 13:08  [ТС] 11
Dethmontt, тогда у меня следующий вопрос, я скопировал из универсального отчёта (настройки, поля ввода) отбор по менеджеру (первый рисунок) и вставил эти поля в форму своего отчёта, второй рисунок 2-ой пункт, пока не понял, как поправить код, чтобы шёл отбор.

Код в форме:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Процедура ПриОткрытии()
    
    УправлениеОтчетами.УстановитьСвязьПолейБыстрогоОтбораНаФорме(ЭлементыФормы, ОтборМенеджер,,     "ОтчетОбъект.ОтборМенеджер");
        ЭлементыФормы.ПолеВидаСравненияМенеджер.Значение = ВидСравнения.Равно;
        ЭлементыФормы.ПолеНастройкиМенеджер.Значение = ПараметрыСеанса.ТекущийПользователь;
 
КонецПроцедуры
 
 
// Обработчик события ПриИзменении элемента формы ПолеВидаСравненияМенеджер.
//
Процедура ПолеВидаСравненияМенеджерПриИзменении(Элемент)
 
    УправлениеОтчетами.ПолеВидаСравненияПриИзменении(Элемент, ЭлементыФормы);
    
КонецПроцедуры
 
// Обработчик события ПриИзменении элемента формы ПолеНастройкиМенеджер.
//
Процедура ПолеНастройкиМенеджерПриИзменении(Элемент)
    
    УправлениеОтчетами.ПолеНастройкиПриИзменении(Элемент, ОтборМенеджер);
    
КонецПроцедуры
 
ПоляНастройкиОтбора = ОтборМенеджер.ПолучитьДоступныеПоля();
ПолеНастройки = ПоляНастройкиОтбора.Добавить("Менеджер", "Менеджер", Новый ОписаниеТипов("СправочникСсылка.Пользователи"));
ПолеНастройки.Отбор = Истина;
ОтборМенеджер.УстановитьДоступныеПоля(ПоляНастройкиОтбора);
ОтборМенеджер.Добавить("Менеджер");
Во втором рисунке, 1-ый пункт отрабатывается отчёт, но нет вида сравнения для поля пользователей, который мне нужен.
По идее мне надо связать данные из СКД со вставленным из универсального отчёта данные отбора.
Правильно делаю?
Миниатюры
Поле выбора отбора в отчёте СКД   Поле выбора отбора в отчёте СКД  
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
29.03.2017, 15:39 12
Godunov, зачем тебе эти контролы?

Чем тебе не подошел этот вариант? - https://www.cyberforum.ru/post10270710.html
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
29.03.2017, 15:50  [ТС] 13
Dethmontt, Мне нужно, чтобы поля отбора (вид сравнения и пользователи) были равнозначны по действию (в обе стороны) окну отбора из скд.
Если я уберу нижнее окно отбора скд, оставив верхние поля отбора - то данные обрабатывались и отчёт работал.
Миниатюры
Поле выбора отбора в отчёте СКД  
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
29.03.2017, 15:52 14
Godunov, а ты наоборот убери верхние контролы и оставь нижниее таб. поле для отборов
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
29.03.2017, 15:53  [ТС] 15
Dethmontt, если убираю верхние, оставив только нижнее - отчёт получаю пустым.
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
30.03.2017, 00:19 16
Godunov, МОЖЕ быть ты не то поле берешь в отбор? или оно у тебя вообще не заполняется...
0
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.03.2017, 08:43  [ТС] 17
Dethmontt, вот код в модуле формы на данный момент, в процедуре ПользователиПриИзменении прописан отбор, но он действует только для поля ввода пользователи в одну сторону, если с окна отбора скд производить отбор - пустой отчёт.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Процедура ПриОткрытии(Элемент, СтандартнаяОбработка)
    
    СписокВыбора = Новый СписокЗначений;
    СписокВыбора.Добавить(ВидСравнения.Равно);
    СписокВыбора.Добавить(ВидСравнения.ВСписке);
    ЭлементыФормы.Отбор.СписокВыбора = СписокВыбора;
    ЭлементыФормы.Отбор.Значение     = ВидСравнения.Равно;
 
КонецПроцедуры
 
Процедура ПользователиПриИзменении(Элемент) Экспорт
    
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Пользователи");
    //Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Пользователи"));
    Параметр.Значение = Пользователи;
    Параметр.Использование = Истина;
    
    ПолеПользователи = Новый ПолеКомпоновкиДанных("ОтветственныйЗаОтветНаЗапрос");
    Для каждого Элемент Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
        Если Элемент.ЛевоеЗначение = ПолеПользователи Тогда
            ЭлементОтбора = Элемент;
        Прервать;
        КонецЕсли;
    КонецЦикла;
    Если ЭлементОтбора = Неопределено Тогда
        ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    КонецЕсли;
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
        ЭлементОтбора.ЛевоеЗначение = ПолеПользователи;
        ЭлементОтбора.ПравоеЗначение = Пользователи;
        ЭлементОтбора.Использование = НЕ Пользователи.Пустая();
        Элемент = ЭлементОтбора.ПравоеЗначение;   
        
КонецПроцедуры
 
Процедура НачалоПериодаПриИзменении(Элемент)
    
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала");
    //Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНачала"));;
    Параметр.Значение = Период.ДатаНачала;
    Параметр.Использование = Истина;
    
КонецПроцедуры
 
Процедура КонецПериодаПриИзменении(Элемент)
    
    Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаОкончания");
    //Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаОкончания"));;
    Параметр.Значение = Период.ДатаОкончания;
    Параметр.Использование = Истина;
    
КонецПроцедуры
 
Процедура КнопкаНастройкаПериодаНажатие(Элемент)
        
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(ДатаНачала, ?(ДатаОкончания='0001-01-01', ДатаОкончания, КонецДня(ДатаОкончания)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    //НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период; //Закладка Период
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Интервал;// Закладка Интервал
    Если НастройкаПериода.Редактировать() Тогда
        Период.ДатаНачала = НастройкаПериода.ПолучитьДатуНачала();
        Период.ДатаОкончания = НастройкаПериода.ПолучитьДатуОкончания();
        НачалоПериодаПриИзменении(Неопределено);
        КонецПериодаПриИзменении(Неопределено);
    КонецЕсли;
        
КонецПроцедуры
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,670
Записей в блоге: 1
30.03.2017, 09:34 18
Godunov, зачем этот код вообще?

Добавлено через 2 минуты
Схема компановки данных + поле отборов на форму.

Все никакой код писать не нужно, все будет работать))))
1
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.03.2017, 12:02  [ТС] 19
Dethmontt, убираю код, есть только СКД и поле отборов на форме - пустой отчёт...

Добавлено через 1 час 50 минут
Dethmontt, разобрался, почему пустой отчёт при отборе скд был, стояло условие в запросе скд по пользователям - удалил его и всё заработало. Благодарю за подсказки)
0
30.03.2017, 12:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2017, 12:02
Помогаю со студенческими работами здесь

Вывести поле в СКД
Доброго дня! Подскажите, возможно ли в отчете СКД вывести поле, в которое были бы собраны все...

Поле не найдено СКД
В отчете на скд не выводятся поля "пользователь", "датаизготовления", "дата предполагаемой...

Добавить поле в отчет СКД
сделал отчет в скд запрос: ВЫБРАТЬ ОстаткиПромежуточныхУзловПоСкладамОстатки.Номенклатура,...

Булево поле в отчете (СКД)
Доброго времени суток! Появился такой вопрос, необходимо создать пользовательское поле с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru