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

Перенос на новую страницу при нехватке места

Автор Владислав Головлёв, 15 мая 2016, 13:09

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

Владислав Головлёв

Здравствуйте! Имеется печатная форма, в табличном документе выводится таблица (заполняется в цикле) и подвал с подписями, так вот мне необходимо следующее: если на страницу не входит таблица + подвал, то последнюю строку таблицы вместе с подвалом переносить на новую страницу. Пробую сделать следующим образом:
Если Не ТабДокумент.ПроверитьВывод(МассивОбластей) и СтрокаТоваров.НомерСтроки = СсылкаНаОбъект.Товары.Количество()-1 Тогда

ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();

КонецЕсли;


В данной ситуации происходит следующее: если таблица + подвал не входит на страницу, то последнюю строку таблицы вместе с подвалом переносит на новую страницу, НО если таблица к примеру на несколько страниц и на последней страницы нормально входит часть таблицы + подвал, то он все равно переносит последнюю строку таблицы вместе с подвалом на новую страницу. Вопрос в следующем: как проверить, что на страницу влезает и подвал и часть таблицы?

Kironten

Добавить в проверочный массив (МассивОбластей) область строки и область подвала.
Неожиданно, правда?:)

cska-fanat-kz

проверять вывод надо не всей таблицы+подвал, а только область из одной строки + подвал.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

logop3d

Добрый день, нужно вставить перенос последней строчки таблицы на новую страницу если подвал переходит на другую страницу. Вижу сверху код

Если Не ТабДокумент.ПроверитьВывод(МассивОбластей) и СтрокаТоваров.НомерСтроки = СсылкаНаОбъект.Товары.Количество()-1 Тогда
               
                ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
               
КонецЕсли;

Но не особо понимаю как его добавить себе в код

Функция ПечатьОтветНаЗаявку (МассивОбъектов, ОбъектыПечати, ИмяМакета)
   
   УстановитьПривилегированныйРежим(Истина);

   ПервыйДокумент = Истина;
   
   Макет = ПолучитьМакет("ОтветНаЗаявку");
   
   ТабДокумент = Новый ТабличныйДокумент;
   ТабДокумент.АвтоМасштаб         = Истина;
   ТабДокумент.ОриентацияСтраницы   = ОриентацияСтраницы.Портрет;
   ТабДокумент.ПолеСверху    = 0;
   ТабДокумент.ПолеСлева    = 0;
   ТабДокумент.ПолеСнизу    = 0;
   ТабДокумент.ПолеСправа   = 0;
   ТабДокумент.РазмерКолонтитулаСверху = 0;
   ТабДокумент.РазмерКолонтитулаСнизу   = 0;   
   
   Для Каждого Строка Из МассивОбъектов Цикл
      
      Организация = Строка.Организация;
      Время = Строка.МоментВремени();
      ИсходныйНомер = Строка.Номер;
      СведенияКонтр = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(Справочники.Организации.НайтиПоРеквизиту("ИНН","5257013900", Справочники.Организации), ТекущаяДата());
   
      
      ОбластьШапки = Макет.ПолучитьОбласть("ОбластьШапки");
      ОбластьШапки.Параметры.Дата = Формат(Время.Дата," ДФ=гггг" );
      ОбластьШапки.Параметры.Реквизиты =  СведенияКонтр.ФактическийАдрес + (",");
      ОбластьШапки.Параметры.БанкИнфо =   ("ИНН ") + СведенияКонтр.ИНН + (", ")+("КПП ") + СведенияКонтр.КПП +  (", Р/сч ") +СведенияКонтр.НомерСчета +
                                    (", Кор/сч. ")   + СведенияКонтр.КоррСчет;
      ОбластьШапки.Параметры.БанкКонтакт = ("в ") +    СведенияКонтр.Банк   +  (" БИК ") + СведенияКонтр.БИК;
      ТабДокумент.Вывести(ОбластьШапки);
      
   
            
      ОбластьОтвет = Макет.ПолучитьОбласть("ОбластьОтвет");   
      ТабДокумент.Вывести(ОбластьОтвет);
      
      ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ОбластьШапкаТаблицы");   
      ТабДокумент.Вывести(ОбластьШапкаТаблицы);
      
      ОбластьСтрока = Макет.ПолучитьОбласть("ОбластьСтрока");
      
      ИтогоБезНДС = 0;
      НДС = 0;
      
      Для Каждого Элемента Из Строка.Товары Цикл

         ОбластьСтрока.Параметры.Номер = Элемента.НомерСтроки;
         ОбластьСтрока.Параметры.Номенклатура = Элемента.Номенклатура.НаименованиеПолное;
         ОбластьСтрока.Параметры.ЕдИзм = Элемента.Номенклатура.ЕдиницаИзмерения.Наименование;
         ОбластьСтрока.Параметры.КолВо = Элемента.Количество;
         ОбластьСтрока.Параметры.Цена = Элемента.Цена;
         ОбластьСтрока.Параметры.Сумма = Элемента.Сумма;
      
         ИтогоБезНДС = ИтогоБезНДС + Элемента.Сумма;
         НДС = НДС + Элемента.СуммаНДС;
         
      Если не ТабДокумент.ПроверитьВывод(ОбластьСтрока) Тогда      
      ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
      ТабДокумент.Вывести(ОбластьШапкаТаблицы);
      КонецЕсли;
                     

         ТабДокумент.Вывести(ОбластьСтрока);
         

      КонецЦикла;
      
   
      ОбластьБезНДС = Макет.ПолучитьОбласть("ОбластьБезНДС");   
      ОбластьБезНДС.Параметры.ИтогоБезНДС = ИтогоБезНДС;      
      ТабДокумент.Вывести(ОбластьБезНДС);
      
      ОбластьНДС = Макет.ПолучитьОбласть("ОбластьНДС");   
      ОбластьНДС.Параметры.НДС = НДС;      
      ТабДокумент.Вывести(ОбластьНДС);
      
      ОбластьИтого = Макет.ПолучитьОбласть("ОбластьИтого");   
      ОбластьИтого.Параметры.Итого = Строка.СуммаДокумента;   
      ТабДокумент.Вывести(ОбластьИтого);
            
      ОбластьПодвал = Макет.ПолучитьОбласть("ОбластьПодвал");         
   
      ТабДокумент.Вывести(ОбластьПодвал);                 
КонецЦикла;
   Возврат ТабДокумент;   
   ТабДокумент.Показать();
   
КонецФункции

Теги:

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

Рейтинг@Mail.ru

Поиск