Имя: Пароль:
1C
1С v8
Отбор в ТЧ
0 Gill
 
21.06.12
09:02
Всем привет! Конфа "УПП" на 8.1 Есть документ с след.таб.частью: Наряд,Подразделение-заказчик и т.д.Нужно,чтобы перед распечаткой печ.формы этого дока пользователь мог выбрать какое-то одно или несколько "различных" подразделений и вывести на печать...Как лучше это реализовать,перед распечаткой выводить какую-ниюудь доп.форму с выгруженной ТЗ и там уже отметками выбирать или...Вообщем,что посоветуете?
1 butterbean
 
21.06.12
09:05
список с пометками выдавай, и доп форма не нужна
2 Рэйв
 
21.06.12
09:05
Создай список значений подразделений с ТЧ, перед печатью  организуй выбор с пометками, по отмеченным печатай.
3 Gill
 
21.06.12
09:38
(2) а данные все-таки в доп.форму выгружать,да?
4 Gill
 
21.06.12
09:39
можно какой-нибудь пример
5 butterbean
 
21.06.12
09:43
ТвойСписок.ОтметитьЭлементы()
6 Gill
 
21.06.12
10:12
(5) спасибо,данные в список значений выгрузил,а дальше как...я до этого циклом перебирал ТЧ и получал соответствующие реквизиты ТЧ и выводил их на печать,а теперь как быть.Т.е. я имею ввиду кроме "заказчика" есть еще несколько реквизитов которые должны быть в печатной форме.
   спДанныеОтбора=Новый СписокЗначений;
   
   Запрос=Новый Запрос;
   Запрос.УстановитьПараметр("ЭтотДок", ЭтотОбъект.Ссылка);
   Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
                |    ЖурналУчетаНарядов.Заказчик
                |ИЗ
                |    Документ.ЖурналУчетаНарядов.Наряды КАК ЖурналУчетаНарядовНаряды
                |ГДЕ
                |    ЖурналУчетаНарядовНаряды.Ссылка.Ссылка = &ЭтотДок";
   Выборка=Запрос.Выполнить().Выбрать();
   Пока Выборка.Следующий() Цикл
       спДанныеОтбора.Добавить(Выборка.Заказчик);    
   КонецЦикла;    
       
   спДанныеОтбора.ЗагрузитьЗначения(Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Заказчик"));
   спДанныеОтбора.ОтметитьЭлементы();
7 Gill
 
21.06.12
10:14
прошу сильно не пинать,я впервые сталкиваюсь с СпискомЗначений
8 butterbean
 
21.06.12
10:24
(6) ну и теперь то-же самое, только фильтр поставь на отмеченные в твоем списке подразделения
9 Gill
 
21.06.12
10:25
(8) спасибо
10 Gill
 
21.06.12
15:22
Я видимо Алень,подскажите где ошибка,в макет вываливается без фильтра по галочкам.После запроса в (6) пишу это

   Запрос=Новый Запрос;
   Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
                |    ЖурналУчетаНарядовНаряды.Заказчик,
                |    ЖурналУчетаНарядовНаряды.Наряд,
                |    ЖурналУчетаНарядовНаряды.Работник
                |ИЗ
                |    Документ.ЖурналУчетаНарядов.Наряды КАК ЖурналУчетаНарядовНаряды
                |ГДЕ
                |    ЖурналУчетаНарядовНаряды.Ссылка.Ссылка = &ЭтотДок"
                |    И ЖурналУчетаНарядовНаряды.Заказчик В(&Список)";

   Выборка=Запрос.Выполнить().Выбрать();
   Запрос.УстановитьПараметр("ЭтотДок", ЭтотОбъект.Ссылка);
   Запрос.УстановитьПараметр("Список", спДанныеОтбора);
   
  Пока Выборка.Следующий() Цикл
   Для каждого Элемент из спДанныеОтбора Цикл
    Если Элемент.Пометка тогда

ОбластьНаряды = Макет.ПолучитьОбласть("Документы");    
ОбластьНаряды.Параметры.Заполнить(Выборка);

ТабДок.Вывести(ОбластьНаряды);
       
КонецЕсли;                                
КонецЦикла;    
КонецЦикла;

Область = Макет.ПолучитьОбласть("Визы");
           
Область.Параметры.Ответственный=
ПараметрыСеанса.ТекущийПользователь.Наименование;
           
ТабДок.Вывести(Область);            
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
11 Gill
 
21.06.12
15:26
Я видимо Алень,подскажите где ошибка,в макет вываливается без фильтра по галочкам.После запроса в (6) пишу это

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

   Запрос=Новый Запрос;
   Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
                |    ЖурналУчетаНарядовНаряды.Заказчик,
                |    ЖурналУчетаНарядовНаряды.Наряд,
                |    ЖурналУчетаНарядовНаряды.Работник
                |ИЗ
                |    Документ.ЖурналУчетаНарядов.Наряды КАК ЖурналУчетаНарядовНаряды
                |ГДЕ
                |    ЖурналУчетаНарядовНаряды.Ссылка.Ссылка = &ЭтотДок"
                |    И ЖурналУчетаНарядовНаряды.Заказчик В(&Список)";

   Выборка=Запрос.Выполнить().Выбрать();
   Запрос.УстановитьПараметр("ЭтотДок", ЭтотОбъект.Ссылка);
   Запрос.УстановитьПараметр("Список", спДанныеОтбора);
   
  Пока Выборка.Следующий() Цикл
   Для каждого Элемент из спДанныеОтбора Цикл
    Если Элемент.Пометка тогда

ОбластьНаряды = Макет.ПолучитьОбласть("Документы");    
ОбластьНаряды.Параметры.Заполнить(Выборка);

ТабДок.Вывести(ОбластьНаряды);
       
КонецЕсли;                                
КонецЦикла;    
КонецЦикла;

Область = Макет.ПолучитьОбласть("Визы");
           
Область.Параметры.Ответственный=
ПараметрыСеанса.ТекущийПользователь.Наименование;
           
ТабДок.Вывести(Область);            
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
12 kosts
 
21.06.12
15:33
(11) Ну видимо Список должен содержать только элементы с пометками (без пометок не должно быть).
13 Gill
 
21.06.12
15:43
список должен содержать только отмеченные позиции
14 Gill
 
21.06.12
15:50
^
15 Gill
 
21.06.12
16:12
какие будут варианты,господа!
16 Gill
 
21.06.12
16:40
^^
17 ssh2006
 
21.06.12
16:41
Выборка=Запрос.Выполнить().Выбрать();
Запрос.УстановитьПараметр("ЭтотДок", ЭтотОбъект.Ссылка);
Запрос.УстановитьПараметр("Список", спДанныеОтбора);
18 Gill
 
21.06.12
16:49
(17) ?
19 ssh2006
 
21.06.12
16:51
Странный участок. Параметры после выполнения запроса устанавливаются
20 Gill
 
21.06.12
17:10
(19) после перестановки параметров над текстом запроса ничего не изменилось
21 ssh2006
 
21.06.12
17:11
(20) попробуй закомментировать установку параметров
22 Gill
 
21.06.12
17:30
(21) ничего не изменилось
23 del123
 
21.06.12
17:33
Цикл второй у тебя классный) У тебя строки не замноживаются?:)
24 del123
 
21.06.12
17:35
Тебе в запрос надо передать список только то, что пометили галочками, а второй цикл вообще убрать надо
25 Gill
 
21.06.12
17:36
(23) действительно задваиваются....(24) а что именно убрать,че-то я не врубился
26 ssh2006
 
21.06.12
17:39
(22) поэтому и вываливается все без отбора. Перепиши свой код внимательно заново.
27 del123
 
21.06.12
17:42
после ТвойСписок.ОтметитьЭлементы() добавь
ы = 0;
Пока ы < ТвойСписок.Количество() цикл
    Если не ТвойСписок[ы].пометка тогда
         ТвойСписок.Удалить(ы);
    Иначе
         ы = ы + 1;
    КонецЕсли;
КонецЦикла;
28 Gill
 
21.06.12
17:52
всем спасибо,всё получилось