Как открыть справочник форму списка

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

Существует несколько способов открыть форму списка с определенным выбором. Рассмотрим их по порядку:

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

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

FilterValue = NewStructure(«Число», «333»);
ChoiceParameters = NewStructure(«Filter»,FilterValue);

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

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

&OnServer
CreateProcedureOnServer(Failure, StandardProcessing)

FilterItem = List .Filter.Items.Add(Type(» DataCompositionFilterItem»));
ЭлементВыбора.ЛевоеЗначение = Новое ПолеКомпоновкиДанных(«Число»);
ЭлементВыбора.ТипСравнения = ТипСравненияКомпоновкиДанных.Дополнительно;
Элемент выбора Use = true;
SelectionItem.DisplayMode = ElementDisplayModeDataCompositionSettings.N/A;
Selection Element.RightValue = «000000001»;

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

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

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

Для этого в виде списка товаров создаем команду и соответствующий button Счета-фактуры

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

СписокФорма = ПолучитьФорму(«Документ.Счет.СписокФорма»);
ФормаСписка.ФильтрПоПродукту = Элементы.Список.ТекущаяСтрока;
ListForm.Open();

В этом контроллере мы получаем форму списка входящих счетов и передаем ссылку на текущую в параметр формы FilterByItem. товара в инвентарной ведомости и открываем форму с этим параметром.

Далее мы создаем форму Список документов Счет-фактура и создаем атрибут ФильтрПоЭлементу формы, который мы используем в качестве параметра формы, когда он открыт. Теперь открываем палитру свойств основного атрибута формы Список. Установите флаг ArbitraryRequest и нажмите Открыть в строке конфигурации списка.

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

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

Здесь List.Parameters — это список параметров запроса динамического списка для атрибута List. Значение параметра Product равно значению параметра формы FilterByProduct.

Читайте также:  Как получить пароль к киви кошельку

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

Пример третьего варианта можно найти в каталоге 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Пример запускался на платформе версии 8.2.9.356.

Источник

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

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

Однако платформа поместит такую ​​команду в список, форма не вставит, а может сделать сам разработчик — Команды — Глобальные команды — Параметризуемые — Элементы — Список — Имя подкаталога — Элементы.Список.ТекущиеДанные.Ссылка .

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

В то же время, если вы поместите команду перехода в дочерний список в форме элемента, значением владельца будет Object.Reference, а если он находится в форме списка, значением владельца является Elements.List.CurrentLine.

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

FilterValue = New Structure(«Владелец», Object.Reference);

Параметры формы = New Structure(«Filter», FilterValue);

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

FilterValue = New Structure(«Owner» , Items.List.CurrentRow);

Параметры формы = New Structure(«Filter»,FilterValue);

Демонстрационные примеры с автоматически сгенерированными командами и программным переключением на список подчиненных каталогов … находятся в папке 1CITS/EXE/FAQ/Katalog. Примеры выполнены на платформе версии 8.2.9.356.

Источник

Как открыть дочернюю форму текущего элемента формы списка?

Для открытия формы используется метод OpenForm() глобального контекста.

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

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

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

ПараметрыФормы = НоваяСтруктура(«Ключ»,Элементы.Список.ТекущаяСтрока);
OpenForm(«Catalog.Nomenclature.Form.ItemForm1»,FormParameters);

Здесь находится таблица формы списка, а Elements.List.CurrentRow — ссылка на текущий элемент в списке.

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

Подробнее об использовании метода OpenForm() , см. Справка по синтаксису: Глобальный контекст — Интерактивные процедуры и функции .

Источник

Программный открытие форм в управляемом приложении 1С

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

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

Обратите внимание, что при получении формы будет также выполняться процедура события OnCreateOnServer.

.

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

Читайте также:  Как открыть формат рав на компьютере

1. Как открыть форму объекта в управляемом приложении, если на него есть ссылка.

В данном случае все предельно просто.

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

Существует функция EnterValue(). Функция имеет 3 параметра:

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

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

Значение переменной;
Массив = новый массив;
полей. Добавить(Тип(«DirectoryReference.Nomenclature» )​​​​​​​​​);
полей. Добавить (Тип («DirectoryReference.Contractors» ) );

Тип описания = новый ТипОписания(Массив);

Res = EnterValue (Значение, «Подсказка», ТипОписания);

Предыдущие методы позволяли открывать только формы, установленные для объектов по умолчанию (форма объекта или форма выбора). Если вам нужно открыть любую форму, вы можете использовать функцию OpenForm().

У этой функции довольно много параметров. Рассмотрим некоторые из них:

  • Имя формы : Здесь вы можете выбрать одну из стандартных форм объекта, например SelectionForm или Форма списка . Или конкретная форма, созданная разработчиком.
  • Параметры : позволяет передать некоторые параметры в виде структуры перед открытием формы и, таким образом, определить выходные данные. Параметрами могут быть любые данные, которые могут быть переданы от клиента к серверу. Параметры, передаваемые при открытии формы, могут быть обработаны в процедуре ПриСозданииНаСервере() для открытой формы.
  • Режим открытия формы : у вас есть 3 варианта: автономный, заблокировать весь интерфейс, заблокировать форму владельца.

Давайте посмотрим, как функция OpenForm() используется в различных ситуациях.

3. Как открыть форму существующего объекта

У каждой формы есть ключевой аксессуар. В списке атрибутов формы есть выделен жирным шрифтом и обычно называется Object для форм ввода документов и каталогов. Другие объекты могут иметь другое имя. Для открытия формы существующего объекта необходимо передать параметр Ключ со значением как ссылку на открываемый объект формы.

&AtClient
Процедура Команда 1 (Команда )
Параметр = новая структура;
Параметр. Вставить(«Ключ», FindC());
OpenForm(«Справочник.Счета.ОбъектФормы», Параметр );
Конец процедуры

&OnServer
Function FindC ( ) ;
Возврат ссылок. Поставщики. FindByAttribute(«ИНН», «745107734623»)
EndFunction

4. Как открыть новый объект формы

Простая функция OpenForm() без параметров

5. Как открыть новую форму объекта и заполнить ее на основе чего-либо

Вам нужно передать параметр Base , значением которого будет ссылка на основание объекта заливки. Где выполняется процедура FillProcessing().

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

6. Как открыть форму и установить на ней выборку

Выборка в формах 1С может быть простой и сложной. Простой выбор включает такие термины, как Organization = Horns and Hooves LLC. Комплексный отбор предполагает другие виды сравнений, например В списке . В этой статье мы разберемся с организацией простого отбора и сложного. посвящена отдельная статья.

Для организации простого отбора необходимо передать параметр с помощью клавиши Фильтр в открываемую форму, значением будет структура, где ключ — название поля динамического списка, а значение — искомые данные.

Например, открываем форму листинга справочника номер ГТД и там делаем выборку по владельцу: элемент каталога Номенклатура .

Selection = new struct;
Выбор. Insert(«Владелец», Справочник по именованию);

Параметр. Insert(«Выделение», Selection) ;

OpenForm(«Directory.Numbers GTE.ListForm», Parameter );
Завершение процедуры

7. Как открыть форму записи журнала информации

Для этого вам потребуется ключ ввода журнала информации.

Читайте также:  Как получить пенсионные накопления при переезде

Ключ регистра содержит значения всех измерений и периодов (если запись периодическая). Это означает, что ключ реестра является параметром, по которому можно однозначно идентифицировать реестр.

Алгоритм открытия следующий:

  1. Введите ключ реестра данных с помощью требуемое значение в структуре.
  2. Поместите полученную структуру в массив.
  3. Создайте раздел реестра из массива.
  4. Мы передаем параметр Ключ с ключом реестра пункта 3 в качестве значения в форму для открытия.

Ключевые параметры = новая структура;
Основные параметры. Вставить(«Номенклатура», СсылкаКНоменклатуре) ;
Основные параметры. Вставить(«ТипЦены», ТипСсылкиЦены);
Основные параметры. Вставить(«Точка», Дата );

KeyArray = Новый массив;
Массив ключей. Добавить(ключевые параметры);

RecordKey = New(«RegistrarRecordRecordKey.NomenclaturePrices» , KeyArray ) ;

Параметр. Вставить(«Ключ»,КлючЗаписи);

ОткрытьФорму(«Информационная Запись.Номенклатурные Цены.Бланк Записи», Параметр ) ;
Завершить процедуру

Источник

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

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

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

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

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

Например, в следующем примере открывается список входящих счетов, отфильтрованных по полю Число, равному 333.

Второй способ

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

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

Преимущество этого метода в том, что Тип сравнения Selection может быть установлен не только Equals, как в первом случае, но и main, minor и т.д.

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

Третий способ

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

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

Для этого в виде списка товаров создадим команду и соответствующую кнопку Счета на покупку.

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

В этом контроллере мы откроем форму для список полученных счетов, передав параметру формы FilterByItem ссылку на текущий элемент в списке элементов

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

Теперь мы откроем свойство p палитры основного атрибута формы списка. Установите флаг ArbitraryRequest и нажмите Открыть в строке конфигурации списка.

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

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

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

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

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

Источник

Поделиться с друзьями
Решатор
Adblock
detector