Форма 1С

Содержание

Окно редактирования — в основном используется для создания новых объектов.
Палитра свойств — не привязано к конкретному объекту конфигурации.
Занятие 3.
Для чего предназначен объект конфигурации Справочник?
Справочник предназначен для работы со списками данных, описания их свойств и структуры.
Какие характерные особенности объекта конфигурации Справочник?
Справочник состоит из элементов; Каждый элемент представляет собой отдельную запись в таблице, хранящей информацию из этого справочника;
Элемент также может содержать дополнительную информацию, которая подробнее описывает этот элемент — одинаковый для всех элементов справочника — реквизит; Реквизит также является объектом конфигурации;
Для чего используются реквизиты и табличные части справочника?
Реквизиты используются для описания дополнительной информации, описывающей элемент справочника;
Табличная часть используется для описания информации элемента справочника, одинаковой по структуре, но различной по количеству.
Зачем нужны иерархические справочники и что такое Родитель?
Иерархические справочники нужны для группировки элементов справочника по какому-либо признаку или принципы. Различаются несколько типов иерархий: иерархия групп и элементов — элемент справочника, представляющий группу — родитель для всех элементов и групп, входящих в эту группу;
Иерархия элементов — родителем является не группой элементов справочника, а непосредственно сам элемент.
Зачем нужны подчиненные справочники и что такое Владелец?
Элементы одного справочника могут быть подчинены элементам другого справочника, и в таком случае устанавливается связь один-ко-многим. Так же может быть использована связь один-к-одному, когда каждый элемент подчиненного справочника связан с одним из элементов справочника-владельца.
Какие основные формы существуют у справочника?
Форма элемента — для редактирования или создания элемента справочника;
Форма группы — для редактирования или создания группы справочника;
Форма списка — для отображения списка элементов в справочнике;
Форма выбора группы — для выбора одной из группы справочника;
Что такое предопределенные элементы справочника?
Элементы справочника, создающиеся в конфигураторе, данные элементы пользователь удалить не может; Служат для хранения информации всегда, независимо от действий пользователя;
Чем с точки зрения конфигурации отличается обычный элемент от предопределенного?
На предопределенные элементы могут быть завязаны алгоритмы работы конфигурации, следовательно, система добавляет эти элементы в структуру базы данных сама, без участия пользователя.
Как пользователь может отличить обычный элемент от предопределенного?
С помощью пиктограммы

1С 8.2 УП : Поле выбора ~ Заполнение списка значений в элементе поле выбора на форме

Динамический список ~ Как на управляемой форме разместить список регистра сведений с отбором?  14
 Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (!!! не путать с реквизитом справочника !!!) с типом » ДинамическийСписок» В поле » Основная табли Как установить параметр динамического списка?  8
  Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Как обновить динамический список или реквизит на форме клиента?  6
  Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Форма ~ Программное создание таблицы значений с условным оформлением  5
  Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Поле выбора ~ Как отобрать значения выводящиеся в список выбора у элемента формы поле выбора?  4
  Использование отбора: Функционал, который используется для интерактивного отбора в списках, можно использовать и для отбора программным способом. Для этого нужно для события НачалоВыбора соответствующего поля ввода определить процедуру обработк Посмотреть все в категории Работа с Формой (Диалог) и её элементами

Список значений на форме 1С для выбора пользователем значения можно расположить непосредственно на форме обработки/документа. Тогда пользователь сможет выбирать несколько значений из списка (зажав CTRL или SHIFT).

Список значений на форме 1С — в толстом клиенте просто размещаем на форме элемент списка, указываем название связанного реквизита формы.

Список значений на форме 1С — в тонком клиенте добавим реквизит формы, у которого выберем тип Список значений. При перетаскивании реквизита на форму, 1С спросит в каком виде мы хотели бы отображать его – чтобы он отображался аналогично толстому клиенту – выберите «Таблица».

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

Работа со списком значений на форме 1С из программного кода ведется по имени реквизита формы, который в толстом клиенте автоматически добавила система, а в тонком – вручную добавили мы самостоятельно. В примере (на картинках) имя реквизита формы – «ВыберитеЗначение».

В обработчике события формы ПриОткрытии() заполним значения списка, чтобы пользователю было из чего выбирать:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ВыберитеЗначение.Добавить(0, «Создать документ»); //первый параметр – значение, второй параметр – представление значение, представление может отличаться от значения как угодно
ВыберитеЗначение.Добавить(1, «Редактировать документ»);
ВыберитеЗначение.Добавить(2, «Удалить документ»);
КонецПроцедуры

В обработчике нашего нужного события (например, кнопка выполнения действий) мы можем проверить, что там понавыбирал наш пользователь. Доступ к результату производится также по имени, но через элемент на форме, поэтому перед именем добавляем ЭлементыФормы (для толстого клиента) или Элемент (для тонкого клиента). Также – условие Если/Иначе уже не пойдет – так как могут быть выбраны несколько значений:

Только зарегистрированные пользователи VIP группы могут видеть этот контент.

Основные формы

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

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

А у документа Поступление товаров и услуг состав основных форм будет уже другим:

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

Связь формы с данными

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

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

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

Структура формы

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

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

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

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

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

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

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

Полезные ссылки:

  • Конструктор формы,
  • Редактор формы,
  • Интерфейсные механизмы платформы.
  • АКТУАЛЬНЫЕ РЕЛИЗЫ 1С
  • ПРИМЕРЫ КОДА НА ПЛАТФОРМЕ 1С
Работа с формами в 1С 8.x
  • Как открыть форму документа?
  • Как открыть форму внешней обработки?
  • Как отрыть форму отчета так, чтобы она не перекрывала собой ту форму, из которой она открыта?
  • Как открыть форму отчета на весь экран?
  • Как из формы документа открыть форму списка данного документа, спозиционировавшись на нем же?
  • В документе есть реквизит «Контрагент». Как открыть форму подчиненного ему справочника «ДоговорыКонтрагентов»?
  • Как в форме отобразить картинку, сохраненную в реквизите справочника?
  • Как в журнале документов «УчетКадров» отобрать только документы «ПриемНаРаботу»?
  • Как узнать интервал дат в открытом текущем журнале?
  • Как при открытии справочника сделать отбор по контрагентам, входящим в список?
  • Как обеспечить, чтобы для выбора значения покупателя в расходной накладной справочник контрагенты открывался сразу с открытой группой «Покупатели»?
  • Как в форме обеспечить выбор реквизита, подчиненного Владельцу?
  • Как не открывая форму внешней обработки выполнить ее процедуру для определенного объекта?
  • Как вывести многострочное предупреждение?
  • Как задать вопрос пользователю?
Как открыть форму документа?

ФормаДокумента = СсылкаНаДокумент.ПолучитьФорму(); ФормаДокумента.Открыть();

Как открыть форму внешней обработки?

Обработка = ВнешниеОбработки.ПолучитьФорму(ИмяФайла); Обработка.Открыть(); Обработка = ВнешниеОбработки.ПолучитьФорму(«C:\Внешние\СпецОтчет.epf», ИмяФормы, , Ключ); Обработка.Открыть();

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

Форма = Отчеты.ОтчетДиаграмма.ПолучитьФорму(«ФормаОсновная», ЭтаФорма); Форма.ПоложениеОкна = ВариантПоложенияОкна.НеПерекрыватьВладельца; Форма.Открыть();

Как открыть форму отчета на весь экран?

СпособОтображенияОкна = ВариантСпособаОтображенияОкна.Максимизированное; ИзмененятьСпособОтображенияОкна = ИзменениеСпособаОтображенияОкна.Запретить;

Как из формы документа открыть форму списка данного документа, спозиционировавшись на нем же?

ФормаСписка = Документы.ПолучитьФормуСписка(); ФормаСписка.ПараметрТекущаяСтрока = Ссылка; ФормаСписка.Открыть(); ФормаСписка = Документы.ПолучитьФормуСписка( , , Новый УникальныйИдентификатор());

В документе есть реквизит «Контрагент». Как открыть форму подчиненного ему справочника «ДоговорыКонтрагентов»?

Если Не Контрагент.Пустая() Тогда ФормаПодчиненныхДоговоров = Справочники.ДоговорыКонтрагентов.ПолучитьФормуСписка(); ФормаПодчиненныхДоговоров.ПараметрОтборПоВладельцу = Контрагент; ФормаПодчиненныхДоговоров.Открыть(); КонецЕсли;

Как в форме отобразить картинку, сохраненную в реквизите справочника?

// Значение, сохраненное в реквизите справочника, имеющем тип // ХранилищеЗначения, можно только получить. СохраненнаяКартинка = Фотография.Получить(); Если СохраненнаяКартинка <> Неопределено Тогда // Если в хранилище было что-нибудь заранее записано… ЭлементыФормы.Фото.Картинка = СохраненнаяКартинка; КонецЕсли;

Как в журнале документов «УчетКадров» отобрать только документы «ПриемНаРаботу»?

ЖурналДокументовСписок.Отбор.ВидДокумента.Установить(Метаданные.Документы.ПриемНаРаботу);

Как узнать интервал дат в открытом текущем журнале?

Если ЖурналДокументовСписок.Отбор.Дата.Использование Тогда Сообщить(ЖурналДокументовСписок.Отбор.Дата); Иначе Сообщить(«Без ограничения по датам»); КонецЕсли;

Как при открытии справочника сделать отбор по контрагентам, входящим в список?

Процедура ПриОткрытии() СправочникСписок.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке; СправочникСписок.Отбор.Ссылка.Значение = СписокКонтрагентов; СправочникСписок.Отбор.Ссылка.Использование = Истина; КонецПроцедуры

Как обеспечить, чтобы для выбора значения покупателя в расходной накладной справочник контрагенты открывался сразу с открытой группой «Покупатели»?

Процедура КонтрагентНачалоВыбора(Элемент, СтандартнаяОбработка) Если Элемент.Значение.Пустая() Тогда СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.Контрагенты.ПолучитьФормуВыбора( , Элемент); ФормаВыбора.ВыборПокупателя = Истина; ФормаВыбора.Открыть(); КонецЕсли; КонецПроцедуры Если ВыборПокупателя Тогда ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Истина; ЭлементыФормы.СправочникСписок.ТекущийРодитель = Константы.ГруппаПокупатели.Получить(); КонецЕсли; Если ВыборПокупателя Тогда ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Истина; ЭлементыФормы.СправочникСписок.ТекущийРодитель = Справочники.Контрагенты.Покупатели; КонецЕсли;

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

// При начале выбора реквизита Помещение вызывается процедура: Процедура ПомещениеНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.ПереченьПомещенийОбъекта.ПолучитьФормуВыбора( , Элемент); ФормаВыбора.СправочникСписок.Отбор.Владелец.ВидСравнения = ВидСравнения.Равно; ФормаВыбора.СправочникСписок.Отбор.Владелец.Использование = Истина; ФормаВыбора.СправочникСписок.Отбор.Владелец.Значение = Владелец; Помещение = ФормаВыбора.ОткрытьМодально(); Если Помещение <> неопределено Тогда ЭлементыФормы.Помещения.ТекущаяСтрока.Помещение = Помещение; КонецЕсли; КонецПроцедуры

Как не открывая форму внешней обработки выполнить ее процедуру для определенного объекта?

Обработка = ВнешниеОбработки.Создать(ИмяФайла); Обработка.Печать(Ссылка);

Как вывести многострочное предупреждение?

Предупреждение(«На складе: » + Остаток + Символы.ПС + «В резерве : » + Зарезервировано + Символы.ПС + «Свободный остаток: » + (Остаток — Зарезервировано), 20, «Состояние остатков»);

Как задать вопрос пользователю?

Если Товары.Количество() > 0 Тогда Ответ = Вопрос(«Табличная часть будет очищена! Продолжить?», РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, «Внимание!»); Если Ответ = КодВозвратаДиалога.Нет Тогда Возврат; КонецЕсли; КонецЕсли; Товары.Очистить();