Как выделить строку в макете 1с

Обновлено: 08.07.2024

Основы формирования табличного документа на основе макета

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

Области макета предназначены для однократного или многократного вывода, например, ниже представлен макет для печати расходной накладной:

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

Область может состоять из нескольких расположенных подряд строк или колонок, либо быть прямоугольной областью таблицы. К области можно обратиться по имени или по координатам. Можно также обращаться к пересечению областей, используя вертикальную черту (как в версии 7.7).

Общая схема

Общая схема формирования печатной формы на основе макета:

  1. Создание макета в табличном редакторе (определение областей, имен параметров, форматирования).
  2. Создание нового табличного документа (этот пункт не требуется, если отчет выводится в элемент управления ПолеТабличногоДокумента).
  3. Получение макета в переменную (метод ПолучитьМакет).
  4. Получение областей макета (метод ПолучитьОбласть).
  5. Заполнение параметров области (свойство Параметры).
  6. Вывод области в табличный документ (методы Вывести и Присоединить).
  7. Установка свойств отображения табличного документа (сетка, заголовки, только просмотр и т.д.).
  8. Отображение табличного документа на экране (а может быть отправка на принтер или сохранение).

Пример вывода табличного документа

Ниже приведен пример формирования печатной формы расходной накладной из модуля документа:

Процедура Печать(ТабДок) Экспорт

//создание нового табличного документа
ТабДок = Новый ТабличныйДокумент ;

//получение макета для печати расходной накладной
Макет = Документы.РасходнаяНакладная. ПолучитьМакет ("Основной");

//получим область "Заголовок" как новый табличный документ (!)
Область = Макет. ПолучитьОбласть ("Заголовок");

//укажем параметры области
Область. Параметры .НомерДокумента = Номер;
Область.Параметры.От = Дата;
Область.Параметры.Кому = Контрагент;

//выведем заполненную область "Заголовок" в табличный документ
ТабДок. Вывести (Область);

//выведем область "Шапка" в табличный документ
ТабДок.Вывести(Макет.ПолучитьОбласть("Шапка"));

//получение области "Строка"
//обратите внимание, что это можно сделать до цикла по строкам
Область = Макет.ПолучитьОбласть("Строка");

//вывод строк документа в печатную форму
Для Каждого СтрСостава Из Состав Цикл

//заполнение параметров области из строки табличной части
Область.Параметры. Заполнить (СтрСостава);

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

КонецЦикла;

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

//установим параметры отображения табличного документа
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОтображатьЗаголовки = Истина;
ТабДок.ОтображатьСетку = Ложь;

//покажем табличный документ на экране
ТабДок. Показать ();

Нетипичный бухгалтер (бухгалтерия и налоги)

Нетипичный бухгалтер (бухгалтерия и налоги)

Нетипичный бухгалтер (бухгалтерия и налоги) запись закреплена

ЛАЙФХАК 1С.
Выделение строки цветом.

Для тех кто еще не знает, расскажем об удобной функции в 1С - выделение цветом.

Для чего использовать? Например для того, что бы видеть подписаны ли документы покупателем/заказчиком, поступили ли оригиналы документов от поставщика. (Это удобнее чем искать крыжики в конце таблицы)

Открываем журнал в котором необходимо сделать выделение. В нашем случае "Продажи"/"Реализация (акты, накладные)".

Ищем справа кнопку "Еще", жмем, выбираем "Настроить список".

Открываем закладку "Условное форматирование" жмем "Добавить"

В открывшемся окне на закладке "Оформление" крыжим "Цвет текста" и меняем цвет с черного на красный (или любой другой).

На закладе "Условие" в левом окне "Доступные поля" выбираем (двойным нажатием) поле "Подписан" оно появляется в правом окне, ставим вид сравнения "Равно" значение "Нет".

Жмем "ОК" и "Завершить редактирование"

Любуемся на список который теперь имеет два цвета, черные строки это подписанные контрагентами накладные/акты , красные не подписанные.

В поступлениях делаем то же самое, только заменяем "Подписан" на "Оригинал".

Если не нравится выделение текста, можно выделить фон строки, цвета разные.

Можно выбрать и другие поля для выделения в настройках таблицы, в каждом журнале свои..

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.11.2867.

Мы реализовали выделение нескольких блоков строк в таблицах, а также вывод чисел с единицами измерения в диаграммы, отчёты и динамические списки.

Выделение блоков в таблицах

Желание пользователей выделять несколько отдельных блоков строк в таблицах вполне естественно и понятно. Подобные пожелания были у нас записаны, но их реализация это задача нетривиальная.

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

Но мы нашли решение этой проблемы, и теперь вы можете выделять несколько несоприкасающихся блоков в таблицах. Для выделения первого блока вы можете использовать Shift + клик мышью на последней строке блока. А для выделения первой строки следующего блока Ctrl + клик мышью. Окончание следующего блока вы можете указать также с помощью комбинации Shift + клик мышью.

02.jpg

Такое выделение строк поддерживается теперь во всех таблицах, включая таблицы, связанные с динамическими списками и с настройками компоновки данных.

Кроме этого в таблицах, связанных с настройками компоновки данных и с данными типа ДанныеФормыДерево теперь возможно выделение диапазонов строк с любыми родителями, а не только с одинаковыми.

Как вы можете заметить, для выделения конца блока используется комбинация Shift + клик мышью. Таким образом, мы реализовали и ещё одно ваше пожелание, чтобы группу строк можно было выделять кликом на последней строке группы.

Выделение большого количества строк

Мы оптимизировали выделение большого количества строк в тонком клиенте, а кроме этого провели дополнительную оптимизацию выделения строк именно в динамическом списке для тонкого клиента и веб-клиента.

Помимо этого мы изменили сам алгоритм выделения большого количества строк и добавили возможность прерывания этого процесса. Теперь, если выделение строк продолжается более 2 секунд, на экране отображается форма, которая позволяет прервать процесс:

01.jpg

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

Единицы измерения

В диаграммах, отчётах и динамических списках появилась возможность выводить форматированные числовые значения вместе с единицей измерения. Например, в колонке Сумма, где отображается сумма документа.

03.jpg

Для этого мы добавили в форматную строку новый параметр ЧФ. С его помощью вы можете указывать нужный вам формат, например, прямо в условном оформлении отчёта.

04.jpg

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

05.jpg

Этот же формат вы можете использовать и для редактирования значений в поле ввода.

06.jpg

Мы рассчитываем, что эти доработки повысят информативность отчётов и таблиц, а также упростят работу пользователей с большими таблицами.

Откроем в конфигураторе окно редактирования объекта конфигурации Документ «ПриходнаяНакладная». Перейдем на закладку «Макеты», нажмем кнопку «Конструкторы» и запустим конструктор печати.

В открывшемся окне конструктора на первом шаге укажем, что будет создана новая команда «Печать» для формирования печатной формы документа:


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


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


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

Здесь ничего не меняем, тем самым согласимся с тем, что команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел «Важное».


Нажмем OK. В конфигураторе откроется модуль команды «Печать», модуль менеджера документа «ПриходнаяНакладная» и макет этого документа.

Модуль команды Печать

Модуль менеджера документа


Редактирование макета

Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица > Имена > Назначить имя. Назовем область Всего , нажмем ОК.

В созданной области, в колонке Цена , напишем ВСЕГО , а в колонке Сумма напишем ВсегоПоДокументу :


Вызвав палитру свойств для последней заполненной нами ячейки, в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.

Откроем модуль менеджера документа «ПриходнаяНакладная», найдем в нем процедуру Печать и отредактируем ее следующим образом

Читайте также: