Имя: Пароль:
1C
1С v8
Древо значений о запрос
0 ВDASF
 
18.02.12
13:16
Доброго всем времени суток.
На форме расположео древо значений которое заполнено через запрос также там добавлена колонка с флажками. Можно ли элементы или группу элементов выделенную флажками отразить в отчете?
1 Живой Ископаемый
 
18.02.12
13:17
капец... вроде все слова русские, а ничего непонятно... волшебник
2 le_
 
18.02.12
13:19
(0) Можно.
3 ВDASF
 
18.02.12
13:20
Дэвид Блейн мое имя))).
4 ВDASF
 
18.02.12
13:21
Это надо сделать через МенеджерВременныхТаблиц?
5 le_
 
18.02.12
13:25
Это можно сделать разными способами.
Отчеты формируются по-разному: СКД, построитель, просто вывод данных в макет табличного документа.
6 Живой Ископаемый
 
18.02.12
13:29
2(5) нет-нет, так бы я тоже смог.. вы продолжайте в ключе (0)-(2)-(4)
7 le_
 
18.02.12
13:31
(6) Счас очередь ТС )
8 ВDASF
 
18.02.12
13:39
Например
Процедура ПриОткрытии()
   Запрос = Новый Запрос("ВЫБРАТЬ
                         |    ИСТИНА КАК Флажок,
                 |    Номенклатура.Наименование КАК Наименование,
                 |    Номенклатура.Код КАК Код,
                         |    Номенклатура.БазоваяЕдиницаИзмерения КАК БазоваяЕдиницаИзмерения,
                         |    Номенклатура.ШтрихКод КАК ШтрихКод
                         |ИЗ
                         |    Справочник.Номенклатура КАК Номенклатура
                         |
                         |УПОРЯДОЧИТЬ ПО
                         |    Наименование ИЕРАРХИЯ");
   ТабличноеПоле1 = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
   ТабличноеПоле1.Колонки.Добавить("НовКолонка",Новый ОписаниеТипов("Число"));
   ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
   НовКолонка=ЭлементыФормы.ТабличноеПоле1.Колонки.Найти("Флажок");
   НовКолонка.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
   НовКолонка.УстановитьЭлементУправления(Тип("Флажок"));
   НовКолонка.ДанныеФлажка = "Флажок";
       НовКолонка.Данные = "";
КонецПроцедуры
После этого на форме появляется древо значений.
И как теперь получить только те данные которые пользователь отметил флажком?
9 Живой Ископаемый
 
18.02.12
13:44
перебором строк и определением где Флажок истина..
или накладыванием отбора на это поле по истина и выгрузкой полученных строк в массив
10 le_
 
18.02.12
13:44
НайденныеСтроки = ТабличноеПоле1.Строки.НайтиСтроки(Новый Структура("Флажок", Истина), Истина);
11 ВDASF
 
18.02.12
14:06
А как это будет выглядеть в Процедуре сформировать?
12 le_
 
18.02.12
14:20
(11) С этим к гадалке или еще какому предсказателю будущего.
13 ВDASF
 
18.02.12
14:36
Вы меня не поняли как это прописать в процедуре сформировать
14 Живой Ископаемый
 
18.02.12
14:38
2(13) как же вас понять если вы пишите раз в 10 меньше чем думаете?
===

Ну например

Процедура Сформировать()
НайденныеСтроки = ТабличноеПоле1.Строки.НайтиСтроки(Новый Структура("Флажок", Истина), Истина);
КонецПроцедуры
15 ВDASF
 
18.02.12
14:40
Я просто просматриваю и пробую разные варианты
16 Живой Ископаемый
 
18.02.12
15:00
делайте что хотите, тока не думайте что другим это видно
17 ВDASF
 
18.02.12
15:04
Спасибо за ответы. Просто щас я пытаюсь сделать как вы сказали "накладыванием отбора на это поле по истина и выгрузкой полученных строк в массив".
18 Живой Ископаемый
 
18.02.12
15:05
10 - это оно и есть практически...
19 Живой Ископаемый
 
18.02.12
15:05
но да, можно и по-другому наверное
20 ВDASF
 
18.02.12
15:18
Может вам тимвьювер дать а то вы какойто не терпиливый
21 Живой Ископаемый
 
18.02.12
15:19
да зачем же тимвьювер, давайте уже сразу документы на усыновление
22 le_
 
18.02.12
15:22
(20) Где ж тут терпения набраться? Задача за 15 минут решается, а ты уже два часа загадки загадываешь.
23 ВDASF
 
18.02.12
15:24
А как еще если я токо 4 день с 1с конфигуратором работаю.
24 le_
 
18.02.12
15:32
(23) Книжки почитай - Радченко, Хрусталеву, чтобы хотя бы представление заиметь о том, какие возможности есть и с основными принципами работы ознакомиться.
25 ВDASF
 
20.02.12
00:32
Что то не работает это строчка НайденныеСтроки = ТабличноеПоле1.Строки.НайтиСтроки(Новый Структура("Флажок", Истина), Истина);
26 ВDASF
 
27.02.12
16:39
Процедура ОбработкаВыбора (ВыводимаяСтрока, Уровень=0)
Таб = Новый ТабличныйДокумент;
Макет = Отчеты.Номенклатура.ПолучитьМакет("Макет");
Область=Макет.ПолучитьОбласть("Шапка");
Таб.Вывести(Область);
Для Каждого Строки из ВыводимаяСтрока.Строки Цикл
Если Строки.Флажок Тогда
Область = Макет.ПолучитьОбласть("Область");
Область.Параметры.Код = Строки.Код;
Область.Параметры.Имя = Строки.Наименование;
Таб.Вывести(Область);
КонецЕсли;
ОбработкаВыбора(Строки, Уровень+1 );    
КонецЦикла;
Таб.Показать();
КонецПроцедуры
Вот примерно что надо но выводит много таб.документов можно ли что с этим сделать?
27 le_
 
27.02.12
17:42
(26) Рекурсивно несколько раз эта процедура вызывается, поэтому несколько таб. доков и показывает. Создание таб. дока и его показ нужно вынести из рекурсии.
28 ВDASF
 
27.02.12
18:47
Процедура ОбработкаВыбора (ВыводимаяСтрока, Уровень=0)
Для Каждого Строки из ВыводимаяСтрока.Строки Цикл
Если Строки.Флажок Тогда
Код = Строки.Код;
Имя = Строки.Наименование;
КонецЕсли;
ОбработкаВыбора(Строки, Уровень+1 );    
КонецЦикла;
КонецПроцедуры

Процедура КнопкаСформироватьНажатие(Кнопка)
Таб = Новый ТабличныйДокумент;
Макет = Отчеты.Номенклатура.ПолучитьМакет("Макет");
Область=Макет.ПолучитьОбласть("Шапка");
Таб.Вывести(Область);
ОбработкаВыбора(ТабличноеПоле1);    
Область = Макет.ПолучитьОбласть("Область");
Область.Параметры.Код = Код;
Область.Параметры.Имя = Имя;
Таб.Вывести(Область);
Таб.Показать();
КонецПроцедуры
У меня что то не получается
29 ВDASF
 
27.02.12
18:49
Ругается что переменная не определена Код и Имя
30 le_
 
27.02.12
19:07
(29) Не жалей времени прочти хоть одну книгу. Про области видимости переменных обычно в самом начале пишут.
31 ВDASF
 
27.02.12
19:13
Понятно надо было Перем Код и Перем Имя задать?
32 ВDASF
 
27.02.12
19:23
Но теперь выводит только последнию из отмеченных
33 DrShad
 
27.02.12
19:31
а вывести не нужно было убирать из рекурсии
34 FREEEEs
 
27.02.12
19:34
(69) в каком отчёте ? Ты про тот когда жмёшь "ПечатЬ" и он выводит список?
Мож лучше тогда макет
35 ВDASF
 
27.02.12
19:35
Не понял как не нужно было убирать из рекурсии
36 ВDASF
 
27.02.12
19:36
Не макет не подходит
37 DrShad
 
27.02.12
19:37
(35) а вот так
38 ВDASF
 
27.02.12
19:38
Нужно чтобы была возможность выбора элемента или всей группы
39 DrShad
 
27.02.12
19:41
(38) это ты сейчас с кем?
40 ВDASF
 
27.02.12
19:42
с  FREEEEs
41 ВDASF
 
27.02.12
19:42
а можно примерно как это должно выгледеть
42 ВDASF
 
27.02.12
19:49
Если не убирать из рекурсии
43 le_
 
27.02.12
20:27
Перем Макет;
Перем ТабДок;

Процедура РекурсивныйВывод (Строки)
   Для Каждого Стр Из Строки.Строки Цикл
       Если Стр.Флажок Тогда
           Область = Макет.ПолучитьОбласть("Область");
           Область.Параметры.Код = Стр.Код;
           Область.Параметры.Имя = Стр.Наименование;
           ТабДок.Вывести(Область); Область = Неопределено;
           РекурсивныйВывод(Стр);    
       КонецЕсли;
   КонецЦикла;
КонецПроцедуры

Процедура КнопкаСформироватьНажатие(Кнопка)
   ТабДок = Новый ТабличныйДокумент;
   Макет = Отчеты.Номенклатура.ПолучитьМакет("Макет");
   Область = Макет.ПолучитьОбласть("Шапка");
   ТабДок.Вывести(Область);

   РекурсивныйВывод(Дерево);

   ТабДок.Показать();
КонецПроцедуры
44 ВDASF
 
27.02.12
21:35
Спасибо большое