|
1С Печатная форма: Табличную часть документа в Word | ☑ | ||
---|---|---|---|---|
0
SpellGunner
15.08.18
✎
15:09
|
Добрый день!
Делаю внешнюю печатную форму документа. Выгружается в шаблон Word. Не могу вывести табличную часть документа их запроса. Заполняет только одну строку. Помогите решить проблему. Код ниже: &НаКлиенте Процедура ВывестиМакет(ОписаниеКоманды) //Документ = ОписаниеКоманды.ОбъектыПечати[0]; СтруктураПараметров = ПолучитьИзВременногоХранилища(ПечатьПисьма(Документ)); ДвоичныеДанныеМакета = ПолучитьИзВременногоХранилища(ПолучитьМакетСКлиента("Макет")); ИмяВрем = ПолучитьИмяВременногоФайла(".doc"); ДвоичныеДанныеМакета.Записать(ИмяВрем); Попытка Документ2 = ПолучитьCOMОбъект(ИмяВрем); Для Каждого Параметр из СтруктураПараметров Цикл Selection = Документ2.Content; Selection.Find.Execute("["+Параметр.Ключ+"]",Ложь,Истина,Ложь,,,Истина,,Ложь,Параметр.Значение,2); Документ2.Sections(1).Headers(1).Range.Find.Execute("["+Параметр.Ключ+"]", Ложь, Истина, Ложь, , , Истина, , Ложь, Параметр.Значение, 2); КонецЦикла; Документ2.Application.Visible = Истина; Документ2.Application.WindowState = 2; Документ2.Application.WindowState = 1; Документ2.Activate(); Исключение Сообщение = Новый СообщениеПользователю(); Сообщение.Текст = ОписаниеОшибки(); Сообщение.Сообщить(); Документ2.Application.Quit(); КонецПопытки; КонецПроцедуры &НаСервере Функция ПолучитьМакетСКлиента(Имя) ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); Макет = ОбработкаОбъект.ПолучитьМакет("Макет"); Возврат ПоместитьВоВременноеХранилище(Макет); КонецФункции //получаем структуру с параметрами &НаСервере Функция ПечатьПисьма(ДокументТекущий) Экспорт СтруктураПараметров = Новый Структура; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателя.Дата КАК Дата, | ЗаказПокупателя.Контрагент.Наименование КАК Грузополучатель, | ЗаказПокупателя.АдресДоставки КАК АдресДоставки, | NULL КАК НомерПозиции, | NULL КАК Номенклатура, | NULL КАК ЕдИзм, | NULL КАК Количество |ИЗ | Документ.ЗаказПокупателя КАК ЗаказПокупателя |ГДЕ | ЗаказПокупателя.Ссылка = &Ссылка | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | NULL, | NULL, | NULL, | ЗаказПокупателяЗапасы.НомерСтроки, | ЗаказПокупателяЗапасы.Номенклатура.Наименование, | ЗаказПокупателяЗапасы.ЕдиницаИзмерения.Наименование, | ЗаказПокупателяЗапасы.Количество |ИЗ | Документ.ЗаказПокупателя.Запасы КАК ЗаказПокупателяЗапасы"; Запрос.УстановитьПараметр("Ссылка",ДокументТекущий); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); //заполняем Дата + Если НЕ ЗначениеЗаполнено(Выборка.Дата) Тогда СтруктураПараметров.Вставить("Дата","<Дата>"); Иначе Дата = Формат(Выборка.Дата,"ДЛФ=Д"); СтруктураПараметров.Вставить("Дата",Дата); КонецЕсли; //заполняем Грузополучатель + Если НЕ ЗначениеЗаполнено(Выборка.Грузополучатель) Тогда СтруктураПараметров.Вставить("Грузополучатель","<Грузополучатель>"); Иначе Результат = Выборка.Грузополучатель; СтруктураПараметров.Вставить("Грузополучатель",Результат); КонецЕсли; //заполняем АдресДоставки + Если НЕ ЗначениеЗаполнено(Выборка.АдресДоставки) Тогда СтруктураПараметров.Вставить("АдресДоставки","<АдресДоставки>"); Иначе Результат = Выборка.АдресДоставки; СтруктураПараметров.Вставить("АдресДоставки",Результат); КонецЕсли; //заполняем Табличную часть + Пока Выборка.Следующий() Цикл //заполняем НомерПозиции + Если НЕ ЗначениеЗаполнено(Выборка.НомерПозиции) Тогда СтруктураПараметров.Вставить("НомерПозиции","<НомерПозиции>"); Иначе Результат = Выборка.НомерПозиции; СтруктураПараметров.Вставить("НомерПозиции",Результат); КонецЕсли; //заполняем Номенклатуру + Если НЕ ЗначениеЗаполнено(Выборка.Номенклатура) Тогда СтруктураПараметров.Вставить("Номенклатура","<Номенклатура>"); Иначе Результат = Выборка.Номенклатура; СтруктураПараметров.Вставить("Номенклатура",Результат); КонецЕсли; //заполняем ЕдИзм + Если НЕ ЗначениеЗаполнено(Выборка.ЕдИзм) Тогда СтруктураПараметров.Вставить("ЕдИзм","<ЕдИзм>"); Иначе Результат = Выборка.ЕдИзм; СтруктураПараметров.Вставить("ЕдИзм",Результат); КонецЕсли; //заполняем ЕдИзм + Если НЕ ЗначениеЗаполнено(Выборка.Количество) Тогда СтруктураПараметров.Вставить("Количество","<Количество>"); Иначе Результат = Выборка.Количество; СтруктураПараметров.Вставить("Количество",Результат); КонецЕсли; КонецЦикла; Возврат ПоместитьВоВременноеХранилище(СтруктураПараметров); КонецФункции // ПечатьПисьма() |
|||
1
Fedor-1971
15.08.18
✎
15:25
|
(0) мощно. Добавить ко всем документам Документ.ЗаказПокупателя.Запасы данные ОДНОЙ, указанной, ссылки
По коду: Выборка.Следующий() - данные из первой строки ТЧ ты ни как не обработал Сделай пакет запросов: 1. выбери данные шапки 2. доставай инфу из ТЧ (только ограничь выборку Ссылкой) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |