|
Загрузка запроса в дерево значения на форме для ввода данных | ☑ | ||
---|---|---|---|---|
0
Tolstiy Beremenniy
02.10.18
✎
13:10
|
Никак не могу сдвинуться в решении задачи.
Есть документ,в него нужно из регистра сведений загрузить дерево значений. Для ввода двух текстовых полей в удобочитаемой форме. Ранее не работал с деревом значений. Пробовал делать ввод. Но сейчас нужно загрузить с регистра сведений. Мыслей нет никаких. Загрузить хочу вот такой запрос. Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность КАК Должность, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Критерий КАК Критерий, | МАКСИМУМ(С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КБалл) КАК КБалл, | МАКСИМУМ(С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КДис) КАК КДис, | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование + ""\"" + С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность.Наименование КАК Сотрудник_Должность |ИЗ | РегистрСведений.С05_КритерииОценкиКачестваРаботыСотрудников.СрезПоследних( | &Период, | Организация = &Организация | И Подразделение = &Подразделение | И РуководительЗаполняющийБаллы = &Руководитель) КАК С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних | ПО С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Организация = КадроваяИсторияСотрудниковСрезПоследних.Организация | И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Подразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение | И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Период = КадроваяИсторияСотрудниковСрезПоследних.Период | |СГРУППИРОВАТЬ ПО | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Критерий, | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование + ""\"" + С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность.Наименование |ИТОГИ | СУММА(КБалл), | СУММА(КДис) |ПО | Сотрудник, | Должность, | Критерий, | Сотрудник_Должность"; Запрос.УстановитьПараметр("Период", Объект.Период); Запрос.УстановитьПараметр("Организация", Объект.Организация); Запрос.УстановитьПараметр("Подразделение", Объект.Подразделение); Запрос.УстановитьПараметр("Руководитель", Объект.РуководительЗаполняющийБаллы); Результат = Запрос.Выполнить(); ДеревоК = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); ЗначениеВРеквизитФормы(ДеревоК, "ДеревоКритериев"); Пока идет ошибка, - {Документ.С05_СправкаПоПоказателямПремирования.Форма.ФормаДокумента.Форма(398)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(ДеревоК, "ДеревоКритериев"); по причине: Недопустимое значение параметра (параметр номер '2') Недопустимое значение параметра (параметр номер '2') |
|||
1
Ботаник Гарден Меран
02.10.18
✎
13:19
|
[Для ввода двух текстовых полей.]
Двух, а в запросе четыре поля. |
|||
2
Ботаник Гарден Меран
02.10.18
✎
13:19
|
Не четыре, шесть полей.
|
|||
3
Tolstiy Beremenniy
02.10.18
✎
13:26
|
(1) Точнее не текстовых а числовых.
Но остальные поля для отображения идут. |
|||
4
Tolstiy Beremenniy
02.10.18
✎
13:26
|
Хотелось бы сам принцип узнать. Что бы начать делать.
|
|||
5
НЕА123
02.10.18
✎
13:37
|
||||
6
НоваяВолна
02.10.18
✎
13:42
|
(0) У тебя ДеревоКритериев - это что? Какой тип?
|
|||
7
hhhh
02.10.18
✎
14:03
|
(4) так конечно
ДеревоКритериев.Загрузить(Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией)); Эти все ДеревоК и Значения в какие-то реквизиты выкинь нахрен - это каменный век. |
|||
8
aleks_default
02.10.18
✎
14:08
|
(7)нет такого метода у дерева
|
|||
9
Tolstiy Beremenniy
02.10.18
✎
14:16
|
(6) Дерево значений
|
|||
10
hhhh
02.10.18
✎
14:34
|
(9) ну, типы колонок один в один совпадают в обоих деревьях?
|
|||
11
НЕА123
02.10.18
✎
14:36
|
(10)
неа, не совпадают. факт. ПС ТС уже 9 месяцев переходил... не родит никак. |
|||
12
Tolstiy Beremenniy
02.10.18
✎
17:11
|
А подскажите как правильно заполнять дерево значений.
Перебором выборки запроса? |
|||
13
Tolstiy Beremenniy
02.10.18
✎
18:18
|
Почему такая ошибка?
ЗначениеВРеквизитФормы(тДерево, "ДеревоКритериев"); {Документ.С05_СправкаПоПоказателямПремирования.Форма.ФормаДокументаДЗИзРС.Форма(471)}: Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы) ЗначениеВРеквизитФормы(тДерево, "ДеревоКритериев"); по причине: Недопустимое значение параметра (параметр номер '2') Недопустимое значение параметра (параметр номер '2') ДеревоКритериев, дерево значений!!!!!!! Все как в примере делаю, по подобию. |
|||
14
Tolstiy Beremenniy
02.10.18
✎
18:21
|
(10) В обоих в каких?
|
|||
15
Tolstiy Beremenniy
02.10.18
✎
18:23
|
(10) Есть составные поля. Как сделать составное поле?
|
|||
16
Tolstiy Beremenniy
02.10.18
✎
18:26
|
Заполняю вот так. Подскажите пожалуйста!!!! Что поправить?
Запрос.Текст = "ВЫБРАТЬ | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность КАК Должность, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Критерий КАК Критерий, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КБалл КАК КБалл, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.КДис КАК КДис, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Организация КАК Организация, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Подразделение КАК Подразделение, | С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.РуководительЗаполняющийБаллы КАК РуководительЗаполняющийБаллы |ИЗ | РегистрСведений.С05_КритерииОценкиКачестваРаботыСотрудников.СрезПоследних( | , | Подразделение = &Подразделение | И Организация = &Организация) КАК С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних | ПО С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Организация = КадроваяИсторияСотрудниковСрезПоследних.Организация | И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Подразделение = КадроваяИсторияСотрудниковСрезПоследних.Подразделение | И С05_КритерииОценкиКачестваРаботыСотрудниковСрезПоследних.Должность = КадроваяИсторияСотрудниковСрезПоследних.Должность | |УПОРЯДОЧИТЬ ПО | КадроваяИсторияСотрудниковСрезПоследних.Сотрудник.Наименование"; //Запрос.УстановитьПараметр("Период", Объект.Период); Запрос.УстановитьПараметр("Организация", Объект.Организация); Запрос.УстановитьПараметр("Подразделение", Объект.Подразделение); //Запрос.УстановитьПараметр("Руководитель", Объект.РуководительЗаполняющийБаллы); Рез = Запрос.Выполнить(); // ТекСотр = ""; Если Не Рез.Пустой() Тогда тДерево = РеквизитФормыВЗначение("ДеревоКритериев"); Выборка = Рез.Выбрать(); ТекСотр = ""; Пока Выборка.Следующий() Цикл Если ТекСотр = "" или ТекСотр <> Выборка.Сотрудник Тогда нСтр1 = тДерево.Строки.Добавить(); нСтр1.СтрСотрудникДолжностьКритерий = Выборка.Должность.Наименование +"-"+ Выборка.Сотрудник.Наименование; нСтр1.КбаллМакс = Выборка.КБалл; нСтр1.КбаллФакт = 0; нСтр1.КдисМакс = Выборка.КДис; нСтр1.КдисФакт = 0; нСтр1.ЭтоСотрудник = Истина; нСтр1.Сотрудник = Выборка.Сотрудник; нСтр1.Должность = Выборка.Должность; // нСтр2 = нСтр1.Строки.Добавить(); нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий; нСтр2.ЭтоСотрудник = Ложь; нСтр2.КбаллМакс = Выборка.КБалл; нСтр2.КбаллФакт = 0; нСтр2.КдисМакс = Выборка.КДис; нСтр2.КдисФакт = 0; // ИначеЕсли ТекСотр = Выборка.Сотрудник Тогда // нСтр2 = нСтр1.Строки.Добавить(); нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий; нСтр2.ЭтоСотрудник = Ложь; нСтр2.КбаллМакс = Выборка.КБалл; нСтр2.КбаллФакт = 0; нСтр2.КдисМакс = Выборка.КДис; нСтр2.КдисФакт = 0; // //нСтр1.Колонка1 = "Колонка 1"; //нСтр1.Колонка2 = "Колонка 2"; // //нСтр2 = нСтр1.Строки.Добавить(); //нСтр2.Колонка1 = "Колонка 1"; //нСтр2.Колонка2 = "Колонка 2"; КонецЕсли; ТекСотр = Выборка.Сотрудник; КонецЦикла; КонецЕсли; //нСтр3 = нСтр2.Строки.Добавить(); //нСтр3.Колонка1 = "Колонка 1"; //нСтр3.Колонка2 = "Колонка 2"; // //нСтр4 = нСтр3.Родитель.Родитель.Строки.Добавить(); //нСтр4.Колонка1 = "Колонка 1"; //нСтр4.Колонка2 = "Колонка 2"; ЗначениеВРеквизитФормы(тДерево, "ДеревоКритериев"); // КонецПроцедуры |
|||
17
runoff_runoff
02.10.18
✎
18:36
|
ЗначениеВДанныеФормы
|
|||
18
Tolstiy Beremenniy
03.10.18
✎
02:53
|
Ошибка эта не уходит. Скажите что посмотреть?
ЗначениеВДанныеФормы(тДерево, "ДеревоКритериев"); ЗначениеВДанныеФормы(тДерево, "ДеревоКритериев"); по причине: Несоответствие типов (параметр номер '1') |
|||
19
Tolstiy Beremenniy
03.10.18
✎
02:54
|
Я же дерево беру. Заполняю и в его же возвращаю?
|
|||
20
Tolstiy Beremenniy
03.10.18
✎
02:54
|
тДерево = РеквизитФормыВЗначение("ДеревоКритериев");
Выборка = Рез.Выбрать(); ТекСотр = ""; Пока Выборка.Следующий() Цикл Если ТекСотр = "" или ТекСотр <> Выборка.Сотрудник Тогда нСтр1 = тДерево.Строки.Добавить(); нСтр1.СтрСотрудникДолжностьКритерий = Выборка.Должность.Наименование +"-"+ Выборка.Сотрудник.Наименование; нСтр1.КбаллМакс = Выборка.КБалл; нСтр1.КбаллФакт = 0; нСтр1.КдисМакс = Выборка.КДис; нСтр1.КдисФакт = 0; нСтр1.ЭтоСотрудник = Истина; нСтр1.Сотрудник = Выборка.Сотрудник; нСтр1.Должность = Выборка.Должность; // нСтр2 = нСтр1.Строки.Добавить(); нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий; нСтр2.ЭтоСотрудник = Ложь; нСтр2.КбаллМакс = Выборка.КБалл; нСтр2.КбаллФакт = 0; нСтр2.КдисМакс = Выборка.КДис; нСтр2.КдисФакт = 0; // ИначеЕсли ТекСотр = Выборка.Сотрудник Тогда // нСтр2 = нСтр1.Строки.Добавить(); нСтр2.СтрСотрудникДолжностьКритерий = Выборка.Критерий; нСтр2.ЭтоСотрудник = Ложь; нСтр2.КбаллМакс = Выборка.КБалл; нСтр2.КбаллФакт = 0; нСтр2.КдисМакс = Выборка.КДис; нСтр2.КдисФакт = 0; // //нСтр1.Колонка1 = "Колонка 1"; //нСтр1.Колонка2 = "Колонка 2"; // //нСтр2 = нСтр1.Строки.Добавить(); //нСтр2.Колонка1 = "Колонка 1"; //нСтр2.Колонка2 = "Колонка 2"; КонецЕсли; ТекСотр = Выборка.Сотрудник; КонецЦикла; КонецЕсли; //нСтр3 = нСтр2.Строки.Добавить(); //нСтр3.Колонка1 = "Колонка 1"; //нСтр3.Колонка2 = "Колонка 2"; // //нСтр4 = нСтр3.Родитель.Родитель.Строки.Добавить(); //нСтр4.Колонка1 = "Колонка 1"; //нСтр4.Колонка2 = "Колонка 2"; ЗначениеВРеквизитФормы(тДерево, "ДеревоКритериев"); |
|||
21
Tolstiy Beremenniy
03.10.18
✎
03:15
|
На вот этой строке ЗначениеВДанныеФормы(тДерево, "ДеревоКритериев");
У меня в тДерево - Дерево из 5 строк, по 2 подстроки в каждой ветке. Но выходит ошибка (18). |
|||
22
Tolstiy Beremenniy
03.10.18
✎
03:42
|
Подскажите пожалуйста в чем дело?
Я сверил, типы все те же, поля все те же. http://joxi.ru/n2YQ5GaTopoXL2 Но продолжается ошибка, - ЗначениеВДанныеФормы(тДерево, "ДеревоКритериев"); по причине: Несоответствие типов (параметр номер '2') |
|||
23
Tolstiy Beremenniy
03.10.18
✎
03:56
|
У дерева значений есть поля, типа:
КбаллМакс число 1.0 КбаллФакт число 1.0 КдисМакс число 1.1 КдисФакт число 1.1 Может в них дело? Иначе в чем? Подскажите пожалуйста, я все сверил!!!!! Что нужно проверить? Что можно поправить? |
|||
24
Tolstiy Beremenniy
03.10.18
✎
04:02
|
Заполнилось! Я Сделал видимыми все поля!!!!!!!
Получается, если у полей видимость ложь, то уже будет идти ошибка что в (22) ? |
|||
25
Tolstiy Beremenniy
03.10.18
✎
04:22
|
Мда!!!! Поддержать разговором некомупо очевидной теме!!!!
|
|||
26
hhhh
03.10.18
✎
04:32
|
(25) на часы-то смотрел? Кто это будет поддерживать разговор в 4ч утра? Все спят давно.
|
|||
27
Tolstiy Beremenniy
03.10.18
✎
04:57
|
(26) Но вы можете подсказать как это сделать?
Я в дерево вывожу строку "Должность-Сотрудник" Но сами ссылки нужны. Но на форме нет. Я их сделал невидимыми, что из за этого ошибка идет (22) ? |
|||
28
catena
03.10.18
✎
06:40
|
Глобальный контекст (Global context)
ЗначениеВДанныеФормы (ValueToFormData) Синтаксис: ЗначениеВДанныеФормы(<Значение>, <Объект>) Параметры: <Значение> (обязательный) Тип: Произвольный. Значение прикладного типа, для которого определено преобразование в данные формы. <Объект> (обязательный) Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура. Данные формы, имеющие совместимую структуру. Описание: Преобразует объект прикладного типа в универсальный объект данных. Доступность: Сервер, толстый клиент, мобильное приложение(сервер). По-моему, "ДеревоКритериев" не входит в Тип: ДанныеФормыСтруктураСКоллекцией; ДанныеФормыКоллекция; ДанныеФормыСтруктура. |
|||
29
Tolstiy Beremenniy
03.10.18
✎
08:12
|
||||
30
Tolstiy Beremenniy
03.10.18
✎
08:13
|
||||
31
Лодырь
03.10.18
✎
08:18
|
Использовать всегда указано у этих колонок?
|
|||
32
catena
03.10.18
✎
08:54
|
(30)И чо? "ДеревоКритериев" - это все равно строка, а не коллекция.
|
|||
33
Tolstiy Beremenniy
03.10.18
✎
09:07
|
||||
34
hhhh
03.10.18
✎
09:31
|
(33) справа огромная колонка у тебя на рисунке "Использовать всегда". Ты уже ослеп, всё работаешь по ночам.
|
|||
35
Tolstiy Beremenniy
03.10.18
✎
10:04
|
(34) Вижу. То есть если там убрать галки то
это не будет влиять на то что колонки эти будут заполняться но выводить их в тч дерева значений не нужно? Как с этим будет? |
|||
36
hhhh
03.10.18
✎
10:13
|
(35) попробуй волшебную строчку в конце вставить.
Элементы.ДеревоКритериевКритерий.Видимость = Ложь; |
|||
37
Tolstiy Beremenniy
03.10.18
✎
10:55
|
(36) Подскажите пожалуйста , а где именно?
|
|||
38
hhhh
03.10.18
✎
11:25
|
(37) в конце
|
|||
39
Tolstiy Beremenniy
03.10.18
✎
11:48
|
(38) Я вот ищу но не вижу там полей табличной части вообще.
ЗначениеВРеквизитФормы(тДерево, "ДеревоКритериев"); // Элементы.ДеревоКритериев.Д КонецПроцедуры // Куда то ваш пример удалился, от сюда. |
|||
40
Tolstiy Beremenniy
03.10.18
✎
11:52
|
Сейчас задача избавиться от лишних колонок у дерева значений.
Галками использовать всегда, начал пробовать. Но вот видимостью как? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |