No Image

1С макет автовысота строки

СОДЕРЖАНИЕ
1 737 просмотров
10 марта 2020

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

Существует несколько способов установки высоты ячеек строк табличного поля :

  1. Можно установить высоту ячейки строки табличного поля в палитре свойств . Для этого необходимо использовать свойство " Высота ячейки " колонки табличного поля . Для того чтобы для данной колонки высота ячейки вычислялась автоматически , необходимо установить свойство " Автовысота ячейки ", при этом значение свойства " Высота ячейки " будет использоваться как максимально возможная высота ячейки .
  2. Можно устанавливать высоту ячеек отдельных строк табличного поля . Для этого необходимо при обработке события ПриВыводеСтроки() табличного поля устанавливать высоту определенным ячейкам . Для управления высотой ячеек табличного поля предусмотрены свойства ВысотаЯчейки и АвтоВысотаЯчейки объекта типа ОформлениеЯчейки . Поясним использования этих свойств на следующем примере . Пусть существует справочник Номенклатура , у которого имеются реквизит НаименованиеПолное . Требуется полностью отображать значение реквизита НаименованиеПолное для строк табличного поля , не являющихся группами .

При обработке события ПриВыводеСтроки() устанавливаем свойства " ВысотаЯчейки " и " АвтоВысотаЯчейки " для ячейки , отображающей значение реквизита НаименованиеПолное , при этом устанавливаем максимально возможную высоту ячейки равной 5 строкам :

  1. Можно настраивать высоту и авто – высоту ячеек строк табличного поля через окно настройки списка . Для этого необходимо использовать команду " Настройка списка " контекстного меню табличного поля . В этом случае система запомнит эти настройки и восстановит их при следующем открытии списка . Необходимо отметить , что эти настройки действительны только для ячеек , высота и авто-высота которых не изменяется программно , т . е . при обработке события ПриВыводеСтроки() .

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

Читайте также:  Каин лига легенд арты

Наталия Сиворина

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

Как сделать макет в 1С 8.3

Сами макеты представляют собой шаблоны, по которым платформа 1С формирует отчеты или печатные формы с различными данными. В конфигурации 1С вы можете добавить макет практически к любому объекту, чтобы использовать его при выводе на печать. Также они используются во внешних обработках и отчетах, если в вашей конфигурации подключена библиотека стандартных подсистем. Рассмотрим процесс на примере добавления макета для печатной формы для документа «ПоступлениеТоваровУслуг» конфигурации без поддержки.

Если же ваша конфигурация типовая и находится на поддержке 1С, то при внесении в нее изменений придется ее снять с поддержки. Именно поэтому добавление печатной формы с использованием макета часто осуществляют с помощью внешних печатных форм. Процесс создания макета в конфигурации ничем не отличается, поэтому рассмотрим пример с изменением конфигурации. Чтобы создать макет в 1С 8.3 необходимо на подразделе «Макеты» щелкнуть ПКМ и выбрать «Добавить».

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

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

  1. Выделить 1 или несколько ячеек, столбцов или строк;
  2. В основном меню перейти по пути: «Таблица» – «Имена» – «Назначить имя…»;
  3. Указать имя. Создадим «шапку» документа, где обычно указывают номер и дату.

Теперь при обращении по выбранному имени 1С будет понимать, о какой области идет речь. Добавим переменных в нашу область для вывода конкретных данных. Для этого в 2 ячейках напишем «Документ №» и «Номер». Пока это просто надписи, которые можно лишь вывести на экран пользователю неизменными.

Читайте также:  Как перезагрузить тюнер триколор тв

Теперь объясним 1С, что «Номер» – это переменная. Для этого зайдем в контекстное меню на ячейку с этой надписью и выберем «Свойства». В палитре свойств отыщем пункт «Заполнение» и переведем его в значение «Параметр». В макете мы сразу же увидим изменение отображения ячейки с номером, так как угловые скобки – признак параметра.

Есть и третий тип заполнения ячеек – шаблон. Если вы выставите его, то 1С будет воспринимать содержимое ячейки как текст с параметром, выделенным квадратными ячейками. Обращаться к таким переменным можно таким же способом, как и к обычным параметрам. Этих знаний достаточно, чтобы сформировать до конца простой макет.

Как изменить макет в 1С 8.3

Разработчики 1С потрудились над тем, чтобы макеты 1С смогли удовлетворить разнообразные требования к печатным формам. При этом настройка макета 1С с нуля не займет у программиста много времени. При наведении на конкретную кнопку меню отобразится подсказка с описанием ее действия.

К тому же есть возможность расположить управляющие элементы так, как удобно именно вам.

Чтобы сделать какое-либо изменение макета в 1С, нужно сначала найти этот макет. Если это внешняя обработка или отчет – ищите его в файле, в другом случае он встроен в конфигуратор. Если в структуре объекта нет макетов, то попробуйте разобраться, где вызывается функция вывода на печать и понять, где расположен шаблон. После того как нашли шаблон, ничего не мешает приступить к возможным изменениям:

  • Добавить текст или новые параметры. Заполняются параметры в коде – без изменения алгоритма вывода вы не увидите новую переменную;
  • Изменить шрифт текста, его размер, стиль, фон и выравнивание. Применяется как к конкретной ячейке, так и к выделенной области;
  • Добавить разнообразные выделения границ между ячейками;
  • Вставить картинку, диаграмму и многие другие объекты. Причем добавлять можно и предустановленные в 1С, и с вашего локального компьютера;
  • Запрещать изменения ячеек. Для этого необходимо выделить участок и в контекстном меню в свойствах выбрать опцию «Защита». Для включения режима необходимо будет еще и в алгоритме вывода печатной формы запустить соответствующую настройку;
Читайте также:  Как выбрать надежную стиральную машину автомат
  • Объединить/разъединить ячейки по горизонтали и вертикали;
  • Изменить ширину столбцов отдельных строк. Для этого необходимо выделить одну или несколько строк и изменить ширину столбца. Платформа 1С попросит подтвердить изменение формата строк и в макете появятся столбцы разной ширины. Данный функционал позволяет не мучиться с объединением столбцов.
  • Помните, что нельзя удалять переменные из макета без предварительного изменения кода, даже если они вам не нужны. К ним идет обращение при выполнении алгоритма печати, поэтому если 1С их не найдет, печатная форма перестанет работать. Чтобы убрать их без вмешательства в код, вы можете просто изменить цвет текста на белый. Но лучше все-таки избавиться от их использования – это упростит макет и алгоритм формирования печатной формы.

    Невысокие требования к знаниям сказываются на том, что печатные формы и отчеты – первые задачи, которые даются начинающим специалистам 1С. А постоянное использование макета в 1С любой конфигурации говорит о том, что опыт работы с этим объектом платформы пригодится каждому. Именно поэтому ознакомиться с базовыми методами работы с макетом не будет лишним.

    Столкнулся давеча с проблемой:
    У коллеги возникла необходимость узнать высоту строки табличного документа, при выставленном флаге автовысоты. Платформа сие не позволяет сделать непосредственно. Если АвтоВысотаСтроки = Истина, то ВысотаСтроки в таком случае будет равна нулю. Раз нельзя сделать непосредственно, значит сделаем посредством имеющихся средств, но коллегу в беде не бросим =). Ниже приведён код реализации. В качестве файла приложена обработка с наглядной демонстрацией решения (нужно открыть её в предприятии и нажать "Выполнить").

    Откуда возникла задача (немного упрощаю пример):
    Рассмотрим первую строку табличного документа. Необходимо, чтобы высота строки устанавливалась по высоте первой ячейки. В первой ячейке может быть разный текст и задать её высоту фиксировано нельзя. АвтоВысотаСтроки тоже не спасает положение, т.к. в качестве неё возьмётся максимальная из высот всех ячеек строки, а нам позарез надо ориентироваться на первую. Поэтому было принято решение найти высоту первой ячейки с выставленным АвтоВысотаСтроки = Истина, после чего установить найденную высоту для строки.

    З.Ы. также для увеличения производительности поиска высоты строки пришлось применить метод половинного деления.

    ————————————
    ИНТЕРЕСНЫХ ВАМ ЗАДАЧ, ПЛОДОТВОРНОЙ РАБОТЫ И ОРИГИНАЛЬНЫХ/ОПТИМАЛЬНЫХ РЕШЕНИЙ!!

    Комментировать
    1 737 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    Adblock
    detector