Расширение поля формы для поля ввода.Формат

Свойства · Format

Тип: Строка. Содержит форматную строку. Используется при отображении текста в колонке таблицы.

Полное описание, параметры и ограничения

Расширение поля формы для поля ввода.Формат (Form field extension for a text box.Format)

Расширение поля формы для поля ввода (Form field extension for a text box)

Формат (Format)

Доступен, начиная с версии 8.2.

Использование:
Чтение и запись.
Описание:
Тип: Строка.
Содержит форматную строку. Используется при отображении текста в колонке таблицы.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

См. также:
ПолеВвода, свойство Формат

Использование в версии:

Доступен, начиная с версии 8.2.

Методическая информация

Практические примеры

Отформатировать колонку количества, не меняя числа

Две собственные строки имеют количество 3 и 1. Формат колонки показывает два знака после запятой, а итог остаётся числом 4.

Где и как запускать

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

Подготовка

  1. В учебной базе: Файл → Новый → Внешняя обработка. Создайте управляемую форму и назначьте её основной. Дайте обработке имя УчебнаяТаблица.

  2. Не добавляйте вручную реквизит Товары и одноимённые элементы: код создаст их при открытии. Модуль формы для этой задачи должен быть пустым.

  3. В свойствах формы → События свяжите ПриСозданииНаСервере с одноимённой процедурой. Сохраните отдельную учебную EPF и откройте через Файл → Открыть.

  4. Данные Книга/Ручка создаются в памяти формы. Справочники, документы и регистры вашей конфигурации не читаются и не записываются.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    КолонкаКоличества = Элементы.ТоварыКоличество;
    КолонкаКоличества.Формат = "ЧДЦ=2; ЧН=0";
    КолонкаКоличества.ФорматРедактирования = "ЧДЦ=0";
    КолонкаКоличества.ТолькоПросмотр = Истина;

    КомандаДействия = ЭтаФорма.Команды.Добавить("УчебноеДействие");
    КомандаДействия.Действие = "УчебноеДействие";
    КомандаДействия.Заголовок = "Проверить фактическое количество";
    КомандаДействия.Подсказка = "Действие только над данными учебной формы";
    КомандаДействия.ИзменяетСохраняемыеДанные = Ложь;
    Кнопка = Элементы.Добавить("КнопкаУчебноеДействие", Тип("КнопкаФормы"));
    Кнопка.ИмяКоманды = КомандаДействия.Имя;
    Кнопка.Заголовок = КомандаДействия.Заголовок;
КонецПроцедуры
&НаКлиенте
Процедура УчебноеДействие(Команда)
    Сообщить(Товары.Количество() = 2);
    Сообщить(Товары.Итог("Количество") = 4);
    Для Каждого СтрокаТовара Из Товары Цикл
        Сообщить(ТипЗнч(СтрокаТовара.Количество) = Тип("Число"));
    КонецЦикла;
КонецПроцедуры

Разбор по шагам

  1. Код создаёт собственные две строки формы: Книга/3 и Ручка/1.

  2. Формат относится к отображению поля ввода в колонке таблицы. ФорматРедактирования задаётся отдельно.

  3. ЧДЦ=2 показывает два десятичных знака; локаль клиента определяет разделитель.

  4. ТолькоПросмотр выключает интерактивное изменение количества в этом упражнении.

  5. Команда проверяет количество строк, числовой итог и тип значений каждой строки.

Как проверить результат

  1. Четыре сообщения Истина.

  2. На экране количество отформатировано с двумя десятичными знаками; в данных по-прежнему числа 3 и 1.

Ожидаемый результат

Формат представления отделён от фактических чисел и суммы.

На что обратить внимание

  1. Не проверяйте числовые значения сравнением с локализованной строкой 3,00.

  2. ТолькоПросмотр не является серверной проверкой прав или запретом программного изменения.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

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

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

Где и как запускать

Полный модуль отдельной собственной тестируемой формы. Запускается в клиенте /TESTCLIENT, а тесты ниже — в другом клиенте /TESTMANAGER.

