Получить форму документа

Содержание

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

Получить форму документа

Программное открытие форм в управляемом приложении 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/

Свидетельство о регистрации по месту пребывания: где взять, как получить?

Получить форму документа

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

Она может быть временной либо постоянной. Больший процент населения предпочитает оформлять второй тип регистрации.

Но и первый не считается особой редкостью. Именно поэтому стоить знать об особенностях оформления свидетельства о регистрации по месту пребывания (форма №3) и его основных функциях.

Вышеописанный документ и его образец – это приложение №3 к Административному регламенту ФМС, который утверждался 11.09.2012 N 288 приказом ФМС РФ.

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

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

Форма документа

Свидетельство прописки по месту пребывания, которое отвечает образцу формы №3, выглядит не как карточка, а листок, имеющий размер ½ от А-4 или полноценный формат А-5.

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

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

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

Зачем требуется справка?

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

У владельцев данного документа есть возможность:

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

Где взять и как получить?

Для того, чтобы получить бланк вышеописанного Свидетельства, физическому лицу нужно прийти в МФЦ, ГУВМ МВД РФ, один из регистрационных отделов при ТСЖ.

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

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

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

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

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

Госпошлина по вышеописанному документу не предусмотрена. А сама услуга под названием регистрация по месту пребывания выдается на бесплатной основе.

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

Сколько действует свидетельство?

Свидетельство формы №3 выдается на такой срок, на протяжении которого владелец квартиры обязуется предоставлять жилье постояльцу. Обычно это 1-2 года.

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

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

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

Что включает в себя документ?

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

  • фамилии, имени и отчестве заявителя;
  • адресе временной регистрации;
  • дате рождения;
  • адресе, где он родился;
  • дате начала и окончания регистрационного процесса.

После этих данных заявитель указывание серию и номер своего паспорта. Заверение документа осуществляют соответствующие лица из штата ГУВМ МВД РФ. В обязательном порядке указывается их должность. Слева внизу проставляется печать того отделения, в котором выдавалась бумага.

Что еще нужно знать?

Читайте статью полностью: https://vseodome.club/propiska/svidetelstvo-o-registratsii-po-mestu-prebyvaniya.html

Источник: https://zen.yandex.ru/media/id/5a2147948139ba37393a458d/svidetelstvo-o-registracii-po-mestu-prebyvaniia-gde-vziat-kak-poluchit-5c680a59bbdc3c00af78a215

Примеры кода для 1С 8.x. Часть 4. Документы

Получить форму документа

Как выбрать и упорядочить документы за период в 1С

&НаСервере Процедура КакВыбратьИУпорядочитьДокументыЗаПериодНаСервере() // найдём все документы поступления за 2020 год // упорядочив их по возрастанию даты Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | Ссылка |ИЗ | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров |ГДЕ | Дата МЕЖДУ &НачДата И &КонДата |УПОРЯДОЧИТЬ ПО | Дата ВОЗР”; Запрос.УстановитьПараметр(“НачДата”, '20200101'); Запрос.УстановитьПараметр(“КонДата”, '20201231'); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДокументов = РезультатЗапроса.Выбрать(); Пока ВыборкаДокументов.Следующий() Цикл Сообщить(ВыборкаДокументов.Ссылка); КонецЦикла; КонецПроцедуры

Как найти документ по номеру в 1С

&НаСервере Процедура КакНайтиДокументПоНомеруНаСервере() // найдём поступление № А-000000001 за 2020 год Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | Ссылка |ИЗ | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров |ГДЕ | Дата МЕЖДУ &НачДата И &КонДата И | Номер = &ВыбНомер”; Запрос.УстановитьПараметр(“НачДата”, '20200101'); Запрос.УстановитьПараметр(“КонДата”, '20201231'); Запрос.УстановитьПараметр(“ВыбНомер”, “А-000000001”); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДокументов = РезультатЗапроса.Выбрать(); Если ВыборкаДокументов.Следующий() Тогда Сообщить(ВыборкаДокументов.Ссылка); Иначе Сообщить(“Документ с таким номером не существует!”); КонецЕсли; КонецПроцедуры

Как найти документы по реквизиту в 1С

&НаСервере Процедура КакНайтиДокументПоРеквизитуНаСервере() // найдём все документы поступления // от поставщика ООО “Ромашка” Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | Ссылка, | Поставщик |ИЗ | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров |ГДЕ | Поставщик = &ВыбПоставщик |УПОРЯДОЧИТЬ ПО | Дата ВОЗР”; Запрос.УстановитьПараметр( “ВыбПоставщик”, Справочники.Поставщики.НайтиПоНаименованию(“ООО “”Ромашка”””) ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДокументов = РезультатЗапроса.Выбрать(); Пока ВыборкаДокументов.Следующий() Цикл Сообщить( Строка(ВыборкаДокументов.Ссылка) + ” ” + ВыборкаДокументов.Поставщик ); КонецЦикла; КонецПроцедуры

Как выбрать все документы, которые не проведены и не помечены на удаление в 1С

&НаСервере Процедура КакВыбратьВсеДокументыКоторыеНеПроведеныИНеПомеченыНаУдалениеНаСервере() // найдём не проведенные и не помеченные на удаление // документы поступления товаров Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | Ссылка, | Проведен, | ПометкаУдаления |ИЗ | Документ.ПоступлениеТоваров КАК ПоступлениеТоваров |ГДЕ | Проведен = ЛОЖЬ И | ПометкаУдаления = ЛОЖЬ |УПОРЯДОЧИТЬ ПО | Дата ВОЗР”; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДокументов = РезультатЗапроса.Выбрать(); Пока ВыборкаДокументов.Следующий() Цикл Сообщить( Строка(ВыборкаДокументов.Ссылка) + ” ” + ВыборкаДокументов.Проведен + ” ” + ВыборкаДокументов.ПометкаУдаления ); КонецЦикла; КонецПроцедуры

Как найти подчиненные документы в 1С

&НаСервере Процедура КакНайтиПодчиненныеДокументыНаСервере() // Рассмотрим работу с подчиненными (связанными) документами // на примере документов: ПоступлениеТоваровУслуг и СчетФактураПолученный. // Документ СчетФактураПолученный вводится на основании документа // ПоступлениеТоваровУслуг, то есть счет фактура является подчиненной // по отношению к поступлению. // Факт подчиненности обычно (в типовых) фиксируется в самом подчиненном // документе через табличную часть ДокументыОснования. // Почему через табличную часть? Потому что один документ может зависеть // (быть подчиненным) сразу от нескольких родителей (оснований). // Пример №1. // У нас есть ссылка на поступление товаров и услуг. Требуется найти // счёт-фактуры, которые были введены на основании этого поступления. // В дереве подчиненности эти фактуры будут подчинены (зависимы) от // документа поступления. Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | Ссылка |ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК | СчетФактураПолученныйДокументыОснования |ГДЕ | СчетФактураПолученныйДокументыОснования.ДокументОснование = | &ВыбПоступление”; Запрос.УстановитьПараметр(“ВыбПоступление”, Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру(“А-00000005”, '20200101') ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ПодчиненнаяФактура = ВыборкаДетальныеЗаписи.Ссылка; Сообщить(ПодчиненнаяФактура); КонецЦикла; // Пример №2. // У нас есть ссылка на счет-фактуру полученную. Требуется найти, // документы, на основании которых она была введена (родителей). Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | ДокументОснование |ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК | СчетФактураПолученныйДокументыОснования |ГДЕ | СчетФактураПолученныйДокументыОснования.Ссылка = | &ВыбСчетФактура”; Запрос.УстановитьПараметр(“ВыбСчетФактура”, Документы.СчетФактураПолученный.НайтиПоНомеру(“А-00000002”, '20200101') ); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл РодительФактуры = ВыборкаДетальныеЗаписи.ДокументОснование; Сообщить(РодительФактуры); КонецЦикла; КонецПроцедуры

Как перебрать (перечислить) строки табличной части документа в 1С

&НаСервере Процедура КакПеречислитьСтрокиИзТабличнойЧастиДокументаНаСервере() // У документа Поступление есть табличная часть 'Товары'. // У этой табличной части есть колонки: Номенклатура, Количество, // Сумма. ПоступлениеСсылка = Документы.ПоступлениеТоваров.НайтиПоНомеру( “А-00000001″, '20201231'); // перечислим строки табличной части этого документа // при помощи объектной техники Для Каждого Строка Из ПоступлениеСсылка.Товары Цикл Сообщить( Строка.Номенклатура.Наименование + ” ” + Строка.Количество + ” шт. ” + Строка.Сумма + ” руб.” ); КонецЦикла; // при помощи запроса Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ | ПоступлениеТоваровТовары.Номенклатура, | ПоступлениеТоваровТовары.Количество, | ПоступлениеТоваровТовары.Сумма |ИЗ | Документ.ПоступлениеТоваров.Товары КАК ПоступлениеТоваровТовары |ГДЕ | ПоступлениеТоваровТовары.Ссылка = &ВыбПоступление”; Запрос.УстановитьПараметр(“ВыбПоступление”, ПоступлениеСсылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Сообщить( ВыборкаДетальныеЗаписи.Номенклатура.Наименование + ” ” + ВыборкаДетальныеЗаписи.Количество + ” шт. ” + ВыборкаДетальныеЗаписи.Сумма + ” руб.” ); КонецЦикла; КонецПроцедуры

Как создать документ в 1С

// создадим новый документ поступление Поступление = Документы.ПоступлениеТоваров.СоздатьДокумент(); // заполним шапку документа Поступление.Дата = ТекущаяДата(); Поступление.Поставщик = Справочники.Поставщики.НайтиПоНаименованию( “ООО “”Ромашка””” ); Поступление.Склад = Справочники.Склады.НайтиПоНаименованию( “Основной склад” ); // заполним табличную часть НоваяСтрока = Поступление.Товары.Добавить(); НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию( “Сапоги” ); НоваяСтрока.Количество = 2; НоваяСтрока.Сумма = 3000;

 Как записать документ в 1С

Поступление.Записать(РежимЗаписиДокумента.Запись);

Как провести документ в 1С

Поступление.Записать(РежимЗаписиДокумента.Проведение);

 Как отменить проведение документа в 1С

Поступление.Записать(РежимЗаписиДокумента.ОтменаПроведения);

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

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

Как получить пустую ссылку типа документ в 1С

ДокументСсылкаПустая = Документы.РеализацияТоваров.ПустаяСсылка(); Если ДокументСсылкаПустая.Пустая() Тогда Сообщить(“Ссылка действительно пустая.”); КонецЕсли;

Как скопировать существующий документ в 1С

Источник: https://codexp.ru/zametki-po-1s/79-primery-koda-dlya-1s-8-x-chast-3-dokumenty

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

Получить форму документа

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

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

Метод ОткрытьФорму по имени

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

ОткрытьФорму(, , , , , , , )

Следует заметить, что метод ОткрытьФорму является клиентским. Т.е его можно использовать либо в общих модулях с установленным флагом Клиент, либо в процедурах (функциях) форм с директивой &НаКлиенте.

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

ИмяФормы

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

..

или

..Форма.

  • ТипОбъекта. Наименование типа объекта метаданных, например: Справочник, Документ, РегистрСведений и т. д.;
  • ИмяОбъекта. Наименование объекта метаданных. Например для справочника: Пользователи, Номенклатура;
  • ИмяФормыПоУмолчанию. Стандартное имя формы, набор имен по умолчанию различается для различных объектов метаданных. Например для документа: ФормаВыбора, ФормаОбъекта, ФормаСписка. Полный набор имен по умолчанию можно найти в синтаксис помощнике, в описании метода ОткрытьФорму;
  • ИмяФормы. Произвольное имя формы, заданное при ее создании. Например у справочника Пользователи, форма СменаПочты.

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

“Справочник.Номенклатура.ФормаВыбора”

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

“Справочник.Пользователи.Форма.СменаПочты”

Параметры

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

Также набор параметров может различаться и для объектов метаданных. Например, параметр Ключ, для форм объектов.

В него можно передать ссылку на открываемый объект (если его не передать, будет открыта форма нового объекта).

Подробнее прочитать описание всех возможных стандартных параметров можно в синтаксис помощнике, в ветке Интерфейс (управляемый) -> Форма клиентского приложения (в старых версиях платформы Управляемая форма). Далее в ветках Расширение объектов, Расширение справочника  и т. д., можно найти Параметры формы. Там дается полный список возможных стандартных параметров с описаниями.

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

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

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

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

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

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

ФормаСписка”, ПараметрыФормы);

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

В Ключ — имя реквизита, в Значение — значение отбора.

Данным способом можно отобрать значения, используя вид сравнения Равно или ВСписке. Для отбора ВСписке следует добавить в структуру Массив, ФиксированныйМассив, либо СписокЗначений. Следует заметить, что отбор ВИерархии установить данным способом не выйдет.

Владелец

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

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

  • Анализа владельца и выполнения определенных действий в открываемой форме;
  • Корректной работы события ОбработкаЗаписиНового, в форме владельце;
  • Самостоятельной реализации выбора в поле формы.

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

&НаКлиенте Процедура НоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить(“ТекущаяСтрока”, Номенклатура); ОткрытьФорму(“Справочник.Номенклатура.ФормаВыбора”, ПараметрыФормы, Элемент); КонецПроцедуры

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

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

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

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

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

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

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

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

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

Значением по умолчанию является Ложь, поэтому специально задавать его не требуется.

Пример 6. Одновременно открыть две формы объекта справочника Пользователи, по одной и той же ссылке.

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

Окно

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

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

&НаКлиенте Процедура НоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Окно = ЭтаФорма.Окно; ОткрытьФорму(“Справочник._ДемоНоменклатура.ФормаВыбора”,, Элемент,, Окно); КонецПроцедуры

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

НавигационнаяСсылка

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

ОписаниеОповещенияОЗакрытии

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

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

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

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

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

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

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

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

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

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

  • БлокироватьВеcьИнтерфейс;
  • БлокироватьОкноВладельца;
  • Независимый.

Метод ОткрытьФорму по форме

Существует еще один вариант синтаксиса метода ОткрытьФорму.

ОткрытьФорму(, )

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

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

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

Источник: https://1cguide.ru/programmirovanie-1s/1s-otkryt-formu-programmno.html

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

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

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