форма выбора множественный выбор
Организация подборов в табличную часть документа
Для иллюстрации механизма подбора информации в форме будем использовать задачу подбора элементов справочника Номенклатура в табличную часть документа ПриходнаяНакладная как наиболее распространенную. Поскольку механизм подбора реализован на уровне форм, то в других случаях просто будут задействованы иные прикладные объекты. Сама механика подбора не изменится.
Для организации подбора в форму документа следует открыть форму справочника как подчиненную форме документа в целом либо одному из элементов формы. Способ получения формы справочника может быть любым, также как и сама форма справочника, которая будет использована. Важно лишь то, что эта форма должна быть открыта как подчиненная.
Результат подбора будет доступен в обработчике события ОбработкаВыбора формы документа или элемента формы (в зависимости от того, чему мы подчиним форму справочника при открытии). Событие ОбработкаВыбора в форме документа будет вызвано в двух случаях:
Одиночный подбор
При одиночном подборе форма справочника будет закрываться сразу после выбора элемента. Для выбора следующего элемента необходимо будет снова инициировать подбор.
Поэтому откроем палитру свойств таблицы Материалы и создадим обработчик события ОбработкаВыбора :
Множественный подбор
Обработчик команды Подбор :
Обработчик события ОбработкаВыбора остается без изменений.
Подбор с использованием множественного выбора
Еще одним способом организации подбора является возможность выделения в списке сразу нескольких строк. Режим множественного выделения в списке устанавливается, как правило, во всех формах списков по умолчанию. Однако возможность выбрать сразу несколько элементов из списка по умолчанию, как правило, отключена.
Обработчик команды Подбор :
Обработчик события ОбработкаВыбора :
Множественный подбор с использованием множественного выбора
Обработчик команды Подбор :
Обработчик события ОбработкаВыбора остается без изменений.
Использование метода ОповеститьОВыборе()
Метод формы ОповеститьОВыборе() используется в тех случаях, когда алгоритм формирования данных подбора сложен и кроме собственно выбора элемента справочника от пользователя требуется указание некоторой дополнительной информации. В этом случае метод ОповеститьОВыборе() вызывается тогда, когда вся необходимая информация подбора сформирована.
Метод ОповеститьОВыборе() посылает оповещение владельцу формы о выполнении выбора или подбора, передает ему выбранное значение и закрывает форму, если она открыта не в режиме множественного выбора.
Также метод ОповеститьОВыборе() может использоваться в тех случаях, когда требуется передать в форму документа не только выбранный элемент справочника (или массив элементов), а некоторую произвольную структуру данных.
Справка
ТабличноеПоле.ДобавитьСтроку()
Добавляет строку в табличное поле, аналогично выполнению команды «Добавить».
Доступность: Толстый клиент.
ДанныеФормыКоллекция.Добавить()
Доступность: тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
Форма выбора (подбор) в управляемых формах
Статья будет состоять из нескольких приведенных примеров кода с описанием того, как прибегнуть к Подбору.
Пример 1.
Простой вызов формы выбора с одним возвращаемым результатом:
Пример 2.
Выбор нескольких значений (документов или справочников) :
В первых 2-х примерах мы использовали обработчик (Событие) формы «ОбработкаВыбора».
Теперь рассмотрим пример с использованием «Обработки оповещения», на мой взгляд более удобно )
Пример 3.
Думаю многие не знают про фишку Оповещением «на Сервере». То есть результат можно вернуть сразу на сервер без дополнительных условий. Работает до 8.3.13.1644, с 8.3.16.1063 этот метод недоступен.
Пример 4.
Мы видим что открывается форма выбора (из списка документов «Реализация товаров и услуг»), но иногда необходимо добавить некий отбор, чтобы при открытии формы не выводить все документы в целом.
Пример 5.
Есть моменты когда не всегда можно обойтись простым отбором, например необходимо открыть форму выбора со списком за определенный период.
Пример 6.
Пример 7.
Как открыть форму выбора с Позиционированием ранее выбранного значения:
Тестировалось на 1С:Предприятие 8.3 (8.3.16.1063) и 1С:Предприятие 8.3 (8.3.13.1644), Спасибо за внимание, возможно, кому-то поможет)
Как осуществить множественный выбор?
1. Что такое множественный выбор в 1С?
В данной статье будет описана процедура множественного выбора в 1С. Мы подробно рассмотрим метод с множественным выбором на данной платформе и проиллюстрируем его на конкретном примере, а также проведём анализ множественного подбора как функции, от которой произошла модель множественного выбора.
Для полного понимания заданий множественного выбора необходимо знать, как работает множественный подбор, так как первое понятие является частным случаем второго, более конкретизированным.
Множественный подбор – это инструмент, который работает в системе 1С 8.3 с формами справочника и делает различные подборки в них. Данная форма будет запущена до тех пор, пока не завершат её работу при помощи метода «Закрыть()».
Рассмотрим форму для документа «ПриходнаяНакладная», далее откроем обработчик команды «Подбор» и сделаем с его помощью замену старого текса новым. Данное действие может быть совершено при помощи кода, который продемонстрирован на скриншоте ниже:
Рис. 1 Работа с множественным подбором в форме справочника в 1С 8.3
Чтобы открыть форму, обращаемся к её параметрам, они регулируют состояние, в котором данная форма будет открыта. Параметры открытия формы имеют вид структуры, в которой один элемент соответствует одному состоянию. И, соответственно, код элемента – это наименование параметра открытия формы.
Данную структуру далее выводим в метод «ОткрытьФорму()». Перед этим также стоит сделать формировку структуры. Видим, что там находится единственный элемент, код которого – «ЗакрыватьПриВыборе».
Далее, после передачи данной структуры в вышеуказанный метод, необходимо поместить параметр в значение «Ложь». Поле этого действия получим, что если кликнуть на номенклатуру, то форма не будет закрыта.
2. Подбор при помощи множественного выбора в 1С
Дальше рассмотрим, как осуществить множественный выбор – по сути, это такой же подбор, только с условием, что можно выбирать несколько строк в списке.
Обычно режим с множественным выделением настроен в конфигурации 1С, согласно стандартным настройкам сразу для всех форм, однако, сама возможность выделения нескольких элементов, а не одного, выключена.
Так что следует запустить возможность выделения нескольких элементов. Для этого нужно задействовать параметр по расширению формы в динамическом списке – «МножественныйВыбор».
Для использования модели множественного выбора необходимо в форме в документе «ПриходнаяНакладная» поменять содержимое в команде «Подбор», как демонстрируется на скриншоте с примером кода ниже:
Рис. 2 Подключение возможности выделения нескольких элементов
После вышеуказанного действия форма с выборами сможет отдавать не по одному элементу, а сразу массив из элементов. Далее следует в обработчике для события «ОбработкаВыбора» сделать обход массива из элементов, которые были им получены. Это можно сделать, как показано на скриншоте с программным кодом ниже:
Рис. 3 Форма с выборами – множественный выбор
Таким образом стандартный множественный выбор в форме выбора был полностью реализован в системе 1С.
Организация выбора из произвольной формы (на примере выбора из списка регистра сведений)
1С:Предприятие 8 поддерживает готовую функциональность для организации выбора из форм списков объектных данных (справочников, документов и т.д.). В большинстве случаев выбираются именно такие значения. Однако, в некоторых случаях, необходимо организовать выбор и других значений. Механизм форм 1С:Предприятия 8 включает универсальный механизм выбора, позволяющий организовать выбор практически любых значений.
Для этого используется возможность открытия формы в режиме выбора и возможность обработки события выбора.
В качестве примера приведем реализацию выбора записи регистра сведений. Стандартные расширения форм не поддерживают механику выбора, однако ее несложно реализовать.
Вначале создадим новую форму списка регистра сведений и назовем ее «ФормаВыбора». В форме реализуем событие Выбор табличного поля отображающего список.
Теперь реализуем функциональность выбора в той форме, в которой это требуется. Например, в форме обработки, имеющей поля ввода «Валюта» и «Период».
Заметим, что если для установки текущей строки расширение формы не предоставляет стандартного параметра, то можно создать свой реквизит у формы выбора, заполнить его аналогично заполнению стандартного параметра в этом примере, и при открытии формы обеспечить позиционирование в списке в соответствии со значением данного реквизита.
Далее мы создаем форму, устанавливаем ей режим выбора, владельца формы, и выполняем открытие формы.
Теперь нам нужно только реализовать обработчик выбора в форме и выполнить в нем необходимее действия с выбранным значением.
Добавление списка со множественным выбором
Список с множественным выбором представляет собой список вариантов, который выглядит как прокручиваемый список с флажками. В списке можно установить нужное число флажков. В зависимости от того, как настроен список, в нем также может поддерживаться ввод собственных элементов.
В этой статье
Применение списка с множественным выбором
Используйте список с множественным выбором, если вы хотите:
разрешить выбор нескольких элементов списка;
разрешить ввод в список собственного значения;
по умолчанию отображать большинство элементов списка в форме или все элементы;
отображать значения, полученные из фиксированного списка, источника данных шаблона формы или внешнего источника данных, например базы данных или списка Microsoft Windows SharePoint Services.
В следующем примере показано, как в форме авансового отчета можно назначить расходам несколько категорий, установив флажки в списке множественного выбора. Разработчик шаблона формы разрешил применение пользовательских категорий. Поэтому пользователи могут вводить значения в пустое поле рядом с последним флажком в списке.
После вставки списка с множественным выбором в шаблон формы нужно задать значения, которые будут в нем отображаться. В противном случае при открытии формы, основанной на вашем шаблоне, список будет пустым. В диалоговом окне Свойства: Список с множественным выбором можно ввести значения самостоятельно или настроить их извлечение из базы данных или другого источника данных.
Связанные элементы управления
В InfoPath есть элементы управления, похожие на списки с множественным выбором, но предназначенные для других целей. Чтобы определить, какой из элементов управления лучше всего подходит для вашего шаблона формы, изучите список ниже.
Список. Как и список с множественным выбором, список позволяет выбирать значения. Однако в списке можно выбрать только один элемент. По умолчанию в списке отображаются все элементы, как и в списке с множественным выбором.
Раскрывающийся список. Как и любой другой список, раскрывающийся список предлагает список вариантов. Однако его элементы скрыты, пока пользователь не щелкнет элемент управления. В раскрывающемся списке можно выбрать только один элемент.
Поле со списком. Если вы хотите, чтобы пользователи могли как вводить собственные значения, так и выбирать элементы из предварительно заданного списка, вместо списка с множественным выбором используйте поле со списком. В поле со списком можно выбрать только один элемент.
Переключатели. Как и список с множественным выбором, группа переключателей позволяет выбрать один из вариантов. В отличие от списков с множественным выбором, в группе переключателей можно установить только один переключатель. Кроме того, при использовании переключателей выбор осуществляется щелчком небольшого кружка, а не элемента списка.
Взаимодействие с пользователем
В списках с множественным выбором пользователи делают выбор, устанавливая или снимая флажки в форме. Если все флажки не помещаются по высоте в элементе управления, с правой стороны поля появляется полоса прокрутки, с помощью которой можно просмотреть остальные варианты.
Вы можете разработать шаблон формы так, чтобы пользователи при необходимости могли вводить в список свои записи. В этом случае в конце списка будет выводиться флажок с полем ввода.
Чтобы ввести пользовательское значение, нужно установить флажок рядом с полем ввода, а затем ввести данные рядом с ним. Чтобы предоставить пользователям такую возможность, при добавлении в шаблон формы списка с множественным выбором установите флажок Разрешить пользователям вводить свои значения в диалоговом окне Свойства: Список с множественным выбором.
Совместимость
В InfoPath вы можете создать шаблон формы с поддержкой веб-браузера. При разработке таких шаблонов списки с множественным выбором будут недоступны на панели задач Элементы управления, так как они не отображаются в веб-браузерах.
Добавление списка со множественным выбором
Действия для вставки списка с множественным выбором немного отличаются в зависимости от того, разрабатываете ли вы шаблон формы с нуля или же используете в качестве его основы базу данных или другой внешний источник данных.
На следующем рисунке показан список с множественным выбором, выбранный в режиме конструктора до того, как разработчик шаблона формы вручную добавил элементы списка.
Источник данных для шаблона формы состоит из полей и групп, отображаемых в иерархическом представлении в области задач Источник данных. Списки с множественным выбором всегда привязаны к повторяющимся полям внутри группы. Повторяющиеся поля обеспечивают хранение нескольких значений в поле. В следующем примере список с множественным выбором Категория в шаблоне формы привязан к повторяющемуся полю категория в области задач Источник данных.
При создании нового пустого шаблона формы по умолчанию устанавливается флажок Автоматически создавать источник данных в области задач Элементы управления. Это позволяет InfoPath автоматически создавать поля и групп в источнике данных по мере добавления элементов управления в шаблон формы. Эти поля и группы представлены в виде значков папок и файлов в области задач Источник данных.
Если структура шаблона формы основана на существующем XML-файле, базе данных или веб-службе, InfoPath наследует поля и группы в области задач Источник данных из существующего источника данных.
Добавление списка со множественным выбором
Поместите курсор в то место шаблона формы, куда вы хотите вставить элемент управления.
Если область задач Элементы управления не отображается, щелкните Другие элементы управления в меню Вставка или нажмите клавиши ALT+I, C.
В области задач Элементы управления сделайте одно из следующего:
Чтобы автоматически создать повторяющееся поле в источнике данных, привязанном к списку с множественным выбором, установите флажок Автоматически создавать источник данных.
Чтобы привязать список с множественным выбором к существующему повторяющемуся полю, снимите флажок Автоматически создавать источник данных.
Примечание: Если флажок недоступен, источник данных заблокирован. Например, если вы создали структуру шаблона формы на основе схемы XML, возможно, через InfoPath не удастся добавить новые поля или группы в источник данных. Это ограничение помогает предотвратить случайное внесение в схему изменений, которые могут сделать ее недопустимой.
В разделе Вставить элементы управления выберите элемент Список с множественным выбором.
Если при выполнении шага 3 вы сняли флажок Автоматически создавать источник данных, в диалоговом окне Список с множественным выбором: привязка выберите поле, к которому вы хотите привязать список с множественным выбором.
В шаблоне формы слева от списка с множественным выбором или над ним введите текст подписи, добавив после него двоеточие (:).
Чтобы задать значения, которые вы хотите использовать в качестве записей списка, дважды щелкните список с множественным выбором.
Откройте вкладку Данные.
Выполните одно из следующих действий для заполнения списка.
Ввод значений списка вручную
Этот вариант удобен, если у вас есть ограниченный набор значений, которые не должны существенно изменяться в будущем. Если значения изменятся, потребуется опубликовать обновленную версию шаблона формы, чтобы пользователи могли просматривать и использовать новые элементы списка.
Нажмите кнопку Добавить.
В поле Значение введите текст, который вы хотите сохранять, если пользователь выбирает эту запись.
В поле Отображаемое имя введите текст, который вы хотите отобразить для этой записи, и нажмите кнопку ОК.
Повторите действия 1–3 для каждой записи, которую требуется добавить в список.
Чтобы проверить изменения, нажмите кнопку Просмотр на стандартной панели инструментов или нажмите клавиши CTRL+SHIFT+B.
Использование значений из другой части формы
Этот вариант удобен, если вы хотите, чтобы значения в списке изменялись в зависимости от того, какие другие значения пользователи ввели в форму.
В разделе Элементы списка щелкните Подставить значения из источника данных формы.
Элементы в списке должны быть связаны с конкретной повторяющейся группой или повторяющемся полем шаблона формы.
Нажмите кнопку Выбрать XPath 
Нажмите кнопку Выбрать XPath 
Нажмите кнопку Выбрать XPath 
Совет: Чтобы в списке не было значений с одинаковыми отображаемыми именами, установите флажок Показывать только записи с уникальными отображаемыми именами.
Использование значений из базы данных, веб-службы, XML-документа или сайта SharePoint
Этот вариант удобен, если вы хотите, чтобы значения в списке регулярно обновлялись. Значения обычно хранятся в базе данных или другом внешнем источнике и извлекаются каждый раз при открытии формы.
Щелкните Искать значения во внешнем источнике данных.
Выполните одно из следующих действий:
Если вы уже добавили подключение к данным, щелкните его в поле Подключение к данным.
Чтобы добавить новое подключение к данным, нажмите кнопку Добавить, а затем следуйте инструкциям мастера подключения к данным.
Элементы в списке должны быть связаны с конкретной повторяющейся группой или повторяющемся полем.
Нажмите кнопку Выбрать XPath 
Нажмите кнопку Выбрать XPath 
Нажмите кнопку Выбрать XPath 
Совет: Чтобы в списке не было значений с одинаковыми отображаемыми именами, установите флажок Показывать только записи с уникальными отображаемыми именами.
Чтобы разрешить пользователям вводить свое значение внизу списка с множественным выбором, установите флажок Разрешить пользователям вводить свои значения.
Советы по макету
Приведенные ниже советы помогут вам настроить внешний вид, размер и другие параметры списка с множественным выбором.
Чтобы одновременно изменить ширину нескольких списков, выберите их, нажмите клавиши ALT+ВВОД, откройте вкладку Размер, а затем в поле Ширина введите новое значение.
Чтобы одновременно изменить цвет фона для нескольких списков, выберите их. В меню Формат нажмите кнопку Границы и заливка и внесите необходимые изменения на вкладке Заливка.
Чтобы настроить шрифт, который используется для текста рядом с флажками в списке со множественным выбором, используйте поля Шрифт и Размер шрифта на панели инструментов Форматирование. Чтобы одновременно изменить шрифт и размер шрифта для всех таких списков в шаблоне формы, щелкните список с нужным форматированием, а затем в меню Формат нажмите кнопку Применить шрифт ко всем элементам управления «Список с множественным выбором».
Если вы хотите изменить интервал между списком с множественным выбором и объектами вокруг него, поэкспериментируйте с параметрами полей на вкладке Размер в диалоговом окне Свойства: Список с множественным выбором. С помощью полей можно точнее задать интервал, чем с помощью разрывов абзацев.






