1С кнопка в табличной части

Я уже рассказывал о том, как добавить кнопку в табличную часть в обычном приложении. В управляемом приложении этот способ конечно же не сработает — правда в том, что в управляемом приложении,судя по всему, вообще нельзя засунуть кнопку внутрь табличной части (у меня не получилось — поправьте меня, если это не так).

Решить данную проблему можно при помощи поля колонки вида «Поле картинки».

Поле картинки

Вообще, если какой-либо колонке задать вид «Поле картинки» или «Поле надписи», то у этой колонки появится событие «Нажатие», и казалось бы вот оно — решение проблемы, но по какой-то причине это событие не работает, т.е. оно вообще ни на что не реагирует. По всей видимости дело в ошибке платформы, либо я чего-то не понимаю (поправьте меня если это так).

Но как бы то ни было, решать проблему нужно и для этого можно сделать так:

Т.е. код выше осуществляет обработку события «Выбор» табличной части (двойной щелчок) и проверяет по какому полю был сделан двойной щелчок (в примере «Табл» — название табличной части, «Кноп» — название колонки, отведенной под кнопку).

Колонку для кнопки можно определить заранее (с типом данных «строка» или «число»), либо создать программно.

На этом все, надеюсь данная статья Вам помогла.

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

Поле ввода для изменения текста ячейки

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

Для входа в режим редактирования ячейки достаточно нажать клавишу "Enter", или нажать клавишу "F2", или произвести двойной щелчок левой клавишей мыши над ячейкой, или непосредственно начать ввод. Для завершения редактирования содержимого ячейки необходимо нажать клавишу "Enter", либо произвести щелчок мышью за пределами поля ввода. Для отмены редактирования следует воспользоваться клавишей "Esc".

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

Если редактирование ячейки было активизировано любым другим способом, нажатие клавиш перемещения курсора не приведет к завершению редактирования, а приведет перемещению курсора в редактируемом тексте.

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

Элемент управления для редактирования значения ячейки

Каждая ячейка табличного документа имеет свойство СодержитЗначение , в котором находится признак того, что в данной ячейке будет храниться не просто текст, а значение определенного типа ( Число , Строка , Дата и т.д.).

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

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

Редактирование содержимого ячейки, содержащей значение, происходит так же, как и редактирование обычной ячейки.

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

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

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

  • Элемент управления, расположенный поверх ячеек. Данный режим является режимом "по умолчанию". При расположении элемента управления формы на поле табличного документа, он будет "привязан" к ячейкам табличного документа и будет изменять свое положение и размер вместе с ячейками, над которыми он расположен.
  • Встроенный в ячейку элемент управления. Для того чтобы "встроить" элемент управления в ячейку, следует установить палитре свойств элемента управления свойство Встроен в ячейку . При этом элемент управления будет строго размещен в ячейке, в которой был расположен левый верхний угол элемента. После встраивания ячейку, элемент управления становится как бы частью табличного документа. Теперь, для того чтобы отредактировать свойства такого элемента управления, следует выделить ячейку, в которой он расположен, и найти его в верхнем поле выбора палитры свойств.

ВАЖНО!
При встраивании элемента в ячейку поля табличного документа, у элемента управления автоматически сбрасывается свойство Видимость . При сброшенном свойстве Видимость , элемент управления, встроенный в ячейку будет показываться пользователю только при входе в режим редактирования ячейки. Если не войти в режим редактирования ячейки, ячейка будет отображать значение, которое связано с данным элементом управления. Если же свойство Видимость установлено, элемент управления будет виден пользователю всегда.

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

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

На форму на вкладку Команды – Команды формы добавляем элемент, задаем имя Заполнить, отмечаем галочкой свойство Изменяет сохраняемые данные (для того, чтобы при нажатии на кнопку у формы появлялся значок * в пользовательском режиме – признак того, что данные формы изменились, рис. 5) и у свойства Действие нажимаем на значок лупы (рис. 1):

Рис. 1. Добавление команды

В открывшемся окне выбираем Создать на клиенте и процедуру на сервере и нажимаем ОК. В открывшемся модуле формы документы в процедуре ЗаполнитьНаСервере() пишем код (рис. 2), будем заполнять табличную часть всеми товарами, у которых в наименовании встречается строка «авто»:

Запрос = Новый Запрос;

| пр_Номенклатура.Ссылка КАК Номенклатура

| Справочник.пр_Номенклатура КАК пр_Номенклатура

| пр_Номенклатура.Наименование ПОДОБНО ""%авто%""";

Объект.Товары.Загрузить(Запрос.Выполнить().Выгрузить());

Рис. 2. Модуль формы документа

Далее возвращаемся к форме документа и перетаскиваем команду Заполнить в Командную панель таблицы Товары, на форме появляется элемент ТоварыЗаполнить и кнопка Заполнить (рис. 3):

Рис. 3. Добавление кнопки Заполнить

Проверяем работу формы в пользовательском режиме, можно в режиме отладки: меню Отладка – Продолжить отладку (рис. 4):

Рис. 4. Запуск отладки

Открываем форму документа Приходная, переходим на вкладку Товары, нажимаем Заполнить, в результате у формы появляется признак модифицированности (изменения данных) и табличная часть заполняется товарам, у которых в Наименовании встречается «авто» (рис. 5):

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector