Форма списка в 1с предприятие. Как открыть форму списка с некоторым отбором? Итак, что же такое отбор и зачем он

Настройки отбора и управление формой списка в 1С 8.х

В восьмой версии 1С появились более «стройные» возможности работы с динамическими списками, нежели в версии 7.7.

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

К отборам относятся следующие кнопки:

И для более младших версий 8.х:

Открывая любую стандартную панель управления формой списка, мы можем найти на панели стандартные кнопки управления отбором. Для 8.1 и 8.2 они немного отличаются внешне, но они похожи на «воронки»-фильтры.

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

Итак, что же такое отбор и зачем он?

Представьте себе классическую таблицу:

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

Часто возникает необходимость выбрать из общей кучи и отобразить несколько строк с нужным значением колонок:

  • Все товары с первыми символами в артикуле = 100
  • Все документы от нужного контрагента и прочее.

Или наоборот, выкинуть из списка «мешающие» элементы:

  • Все товары иностранные товары
  • Все товары с пустой ставкой НДС.

Вот тут то и приходят на помощь инструменты отбора. В 1С вы можете столкнуться с отбором во множестве разных вариаций. Но принцип будет везде одинаков: отобрать строки с нужными значениями в одном или нескольких столбцах. Или убрать строки с ненужными значениями в колонках.

Основная кнопка управления отбором - первая слева

Она открывает основную форму отбора для выбранной формы списка

Пример формы отбора справочника основных средств

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

Строка содержит название колонки с отметкой, вид сравнения и значение для отбора.

Значения для сравнения могут быть различных типов. Если колонка простого типа (число, строка, дата) , то вы просто вписываете значение для сравнения в поле (Код =1000, Наименование = деталь). Если колонка сложного типа (ссылка на элемент справочника, документ, перечисление), то в поле значения отбора нужно выбрать элемент этого типа.

Вид сравнения

Кроме простого «колонка равно значение» зачастую требуются более гибкие виды сравнения.

Причем виды этих сравнений зависят от типа значения отбора. Дату можно проверять не только на равно, но и на соответствие диапазону (дата от начала месяца до конца месяца), число - на принадлежность к интервалу (сумма от 1000 до 1500). Строку можно проверять на вхождение (комментарий содержит «под отчет»). Кроме того, элементы справочников можно проверять на вхождения в группу, но нельзя на больше/меньше. Можно также использовать отбор по множественным значениям - например нам нужны строки содержащие колонки с несколькими значениями.

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

  • Равно (все типы данных)
  • Больше (даты, числа, строки)
  • Больше или равно (даты, числа, строки)
  • Меньше (даты, числа, строки)
  • Меньше или равно (даты, числа, строки)
  • Интервал (4 типа с разным типом вхождения граничных значений) (даты, числа, строки)
  • Содержит (строки)
  • В списке (все типы)
  • В группе (ссылочные типы)
  • В группе из списка (ссылочные типы)

Ряду вышеперечисленных видов соответствуют противоположные по смыслу:

  • Не равно
  • Не содержит
  • Не в списке
  • Не в группе
  • Не в группе из списка

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

Как мы помним, на командной панели кроме «главной воронки» содержатся и другие кнопки управления отбором. Вторая кнопка в этом списке - отбор по текущему значению. Эта очень удобная для практического использования кнопка, о чем мы расскажем далее. Ее действие заключается в следующем: установить отбор по значению в текущей колонке. Это экономит некоторое время и позволяет ускорить многие действия. Третья кнопка - история отборов. При ее нажатии вы видите все отборы, которые вы накладывали на текущий список ранее. Список хранится и после окончания работы с программой. Но только если вы завершили сеанс работы корректно, а не через перезагрузку или выключение питания компьютера. И наконец последняя кнопка - отключает все установленные отборы.

Настройка внешнего вида списков, их сохранение и вывод на печать.

У всех стандартных форм списков есть кнопки управления колонками и печатью. Настройка колонок вызывается из меню «действия», по щелчку правой кнопкой на форме списка. Иногда эта кнопка вынесена на командную панель.

По ее нажатии открывается форма настройки:

Видимые колонки отмечены галками. Можно отключить лишние и включить невидимые колонки. В правой части для текущей колонки указано положение и управление размером. Ширину всех колонок обычно можно менять, установив курсор в шапке таблицы на границе колонок (при курсор принимает вид ). Если он не меняет вид, изменение размера отключено в настройках колонки. Включить изменение размера можно в вышеуказанной форме настройки (выбрать колонку - Изменение размера: Изменять).

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

Ищем рядом с кнопкой настройки списка кнопку «вывести список». Нажимаем - открывается диалог:

Здесь также галками отмечены видимые колонки, которые будут выведены в печатную форму. Убираем ненужные, включаем нужные и нажимаем ОК. По умолчанию список выведен в табличный документ и этот табличный документ будет тут же отображен на экране. (хотя гурманы могут вывести в текстовый документ, в нем колонки разделены табуляциями). При этом внимание - будьте осторожны с динамическими списками (это те, которые показываются экранными порциями и количество их элементов заранее не известно). Если ваш справочник номенклатуры состоит из 100 тысяч позиций то вы просто не дождетесь построения печатной формы, либо вашему компьютеру не хватит памяти. Надо либо знать примерное количество элементов, которые отражает ваш список, либо грамотно установить отбор. Чтобы список можно было просмотреть глазами с начала и до конца. В общем случае не стоит выводить на печать список из более чем 10000 позиций.

Итак, список у вас на экране - теперь вы можете его распечатать. Его можно также сохранить на диск для передачи или последующего использования. По умолчанию он сохраняется во внутреннем формате 1С в файле с расширением *.mxl . Для этого вы, в правом верхнем углу выбираете пункт меню «Файл», далее «Сохранить». Вызывается стандартный диалог сохранения файлов. Открыть такой файл вы сможете только в среде 1С. Причем этой же версии платформы. («Файл» - Открыть - выбираете свой сохраненный ранее файл).

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

1. Напечатаем список расходных накладных, созданных пользователем Иванова

Если мы видим в списке документ, созданный Ивановой, просто становимся на ячейке, содержащей «Иванова» и нажимаем отбор по текущей ячейке. Ждем некоторое время и видим список документов, созданных Ивановой. При этом нам нужны не все документы, а только по двум организациям (например ИЧП "Предприниматель"и Торговый дом "Комплексный" из демо-базы). Нажимаем первую основную кнопку отбора, в диалоге находим строку «организация», выбираем вид сравнения «В списке» (нам ведь нужны две организации) , в поле значения нажимаем кнопку выбора и подбираем в список 2 нужных организации. Нажимаем ОК, и видим в списке то, что хотели увидеть. Нажимаем вывести список. Оставляем только колонки Номер, Дата, Сумма, Организация, контрагент и нажимаем вывести. Список готов. Если мы хотим поменять местами колонки («Сумма» сделать последней) , открываем форму настройки списка и «двигаем» нужную колонку вниз или вверх с помощью стрелок сортировки.

2. Удалим из списка товаров в документе поступления все товары, кроме трех нужных.

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

Открываем диалог, выбираем «номенклатура» НЕ в списке и далее подбираем в список товары, которые нужно оставить. Нажимаем ОК и видим список, который состоит из полностью ненужных нам товаром. Нажимаем и удерживаем кнопку «DEL», до тех пор пока список полностью не очистится. Потом правой кнопкой мыши по списку - отключить обор. В списке видим только нужные товары.

Как открыть форму списка с некоторым отбором?

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

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

В процессе открытия формы будет установлен отбор по указанному полю. Например, в следующем примере открывается список приходных накладных с отбором по полю Номер , равному 333.

ЗначениеОтбора = Новый Структура("Номер", "333");

ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);

ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка",ПараметрыВыбора);

2. Можно открыть форму списка без параметров:

ОткрытьФорму("Документ.ПриходнаяНакладная.ФормаСписка");

И затем, в обработчике события формы списка приходных накладных ПриСозданииНаСервере написать код, который создает отбор в динамическом списке, являющемся основным реквизитом формы:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номер");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Больше;

ЭлементОтбора.Использование = Истина;

ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

ЭлементОтбора.ПравоеЗначение = "000000001";

КонецПроцедуры

Преимущества данного метода в том, что ВидСравнения у отбора можно задавать не только Равно , как в первом случае, а и Больше , Меньше и т.п.

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

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

Для этого в форме списка номенклатуры создадим команду и соответствующую ей кнопку Приходные накладные .

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

&НаКлиенте

Процедура ПриходныеНакладные(Команда)

ФормаСписка = ПолучитьФорму("Документ.ПриходнаяНакладная.ФормаСписка");

ФормаСписка.ФильтрПоТовару = Элементы.Список.ТекущаяСтрока;

ФормаСписка.Открыть();

КонецПроцедуры

В этом обработчике мы получаем форму списка приходных накладных и передаем в параметр формы ФильтрПоТовару ссылку на текущий элемент в списке номенклатуры и открываем форму с этим параметром.

Затем создадим форму списка документов ПриходнаяНакладная и создадим реквизит формы ФильтрПоТовару , который мы будем использовать в качестве параметра формы при ее открытии. Теперь откроем палитру свойств основного реквизита формы Список . Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть .

В поле Запрос введем следующий текст запроса:

ВЫБРАТЬ

ДокументПриходнаяНакладная.Номер,

ДокументПриходнаяНакладная.Дата

ИЗ

Документ.ПриходнаяНакладная КАК ДокументПриходнаяНакладная

ГДЕ

ДокументПриходнаяНакладная.Товары.Товар = &Товар

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

Список.Параметры.УстановитьЗначениеПараметра("Товар", ФильтрПоТовару);

КонецПроцедуры

Здесь Список.Параметры - это список параметров запроса динамического списка для реквизита Список . Значение параметра Товар устанавливается равным значению параметра формы ФильтрПоТовару .

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

Демонстрационный пример для 3-го варианта находится в каталоге 1CITS/EXE/FAQ/ОткрытьФормуСОтбором.dt. Пример выполнен на версии платформы 8.2.9.356.

Разработка интерфейса в 1С состоит из двух частей – разработка меню или рабочего стола и разработка экранных форм 1С. Окна, с которыми пользователь работает в 1С, называют экранные формы 1С или просто формы 1С.

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

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

К сожалению, этот подход ошибочен, так как пользователи привыкли работать с типовыми формами 1С, которых в конфигурации большинство. Рисовать собственный велосипед, помечать его надписями Courier вида «Copyright Vasya Pupkin» — это явно дурной тон.

Сейчас мы с Вами пройдем краткий ликбез по рисованию форм 1С.

Что такое Формы 1С

Форма 1С – это метод представления пользователю. Обычно форма представляет собой ряд полей, которые требуется заполнить и набор кнопок (команд меню) для управления. Форма 1С есть у большинства объектов 1С.

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

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

Большинство форм 1С типовых конфигураций в 1С имеют свое, типовое представление, привычное пользователю.

Как работают формы 1С

Логика (порядок) работы пользователя в 1С следующая:

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

Автоматически сгенерированная форма списка 1С обычно содержит минимум полей (код/наименование и дата/номер соответственно). Автоматически сгенерированная форма элемента обычно содержит все поля (реквизиты), перечисленные сверху вниз.

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

Где находятся формы 1С

В режиме 1С Предприятие при выборе практически любого объекта 1С (справочника, документа, отчета, обработки и т.п.) Вам откроется форма этого объекта.

В конфигураторе, в окне конфигурации, выберите нужный Вам объект, раскройте его ветку, чтобы увидеть вложенную ветку Формы 1С.

Другой вариант – открыть редактор объекта (два раза мышкой или поставить курсор и Enter) и перейти на закладку Формы 1С.

Здесь расположен список форм 1С. Одну из добавленных форм 1С можно добавить как форма по-умолчанию (форма списка 1С, форма элемента 1С и так далее).

Создание форм 1С

Чтобы добавить новую форму 1С, нужно нажать кнопку Добавить (Ins на клавиатуре). Чтобы войти в существующую – нажмите на нее два раза мышкой.

Конструктор предложит Вам выбрать вид формы 1С – форма элемента 1С, списка. Здесь же можно добавить или убрать командные панели на форме 1С. Чаще всего эти настройки оставляются как есть, по умолчанию.

Открывается форма 1С, заполненная по умолчанию — на нее добавились все реквизиты объекта 1С, которые есть. Отметить галочками конкретный список требуемых полей можно на второй закладке конструктора.

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

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

Чтобы добавить на форму 1С новые реквизиты, нажмите кнопку на панели Размещение данных (меню Форма/Размещение данных), установите галочки на тех элементах, которые нужно добавить, а также галочки «Вставить надписи» и «Разместить автоматически».

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

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

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

Чтобы изменить размер формы 1С, просто подведите курсор к краю формы 1С, нажмите левую кнопку мышки и просто перетащите край формы 1С.

Чтобы форма 1С заработала – т.е. делала что-то в ответ на действия пользователя – нужно добавить функции обработчики. Войдите в свойства любого элемента (щелкнув на нем два раза левой кнопкой мыши) или самой формы 1С (аналогично на заголовке формы). В самом низу окна свойств есть раздел «События». Выберите удобное событие (для всех полей это обычно «ПриИзменении», для формы «ПриОткрытии») и нажмите кнопку с лупой. Откроется ее обработчик события.

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

В прошлом уроке мы с Вами рассмотрели для обычного (толстого) клиента. В версии платформы 1С 8.2 . В них используются новые экранные формы 1С 8.2. Их называют управляемые формы 1С 8.2.

Управляемые формы 1С 8.2 – это будущее 1С. Они отличаются от обычных форм 1С 8.2 тем, что генерируются системой автоматически на основе специальных настроек («обычные» формы просто рисуются программистом по своему желанию).

Различия в разработке управляемых форм 1С 8.2 от обычных – значительны. Поэтому мы собрались сегодня отдельно обсудить создание и изменение управляемых форм 1С 8.2.

Управляемые формы 1С 8.2

Если Вы занимались разработкой конфигураций 1С ранее – при открытии редактора управляемой формы 1С 8.2 Вас сразу поставит в тупик то, что мышкой невозможно повлиять на форму 1С 8.2 вообще.

Нельзя изменить форму 1С 8.2, нельзя передвинуть элемент, нельзя даже посмотреть свойства поля как раньше – кликнув два раза мышкой поле на форме 1С 8.2.

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

Настройки состоят из списка элементов формы 1С 8.2, расположенных в редакторе в верхнем левом углу. В элементы формы 1С 8.2 входят:

  • Реквизиты
  • Команды (новое понятие 1С 8.2, могут выглядеть как кнопки или пункты меню)
  • Группы (для объединения реквизитов и команд).

Соответственно настройки этих элементов находятся не в свойствах полей, а в свойствах этих элементов настройки (меню по правой кнопке мыши, пункт Свойства).

Как работают управляемые формы 1С 8.2

Работа с управляемыми формами 1С 8.2 отличается для пользователя. Они имеют больше возможностей, но непривычны для тех, кто работает с 1С уже давно.

В первую очередь отличается расположение привычных элементов на форме 1С 8.2. Командная панель всегда находится вверху.

Левая часть командной панели настраиваемая. В ней обычно находятся такие типовые кнопки как Записать и Провести.

Правая часть командной панели – новое стандартное меню формы 1С Все действия. Это меню позволяет управлять формой 1С 8.2 по своему желанию, наподобии, как в отчете СКД настройки позволяют значительно изменить вид отчета.

Произвольные пункты меню 1С Все действия

В зависимости от принадлежности данной формы 1С 8.1 к тому или иному , меню наполнено пунктами, позволяющими управлять этим объектом. Например, если это форма списка справочника, то там будут такие команды как Создать или Редактировать.

Пункт Настроить список меню 1С Все действия

Если на форме 1С 8.2 есть список, то в меню есть команда Настроить список и Вывести список.
Если команда Вывести список Вам уже знакома – она позволяет любой список в 1С сохранить в Excel/вывести на печать, то вторая команда – новая.

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

Функционал кнопки Найти конечно же не сравним с отборами, но они никуда и не делись!
Они теперь находятся в пункте меню Настроить список. Отбор теперь можно делать по любому полю, а кроме него можно сделать сортировку и условное оформление также, как это можно делать в отчетах СКД.

Пункт Изменить форму меню 1С Все действия

Пункт Изменить форму позволяет подобным образом изменить не только список на форме 1С 8.2, но и саму форму 1С 8.2.

Пользователь самостоятельно может включить или отключить видимость полей на форме 1С 8.2, ширину и высоту, активизация поля по умолчанию при открытии и т.п.

Использование управляемых форм 1С 8.2 и обычных форм 1С

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

Для этого необходимо и войти в свойства конфигурации (верхний элемент в окне конфигурации).

В свойствах конфигурации в 1С 8.2 появились две новые галочки, которые позволяют включить нестандартное использование форм 1С.

Создание управляемых форм 8.2

Добавление новой формы 1С 8.2 производится также, как и раньше – с помощью кнопки Ins на клавиатуре или кнопки Добавить. Чтобы войти в существующую – нажмите на нее два раза мышкой.

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

Конструктор предложит Вам выбрать вид формы – форма элемента, списка. Здесь же можно добавить или убрать командные панели на форме. Чаще всего эти настройки оставляются как есть, по умолчанию.

Открывается форма, заполненная по умолчанию — на нее добавились все реквизиты объекта 1С, которые есть. Отметить галочками конкретный список требуемых полей можно на второй закладке конструктора.

Редактор формы состоит из трех разделов.

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

Доступные реквизиты Вы можете перетащить влево и он станет элементом формы (полем на форме).

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

Команды также перетаскиваются влево. Если родителем стала командная панель, то это будет кнопка командной панели – иначе просто кнопкой.

В список элементов формы (полей) можно не только перетащить реквизит объекта/формы, но и просто добавить (кнопка Добавить или Ins). В частности можно новый объект формы – Группу.

Группа может быть командной панелью (курсор должен стоять на строке Форма). Тогда Вы перетаскиваете в нее команды и они становятся кнопками.

Группа может быть «обычной». Тогда это способ группировки полей как вертикально, так и горизонтально. Наименование группы можно убрать в свойствах.

Группа может быть панелью (страницы). Верхняя добавленная группа является панелью, а вложенные группы этого типа являются страницами. На страницы перетаскиваются уже поля.

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

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

Свойства самой формы, в том числе и ее размеры задаются у корневого элемента формы с аналогичным названием Форма.

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

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

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

Наряду с этим, могут существовать общие формы, не принадлежащие конкретным объектам конфигурации - общие формы.

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

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

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

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

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

Автогенерируемые формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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