1с как найти элемент на форме

Как получить доступ к реквизитам формы?

Этот цикл позволяет просмотреть имена а так же типы всех реквизитов формы, в том числе такие реквизиты как надписи, командные панели и тд.

Реквизиты формы могут быть различных типов. Поставив фильтр в виде типа реквизита мы можем просмотреть реквизиты определенного типа.

Если реквизит формы имеет тип «ТабличноеПоле», то можно такой элемент просканировать во вложенном цикле и узнать имена колонок таблицы:

Как получить значение отдельного реквизита формы?

Чаще требуется получать не массив реквизитов формы, а значение отдельных конкретных реквизитов формы. Например реквизиты «Шапки» или «Подвала» формы документа.

Реквизиты шапки могут иметь различные типы: Дата, СправочникСсылка, ЧекБокс, элемент раскрывающегося списка и др.

Как получить значение элементов табличной части формы?

Доступ к табличной части формы через объект

Доступ к табличной части формы (например: Товары) можно получить через объект:

Доступ к табличной части формы через ЭлементыФормы

Для того, чтобы код работал правильно, надо чтобы колонка формы табчасти объекта в свойстве данные ссылалась на реквизит табличной части объекта. Этим определяется тип колонки таб части формы.

То есть должна быть установлена связь между реквизитом табчасти объекта и реквизитом табчасти формы. Форм у объекта метаданных может быть много мы знаем. Табличную часть формы объекта можно получить через объект ЭлементыФормы :

Объект ЭлементыФормы используется для доступа к элементам управления, расположенным на форме, в частности к таб части документа.

Результат для документа Авансовый отчет:

Это табличное поле!! Товары
Количество строк: 4
Женские ботфорты коричневые
Ботинки женские демисезонные
Ботинки женские натуральная кожа
Женские босоножки

Результат для документа Авансовый отчет:

Это табличное поле!! ВыданныеАвансы
=======================
НомерСтроки 1
ДокументАванса Расходный кассовый ордер ТК000000004 от 15.02.2007 19:24:03
СуммаДокументаАванса 300
ВалютаДокументаАванса USD
Выдано 300
Сумма 174

Такое двойное сканирование удобно использовать для быстрой проверки того, что все колонки таб части формы имеют связь с реквизитами таб части объекта. Если такой связи у какой-либо колонки нет, система сгенерирует ошибку.

Источник

Работа с формами в «1С:Предприятии 8»

f651907def0d877fc1817b8b1260b82b

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

Например, вызывая справочник «Контрагенты», мы получаем на экране как раз такую форму-список (рис. 1).

doc 1250 1m

Как правило, кроме собственно списка, у форм такого типа присутствует командная панель с кнопками-действиями, которые выполняются над элементами данного списка.

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

Кроме этого, в командной панели, как правило, присутствует элемент «Действия», где собраны все действия, которые можно выполнять над элементами данного списка.

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

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

Для часто используемых в форме списков действий назначены комбинации клавиш (подробнее об использовании «горячих» клавиш читайте в номере 10 (октябрь) «БУХ.1С» за 2007 год, стр. 8), использование которых повысит эффективность работы в программе:

Действие

Сочетание клавиш

Активация действия в командной панели

Добавить новый элемент

Пометка на удаление

Добавить группу (для справочников с иерархией)

Переместить элемент в другую группу (для справочников с иерархией)

Быстрый вход внутрь группы (для справочников с иерархией)

Выход на уровень выше

Добавить новый элемент копированием текущего

Изменить текущий элемент

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

Для этого можно использовать клавиши со стрелками (вверх, вниз, вправо, влево), включая привычное всем нам страничное листание (PageUp/PageDown) в сочетании с этими клавишами. Работают также общепринятые «горячие» клавиши:

Действие

Сочетание клавиш

Выделить все от текущей позиции до начала списка

Выделить все от текущей позиции до конца списка

Выделить все элементы

Копирование текстового представления текущей ячейки в списке элементов

Форма списка

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

Например, вызывая справочник «Контрагенты», мы получаем на экране как раз такую форму-список (рис. 1).

Как правило, кроме собственно списка, у форм такого типа присутствует командная панель с кнопками-действиями, которые выполняются над элементами данного списка.

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

Кроме этого, в командной панели, как правило, присутствует элемент «Действия», где собраны все действия, которые можно выполнять над элементами данного списка.

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

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

Для часто используемых в форме списков действий назначены комбинации клавиш (подробнее об использовании «горячих» клавиш читайте в номере 10 (октябрь) «БУХ.1С» за 2007 год, стр. 8), использование которых повысит эффективность работы в программе:

Действие

Сочетание клавиш

Активация действия в командной панели

Добавить новый элемент

Пометка на удаление

Добавить группу (для справочников с иерархией)

Переместить элемент в другую группу (для справочников с иерархией)

Быстрый вход внутрь группы (для справочников с иерархией)

Выход на уровень выше

Добавить новый элемент копированием текущего

Изменить текущий элемент

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

Для этого можно использовать клавиши со стрелками (вверх, вниз, вправо, влево), включая привычное всем нам страничное листание (PageUp/PageDown) в сочетании с этими клавишами. Работают также общепринятые «горячие» клавиши:

Действие

Сочетание клавиш

Выделить все от текущей позиции до начала списка

Выделить все от текущей позиции до конца списка

Выделить все элементы

Копирование текстового представления текущей ячейки в списке элементов

Форма элемента

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

Для форм элементов характерно наличие командных панелей сверху и/или снизу открываемого окна. Это командные панели формы с действиями, которые относятся к открытому объекту конфигурации целиком.

Обычно одна из команд назначена «кнопкой по умолчанию». Она активируется комбинацией клавиш Ctrl+Enter. Такая кнопка выделяется жирным (в нашем примере, это кнопка «ОК»).

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

Комбинация Alt+F10 работает и здесь, она активирует ту командную панель, с элементами которой пользователь работает в данный момент времени.

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

Клавиатурное управление, как правило, значительно ускоряет процесс работы с данными. Например, нажатие на клавишу Enter или Tab, позволяет «перескакивать» с одного элемента формы на другой (следующий за ним). Нажатие Shift+Tab позволяет «скакать» по элементам в обратном направлении. Если вы находитесь в каком-либо поле ввода (например, на рис. 2 в группе контрагентов), достаточно написать первые буквы нужного вам элемента и нажать Tab и программа автоматически подставит нужный элемент в поле ввода (если он уникален в системе), либо предоставит автоматический список для уточнения вашего варианта.

Действие

Сочетание клавиш

Открыть форму выбора нужного элемента

Открыть форму элемента уже выбранного объекта в поле ввода

Очистить поле ввода

Быстрое переключение между закладками на форме, если они есть

Ctrl+PageUp и Ctrl+PageDown

Переключение активного элемента типа «Флажок»

Отказаться от внесенных изменений в текстовых элементах формы

Вернуть отмененное действие

Закрытие практически любой формы

Закрытие/открытие окна служебных сообщений (того, которое может появляться внизу)

При вводе новых объектов конфигурации при помощи форм элементов, обязательные для заполнения поля подчеркнуты красным. Например, для документа «Реализация товаров и услуг: Продажа, комиссия» такими полями являются поле «Контрагент» и поле «Договор» (рис. 4).

Выделять текстовые блоки можно мышью, а можно курсорами с нажатой клавишей Shift. Это бывает полезно для операций с буфером обмена.

Форма выбора

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

Форма группы

Для каждого объекта конфигурации, может быть задано при разработке несколько форм: разнообразные формы элемента, выбора, вспомогательные формы. Необходимо это, в первую очередь, для облегчения ввода и обработки информации, хранящейся в этом объекте. То есть набор форм, как правило, определяется на этапе создания конфигурации и в разных конфигурациях может отличаться друг от друга даже для однотипных объектов (например, в типовых конфигурациях «Бухгалтерия предприятия» и «Управление торговлей»).

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

Если специальных пояснений нет, то вам отобразится общая информация по работе с текущим типом формы.

Вызвать справку можно, нажав клавишу F1.

Кроме этого, в таком случае всегда доступны «горячие» клавиши Ctrl+Shift+Стрелка вверх и Ctrl+Shift+Стрелка вниз.

Источник

Как получить значение элемента формы 1С

1. Реквизиты объекта и реквизиты формы в 1С

В обычном приложении у элемента формы 1С 8.3 было свойство «Значение», доступное как для чтения, так и для записи. Какой аналог в управляемом приложении?

Элементы формы 1С 8.3 могут содержать реквизиты двух видов: реквизиты объекта 1С и реквизиты формы.

1

Красным помечен реквизит объекта 1С Контрагент, а зеленым – реквизит формы в 1С.

Интерактивно выберем эти элементы в пользовательском режиме 1С и попробуем прочитать их «программно» кнопкой «Прочитать».

2

Если читать значения реквизитов в клиентской процедуре, то код для 1С Предприятия будет следующий:

3

3a

Все бы хорошо: мы получили на клиенте значения реквизитов объекта 1С и формы, но – не значения элементов формы 1С. На клиенте значение элементов формы 1С получить нельзя.

2. Как получить значения из элементов формы 1С

Чтобы получить значения из элементов формы 1С, нам потребуется серверный вызов:

4

Именно на сервере у элемента формы 1С 8.3 становится доступно свойство ПутьКДанным, по которому его можно извлечь либо из Объекта, который имеет тип ДанныеФормыСтруктура:

5

…либо из Формы, которая имеет тип ФормаКлиентскогоПриложения:

6

Форма и ее элементы не видны на сервере без контекста. То есть код для 1С:Предприятия выдаст множество ошибок.

Также Форму нельзя передать как параметр в процедуру и функцию на сервер или в общий модуль.

7

8

Новое значение доступно как параметр процедуры ВыбранноеЗначение.

9

Система дает шанс что-то сделать в этой ситуации.

Источник

Элементы формы

Элементы формы предназначены для отображения и редактирования данных в форме. Также как и сама форма, элементы связаны с данными при помощи реквизитов формы:

000000437 1

Поведение элементов, определяемое данными

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

Например, если элемент поле ввода, связать с данными, имеющими тип Строка, то оно будет иметь следующий вид:

000000437 2

Если же поле ввода связать с данными, имеющими тип Дата, то внешний вид поля ввода изменится: появятся символы разделителей даты и дополнительная кнопка выбора:

000000437 3

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

000000437 4

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

000000437 5

Элементы, ориентированные на бизнес-задачи

Поля ввода

Элементы, используемые в формах 1С:Предприятия, ориентированы на выполнение бизнес-задач. Например, поле ввода может иметь ряд дополнительных кнопок: выбора из списка, выбора, очистки, регулирования и открытия. Кроме этого, у поля ввода существует режим автоотметки незаполненного (подчеркивание красным пунктиром), который позволяет выделять поля, обязательные для заполнения пользователем:

000000437 6

Действия, выполняемые при нажатии дополнительных кнопок поля ввода, могут быть различными, в зависимости от типа данных, которые отображаются в этом поле; при этом кнопка выбора будет иметь разные пиктограммы:

000000437 7

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

000000437 8

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

000000437 9

Редактирование в одном элементе любых типов данных

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

000000437 10

Динамические списки

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

000000437 11

Автоматическое изменение расположения и размеров элементов формы при изменении размеров окна

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

Источник

Как передать ДанныеФормыЭлементКоллекции на Сервер или считать все имена ДФК?

Вопрос: Как передать ДанныеФормыЭлементКоллекции на Сервер?
Если без структуры в общем случае не обойтись, тогда

Вопрос 2: Как автоматически создать структуру по всем колонкам ДанныеФормыКоллекция?

Как программно считать все имена колонок ДанныеФормыКоллекция?

у меня получилось как-то так:

Если это УФ и ТаблицаФормы, которая программно создаётся запросом и выводится на форму, то потом считать её содержимое можно через такой вариант:
ЭтаФорма.ИмяРеквизитаТакКакВыЕгоНазвалиПриВыводеНаФорму.Выгрузить()

вы вывели на УФ вот такой процедурой какую-то таблицу созданную заранее запросом или руками:

// Делаем описание типа ТаблицаЗначений
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип(«ТаблицаЗначений»));
ОписаниеТипа = Новый ОписаниеТипов(МассивТипов);

// Создаём описание реквизита на основании этого типа
НовыеРеквизиты = Новый Массив;
НовыеРеквизиты.Добавить(
Новый РеквизитФормы(«ТабРеквизит», ОписаниеТипа)
);

// Создаём этот реквизит (с именем ТабРеквизит)
ЭтаФорма.ИзменитьРеквизиты(НовыеРеквизиты);

// Создаём элемент на форме с именем ТабНаФорме
// и связываем его с реквизитом ТабРеквизит
ТаблицаПолейВыбора = ЭтаФорма.Элементы.Добавить(«ТабНаФорме», Тип(«ТаблицаФормы»),ГруппаФормы);
ТаблицаПолейВыбора.ПутьКДанным = «ТабРеквизит»;
ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список;

ТаблицаПолейВыбора.УстановитьДействие(«ПриНачалеРедактирования», «ТабРеквизитПриНачалеРедактирования»);
ТаблицаПолейВыбора.УстановитьДействие(«ПередОкончаниемРедактирования», «ТабРеквизитПередОкончаниемРедактирования»);

// реквизит ТабРеквизит и соответствующий
// ему элемент формы ТабНаФорме созданы
// нами программно выше

// 1. добавляем колонки из ТабВкоде в реквизит ТабРеквизит

НовыеРеквизиты = Новый Массив;

Для Каждого Колонка Из ТабВКоде.Колонки Цикл
НовыеРеквизиты.Добавить(
Новый РеквизитФормы(
Колонка.Имя, Колонка.ТипЗначения,
«ТабРеквизит»
)
);
КонецЦикла;

// 2. добавляем колонки из ТабВКоде в элемент ТабНаФорме

Для Каждого Колонка Из ТабВКоде.Колонки Цикл
НовыйЭлемент = ЭтаФорма.Элементы.Добавить(
«ТабРеквизит» + «_» + Колонка.Имя, Тип(«ПолеФормы»), ЭтаФорма.Элементы[«ТабНаФорме»]
);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = «ТабРеквизит» + «.» + Колонка.Имя;

Если Колонка.Имя = «ВРезервеПоСпецификации» Тогда

// 3. наконец, передаём данные из ТабВКоде в ТабРеквизит

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с как запустить обычное приложение
  • 1с как заполнить список значений на форме