ПолеФормы.ОтметкаЯчейки

Свойства · CellMark

Тип: ТипОтметкиЯчейкиТаблицы. Тип отметки ячейки таблицы. Значение по умолчанию – Нет.

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

ПолеФормы.ОтметкаЯчейки (FormField.CellMark)

ПолеФормы (FormField)

ОтметкаЯчейки (CellMark)

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

Использование:
Чтение и запись.
Описание:
Тип: ТипОтметкиЯчейкиТаблицы.
Тип отметки ячейки таблицы. Значение по умолчанию – Нет.
Доступность:

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

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

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

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

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

Переключить отметку статуса: текст, круг и овальная фигура

ОтметкаЯчейки меняет оформление собственной колонки Статус. Цикл Нет → ЗначокКруг → ФигураПодТекстомОвальная возвращает исходный вид; данные трёх локальных книг проверяются до и после переключения.

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

Полный модуль общей управляемой формы УчебныеЯчейкиТаблицы85. Собственный пустой стенд 8.5.1.1343, интерфейс Версия 8.5, тонкий или толстый клиент Windows. Сервер создаёт ровно три локальные строки; клиентская команда меняет только отметку колонки Статус.

Подготовка

  1. Создайте отдельную новую пустую учебную базу платформы 8.5.1.1343. Имя конфигурации в корне дерева — УчебнаяКонфигурацияЯчеек85, язык встроенного языка Русский, ОсновнойРежимЗапуска=УправляемоеПриложение, режим совместимости Не использовать.

  2. В свойствах корня конфигурации задайте РежимСовместимостиИнтерфейса=Версия8_5. Это точное имя метаданных и значение нативного перечисления, а не свойство ОсновнойИнтерфейс. У значения Версия8_5 пользовательское переключение режима недоступно. Обновите только свой учебный стенд и запустите тонкий или толстый управляемый клиент Windows.

  3. В Общие → Общие формы создайте управляемую форму УчебныеЯчейкиТаблицы85. Для каждого урока используйте отдельную копию формы или отдельный пустой стенд и только полный модуль выбранного урока. Не объединяйте модули двух уроков.

  4. В форме создайте реквизит Книги с типом ТаблицаЗначений. Под ним создайте колонки Название типа Строка длиной 100, Количество типа Число длиной 6 с точностью 0, Статус типа Строка длиной 50. Эти имена обязательно совпадают с кодом. Таблица не связана со справочниками, документами, регистрами или внешними данными.

  5. Перетащите Книги на форму как таблицу с тремя колонками. Саму таблицу назовите ТаблицаКниг, ПутьКДанным=Книги. Имена её полей-колонок задайте КнигиНазвание, КнигиКоличество, КнигиСтатус; пути соответственно Книги.Название, Книги.Количество, Книги.Статус. Заголовки — Название, Количество, Статус.

  6. Создайте строковый реквизит СостояниеУрока длиной 300 и поле ввода ПолеСостоянияУрока с ПутьКДанным=СостояниеУрока, ТолькоПросмотр=Истина. АвтоматическоеСохранениеДанныхВНастройках формы оставьте НеИспользовать. На форме только локальные несохраняемые учебные данные.

  7. Событие ПриСозданииНаСервере назначьте одноимённой процедуре полного модуля. Сервер создаёт в реквизите формы ровно три строки: Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Пользователь не должен вводить или загружать строки: таблица переводится в ТолькоПросмотр и МножественныйВыбор=Ложь.

  8. Для запуска создайте общую команду ОткрытьУчебныеЯчейки85 без параметра и включите её в командный интерфейс собственной учебной подсистемы УчебныеЯчейки85. Полный модуль команды:
    &НаКлиенте
    Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ОткрытьФорму("ОбщаяФорма.УчебныеЯчейкиТаблицы85");
    КонецПроцедуры
    Разрешите эти собственные метаданные в учебной роли и выполните команду в своём учебном разделе.

  9. Код только читает активный интерфейс через ТекущийВариантИнтерфейсаКлиентскогоПриложения() и отказывается от опыта при другом варианте. Он не изменяет настройки интерфейса текущего сеанса, пользователя или рабочей базы.

  10. Запуск в 1С не выполнялся. Нативная сверка типов, сигнатур, перечислений и контекстов — статическая проверка. Видимые ссылки, наведение, круги и овалы требуют ручного выполнения на указанном стенде с его активной темой и масштабом.

  11. Создайте команду ПереключитьОтметку, действие — одноимённая клиентская процедура, ИзменяетСохраняемыеДанные=Ложь. Разместите кнопку с заголовком Переключить отметку. Реквизит КарточкаКниги и обработчик Выбор этому уроку не нужны; не добавляйте их.

  12. У колонки КнигиСтатус оставьте обычное текстовое поле без картинки и без условного оформления. Сервер задаёт ей ОтметкаЯчейки=Нет. Цветовую палитру значков и фигур пользовательских настроек не меняйте: урок проверяет только тип отметки и сохранность текста.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если ТекущийВариантИнтерфейсаКлиентскогоПриложения() <> ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5 Тогда
        ВызватьИсключение "Урок требует интерфейс Версия 8.5; настройте свой учебный стенд";
    КонецЕсли;
    ЭтаФорма.Книги.Очистить();
    ДобавитьСвоюКнигу("Книга", 3, "Доступно");
    ДобавитьСвоюКнигу("Тетрадь", 4, "Проверить");
    ДобавитьСвоюКнигу("Блокнот", 0, "Ожидается");
    Элементы.ТаблицаКниг.ТолькоПросмотр = Истина;
    Элементы.ТаблицаКниг.МножественныйВыбор = Ложь;
    Элементы.КнигиСтатус.ОтметкаЯчейки = ТипОтметкиЯчейкиТаблицы.Нет;
    ЭтаФорма.СостояниеУрока = "Отметка статуса: нет. Нажмите Переключить отметку";