Подготовка

  1. Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.

  2. Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.

  3. В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.

  4. Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.

  5. Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.

  6. Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    ЭтаФорма.АвтоЗаголовок = Ложь;
    ЭтаФорма.Заголовок = "Учебная таблица guide-owned-ui-2026";
    НовыеРеквизиты = Новый Массив;
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Товары", Новый ОписаниеТипов("ТаблицаЗначений")));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Код", Новый ОписаниеТипов("Строка"), "Товары", "Код"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Наименование", Новый ОписаниеТипов("Строка"), "Товары", "Название"));
    НовыеРеквизиты.Добавить(Новый РеквизитФормы("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)), "Товары", "Количество"));
    ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);
    Данные = Новый ТаблицаЗначений;
    Данные.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
    Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",
        Новый КвалификаторыЧисла(9, 0, ДопустимыйЗнак.Неотрицательный)));

    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "A-01";
    СтрокаТовара.Наименование = "Книга";
    СтрокаТовара.Количество = 3;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "B-02";
    СтрокаТовара.Наименование = "Ручка";
    СтрокаТовара.Количество = 1;
    СтрокаТовара = Данные.Добавить();
    СтрокаТовара.Код = "C-00";
    СтрокаТовара.Наименование = "Бумага";
    СтрокаТовара.Количество = 2;

    ЭтаФорма.ЗначениеВРеквизитФормы(Данные, "Товары");
    Таблица = ЭтаФорма.Элементы.Добавить("ТаблицаТоваров", Тип("ТаблицаФормы"));
    Таблица.ПутьКДанным = "Товары";
    Таблица.Заголовок = "Учебные товары";
    Таблица.Шапка = Истина;
    Таблица.АвтоВводНезаполненного = Ложь;
    Таблица.АвтоВводНовойСтроки = Ложь;
    Для Каждого ИмяКолонки Из СтрРазделить("Код,Наименование,Количество", ",") Цикл
        Колонка = Элементы.Добавить("Товары" + ИмяКолонки, Тип("ПолеФормы"), Таблица);
        Колонка.Вид = ВидПоляФормы.ПолеВвода;
        Колонка.ПутьКДанным = "Товары." + ИмяКолонки;
        Колонка.Заголовок = ИмяКолонки;
    КонецЦикла;
    Таблица.Подсказка = "Собственные данные: три строки, без записи базы";
    Таблица.ТолькоПросмотр = Ложь;
    Элементы.ТоварыКоличество.Формат = "ЧГ=0;ЧДЦ=0";
    ДополнительныеРеквизиты = Новый Массив;
    ДополнительныеРеквизиты.Добавить(Новый РеквизитФормы("УчебныйСтатус", Новый ОписаниеТипов("Строка")));
    ЭтаФорма.ИзменитьРеквизиты(ДополнительныеРеквизиты);
    УчебныйСтатус = "Готово";
    ПолеСтатуса = Элементы.Добавить("ПолеУчебногоСтатуса", Тип("ПолеФормы"));
    ПолеСтатуса.Вид = ВидПоляФормы.ПолеВвода;
    ПолеСтатуса.ПутьКДанным = "УчебныйСтатус";
    ПолеСтатуса.Заголовок = "Учебный статус";
    ПолеСтатуса.ТолькоПросмотр = Истина;
    Для Каждого ИмяКоманды Из СтрРазделить("УчебныйСерверныйВызов,УчебныйДиалогФайла,УчебнаяОшибка", ",") Цикл
        КомандаФормы = ЭтаФорма.Команды.Добавить(ИмяКоманды);
        КомандаФормы.Действие = ИмяКоманды;
        КомандаФормы.Заголовок = ИмяКоманды;
        КомандаФормы.Подсказка = "Только собственный учебный сценарий";
        КомандаФормы.ИзменяетСохраняемыеДанные = Ложь;
        Кнопка = Элементы.Добавить("Кнопка" + ИмяКоманды, Тип("КнопкаФормы"));
        Кнопка.ИмяКоманды = КомандаФормы.Имя;
        Кнопка.Заголовок = ИмяКоманды;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура УчебныйСерверныйВызов(Команда)
    УчебныйСтатус = "Сервер вернул " + Строка(ПолучитьУчебноеКоличествоНаСервере());
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьУчебноеКоличествоНаСервере()
    Возврат 3;
КонецФункции

&НаКлиенте
Процедура УчебныйДиалогФайла(Команда)
    УчебныйСтатус = "Диалог начат";
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.МножественныйВыбор = Ложь;
    Диалог.Заголовок = "Только учебный диалог; файлы не читаются";
    Диалог.Показать(Новый ОписаниеОповещения("УчебныйДиалогЗавершен", ЭтотОбъект));
КонецПроцедуры

&НаКлиенте
Процедура УчебныйДиалогЗавершен(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
    Если ВыбранныеФайлы = Неопределено Тогда
        УчебныйСтатус = "Отмена";
    Иначе
        УчебныйСтатус = "Выбрано файлов: " + Строка(ВыбранныеФайлы.Количество());
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура УчебнаяОшибка(Команда)
    ВызватьИсключение "Собственная учебная ошибка guide-owned-ui-2026";
КонецПроцедуры

Разбор по шагам

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

  2. Создаются три кнопки с точными внутренними именами КнопкаУчебныйСерверныйВызов, КнопкаУчебныйДиалогФайла, КнопкаУчебнаяОшибка и поле ПолеУчебногоСтатуса.

  3. Серверный обработчик возвращает константу 3; на клиенте отображается Сервер вернул 3. База не читается и не записывается.

  4. Файловый диалог Показать вызывает экспортную процедуру с ВыбранныеФайлы и ДополнительныеПараметры. Отмена передаёт Неопределено, не Ложь и не пустую строку.

  5. Контролируемая ошибка имеет собственный маркер. Не заменяйте её настоящей рабочей ошибкой со стеком, токенами или данными сотрудников.

Как проверить результат

  1. При открытии статус Готово и три исходных товара. Собственная кнопка сервера меняет статус на Сервер вернул 3.

  2. Отмена собственного диалога меняет статус на Отмена, не создавая и не читая файл. Ошибка создаётся только при отдельном намеренном нажатии УчебнаяОшибка.

Ожидаемый результат

Подготовлен самостоятельный собственный fixture для ожидания, показателей, диалога и ошибок тестирования.

На что обратить внимание

  1. Не нажимайте кнопку файлового диалога из менеджера до подготовки его результата — может открыться системное окно.

  2. Это не готовый тест рабочей конфигурации и не разрешение подключать менеджер к production.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.