Повторение строк заголовка на каждой странице при обработке файлов Excel средствами платформы 1С:Предприятие

23.01.19

Интеграция - Загрузка и выгрузка в Excel

Вопросы повторения строк на каждой странице при работе с файлом Excel из программы, работающей в системе 1С.

При разработке печатной формы средствами платформы 1С:Предприятие есть возможность повторять при печати строки (заголовка, например) на каждом листе. Все просто, проблем нет. Заголовок повторяется на каждой странице. То же самое реализуется и в ПО Excel.

Когда возникла необходимость выполнить повторение заголовков на каждом листе  при подготовке к печати файла Excel, формируемого  программой, работающей в системе 1С, пришлось потратить много времени на поиск необходимой  информации. Безуспешно. Возможно, я плохо искал и еще надо было покурить мануал по методам Excel.

Расставить заголовки можно программно, последовательно измеряя высоту строк. Недостатки у данного метода, конечно, есть:

  1. Редактирование файла приведет к смещению заголовков. Решение: так же, программно, можно убрать заголовки и расставить их вновь.
  2. Изменение масштаба, либо отступов приведет к смещению заголовков и повторная расстановка заголовков уже не поможет. Необходимо задать новую высоту страницы. В принципе, ее можно рассчитать, либо подобрать. 

Можно вообще для вывода использовать уже настроенный файл-шаблон Excel.

Но, если формируемый документ является отчетом, не предназначенным к дальнейшему изменению вручную, либо файл передается для последующего вывода на печать, стоит отдать предпочтение предлагаемому предельно простому методу.

Приведенный ниже программный код прост и понятно закомментирован. Если будете расставлять заголовки в только что сформированном документе, предварительно сохраните его, иначе метод Excel неправильно определяет высоту строки.

Надеюсь, приведенный пример будет полезен.

НомерКопируемойCтроки = 2;
	
	Попытка Excel = Новый COMОбъект("Excel.Application"); 
	Исключение 
		Сообщить("Программа EXCEL не установлена на этом компьютере!"); 
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	РасположениеФайла = "C:\";
	ПолноеИмяФайла = РасположениеФайла +  "ТестовыйФайл.xlsx"; 
	
	Попытка
		Book = Excel.WorkBooks.Open(ПолноеИмяФайла);
	Исключение 
		Сообщить("Не найден файл" + ПолноеИмяФайла); 
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;

	ТекЛист = Book.WorkSheets(1);
	
	
	
	ОбщаяВысота = 0; 					 		   
		   Для СтЧ = 1 по ТекЛист.UsedRange.Rows.Count + 1 Цикл   //Цикл по всем строкам файла.
			   ОбщаяВысота = ОбщаяВысота + ТекЛист.Cells(СтЧ, 1).RowHeight;   //Последовательно перебираем строки и считаем их высоту.
			   
			   Если ОбщаяВысота > 465 Тогда     //Если при добавлении высоты очередной строки общая высота строк текущей страницы превысит 465, 
				   								//вставляем разрыв страницы и повторяющиеся строки перед этой очередной строкой  до 465 и вставляем
												//строку для повтора.  Высота задается в единицах Escel, в которых измеряется высота строки.
	                 							//Высота 465 подобрана для альбомной ориентации со стандартными отступами и масштабом 100 проц. 
					 							//При масштабировании и изменении полей эту величину необходимо корректировать.

				   
				   
				   Сообщить("Высота страницы превышена, включая строку № " +СтЧ+"  Вставляем повторяющуюся строку в " + СтЧ);
				   
				   ТекЛист.Rows(НомерКопируемойCтроки).Copy(); //копирование строки для повтора.
				   ТекЛист.Rows(СтЧ).Insert();                 //Вставка повторяющейся строки.
				   ТекЛист.HPageBreaks.Add(ТекЛист.Rows(СтЧ));//Вставляем разрыв страницы.
				   
				   ОбщаяВысота = 0;   // Обнуляем счетчик высоты для подсчета высоты строк на следующей странице.
					
			   КонецЕсли;
		   КонецЦикла;
		   
		   
		   
	Попытка
		Book.Save();
		Сообщить("Файл " + " " + " успешно сохранен"); 
	Исключение
		Сообщить(ОписаниеОшибки() + " Файл не сохранен!");
	КонецПопытки;

	Book.Close();
    Excel.Quit();
	
	



	//При необходимости можно задать параметры страницы.
        ТекЛист.PageSetup.Orientation = 2;//1 - книжная, 2 - альбомная.
		
		ТекЛист.PageSetup.LeftMargin = Excel.CentimetersToPoints(2/10); //Отступы.
		ТекЛист.PageSetup.RightMargin = Excel.CentimetersToPoints(2/10);
		ТекЛист.PageSetup.TopMargin = Excel.CentimetersToPoints(2/10);
		ТекЛист.PageSetup.BottomMargin = Excel.CentimetersToPoints(2/10);

		
		ТекЛист.PageSetup.FitToPagesWide = 1; //По ширине листа
		ТекЛист.PageSetup.FitToPagesTall = False; //Нет привязки по количеству строниц по высоте
		
		ТекЛист.PageSetup.Zoom = 100;  //Задаем масштабирование.

	

 

повторение строк заголовки страниц повторять строки при печати

См. также

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    234084    1062    898    

1003

Загрузка и выгрузка в Excel Маркетплейсы Программист Бухгалтер Пользователь Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", МагнитЭкспресс (быв.Казань-Экспресс), "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом", "Золотое Яблоко" в документы "Отчет комиссионера (агента) о продажах" и другие, работает в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

2400 руб.

12.08.2021    35484    348    68    

155

SALE! 30%

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Бухгалтер Пользователь Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания сканов или фото товарных документов в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

8400 5880 руб.

04.06.2019    106894    313    173    

326

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.10.2024, версия 9.8 - 9.13)

15600 руб.

20.11.2015    156035    378    378    

513

Маркетплейсы Загрузка и выгрузка в Excel Программист Пользователь Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Загрузка данных отчета о реализации и продаже товаров из сервиса Яндекс.Маркета «Беру» в 1С из Отчетов Excel для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11; Управление торговлей, редакция 10.3; Управление нашей фирмой, редакция 3.0 и Розница, редакция 3.0 в документ «Отчет комиссионера о продажах».

4800 руб.

09.12.2020    25342    252    1    

114

SALE! 15%

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

11100 9435 руб.

29.10.2014    216740    657    527    

456
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. gaglo 28.01.19 14:32 Сейчас в теме
По-моему, достаточно:
ТекЛист.PageSetup.PrintTitleRows = ТекЛист.Rows(2).Address
2. senshkr 13 03.02.19 12:15 Сейчас в теме
Предложенным в статье способом можно разместить повторяющиеся строки не только в заголовке, но и в любом месте страницы.
3. gaglo 19.02.19 13:37 Сейчас в теме
Нук.... В статье используется слово "заголовки"! Что какбэ намекает, что они будут сверху, а не "в любом месте".... Ну трудолюбие, конечно, похвально, но плюса к такому "пердельно простому методу" поставить не могу.
Оставьте свое сообщение