КонецПроцедуры

&НаСервере
Процедура ДобавитьСвоюКнигу(Знач Название, Знач Количество, Знач Статус)
    НоваяКнига = ЭтаФорма.Книги.Добавить();
    НоваяКнига.Название = Название;
    НоваяКнига.Количество = Количество;
    НоваяКнига.Статус = Статус;
КонецПроцедуры

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

&НаКлиенте
Функция СигнатураСвоихКниг()
    Значения = Новый Массив;
    Для Каждого Книга Из ЭтаФорма.Книги Цикл
        Значения.Добавить(СтрШаблон("%1=%2=%3", Книга.Название, Книга.Количество, Книга.Статус));
    КонецЦикла;
    Возврат СтрСоединить(Значения, ";");
КонецФункции

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

  1. Откройте собственную форму. В колонке Статус показаны Доступно, Проверить и Ожидается. Начальное значение ОтметкаЯчейки — Нет, поэтому отдельной отметки быть не должно.

  2. Нажмите Переключить отметку первый раз. Клиент читает текущий тип отметки и устанавливает ЗначокКруг. Согласно нативной справке круг отображается слева от текста.

  3. Проверьте все три строки: свойство задано колонке, поэтому отметка применяется ко всем её ячейкам. Оно не выбирает только статус Проверить и не является условием отбора.

  4. Нажмите кнопку второй раз. ФигураПодТекстомОвальная меняет фон у текста на овальную фигуру. Текст статуса должен остаться тем же, включая Ожидается у Блокнот с количеством 0.

  5. Нажмите кнопку третий раз. Устанавливается Нет, цикл возвращает обычный текстовый вид. Повторите ещё один цикл, чтобы проверить отсутствие накопления изменений данных.

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

  7. Сопоставьте показанные в форме типы отметок с видимым результатом на своей активной теме и масштабе. Если круг или овал не появились, сообщите этот результат: тип установленного свойства не доказывает работу отрисовки.

  8. Закройте собственную форму. Значения и оформление были только в памяти экземпляра; системное хранилище, файлы, печать и предметные записи не использовались.

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

  1. Текст состояния идёт по циклу круг слева от текста → овальная фигура под текстом → нет. В таблице вручную проверяются соответствующие три внешних вида на интерфейсе Версия 8.5.

  2. Во всех состояниях сохраняются Книга/3/Доступно, Тетрадь/4/Проверить, Блокнот/0/Ожидается. Сообщение о сохранности данных зависит от сравнения сигнатур и не выводится после исключения.

  3. Установка отметки колонки не превращает статусы в Булево, не добавляет флажок выбора, не меняет количество и не скрывает строки. Три локальные строки остаются доступными только для просмотра.

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

Тип отметки собственной колонки переключается по трём нативным значениям и возвращается к исходному. Оформление отделено от локальных значений статуса и количества; визуальный результат проверяется вручную.

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

  1. ОтметкаЯчейки — не Пометка строки и не признак проведения документа. Свойство принимает ТипОтметкиЯчейкиТаблицы, а не Булево или произвольную строку.

  2. Нативные имена — Нет, ЗначокКруг и ФигураПодТекстомОвальная. Значения Круг или Овал без этих точных имён в перечислении отсутствуют.

  3. Свойство колонки применяется ко всем её ячейкам. Для разных отметок или цветов по статусам нужен отдельный сценарий условного оформления; данный модуль его не включает.

  4. Цвет и фактическая геометрия зависят от темы, масштаба и отрисовки клиента. Урок не утверждает точные пиксели, цветовую семантику статусов или проверенное отображение.

  5. Программное переключение свойства и сравнение строк не являются испытанием интерфейса. Для подтверждения круга и овала запустите урок самостоятельно на подготовленном стенде; здесь 1С не запускалась.

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

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

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

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

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