Как сделать нумерацию страниц в печатной форме УПД
Добрый день! Подскажите, как сделать нумерацию страниц в печатной форме УПД ? Платформа 8.3 УТ 10.3.20.2
Есть внешняя печатная форма УПД. Задача стоит выводить на каждом листе внизу надпись типа: "с\ф №, от число , стр.1" . В коде нашел такие строки:
Отладчиком не могу попасть в строки с выводом ВерхнийКолонтитул.
Есть внешняя печатная форма УПД. Задача стоит выводить на каждом листе внизу надпись типа: "с\ф №, от число , стр.1" . В коде нашел такие строки:
Функция ПечатьУниверсальногоПередаточногоДокументаэ(ДанныеДокумента, СчетФактураТребуется, СтруктураОтбораСчетаФактуры = Неопределено, ТабДокумент = Неопределено) Экспорт
Если ТабДокумент = Неопределено Тогда
ТабДокумент = Новый ТабличныйДокумент;
// Устанавливаем параметры печати и колонтитулы
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСверху = 12;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
КонецЕсли;
ТабДокумент.ВерхнийКолонтитул.Выводить = Истина;
ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 2;
ТабДокумент.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
НомерНаПечатьСтрокой = ОбщегоНазначения.ПолучитьНомерНаПечать(ДанныеДляПечати);
ДатаНаПечатьСтрокой = Формат(ДанныеДляПечати.Дата, "ДФ='дд ММММ гггг'") + " г.";
ЗаголовокДляПечати = "Универсальный передаточный документ № " + НомерНаПечатьСтрокой + " от " + ДатаНаПечатьСтрокой;
ТабДокумент.ВерхнийКолонтитул.ТекстСлева = ЗаголовокДляПечати;
ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы]";
Возврат ТабДокумент;
ПоказатьОтладчиком не могу попасть в строки с выводом ВерхнийКолонтитул.
По теме из базы знаний
- Печатные формы КС-2 и КС-3 в "1С:Бухгалтерия 3.0"
- Групповая выгрузка и загрузка файлов XML для ЭДО в каталог по приказу №820 ФНС (для УТ 10.3/11, КА2, ERP2, БП3, УНФ, УПП1.3, Розница2.3). Поддержка маркировки. Прослеживание товаров.
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Добрый день. В смысле "Отладчиком не могу попасть в строки с выводом ВерхнийКолонтитул"? - т.е. ставите точку останова, и на ней не срабатывает? (не стопориться 1С-ка)?
И почему функция называется ПечатьУниверсальногоПередаточногоДокументаэ - на конце буква Э? - это самописная печатная форма?
И Запускаете печать на управляемом интерфейсе?
И почему функция называется ПечатьУниверсальногоПередаточногоДокументаэ - на конце буква Э? - это самописная печатная форма?
И Запускаете печать на управляемом интерфейсе?
(2)Скорее всего самописная(либо измененная точно не знаю). Запускаю отладку так: ОбщийМодуль - УнниверсальныеМиханизмы в Функции НапечататьВнешнююФорму на строке ТабДокумент = Обработка.Печать(); ставлю точку ,запускаю предприятие далее открываю документ нажимаю печать выбираю печать УПД и попадаю отладчиком в модуль ОбщийМодуль - УнниверсальныеМиханизмы , далее нажимаю F11 попадаю во временный файл(так понимаю) модуль объекта внешней печатной формы. Далее смотрю по строкам что присходит.
(9)Отладчиком дохожу до строк и прохожу по ним :
В табло вижу, что эти строки заполнены,а вот до строк с описанием колонтитула отладчиком дойти не могу, и в табло эти строки пустые. Точнее в "ТабДокумент". Сколько не гоняю отладчик по строкам, до них так и не добрался
Если ТабДокумент = Неопределено Тогда
ТабДокумент = Новый ТабличныйДокумент;
// Устанавливаем параметры печати и колонтитулы
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСверху = 12;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 0;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
КонецЕсли;
ПоказатьВ табло вижу, что эти строки заполнены,а вот до строк с описанием колонтитула отладчиком дойти не могу, и в табло эти строки пустые. Точнее в "ТабДокумент". Сколько не гоняю отладчик по строкам, до них так и не добрался
Вот полный код:
Функция ПечатьУниверсальногоПередаточногоДокументаэ(ДанныеДокумента, СчетФактураТребуется, СтруктураОтбораСчетаФактуры = Неопределено, ТабДокумент = Неопределено) Экспорт
Если ДанныеДокумента.Дата < ДатаНачалаПримененияУПД() Тогда
ТекстСообщения = НСтр("ru = 'Применение формы универсального передаточного (отгрузочного) документа возможно только с "+ДатаНачалаПримененияУПД(Истина)+"!'");
СообщитьПользователю(ТекстСообщения);
Возврат Неопределено;
КонецЕсли;
Если СтруктураОтбораСчетаФактуры = Неопределено Тогда
СчетФактура = НайтиПодчиненныйСчетФактуру(СсылкаНаОбъект, "СчетФактураВыданный");
Иначе
СчетФактура = НайтиПодчиненныйСчетФактуру(СсылкаНаОбъект, "СчетФактураВыданный", СтруктураОтбораСчетаФактуры);
КонецЕсли;
Если ТабДокумент = Неопределено Тогда
ТабДокумент = Новый ТабличныйДокумент;
// Устанавливаем параметры печати и колонтитулы
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДокумент.ПолеСверху = 12;
ТабДокумент.ПолеСлева = 0;
ТабДокумент.ПолеСнизу = 10;
ТабДокумент.ПолеСправа = 0;
ТабДокумент.АвтоМасштаб = Истина;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент";
КонецЕсли;
Если ЗначениеЗаполнено(СчетФактура) ИЛИ СчетФактураТребуется
Тогда
// УПД печатается из документа счет-фактура
Если НЕ ЗначениеЗаполнено(СчетФактура) Тогда
ТекстСообщения = ПодставитьПараметрыВСтроку(
НСтр("ru = 'По документу ""%1"" не выписан счет-фактура или он помечен на удаление!'"), ДанныеДокумента.ДокументСсылка);
СообщитьПользователю(ТекстСообщения);
Возврат Неопределено;
КонецЕсли;
РеквизитыСФ = ПолучитьЗначенияРеквизитов(СчетФактура, "Дата, ВидСчетаФактуры, Исправление,НомерИсправления,
|СчетФактураБезНДС");
ДанныеДокумента.Вставить("Ссылка", СчетФактура);
ДанныеДокумента.Вставить("Дата", РеквизитыСФ.Дата);
ДанныеДокумента.Вставить("ВидСчетаФактуры", РеквизитыСФ.ВидСчетаФактуры);
ДанныеДокумента.Вставить("Исправление", РеквизитыСФ.Исправление);
ДанныеДокумента.Вставить("НомерИсправления", РеквизитыСФ.НомерИсправления);
ДанныеДокумента.Вставить("СчетФактураБезНДС", РеквизитыСФ.СчетФактураБезНДС);
СчетФактураОбъект = СчетФактура.ПолучитьОбъект();
ДанныеДляПечати = СФПодготовитьДанныеДляПечатиУниверсальногоПередаточногоДокум ента(СчетФактураОбъект, ДанныеДокумента);
Если ДанныеДляПечати = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Если ДанныеДокумента.Свойство("ДатаОтгрузкиПередачи") Тогда
ДанныеДляПечати.Вставить("ДатаОтгрузкиПередачи", ДанныеДокумента.ДатаОтгрузкиПередачи);
КонецЕсли;
СФПечатьУниверсальногоПередаточногоДокумента(ДанныеДляПечати, ТабДокумент);
Возврат ТабДокумент;
КонецЕсли;
// УПД печатается по статусу 2
ДанныеДляПечати = ПодготовитьДанныеДляПечатиУниверсальногоПередаточногоДокумен та(ДанныеДокумента);
Если ДанныеДляПечати = Неопределено Тогда
Возврат Неопределено;
КонецЕсли;
Макет = ПолучитьМакет("УниверсальныйПередаточныйДокумент");
ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати);
ВывестиПодвалУниверсальногоПередаточногоДокументаВТабличныйД окумент(ТабДокумент, Макет, ДанныеДляПечати);
// Устанавливаем параметры печати и колонтитулы
ТабДокумент.НижнийКолонтитул.Выводить = Истина;
ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 2;
ТабДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
НомерНаПечатьСтрокой = ОбщегоНазначения.ПолучитьНомерНаПечать(ДанныеДляПечати);
ДатаНаПечатьСтрокой = Формат(ДанныеДляПечати.Дата, "ДФ='дд ММММ гггг'") + " г.";
ЗаголовокДляПечати = "Универсальный передаточный документ № " + НомерНаПечатьСтрокой + " от " + ДатаНаПечатьСтрокой;
ТабДокумент.НижнийКолонтитул.ТекстСлева = ЗаголовокДляПечати;
ТабДокумент.НижнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы]";
Возврат ТабДокумент;
КонецФункции
Показать
в Процедура ВывестиСчетФактуруВТабличныйДокумент(ТабДокумент, Макет, ДанныеДляПечати) Экспорт
в цикле вывода строк есть
тут есть количество стр
Если ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); в макете в область добавить то что в колонтитуле, то будет выводится(Как например в ТОРГ-12).Правда для 1 стр это будет некрасиво, поэтому нужно эту область в макете скопировать - добавить строку сверху про количество стр и назвать ЗаголовокТаблицы1 и в цикле выводитьэту область ЗаголовокТаблицы1, а в начале процедуры на первой стр оставить как есть вывод ЗаголовокТаблицы.
в цикле вывода строк есть
Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
Если КоличествоСтрок > 0 Тогда
// Вывод разделителя и заголовка таблицы на новой странице
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
КоличествоСтраниц = КоличествоСтраниц + 1;
КонецЕсли;
КонецЕсли;
Показатьтут есть количество стр
Если ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); в макете в область добавить то что в колонтитуле, то будет выводится(Как например в ТОРГ-12).Правда для 1 стр это будет некрасиво, поэтому нужно эту область в макете скопировать - добавить строку сверху про количество стр и назвать ЗаголовокТаблицы1 и в цикле выводитьэту область ЗаголовокТаблицы1, а в начале процедуры на первой стр оставить как есть вывод ЗаголовокТаблицы.
(21) у вас выход из функции ПечатьУниверсальногоПередаточногоДокументаэ происходит не в конце функции, а после СФПечатьУниверсальногоПередаточногоДокумента()
поэтому нижний колонтитул не устанавливается.
Надо перед этим возвратом также установить нижний колонтитул.
Исправленный вариант:
поэтому нижний колонтитул не устанавливается.
Надо перед этим возвратом также установить нижний колонтитул.
Исправленный вариант:
Прикрепленные файлы:
УПДv2.epf
Чтобы заработало нужно
1) удалить существующую ВПФ в базе и установить новую.
2) в параметрах страницы установить По ширине страницы
1) удалить существующую ВПФ в базе и установить новую.
2) в параметрах страницы установить По ширине страницы
Прикрепленные файлы:
УПД_Инфостарт v2.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот