Реквизит выпадающий список 1с

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

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

Сам список выбора добавим программно в обработчике формы «ПриОткрытии». У поля выбора есть подчиненный список значений ЭлементыФормы.ИмяПоляВыбора.СписокВыбора, а для установки значения по умолчанию, и для определения выбранного значения ЭлементыФормы.ИмяПоляВыбора.Значение:
Процедура ПриОткрытии()

     
     ЭлементыФормы.ВыборЗначения.СписокВыбора.Очистить();
     ЭлементыФормы.ВыборЗначения.СписокВыбора.Добавить(0, "Создать документ");
     ЭлементыФормы.ВыборЗначения.СписокВыбора.Добавить(1, "Изменить документ");
     ЭлементыФормы.ВыборЗначения.СписокВыбора.Добавить(2, "Удалить документ");
     ЭлементыФормы.ВыборЗначения.Значение = 0;

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

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

  • Включим кнопку выбора списка
  • В свойстве «Список выбора» нажмите «…» и введите варианты
  • Результат выбора будет сохранен в выбранном реквизите


Выпадающий список значений 1С на форме — Вариант 2)

  • Включим кнопку выбора списка
  • Добавим обработчик «НачалоВыбораИзСписка»


&НаКлиенте
Процедура ВыбранноеЗначениеНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)

     
     Элементы.ВыбранноеЗначение.СписокВыбора.Добавить("Добавить документ");
     Элементы.ВыбранноеЗначение.СписокВыбора.Добавить("Редактировать документ");
     Элементы.ВыбранноеЗначение.СписокВыбора.Добавить("Удалить документ");

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

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

Выпадающий список значений 1С на форме — Вариант 3)

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

Проголосовать за этот пост:

Загрузка…

Posted in Язык 1С

Содержание:

1. Обычное приложение 1С

2. Управляемое приложение 1С

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

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

1С платформа 8.3 может работать в режимах обычного и управляемого приложения.

Рассмотрим, как реализуется создание выпадающего списка и чем различается его использование в разных режимах работы 1С Предприятие 8.3.

Для примера возьмем простой справочник (Код, Наименование) с реквизитом «ВыборИзСписка», с типом данных «Число».  

1. Обычное приложение 1С

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

Размещение Поля выбора в обычном приложения 1С

Также это можно сделать командой главного меню «Форма / Вставить элемент управления».

Теперь откроем панель свойств этого элемента управления и посмотрим, какие свойства нам могут понадобиться:

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

«Строки списка выбора» — ссылка на сам список, из которого мы будем выбирать. Подробнее разберем его ниже;

«НачалоВыбораИзСписка» — событие, возникающее при нажатии на кнопку открытия списка, но ДО его показа пользователю. С ним в модуле формы связан одноименный метод, в котором обычно реализуется программное заполнение списка выбора;

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

Откроем список выбора по ссылке свойства «Строки списка выбора»:

Строки списка выбора в обычном приложении 1С

Здесь колонка «Значение» – это собственно значения, которые будут использованы при выборе, а «Представление» — то, что будет видеть пользователь в списке. Значения могут быть только типов «Число», «Строка», «Дата», «Булево».

Т.е. это тот вариант, когда мы жестко задаем список выбора в конфигураторе, и он остается неизменным при работе 1С 8.3 Предприятие.

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

Как пример очистки и заполнения списка в момент открытия формы:

Заполнение списка при формировании выпадающего списка

Или уже в момент открытия списка для выбора:

Заполнение списка после формирования выпадающего списка

Если же после выбора из списка значения нам нужно выполнить какие-либо действия, обусловленные выбранным значением, то сделать это удобнее всего в процедуре «ОбработкаВыбора» этого элемента управления. Здесь в параметр «Выбранное значение» передается значение, которое мы выбрали в списке:

Процедура ОбработкаВыбора

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

Выпадающий список в режиме в 1С   

2. Управляемое приложение 1С

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

Начало создания выпадающего списка в управляемом приложении 1С

В палитре свойств элемента управления в управляемом приложении 1С нам будут интересны следующие:

— В разделе «Использование» свойство «РежимВыбораИзСписка» отмечаем галочкой. При этом на элементе управления появляется кнопка открытия списка;

Кнопка открытия списка в управляемом приложении 1С

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

Окно ввода списка в управляемом приложении 1С

— В разделе «События» уже знакомые нам «НачалоВыбораИзСписка» и «ОбработкаВыбора», которые работают так же, как и в обычном приложении в 1С, с учетом того, что в управляемом приложении 1С мы можем выполнять нужные действия по подготовке выпадающего списка с несколькими значениями и обработке результата выбора раздельно – на Клиенте и на Сервере, в зависимости от того, где и какие данные нам доступны:

Создание обработчика событий в управляемом приложении 1С

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

Выпадающий список в 1С

Специалист компании «Кодерлайн»

Вячеслав Болейко

  • Главная
  • О сайте
  • Главная
  • Содержание

Рукопашный бой Карташ

Категории

—>

рубрики: Работа с формами | Дата: 22 января, 2016
Скачать обработку с примерами из статьи: professia1c_ListValue.epf
Платформа: 8.3; Тип формы: управляемая.

Рассмотрим как разместить выпадающий список значений на форме. Практиковаться будем на платформе 1С:Предприятие 8.3 на управляемых формах. Предположим, что нам надо разместить на форме список значений как показано на рисунке.
СписокРезультат_ВЗ

Итак, создаем внешнюю обработку. Создаем для формы реквизит в котором будет содержаться выбранное из списка значение.
Назовем его к примеру – СписокВариантов. Выберем для него тип значения. В нашем случае это будет строка, хотя в зависимости от задачи это может быть и СправочникСсылка, ПеречислениеСсылка и т.д. Хочется только подчеркнуть, что тип не список значений, что на первый взгляд кажется логичным, а именно тот тип, значения которого будут в этом списке отображаться. Далее размещаем наш реквизит на форме как поле ввода.
СозданиеРеквизита_ВЗ

А для работы со списком значений будем использовать свойство поля ввода – СписокВыбора.
Для этого в свойствах поля ввода включаем флажок РежимВыбораИзСписка
РежимВыбораИзСписка_ВЗ
И программно заполняем СписокВыбора нужными нам значениями:



&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Список = Новый СписокЗначений;
	Список.Добавить("Вариант 1");
	Список.Добавить("Вариант 2");
	Список.Добавить("Вариант 3");
	
	Элементы.СписокВариантов.СписокВыбора.ЗагрузитьЗначения(Список.ВыгрузитьЗначения());
	СписокВариантов = Элементы.СписокВариантов.СписокВыбора[0].Значение;
	
КонецПроцедуры

Для обычной (не управляемой формы) принцип реализации точно такой же.

Как добавить выпадающий список на форме. Типа этого:

А очень просто.
Добавим реквизит формы ВыборИзСписка тип СТРОКА (!)

Перетащим реквизит мышкой влево, создастся элемент формы ВыборИзСписка. Зайдем в его свойства и установим флажок РежимВыбораИзСписка.

Список выбора будет доступен из свойств элемента ВыборИзСписка, которое так и называется СписокВыбора — туда можно ручками забить значения. Если нужено сделать это программно, то это делается через конструкцию Элементы.ВыборИзСписка.СписокВыбора.Добавить

О чем эта статья

Эта статья продолжает цикл статей «Первые шаги в разработке на 1С». Материал предполагает, что вы уже ознакомились с предыдущими нашими статьями, посвященными интерфейсу. В это же статье мы продолжим знакомство с новыми возможностями интерфейса «Такси» и рассмотрим, какие интересные новшества получили управляемые формы в этом интерфейсе.

Применимость

В статье рассматривается интерфейс «Такси» конфигурации, разработанной на платформе 1C 8.3.5.1098. Дополнения к текущим релизам платформы (8.3.11) приведены в заключении. Поэтому вся представленная информация актуальна.

Новое в управляемых формах в «1С:Предприятие 8.3»

Разработчики платформы «1С:Предприятие 8.3» в очередной раз основательно поработали над удобством работы пользователей с управляемыми формами.

Ввод по строке

Ранее, в полях ввода, при вводе с клавиатуры начальных символов, система искала подходящие элементы.

Однако зачастую пользователям необходимо осуществлять поиск не только по первым символам наименования, но и в произвольном месте названия.

В конфигураторе у ссылочных объектов метаданных для настройки ввода по строке, была создана отдельная закладка “Поле ввода”:

Конфигуратор - Поле ввода

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

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

В свойстве “Способ поиска строки при вводе по подстроке” можно выбрать – следует ли искать только по первым символам строки или в любой ее части.

Конфигуратор - Способ поиска строки

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

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

Поиск по вхождению символов

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

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

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

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

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

Полнотекстовый поиск

Результаты полнотекстового поиска, соответствующего введенной поисковой строке, приведены на рисунке:

Полнотекстовый поиск в конфигурации 1С

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

Модуль менеджера объекта

Для увеличения нажмите на изображение.

При совместном использовании этого функционала и ввода по строке существует следующая особенность.

Указанные выше обработчики не влияют на представление значений в списке выбора – в списке отражается основное представление объекта.

Поиск в 1С

Однако после выбора в поле отображается ожидаемое переопределенное представление объекта.

Поиск по объекту метаданных

Для увеличения нажмите на изображение.

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

Рассмотренные выше свойства ввода по строке задавались на уровне всего объекта метаданных.

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

Например, при помощи обработчиков событий АвтоПодбор и ОкончаниеВводаТекста конкретного поля ввода или при помощи обработчика события ОбработкаПолученияДанныхВыбора в модуле менеджера объекта.

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

Выражение - Параметры

Для увеличения нажмите на изображение.

Выпадающий список для поля ввода

В платформе 8.3 выпадающий список для поля ввода получил дополнительную функциональность для повышения удобства работы с системой.

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

Выпадающий список поля ввода

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

История выбора при вводе

Для увеличения нажмите на изображение.

Использование истории можно переопределить для конкретного реквизита объекта или элемента формы.

Отображение истории

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

Также в списке поля ввода есть команда “Создать новый объект”. При этом будет открыта форма нового элемента.

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

Создание нового элемента в поле ввода

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

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

Рассмотренные новшества позволяют увеличить скорость ввода информации в систему.

Сохранение настроек динамических списков

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

Автоматическое сохранение настройки динамических списков

У корневого элемента конфигурации появилось новое свойство – Хранилище пользовательских настроек динамических списков.

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

Хранилище настроек в конфигурации

Для увеличения нажмите на изображение.

Настройка списков в пользовательском режиме вызывается при помощи соответствующего пункта меню:

Настроить список

Внешний вид формы похож на настройку отчетов.

Настройка списка в конфигурации

Для увеличения нажмите на изображение.

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

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

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

Конфигуратор - группа пользовательских настроек

При такой настройке форма будет иметь поля в виде “быстрых отборов”.

Настроенная форма

Для увеличения нажмите на изображение.

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

Режим просмотра динамического списка (список, дерево, иерархический список) сохраняется вместе с настройками элементов формы.

Сохранение настроек динамического списка

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

Журнал документов

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

Журнал документов

Для увеличения нажмите на изображение.

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

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

Создать по параметру

Для увеличения нажмите на изображение.

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

Пользовательский режим 1С

Для увеличения нажмите на изображение.

Т.к. материал в статье описан для платформы 8.3.5, то актуализируем его.

  • До версии 8.3.7 ввод по строке работал недостаточно быстро, поэтому в этом релизе была изменена структура данных индекса полнотекстового поиска, что привело к повышению скорости при работе системы в тех местах, где используется данный механизм. Отметим, что новый формат полнотекстового поиска используется в том случае, если режим совместимости установлен в значение «Не использовать». В режиме совместимости с с версией 8.3.6 поведение не изменилось. Также отметим, что в следующем релизе платформы 1С (8.3.8) механизм ввода по строке и при использовании строки поиска динамического списка был также улучшен, и теперь он обеспечивает поиск данных, которые еще не попали в полнотекстовый поиск. Ранее такого поведения не наблюдалось.
  • Выпадающий список поля ввода управляемой формы также претерпел некоторые улучшения. В версии 8.3.8 он стал автоматически подстраивать свою ширину под ширину отображаемых в нем данных, плюс клавиши Home и End стали обрабатываться прямо в поле ввода. Благодаря этим улучшениям стало удобнее использовать поле ввода с выпадающим списком.
  • Механизм сохранения настроек динамических списков также был улучшен, и в версии 8.3.6 свойства расширения таблицы формы для динамического списка Период и Отображение стали храниться в тех же разрезах, что и другие настройки динамического списка, что сильно упростило работу с ними разработчику. Теперь они стали доступны в обработчике управляемой формы ПриЗагрузкеПользовательскихНастроекНаСервере(), чего ранее не было.

На этом знакомство с управляемыми формами в интерфейсе «Такси» мы завершим, но в следующей статье познакомимся с новыми возможностями, которые представила платформа «1С:Предприятие» редакции 8.3.

PDF-версия статьи для участников группы ВКонтакте

Мы ведем группу ВКонтакте – http://vk.com/kursypo1c.

Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.

Статья по программированию - в PDF-формате

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

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

Управляемая форма. Внешняя обработка. На форме ПолеВвода с установленной галочкой РежимВыбораИзСписка.

Заполняю его:

&НаСервере

Процедура ЗаполнитьСписокСводников()

    _Список=ЭтаФорма.Элементы.СписокСводников.СписокВыбора;

    _Список.Очистить();

    Соединение=СоединиеБД();

    Если Соединение=Неопределено Тогда

        Возврат;

    КонецЕсли;

    
    Запрос=Соединение.NewObject(«Запрос»);

    Выборка=Запрос.Выполнить().Выбрать();

    Пока Выборка.Следующий() Цикл

        _Список.Добавить(Выборка.НомерСводника, «№ «+Выборка.НомерСводника+» (Вес= «+Выборка.Вес+»)»);

    КонецЦикла;

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

Список заполняется. При нажатии на стрелку раскрывается.

При выборе значения ПолеВвода остается пустым. Что еще нужно добавить?

И как после заполнения установить значение по умолчанию? например первую строку списка?

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

Синтаксис

Метод ВыбратьИзСписка() имеет следующий синтаксис:

ЭлементСпискаЗначений ВыбратьИзСписка(СписокЗначений, [ЭлементФормы], [НачальноеЗначение])

А также альтернативный англоязычный синтаксис:

ValueListElement ChooseFromList(ValueList, [FormElement], [StartValue])

Параметры

Описание параметров метода ВыбратьИзСписка():

Имя параметра* Тип Описание
СписокЗначений СписокЗначений Список значений, содержащий значения, из которых будет осуществляться выбор.

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

ЭлементФормы ГруппаФормы, ТаблицаФормы, ПолеФормы, КнопкаФормы Элемент формы, около которого будет открыт выпадающий список. Если не указан, то будет выбран активный элемент формы.
НачальноеЗначение Число, ЭлементСпискаЗначений Задает начальный элемент, который будет активным по-умолчанию при открытии списка.
*Жирным шрифтом выделены обязательные параметры

Возвращаемое значение

ЭлементСпискаЗначений — если пользователь выбрал значение
Неопределено — если пользователь отказался от выбора

Описание

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

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

Внимание!! Если для конфигурации отключен режим использования модальности (свойство РежимИспользованияМодальности установлено в НеИспользовать), следует использовать метод ПоказатьВыборИзСписка().

Доступность

Тонкий клиент, мобильный клиент, толстый клиент, мобильное приложение(клиент).

Пример использования

Пример кода с использованием метода ВыбратьИзСписка():

&НаКлиенте
Процедура СпособПолученияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	
	СписокВыбора = Новый СписокЗначений;
	СписокВыбора.Добавить("Самовывоз");
	СписокВыбора.Добавить("Доставка");
	
	//в качестве элемента указываем элемент, вызвавший событие
	ВыбЭлемент = ЭтаФорма.ВыбратьИзСписка(СписокВыбора, Элемент, 0);
	Если НЕ ВыбЭлемент = Неопределено Тогда
		СпособПолучения = ВыбЭлемент.Значение;
	КонецЕсли;
	
	СтандартнаяОбработка = Ложь;
	
КонецПроцедуры

Читайте также:

  1. Метод ВыбратьИзМеню() управляемой и обычной формы

Поделиться страницей в соц.сетях

Метки: Метки Обычные формы Управляемые формы

Выпадающий список в поле ввода

Автор Ивашка, 11 авг 2021, 11:01

0 Пользователей и 1 гость просматривают эту тему.

Добрый день! Пришло задание: Есть док «»ЗаявкаНаРасходованиеСредств», у нее есть ТЧ: WG_Комментарий, и реквизит у ТЧ: комментарий(тип строка). Надо сделать выпадающий список в поле «комментарий» с возможностью его редактирования. Вот перечень комментариев:
-Нет документов
-Нет договора
Мое решение:
Создал внешнюю обработку, реквизит НастройкаПользователей(тип Произвольный), ТЧ: «тзКомментарий», реквизит у нее «Комментарий»,
В в модуле объекта:

НастройкаПользователей = Справочники.СохраненныеНастройки.НайтиПоНаименованию(ЭтотОбъект.Метаданные().ПолноеИмя());
Если НастройкаПользователей = Справочники.СохраненныеНастройки.ПустаяСсылка() Тогда
НовыйСписок = Справочники.СохраненныеНастройки.СоздатьЭлемент();
НовыйСписок.Наименование = ЭтотОбъект.Метаданные().ПолноеИмя();
НовыйСписок.Записать();
НастройкаПользователей = НовыйСписок.Ссылка;
КонецЕсли;
В модуле формы:

Процедура КнопкаВыполнитьНажатие(Кнопка)

СохраненныеНастройки = Новый Структура;
СохраненныеНастройки.Вставить("тзКомментарии", тзКомментарии.Выгрузить());
                 
Если ЗначениеЗаполнено(НастройкаПользователей) Тогда
обНастройка = НастройкаПользователей.ПолучитьОбъект();
обНастройка.ХранилищеНастроек = Новый ХранилищеЗначения(СохраненныеНастройки);
обНастройка.Записать();
КонецЕсли;

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

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

// Вставить содержимое обработчика.
Если ЗначениеЗаполнено(НастройкаПользователей) Тогда
СохраненныеНастройки = НастройкаПользователей.ХранилищеНастроек.Получить();
Если ТипЗнч(СохраненныеНастройки) = Тип("Структура") Тогда
ТЗНастройки = Новый ТаблицаЗначений;
СохраненныеНастройки.Свойство("тзКомментарии", ТЗНастройки);
тзКомментарии.Загрузить(ТЗНастройки);
КонецЕсли;
КонецЕсли;
КонецПроцедуры

а модуле формы документа «ЗаявкаНаРасходованиеСредств» в обработчике ПриОткрытии указал такой код:

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

СписокВыбораКомментарии = Новый СписокЗначений;
СписокВыбораКомментарии.Добавить("Нет договоров");

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


А свойство «Список выбора» у реквизита формы чем не устроило?


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


Зачем подправлять? Загружать список выбора при создании на сервере из хранилища настроек, в самом списке в самом низу сделать пункт <Редактировать список>, при выборе этого пункта показывать ввод строки, эту строку добавлять в список выбора реквизита и в сохраненный в хранилище настроек.

  • 1 пользователь сказал спасибо!


Цитата: antoneus от 11 авг 2021, 11:59Загружать список выбора при создании на сервере из хранилища настроек,

а как загружать из хранилище настроек? с помощью Получить()
antoneus, По сути же у меня значения поля комментарии хранятся в тзКомментарии


Примерно так и не надо огород городить с внешними обработками.

  • 1 пользователь сказал спасибо!


Теги:

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • Выпадающий список в поле ввода

Похожие темы (5)

Рейтинг@Mail.ru

Rambler's Top100

Поиск

Понравилась статья? Поделить с друзьями:

Вот еще несколько интересных статей нашего сайта:

  • Монгольские компании в москве
  • Мондиал бизнес консорциум ооо
  • Монетка реквизиты организации
  • Монополия на большую компанию
  • Монопольные компании в россии

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии