|
Внешняя управляемая обработка | ☑ | ||
---|---|---|---|---|
0
Wefast
15.05.15
✎
14:06
|
На форме я выбираю документ. Заполняется табличная часть на форме из этого документа.
По кнопке эта табличная часть обрабатывается и получается табличныйдокумент, который мне надо вывести. Если я просто указываю табдок.показать() он появляется но форма эта жутко кривая и главное без кнопки печати. Вопрос в том как мне все это сделать правильно, чтобы документ вывелся в новой форме с полноценной командной панелью? |
|||
1
Cyberhawk
15.05.15
✎
14:06
|
С полноценной это с какой?
|
|||
2
Wefast
15.05.15
✎
14:10
|
ну как стандартная форма печати. Кнопка печати, да кол-во копий уже будет достаточно
|
|||
3
Lexey_
15.05.15
✎
14:12
|
(2) передавай табдок в стандартную форму печати
|
|||
4
Cyberhawk
15.05.15
✎
14:18
|
Покажи на картинке
|
|||
5
Wefast
15.05.15
✎
16:37
|
(4) картинку чего?
Сделал в общем новую форму и пишу: &НаКлиенте Процедура Вывести(Команда) труп = Объект.ТабЧасть; // табличная часть из основной формы док = СформироватьПечатнуюФормуRU(труп); //тут возвращается табличный документ ТабДокумент = док; //ТабДокумент это реквезит которым заполняется таб поле доп формы Форма = ОткрытьФорму("ВнешняяОбработка.ПечатьЭтикеток.Форма.ПечатьДока"); КонецПроцедуры В общем форма то выводится. Но на ней есть табличное поле. И вот оно не заполняется |
|||
6
Wefast
15.05.15
✎
16:40
|
Пробовал
Форма = ОткрытьФорму("ВнешняяОбработка.ПечатьЭтикеток.Форма.ПечатьДока", Новый Структура("ТабДокумент", Док)); Но либо я как то не так передаю, либо даже не знаю |
|||
7
Wefast
15.05.15
✎
17:16
|
Вот так в общем выглядит модуль основной формы:
&НаКлиенте Процедура Вывести(Команда) труп = Объект.ТабЧасть; // табличная часть из основной формы док = СформироватьПечатнуюФормуRU(труп); //тут возвращается табличный документ ТабДокумент = док; //ТабДокумент это реквезит которым заполняется таб поле доп формы Форма = ОткрытьФорму("ВнешняяОбработка.ПечатьЭтикеток.Форма.ПечатьДока", Новый Структура("ТабДокумент", Док)); ФОрма.Объект.ТабДокумент = Док; КонецПроцедуры &НаКлиенте Процедура ДокументПриИзменении(Элемент) ппп(); КонецПроцедуры &НаСервере Функция ппп() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтборРазмещениеТоваровТоварыРазмещение.Количество, | ОтборРазмещениеТоваровТоварыРазмещение.КоличествоУпаковок, | ОтборРазмещениеТоваровТоварыРазмещение.Упаковка, | ОтборРазмещениеТоваровТоварыРазмещение.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ОтборРазмещениеТоваровТоварыРазмещение.Ячейка, | ОтборРазмещениеТоваровТоварыРазмещение.Номенклатура, | ОтборРазмещениеТоваровТоварыРазмещение.Номенклатура.Артикул КАК Артикул, | ОтборРазмещениеТоваровТоварыРазмещение.Ссылка.Дата, | 1 КАК Галочка |ИЗ | Документ.ОтборРазмещениеТоваров.ТоварыРазмещение КАК ОтборРазмещениеТоваровТоварыРазмещение |ГДЕ | ОтборРазмещениеТоваровТоварыРазмещение.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Объект.Документ); РезультатЗапроса = Запрос.Выполнить(); Объект.ТабЧасть.Загрузить(РезультатЗапроса.Выгрузить()); КонецФункции &НаСервере Функция СформироватьПечатнуюФормуRU(ТабличнаяЧасть) Экспорт УстановитьПривилегированныйРежим(Истина); ТабДок = Новый ТабличныйДокумент; ТабДок.ИмяПараметровПечати = "Этикетки"; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; Макет = ПолучитьМакетНаСервере(); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТЧ = ТабличнаяЧасть.Выгрузить(); Для каждого Строка из ТЧ Цикл Если Строка.Галочка = ИСТИНА ТОГДА Для Счетчик = 1 по Строка.КоличествоУпаковок Цикл ЗапросШтри = Новый Запрос; ЗапросШтри.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ЕСТЬNULL(ШтрихкодыНоменклатуры.Штрихкод, """") КАК Штрихкод |ИЗ | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры |ГДЕ | ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура"; ЗапросШтри.УстановитьПараметр("Номенклатура", Строка.Номенклатура); РезультатЗапросаШтри = ЗапросШтри.Выполнить(); ВыборкаШтрихкода = РезультатЗапросаШтри.Выбрать(); Если ВыборкаШтрихкода.Количество()>0 Тогда Пока ВыборкаШтрихкода.Следующий() Цикл ШтрихкодДокумента = ВыборкаШтрихкода.Штрихкод; КонецЦикла; Иначе ШтрихкодДокумента = ""; КонецЕсли; //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА //ШтрихкодДокумента = "234235235";//?(ВыборкаДетальныеЗаписи.Штрихкод<>NULL, ВыборкаДетальныеЗаписи.Штрихкод, ""); ПараметрыШтрихкода = Новый Структура; ПараметрыШтрихкода.Вставить("Ширина", 300); ПараметрыШтрихкода.Вставить("Высота", 180); ПараметрыШтрихкода.Вставить("Штрихкод", СокрЛП(ШтрихкодДокумента)); ПараметрыШтрихкода.Вставить("ТипКода", 4); // EAN13 ПараметрыШтрихкода.Вставить("ОтображатьТекст", Истина); ПараметрыШтрихкода.Вставить("РазмерШрифта", 40); Если ШтрихкодДокумента <> ""Тогда ОбластьШапка.Рисунки.Штрихкод.Картинка = МенеджерОборудованияВызовСервера.ПолучитьКартинкуШтрихкода(ПараметрыШтрихкода); КонецЕсли; ОбластьШапка.Параметры.Ячейка = Строка.Ячейка; ОбластьШапка.Параметры.Артикул = Строка.Артикул; ОбластьШапка.Параметры.Дата = фОРМАТ(Строка.Дата,"ДФ='dd MMMM yyyy'"); ОбластьШапка.Параметры.Номенклатура = Строка.Номенклатура; //ОбластьШапка.Рисунки.Штрихкод.Картинка = ПолучитьКартинкуШтрихкода(ВнешняяКомпонента, ШтрихкодДокумента, 50, 30); ОбластьШапка.Параметры.Вес = ""+Строка.Количество + " " + ?(Строка.ЕдиницаИзмерения <>NULL,Строка.ЕдиницаИзмерения,""); ТабДок.Вывести(ОбластьШапка); ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЦикла; КонецЕсли; КонецЦикла; ТабДок.АвтоМасштаб = ИСТИНА; Возврат ТабДок; КонецФункции // СформироватьПечатнуюФормуRU() &НаСервере Функция ПолучитьМакетНаСервере() ОтчетОбъект = РеквизитФормыВЗначение("Объект"); Макет = ОтчетОбъект.ПолучитьМакет("ОтборРазмещениеТоваров"); Возврат Макет; КонецФункции |
|||
8
Любопытная
15.05.15
✎
18:05
|
(7) Ты этикетки печатать хочешь что ли?
|
|||
9
Wefast
19.05.15
✎
12:17
|
(8) да
|
|||
10
zhig75
19.05.15
✎
12:19
|
(0) Создай реквизит формы с типом табличный документ, и верти его как тебе вздумается.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |