Skip to content

Latest commit

 

History

History
70 lines (48 loc) · 4.98 KB

КонструкторПредставления.MD

File metadata and controls

70 lines (48 loc) · 4.98 KB

Конструктор представлений

Конструктор представления используется для формирования строк представлений в формах печати или других интерфейсах пользователя.

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

[НаименованиеДляПечати], ИНН/КПП [ИНН]/[КПП], ОГРН [ОГРН], [Адрес], тел.[Телефон]

Для получения подобной строки можно использовать конструктор представления

Функция ПолучитьПредставлениеКонтрагента(знач Контрагент)
    Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Контрагент, "Наименование, ИНН, КПП");

    Настройки = Новый Соответствие;
    КонструкторПредставленияКлиентСервер.УстановитьПрефикс(Настройки, "Наименование", "");
    КонструкторПредставленияКлиентСервер.УстановитьПрефикс(Настройки, "ИНН", " ИНН/КПП ");
    КонструкторПредставленияКлиентСервер.УстановитьПрефикс(Настройки, "КПП", "/");

    ПорядокПолей = "Наименование,ИНН,КПП";

    Возврат КонструкторПредставленияКлиентСервер.ПолучитьПредставление(Реквизиты, ПорядокПолей, Настройки);
КонецФункции

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

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

[Номенклатура1] - [Количество1][ЕдИзм1]{; [НоменклатураN] - [КоличествоN][ЕдИзмN]}
Функция ПолучитьПредставлениеТаблицыНоменклатуры(знач Номенклатура)
    Настройки = Новый Соответствие;
    КонструкторПредставленияКлиентСервер.УстановитьПрефикс(Настройки, "Количество", " - ");
    КонструкторПредставленияКлиентСервер.УстановитьФормат(Настройки, "Количество", "ЧГ=;ЧН=0");

    ПорядокПолей = "Номенклатура,Количество,ЕдИзм";

    НаборДанных = Новый Массив;
    Для Каждого СтрокаТаблицы Из Номенклатура Цикл
        ДанныеСтроки = Новый Структура;
        ДанныеСтроки.Вставить("Номенклатура", Строка(СтрокаТаблицы.Номенклатура));
        ДанныеСтроки.Вставить("Количество", СтрокаТаблицы.Количество); // перевод в строку не требуется, т.к. установлен формат
        ДанныеСтроки.Вставить("ЕдИзм", Строка(СтрокаТаблицы.ЕдиницаИзмерения));
        
        НаборДанных.Добавить(ДанныеСтроки);
    КонецЦикла;

    Возврат КонструкторПредставленияКлиентСервер.ПолучитьПредставление(НаборДанных, ПорядокПолей, Настройки);
КонецФункции

Подробнее см. Обработка.ТестКонструкторПредставления

Важные замечания

  • если префикс не установлен, будет подставлен пробел перед значением
  • в качестве значения поля необходимо передавать строковое представление, а не ссылочные типы. Исключение только Число, Дата, Булево, если для них указан формат

Зависимости

  • ОбщегоНазначенияКлиентСервер
  • ОбщегоНазначенияПТБКлиентСервер

Назад