Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 12:10

Помогите сделать печатный документ

Автор vaxilion, 07 июн 2016, 17:46

0 Пользователей и 1 гость просматривают эту тему.

vaxilion

Помогите пожалуста сделать печатный документ ВыданаяНН. Есть макет для печати. Его выводит, но без данных из документа. Написал такую процедуру:
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
//ТабДокумент = Новый ТабличныйДокумент;
//ТабДокумент.КлючПараметровПечати  = "ПАРАМЕТРЫ_ПЕЧАТИ_НалоговаяНакладная_2016" + ИмяМакета;
Макет = Документы.ВыданнаяНН.ПолучитьМакет("НДС2016Альбом");
//Если ИмяМакета = "НалоговаяНакладнаяАльбом" Тогда
// Макет = ПолучитьМакет("НДС2016Альбом");
// ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
//КонецЕсли;


Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ

| ВыданнаяНН.ВидНДС,
| ВыданнаяНН.Выписал,
| ВыданнаяНН.Дата,
| ВыданнаяНН.ДатаДокумента,
| ВыданнаяНН.ЕРНН,
| ВыданнаяНН.ЕстьНулевыеСтавкиНДС,
| ВыданнаяНН.Итоговая,
| ВыданнаяНН.Контрагент,
| ВыданнаяНН.НДС,
| ВыданнаяНН.Номер,
| ВыданнаяНН.НомерДокумента,
| ВыданнаяНН.Организация,
| ВыданнаяНН.ВидОперации,
| ВыданнаяНН.Оставляем,
| ВыданнаяНН.СпецРежимНалогообложения,
| ВыданнаяНН.СуммаБезНДС,
| ВыданнаяНН.СуммаСНДС,
| ВыданнаяНН.УточняющийРасчет,
| ВыданнаяНН.Состав.(
| НомерСтроки,
| Номенклатура,
| СуммаБезНДС,
| НДС,
| СуммаСНДС,
| ЦенаБезНДС,
| ЦенаСНДС,
| Количество,
| ЕдиницаИзмерения,
| КодУКТВЭД
| )
|ИЗ
| Документ.ВыданнаяНН КАК ВыданнаяНН
|ГДЕ
| ВыданнаяНН.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();



ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПробел = Макет.ПолучитьОбласть("Пробел");

Оригинал = Макет.ПолучитьОбласть("Оригинал");
//Заголовок = Макет.ПолучитьОбласть("Заголовок");

Шапка = Макет.ПолучитьОбласть("Шапка");
//ОбластьСоставШапка = Макет.ПолучитьОбласть("СоставШапка");
//ОбластьСостав = Макет.ПолучитьОбласть("Состав");
ОбластьСостав = Макет.ПолучитьОбласть("РазделI");
Подвал = Макет.ПолучитьОбласть("Подвал");

ТабДок.Очистить();

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

//ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьПробел);
ТабДок.Вывести(Оригинал);

Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

//ТабДок.Вывести(ОбластьСоставШапка);
ВыборкаСостав = Выборка.Состав.Выбрать();
Пока ВыборкаСостав.Следующий() Цикл
ОбластьСостав.Параметры.Заполнить(ВыборкаСостав);
ТабДок.Вывести(ОбластьСостав, ВыборкаСостав.Уровень());
КонецЦикла;

Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);

ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры


Вот так выгледит макет

Помогите дописать процедуру, чтобы все выводило из документа.

crow1983

Выборка.Следующий (); после первого запроса. Через отладку можно посмотреть результаты.
Преподаватель, программист...и просто хороший человек

Тём

ЧТо то мне подсказывает, что наименования полей выборки не соответствуют наименованиям параметров в макете. Программа не знает что куда вставлять. Воспользуйтесь в запросе представлениями строк.

Далее, область "Оригинал" вообще ничем не заполняется.

Далее, цикл Выборка.Следующий() в цикле Выборка.Следующий(), работать должно, но выглядит не слишком красиво.

vaxilion

Цитировать
ЧТо то мне подсказывает, что наименования полей выборки не соответствуют наименованиям параметров в макете. Программа не знает что куда вставлять. Воспользуйтесь в запросе представлениями строк.

Далее, область "Оригинал" вообще ничем не заполняется.

Далее, цикл Выборка.Следующий() в цикле Выборка.Следующий(), работать должно, но выглядит не слишком красиво.

Помогло исправление названий параметров в макете
Добавлено: 08 июн 2016, 14:49


1 вопрос. Как сделать так, чтобы дата разбивалась по ячейках? Например не так 08.06.2016 должно быть, а 0 8 0 6 2 0 1 6 в каждой клетке.

Golickoff

Цитата: vaxilion от 08 июн 2016, 12:40
Как сделать так, чтобы дата разбивалась по ячейках? Например не так 08.06.2016 должно быть, а 0 8 0 6 2 0 1 6 в каждой клетке.
На макете не видно. Напишите как называются параметры даты, хотя бы первые два.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

vaxilion

Цитата: Golickoff от 08 июн 2016, 15:14
Цитата: vaxilion от 08 июн 2016, 12:40
Как сделать так, чтобы дата разбивалась по ячейках? Например не так 08.06.2016 должно быть, а 0 8 0 6 2 0 1 6 в каждой клетке.
На макете не видно. Напишите как называются параметры даты, хотя бы первые два.
Датадокумента_1, ДатаДокумента_2 и т.д.
Добавлено: 08 июн 2016, 15:21


Цитата: vaxilion от 08 июн 2016, 15:18
Цитата: Golickoff от 08 июн 2016, 15:14
Цитата: vaxilion от 08 июн 2016, 12:40
Как сделать так, чтобы дата разбивалась по ячейках? Например не так 08.06.2016 должно быть, а 0 8 0 6 2 0 1 6 в каждой клетке.
На макете не видно. Напишите как называются параметры даты, хотя бы первые два.
Датадокумента_1, ДатаДокумента_2 и т.д.

Сама нужная мне дата храниться в  |    ВыданнаяНН.ДатаДокумента,

Golickoff

ДатаТекст=СтрЗаменить(Строка(Формат(ВыданнаяНН.ДатаДокумента,"MM.DD.yyyy"),".","")
Для Симв = 1 По СтрДлина(ДатаТекст) Цикл
     ТекущийСимвол = Сред(ДатаТекст, Симв, 1);
     НужнаяОбласть.Параметры["ДатаДокумента_" + Строка(Симв)] = ТекущийСимвол;
КонецЦикла;

Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

vaxilion

ОбластьШапка.Параметры.Заполнить(Выборка);
ДатаДокумента = Выборка.Выбрать(ДатаДокумента);
Для Симв = 1 По СтрДлина(ДатаДокумента) Цикл
     ТекущийСимвол = Сред(ДатаДокумента, Симв, 1);
    ОбластьШапка.Параметры["ДатаДокумента_1" + Строка(Симв)] = ТекущийСимвол;
КонецЦикла;

ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());




Golickoff

Скопируйте сюда текст ошибки, скрывающийся за кнопкой "Подробно...".
Добавлено: 08 июн 2016, 15:39


Можете не копировать. Я чуть позже дописал код, посмотрите предыдущее сообщение. Вам нужно превратить дату в строку.
Добавлено: 08 июн 2016, 15:40


После строки ДатаДокумента = Выборка... вставьте этоДатаТекст=СтрЗаменить(Строка(Формат(ДатаДокумента,"MM.DD.yyyy"),".","")
Для Симв = 1 По СтрДлина(ДатаТекст) Цикл
     ТекущийСимвол = Сред(ДатаТекст, Симв, 1);
     НужнаяОбласть.Параметры["ДатаДокумента_" + Строка(Симв)] = ТекущийСимвол;
КонецЦикла;

Добавлено: 08 июн 2016, 15:41


А вот эту строку ОбластьШапка.Параметры["ДатаДокумента_" + Строка(Симв)] = ТекущийСимвол; оставьте как есть. Не нужно в неё ничего дописывать. "ДатаДокумента_" так и должна быть "ДатаДокумента_".
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

vaxilion

Написал так: 

ОбластьШапка.Параметры.Заполнить(Выборка);
      ДатаДокумента = Выборка.Выбрать(ДатаДокумента);
      ДатаТекст=СтрЗаменить(Строка(Формат(ДатаДокумента,"MM.DD.yyyy"),".","")
Для Симв = 1 По СтрДлина(ДатаТекст) Цикл
     ТекущийСимвол = Сред(ДатаТекст, Симв, 1);
     ОбластьШапка.Параметры["ДатаДокумента_" + Строка(Симв)] = ТекущийСимвол;
КонецЦикла;

ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());


Ошыбка: {Документ.ВыданнаяНН.МодульМенеджера(148,66)}: Ожидается символ ')'
      ДатаТекст=СтрЗаменить(Строка(Формат(ДатаДокумента,"MM.DD.yyyy")<<?>>,".","") (Проверка: Сервер)



не вижу где нехватает дужки :D

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск