1с управляемые формы как открыть форму нового документа 1с

Как создать документ и открыть его форму?

В 1С Предприятии 8.2 для этой цели возможны два возможных сценария работы:

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

В первом сценарии проще использовать метод глобального контекста OpenForm(). Это можно сделать на клиенте.

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

Если вам нужно какое-то предварительное заполнение документа начальной даты, вы можете сделать это, используя свойство Сведения о документе FillingValue , FillFromFillingData или в обработчике события FillingProcessing документа. Подробнее об этом событии см. Как узнать при открытии формы, что создается новый элемент?.

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

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

Источник

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

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

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

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

.

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

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

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

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

Для этого есть функция EnterValue(). Функция имеет 3 параметра:

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

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

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

DescriptionType = new DescriptionType(Array);

Res = EnterValue (Value, «Hint», DescriptionType);

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

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

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

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

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

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

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

&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 в качестве значения.

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

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

RecordKey = Новый («КлючЗаписиРегистратора.ЦеныНоменклатуры» , Массив Ключей ) ;

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

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

Читайте также:  Star wars battlefront 2 как получить скины

Ресурс

Как открыть форму программно в 1с

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

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

Метод OpenForm по названию

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

Обратите внимание, что метод OpenForm находится на стороне клиента. Это означает, что его можно использовать в обычных модулях с установленным флагом Client или в процедурах (функциях) формы с директивой &OnClient .

Рассмотрим метод параметры. и предоставить необходимые примеры.

FormName

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

  • ObjectType . Имя типа объекта метаданных, например: Каталог , Документ , Информационная запись и т.д.;
  • Имя объекта . Имя объекта метаданных. Например, для каталога: Пользователи , Именование ;
  • Имя формы по умолчанию . Стандартное имя формы, набор имен по умолчанию отличается для разных объектов метаданных. Например, для документа: SelectionForm , ObjectForm , ListForm . Полный набор имен по умолчанию можно найти в помощнике по синтаксису , описание метода OpenForm ;
  • Имя формы . Любое имя формы, указанное при ее создании. Например Каталог Пользователи , Форма ChangeMail .

Пример 1. Путь к форме выбора по умолчанию, поиск Номенклатура .

Пример 2. Путь к форме ChangeMail от справочники Пользователи по имени.

Параметры

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

Подробное описание всех возможных стандартных параметров см. в помощнике по синтаксису , в ветке Интерфейсы (управляемый) -> ; Форма запроса клиента (в более ранних версиях платформы Управляемая форма ). Также в ветках Object Extensions , Directory Extensions и т. д. вы найдете Form Parameters . Предоставляет полный список возможных стандартных опций с описаниями.

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

Рассмотрим примеры открытия нескольких форм с помощью параметров.

Пример 3. Открытие формы из объекта каталога Пользователи , использующие ссылку на объект.

Пример 4. Откройте форму списка справочника Номенклатура, выбрав по атрибуту Тип Номенклатуры и по родительскому списку.

Здесь, Фильтр — стандартный параметр для форм, использующих Динамический список в качестве основного атрибута. Это, например, формы списка и выбора. Это структура , к которой вы можете добавить значения элементов выбора. В Key — имя атрибута, в Value — значение выборки.

Таким способом можно выбирать значения по типу сравнения Equals или INList . Чтобы выбрать INList , добавьте в структуру Array , FixedArray или ValueList . Обратите внимание, что выбор VIиерархия не будет установлен таким образом.

Владелец

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

Это может понадобиться для многих целей, например:

  • Парсинг владельца и выполнение определенных действий над открытая форма;
  • Правильное действие события ProcessRecordNew , в форме владельца;
  • Независимая реализация выбора поля формы.
Читайте также:  Как восстановить договор найма на муниципальную квартиру где получить

Пример 5. Программно выделить в поле ввода элемент Номенклатура .

В этом случае необходимо:

  • Создать обработчик события ChoiceStart для поля ввода;
  • Отменить стандартный процесс отбора;
  • В параметре Владелец передать элемент формы (поле).

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

Уникальность

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

По умолчанию платформа сама генерирует уникальный ключ. Помимо использования собственного ключа, вы можете управлять использованием стандартного в параметре Singularity . Если передано False , то будет использоваться стандартный ключ, если равно True , то ключ не будет использоваться вообще. Эти. каждый раз, когда используется метод OpenForm , создается новая форма. Значение по умолчанию — False , поэтому специально задавать его не нужно.

Пример 6. Одновременное открытие двух форм из объекта каталога Пользователи с использованием одного и того же привязка.

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

Пример 7. Программно выделить элемент Номенклатура в поле ввода. Реализуйте выбор в окне формы, в котором находится поле.

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

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

DescriptionCloseAlerts

В параметр передается описание выполняемой процедуры . Звоните после закрытия открытой формы. Тип параметра: Описание оповещения .

Пример 8. Открытие формы в течение 1 с программно. Используйте форму объекта каталога Пользователи. После закрытия сообщить, что карта пользователя закрыта.

Параметры описания оповещения, использованные в примере:

  • Первое: имя процедуры;
  • Второе: модуль, в котором вы находитесь (текущая форма в данном случае);
  • Третье: структура других параметров, которые необходимо передать процедуре;

Описываемая процедура должна иметь два параметра:

  • Результат. Значение, которое форма возвращает при закрытии. Форма объекта не возвращает значения (если оно специально указано), поэтому в этом случае значение параметра будет Undefined . Но, например, форма выбора возвращает массив выбранных значений.
  • Дополнительные параметры. Структура параметров, созданная в описании оповещения.

Кроме того, описанная процедура должна быть экспортируемой.

Режим открытия окна

Позволяет указать режим открытия управляемой формы. По умолчанию Не определено можно вручную установить одно из значений системного перечисления FormWindowOpenMode :

Метод OpenForm по форме

Есть другой синтаксис для метода OpenForm .

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

Пример 9. Получить форму списка из поиска Номенклатура и затем программно открыть в форме 1s.

Источник

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