1С вывести массив в табличный документ

1С вывести массив в табличный документ

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

Метод табличного документа ПроверитьВывод()

Объект ТабличныйДокумент имеет метод ПроверитьВывод() , предназначенный для того, чтобы проверить, поместится ли список областей на текущую страницу. В случае если метод вернет значение Истина , вывод областей, переданных в метод, не приведет к созданию новой страницы, иначе, для того, чтобы вывести области, в табличном документе будет создана новая страница. Данный метод работает с учетом настроек печати документа, у которого вызывается метод.

Рассмотрим пример. Пусть нам необходимо создать отчет "Платежная ведомость". Требуется, чтобы на первой странице был заголовок, отображающий информацию о ведомости в целом, на остальных страницах — заголовок, содержащий только шапку таблицы ведомости. В подвалах страницы необходимо иметь информацию о сумме по странице. В подвале последней страницы необходимо иметь итоговую информацию по всей ведомости.

Для того чтобы реализовать подобный отчет нам потребуется использовать метод ПроверитьВывод() . Пример алгоритма отчета будет выглядеть так:

1. выводим в результирующий табличный документ область — заголовок первой страницы;
2. для каждой строки из ведомости:

2.1. проверяем, вмещается ли на текущую страницу область со строкой ведомости и область итога по странице;
2.2. если области помещаются на странице — выводим строку области;
2.3. иначе — выводим подвал страницы, выводим горизонтальный разделитель страницы, выводим шапку страницы, выводим строку ведомости;

3. выводим подвал отчета.

Читайте также:  D link dir 320 сменить пароль

Ниже приведен пример того, как подобный алгоритм может быть реализован на встроенном языке 1С:Предприятия 8.0:

Метод табличного документа ПроверитьПрисоединение()

Метод табличного документа ПроверитьПрисоединение() работает аналогично методу ПроверитьВывод() , с тем отличием, что данный метод проверяет, изменится ли количество страниц по горизонтали при выводе в отчет областей при помощи метода Присоединить() .

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Работа с табличным документом в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю).

Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Как в 1C 8 поместить массив в таблицу значений.

Пример носит скорее учебный характер.

Таблица значений — тяжелый, ресурсоемкий объект — контейнер с огромными возможностями:
— отборы
— запросы
— колонки

Таблица значений требует деликатного отношения — глубокого вдумчивого создания структуры таблицы, — (использование и создания индексов, описание типов данных в колонках, и т.д.).

Пример содержит несколько этапов:
1. Подготовка колонки таблицы значений
1.1 Вычисляем тип данных для записи в колонки по типу данных в первом элементе массива.
1.2 Создаем колонку таблицы значений.
2. Записываем данные массива в колонку.

Читайте также:  Dark souls 3 мини боссы

МассивДопустимыеТипы.Добавить(ТипКолонки);
Описание_Типов = Новый ОписаниеТипов(МассивДопустимыеТипы);
ИмяКолонки = СтрЗаменить(Строка(ТипКолонки)," ","_");
ШиринаКолонки = СтрДлина(Строка(МассивЭлементов[0][ИмяРеквизита]));
[ missing image ] —>

Результат:
Гораздо интереснее, с практической точки зрения, преобразование массива в "соответствие".
В контейнере-"соответствие" поиск элемента ведется по "ключу" этого элемента.
Он гораздо "легче" и быстрее.
В качестве ключа может использоваться значение любого типа. Ключ должен быть уникальным в этом контейнере-"соответствие".
Фактически, контейнер-"соответствие" имеет один единственный встроенный индекс по колонке "ключ".
Но это уже отдельная тема.

Предлагаем решение Ваших задач 1С.

Внедрение 1С:

  • Организуем вам индивидуальное экспресс обучение программам 1С.
  • Мы поможем Вам начать работать с программами 1С.
  • Мы поможем Вам настроить ваши отчеты в 1С.
  • Установим и настроим 1С под ваши задачи.
  • Поможем сделать ввод начальных остатков по складам и контрагентам
  • Перенесем данные из старых систем.
  • Подскажем как избежать ошибок.

Доработка и сопровождение 1С:

  • Доработаем существующие или создадим новые печатных формы и документы.
  • Разработаем внешние отчеты по Вашим требованиям.
  • Напишем внешние обработоки по загрузке документов из учетных (торговых) систем в бухгалтерию.
  • Разработаем приложения для выгрузки данных на сайты.

Ориентировочная стоимость работ программиста 1С : 500 р. за 1 час работы.

Ссылка на основную публикацию
Adblock detector