+7(499)-938-42-58 Москва
+7(800)-333-37-98 Горячая линия

Как программно открыть документ в 1с 8.3. Как программно заполнить и открыть форму нового документа

Содержание

Программист 1C – 1С. Как программно заполнить форму

Как программно открыть документ в 1с 8.3. Как программно заполнить и открыть форму нового документа

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

Если конфигурация типовая, то, наверное, самый простой способ решения такой задачи – создать внешнюю обработку вида “Заполнение объекта”.

Заполнение формы объекта с помощью внешней обработки

Строка с соответствующим параметром в модуле обработки:

ПараметрыРегистрации.Вставить(“Вид”, “ЗаполнениеОбъекта”);

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

  • ВызовСерверногоМетода – обработчик команды располагается в модуле обработки;
  • ВызовКлиентскогоМетода – обработчик команды располагается в модуле формы обработки;
  • ЗаполнениеФормы – обработчик команды располагается в модуле обработки и позволяет работать с данными формы. Также позволяет вызвать серверную процедуру из модуля формы объекта. При этом можно заполнить форму не записывая объект.

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

В конечном итоге код в модуле обработки будет выглядеть примерно так:

Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить(“Вид”, “ЗаполнениеОбъекта”); ПараметрыРегистрации.Вставить(“Наименование”, “Заполнение формы документа”); ПараметрыРегистрации.Вставить(“Версия”, “1.01”); ПараметрыРегистрации.Вставить(“БезопасныйРежим”, Истина); ПараметрыРегистрации.Вставить(“Информация”, “Заполнение формы документа”); ПараметрыРегистрации.Вставить(“Назначение”, “Документ.ПриходнаяНакладная”); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, “Заполнить форму документа”, //Представление “ЗаполнитьФорму”, //Идентификатор “ЗаполнениеФормы”, //Вариант использования Ложь, //Показывать оповещение “”); //Модификатор ПараметрыРегистрации.Вставить(“Команды”, ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить(“Представление”, Новый ОписаниеТипов(“Строка”)); Команды.Колонки.Добавить(“Идентификатор”, Новый ОписаниеТипов(“Строка”)); Команды.Колонки.Добавить(“Использование”, Новый ОписаниеТипов(“Строка”)); Команды.Колонки.Добавить(“ПоказыватьОповещение”, Новый ОписаниеТипов(“Булево”)); Команды.Колонки.Добавить(“Модификатор”, Новый ОписаниеТипов(“Строка”)); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = “”) НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры // Обработчик команды Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт Форма = ПараметрыВыполнения.ЭтаФорма; //Данные формы доступны через ПараметрыВыполнения Форма.Объект.Поставщик = // … Заполняем нужные реквизиты. Форма.Модифицированность = Истина; КонецПроцедуры

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

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

Заполнение формы объекта посредством обработчика команды в модуле формы

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

Над серверной процедурой нужно подумать. В ней у нас будет объект формы с типом “ДанныеФормыСтуктура”. Что-либо менять или заполнять в этом объекте не получится, возникнет ошибка “Объект недоступен для изменения”.

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

Будет лучше, если данные добавятся без записи, и мы можем это сделать с помощью метода РеквизитФормыВЗначение. Этот метод преобразует реквизит формы в объект прикладного типа, и вот этот объект прикладного типа мы можем заполнить, а затем, уже заполненный, преобразовать обратно с помощью метода ЗначениеВРеквизитФормы. Выглядеть это будет примерно так:
&НаКлиенте Процедура ЗаполнитьФормуДокумента(Команда) ЗаполнитьФормуДокументаНаСервере(); ОбновитьОтображениеДанных(); КонецПроцедуры &НаСервере Процедура ЗаполнитьФормуДокументаНаСервере() ДокументОбъект = РеквизитФормыВЗначение(“Объект”); ТЧ_Товары = ДокументОбъект.Товары; // Табличная часть Товары ТЧ_Товары.Очистить(); Запрос = Новый Запрос; Запрос.Текст = //Текст запроса ; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл СтрТЧ = ТЧ_Товары.Добавить(); ЗаполнитьЗначенияСвойств(СтрТЧ, Выборка); КонецЦикла; ЗначениеВРеквизитФормы(ДокументОбъект, “Объект”); Модифицированность = Истина; КонецПроцедуры

Вот теперь и форма заполнена, и кнопка команды там, где хочется.

Источник: http://avditor.ru/index.php/programmirovanie-1s/170-1s-kak-programmno-zapolnit-formu

Ввод на основании в 1С программно

Как программно открыть документ в 1с 8.3. Как программно заполнить и открыть форму нового документа

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

Простое создание на основании стандартным способом платформы 1С

В документе «Расход» или «Приход» нужно настроить связь на вкладке «Ввод на основании»:

Где указать с кем он связан:

Должна получиться следующая картина:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания – попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Далее в модуле документа «Расход» нужно создать процедуру «Обработка заполнения» с помощью клика в верхнем меню:

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

И прописать программный код заполнения. Пример кода:

//Код из модуля объекта документа “Расход”. Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)                       Если ТипЗнч(ДанныеЗаполнения) = Тип(“ДокументСсылка.Приход”) Тогда                                               Склад = ДанныеЗаполнения.Склад;                         Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл                                    НоваяСтрока = Товары.Добавить();                                    НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;                                    //… заполняем другие реквизиты табличной части                         КонецЦикла;                                   КонецЕсли; КонецПроцедуры

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

Конструктор ввода на основании

Чтобы в 1С автоматически создать процедуру, нужно нажать на кнопку «Конструктор ввода на основании»:

Где с помощью функции «Заполнить выражения» можно автоматически сопоставить название реквизитов:

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

После нажатия на «Ок», 1С сама сформирует готовый программный код:

Внимание! Конструктор нельзя использовать, если процедура заполнения уже существует — вы потеряете существующий программный код.

Создание документа после записи первого документа с последующей записью созданного

Для реализации такой задачи можно использовать метод объекта Заполнить(), в параметры которого необходимо будет передать данные заполнения из документа прихода.  Метод инициирует событие ОбработкаЗаполнения() и вызов процедуры-обработчика в модуле объекта документа «Расход».

Пример кода:

//Код из модуля формы документа “Приход”. &НаСервере Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)                   //Создаём новый документ             НовДокумент = Документы.Расход.СоздатьДокумент();             //Заполняем созданный документ (реквизиты документа заполняются значениями, которые совпадают по именам реквизитов)             НовДокумент.Заполнить(ТекущийОбъект.Ссылка);             //Записываем созданный документ             НовДокумент.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Оперативный);           КонецПроцедуры //Код из модуля объекта документа “Расход”. Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)                       Если ТипЗнч(ДанныеЗаполнения) = Тип(“ДокументСсылка.Приход”) Тогда                                               Склад = ДанныеЗаполнения.Склад;                         Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл                                    НоваяСтрока = Товары.Добавить();                                    НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура;                                    //… заполняем другие реквизиты табличной части                         КонецЦикла;                                   КонецЕсли; КонецПроцедуры

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

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

Пример кода:

//Код из модуля формы документа “Приход”. &НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) //Создаём структуру для передачи в виде параметра при открытии формы. ПараметрыФормы = Новый Структура(“Основание”, Объект.Ссылка); //Открываем форму документа расход с передачей данных для заполнения ОткрытьФорму(“Документ.Расход.ФормаОбъекта”, ПараметрыФормы); КонецПроцедуры //Код из модуля объекта документа “Расход”. Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип(“ДокументСсылка.Приход”) Тогда Склад = ДанныеЗаполнения.Склад; Для Каждого ТекСтрокаТовары Из ДанныеЗаполнения.Товары Цикл НоваяСтрока = Товары.Добавить(); НоваяСтрока.Номенклатура = ТекСтрокаТовары.Номенклатура; // … заполняем другие реквизиты табличной части КонецЦикла; КонецЕсли; КонецПроцедуры

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник: https://programmist1s.ru/sozdat-na-osnovanii-programmno/

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

Как программно открыть документ в 1с 8.3. Как программно заполнить и открыть форму нового документа

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

ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”).Открыть()

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

Форма=ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”);
//Тут выполняем действия с формой
Форма.Открыть();

Надо учитывать, что при получении формы будет выполняться еще процедура события ПриСозданииНаСервере.

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

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

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

СпрСсылка=Справочники.Номенклатура.НайтиПоКоду(“000000001”);
ОткрытьЗначение(СпрСсылка);

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

Для этого существует функция ВвестиЗначение(). У функции 3 параметра:

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

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

Перем Значение;
Массив=новый массив;
Массив.Добавить(Тип(“СправочникСсылка.Номенклатура”));
Массив.Добавить(Тип(“СправочникСсылка.Контрагенты”));

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

Рез=ВвестиЗначение(Значение, “Подсказка”, ОписаниеТипов);

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

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

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

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

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

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Ключ”, НайтиС());
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”,Параметр);
КонецПроцедуры

&НаСервере

Функция НайтиС();
Возврат Справочники.Контрагенты.НайтиПоРеквизиту (“ИНН”, “745107734623”)
КонецФункции

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

Тут подойдет просто функция ОткрытьФорму() без всяких параметров.

&НаКлиенте
Процедура Команда1(Команда)
ОткрытьФорму(“Справочник.Контрагенты.ФормаОбъекта”);
КонецПроцедуры

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

Нужно передать параметр Основание, значением которого будет являться ссылка на объект-основание заполнения. При этом будет запущена процедура ОбработкаЗаполнения().

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;
Параметр.Вставить(“Основание”, СсылкаНаСчетПокупателю);
ОткрытьФорму(“Документ.РеализацияТоваровУслуг.ФормаОбъекта”, Параметр);
КонецПроцедуры

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

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

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

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

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

Отбор=новый Структура;

Отбор.Вставить(“Владелец”, СсылкаНаНоменклатуру);

Параметр.Вставить(“Отбор”, Отбор);

ОткрытьФорму(“Справочник.НомераГТД.ФормаСписка”, Параметр);

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

7. Как открыть форму записи регистра сведений

Для этого понадобится ключ записи регистра сведений.

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

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

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

&НаКлиенте
Процедура Команда1(Команда)
Параметр=новый структура;

ПараметрыКлюча=новый Структура;

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

МассивКлюча = Новый Массив;

МассивКлюча.Добавить(ПараметрыКлюча);

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

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

ОткрытьФорму(“РегистрСведений.ЦеныНоменклатуры.ФормаЗаписи”, Параметр);

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

Источник: http://chel1C.ru/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5-%D0%BE%D1%82%D0%BA%D1%80%D1%8B%D1%82%D0%B8%D0%B5-%D1%84%D0%BE%D1%80%D0%BC-1%D1%81/

1с программно открыть форму документа. Как программно заполнить и открыть форму нового документа? Как открыть форму записи регистра сведений

Как программно открыть документ в 1с 8.3. Как программно заполнить и открыть форму нового документа
Всем доброго дня!Думаю, что информация в данной теме будет очень полезна многим посетителям этого форума.

Долгое время не мог решить задачу – как открыть форму нового документа так, чтобы она открылась не пустая, а уже частично заполненная программно, при этом сам документ еще не записан в базу? Очень много времени потратил на поиски решения данной проблемы в интернете, посетил много форумов, на которых поднимался данный вопрос, но лишь на немногих из них попадались варианты решения. Самый простой из них – сначала программно создать новый документ, программно заполнить нужные его реквизиты, записать документ в базу, и потом уже открыть его пользователю. А что, если пользователь не захочет его сохранять? Что, если он передумает, и закроет открытую форму? В этом случае уже записанный документ так и останется в базе данных. А кому нужны в базе лишние документы?А если же не сохранять документ, то самый популярный вариант – использовать метод ПолучитьФорму(«Документы.НужныйВидДокумента.ФормаДокумента»). Но в этом случае можно получить пустую форму документа и просто вывести на экран методом Открыть(). Это тоже не вариант…

Спустя какое-то время задачу удалось решить с помощью функции глобального контекста «ЗаполнитьЗначенияСвойств».

Глобальный контекстЗаполнитьЗначенияСвойств (FillPropertyValues)Синтаксис:

ЗаполнитьЗначенияСвойств(, , , )Описание:

Копирует значения свойств в свойства . Сопоставление производится по именам свойств.

На примере своей задачи хотел бы объяснить, как можно использовать эту функцию для заполнения формы нового документа. Задача была в следующем – Имеется один документ (Заказ-наряд), реквизитом табличной части которого является другой документ (Оказание услуг).

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

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

&НаКлиентеПроцедура ВвестиЗапись() ФормаЗаписи = ПолучитьФорму(“Документ.ОказаниеМедУслуг.ФормаОбъекта”); ЗаполнитьЗначенияСвойств(ФормаЗаписи.Объект,Объект,”Дата,Специалист,Специализация,МедСестра,СтатусИсполнения”,); // Заполняем значения реквизитов, имена которых совпадают в обоих документах ТекСтр = Элементы.Прием.

ТекущиеДанные; //Данные текущей строки документа-источника СтруктураСвойств = Новый Структура; // Структура содержит значения тех реквизитов, которые нужно заполнить на форме нового документа, но которых нет в документе-источнике СтруктураСвойств.Вставить(“НарядЗапись”,Объект.Ссылка); СтруктураСвойств.Вставить(“ВремяПриема”,ТекСтр.ВремяПриема); ЗаполнитьЗначенияСвойств(ФормаЗаписи.

Объект,СтруктураСвойств,”НарядЗапись,ВремяПриема”,); ФормаЗаписи.Открыть();КонецПроцедуры

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

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

Надеюсь, что эта темя сэкономит время многим, кто столкнулся с подобной задачей!

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

ПолучитьФорму().Открыть()

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

Форма=ПолучитьФорму(“Документ.ПоступлениеТоваровУслуг.ФормаДокумента”);
//Тут выполняем действия с формой
Форма.Открыть();

Надо учитывать, что при получении формы будет выполняться еще процедура события ПриСозданииНаСервере.

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

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

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

&НаКлиентеПроцедураКоманда1(Команда) Параметр=новый структура; Параметр.Вставить(“Ключ”, НайтиС()); ОткрытьФорму(,Параметр);

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

&НаСервереФункцияНайтиС();ВозвратСправочники.Контрагенты.НайтиПоРеквизиту (“ИНН”, “745107734623”)

КонецФункции

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.