![]() |
|
Отбор в ТЧ | ☑ | ||
---|---|---|---|---|
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
|
всем спасибо,всё получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |