1с 77 форма параметр
Создает объект агрегатного типа данных и возвращает ссылку на него.
Англоязычный синоним:
Строковое выражение, значение которого содержит имя агрегатного типа данных, объявленного в конфигураторе.
Возвращаемое значение:
Ссылка на созданный объект агрегатного типа данных.
Функция СоздатьОбъект создает объект агрегатного типа данных и возвращает ссылку на него. Данная функция обычно используется одновременно с неявным определением переменной и присвоением ей ссылки на объект агрегатного типа данных.
Замечание. Объекты, такие как документ и справочник, созданные при помощи функции СоздатьОбъект , изначально не определены, т. е. не содержат никакого значения. Чтобы начать с ними работать, их предварительно надо позиционировать (установить на конкретный документ или элемент справочника). Для документов позиционирование выполняется при помощи методов НайтиДокумент , НайтиПоНомеру , ПолучитьДокумент . Для справочников позиционирование выполняется при помощи методов НайтиЭлемент , НайтиПоКоду , ПолучитьЭлемент .
СтатусВозврата
Установить/определить статуса возврата предопределенной процедуры.
Англоязычный синоним:
Необязательный параметр. Числовое выражение. Если задано значение 1, то устанавливается статус возврата — Выполнить Действие. Если задано значение 0, то устанавливается статус возврата — Отменить Действие. Если параметр опущен, то статус возврата предопределенной процедуры не меняется.
Возвращаемое значение:
Число 1 — если статус возврата — Выполнить Действие;
Число 0 — если статус возврата — Отменить Действие.
Применять функцию СтатусВозврата имеет смысл только в теле предопределенных процедур. При помощи функции СтатусВозврата можно установить или прочитать текущее значение статуса возврата конкретной предопределенной процедуры, где была вызвана данная функция.
Значение статуса возврата предопределенной процедуры используется системой при завершении отработки любой предопределенной процедуры, чтобы определить, выполнять ли системно событие, которое вызвало данную предопределенную процедуру.
Замечание: Начальное значение статуса возврата предопределенной процедуры равно 1 (Выполнить Действие), которое устанавливается системой при вызове предопределенной процедуры.
В тексте программного модуля возможно использование данного оператора как процедуры или как функции. При использовании в качестве функции, возвращаемое значение соответствует текущему статусу возврата предопределенной процедуры, которое было до вызова данной функции. В данном случае параметр < Статус >можно опускать.
Если параметр < Статус >задан явно, то после выполнения данной функции статус возврата установится в заданное значение. Пример:
* Если в предопределенной процедуре ПриЗаписи установить статус возврата — 0 (например, если неверно заполнены реквизиты), то документ не будет записываться.
Если Клиент.Выбран() = 0 Тогда
Предупреждение("Запись отменена! Не задан клиент!");
* Если в предопределенной процедуре ВводНаОсновании установить статус возврата — 0, то ввод нового документа будет отменен и форма нового документа не откроется.
Если (ДокВид = "Счет") ИЛИ (ДокВид = "Счет_фактура")
ИЛИ (ДокВид = "РасходнаяКредит") ИЛИ (ДокВид = РасходнаяРеализ") Тогда
Основание = ДокВид + " № " + ДокОснование.НомерДок;
Предупреждение("Недопустимый вид документа основания!");
См. также: «Системные предопределенные процедуры»
ОткрытьФорму
Выполняет открытие формы из'встроенного языка.
Англоязычный синоним:
В зависимости от типа открываемой формы используется различные значения данного параметра.
Необязательный параметр. Имя переменной, куда можно задать значение любого типа для передачи в открываемую форму. Данное значение будет доступно в открытой форме как атрибут Форма.Параметр.
После исполнения данного метода система вернет в данную переменную контекст открытой формы (см. Передача контекста в качестве параметра). С помощью значения этого контекста можно затем произвольно манипулировать открытой формой, пока она открыта. Пока форма открыта, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.
В зависимости от типа открываемой формы используется различный состав и значения остальных параметров.
Возвращаемое значение:
Число 1 — если действие выполнено;
Число 0 — если действие не выполнено.
Функция ОткрытьФорму позволяет открыть форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие.
Замечание. Метод ОткрытьФорму нельзя вызывать в «теле» глобального модуля (части глобального модуля, расположенной после последней процедуры). Для его вызова при старте программы следует размещать его в процедуре ПриНачалеРаботыСистемы .
Для открытия разных форм следует использовать разный синтаксис вызова данной функции:
Открытие формы существующего документа.
Значение типа «Документ».
Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.
Открытие формы нового документа
"Документ.ХХХХХ", где ХХХХХ — идентификатор вида документа;
Необязательный параметр. Выражение типа «документ», задающий документ-основание для открытия формы ввода нового документа в режиме ввода на основании.
Открытие формы журнала документов.
"Журнал . ХХХХХ. YYYYY", где ХХХХХ — идентификатор журнала документов; YYYYY — идентификатор формы журнала документов;
Кроме того, в качестве идентификатора журнала можно указывать идентификатор конкретного вида документа, тогда откроется журнал просмотра документов именно указанного вида, например:
Открытие формы журнала подчиненных документов.
Строковое выражение. "Журнал.Подчиненные";
Значение типа «документ», задающее документ, для которого будут выводиться подчиненные документы.
Открытие формы существующего элемента справочника.
Значение типа «Справочник».
Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.
Открытие формы нового элемента справочника.
"Элемент. ХХХХХ", где ХХХХХ — вид справочника;
Необязательный параметр. Выражение типа «справочник», задающий родительскую группу для открытия формы ввода нового элемента (группы) справочника.
Необязательный параметр. Числовое выражение, задающее форму ввода нового элемента (группы) справочника: 1 — ввод новой группы, 0 — ввод нового элемента. По умолчанию — 0.
Необязательный параметр. Выражение типа «справочник», задающий элемент справочника-владельца для открытия формы ввода нового элемента (группы) подчиненного справочника.
Открытие формы списка справочника.
"Справочник.ХХХХХ.YYYYY", где ХХХХХ — вид справочника, YYYYY — имя выбранной формы списка справочника;
Открытие формы отчета.
Строковое выражение. "Отчет. ХХХХХ" , где ХХХХХ — вид отчета;
Открытие формы обработки.
Строковое выражение. "Обработка.ХХХХХ", где ХХХХХ — вид обработки;
Открытие формы внешнего отчета.
Строковое выражение. "Отчет";
Строковое выражение — полное имя файла внешнего отчета.
Открытие формы журнала расчетов.
"ЖурналРасчетов. ХХХХХ", где ХХХХХ — вид журнала расчетов;
Открытие формы существующего счета.
Значение типа «Счет».
Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.
Открытие формы нового счета.
"Счет. ХХХХХ" , где ХХХХХ — идентификатор плана счетов;
Открытие формы списка счетов (плана счетов).
"ПланСчетов.ХХХХ.YYYY", где ХХХХХ — идентификатор плана счетов; YYYYY — идентификатор формы плана счетов.
Открытие формы существующей операции.
Строковое выражение. "Операция".
Значение типа «документ», операция которого будет открываться.
Необязательный параметр. Числовое выражение — номер проводки, на которую нужно позиционировать курсор при открытии операции.
Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно позиционировать курсор при открытии операции.
Необязательный параметр. Числовое выражение: 1 — открыть форму в режиме только просмотра; 0 — открыть форму в режиме редактирования. -1 (минус единица) в этом случае используется вариант предусмотренный текущим значением параметра «Режим открытия объектов» установленного пользователем. По умолчанию — 0.
Открытие формы ввода новой операции.
Строковое выражение. "Операция".
Необязательный параметр. Строковое выражение — наименование типовой операции, которую следует использовать при вводе новой операции. Если значение не задано или пустое, то ввод операции выполняется без использования типовой.
Открытие формы журнала операций.
"ЖурналОпераций.YYYYY", где YYYYY — идентификатор формы журнала операций;
Значение типа «документ», операция которого будет использована для первоначального позиционирования.
Номер проводки, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.
Номер корреспонденции, которая будет использована для первоначального позиционирования курсора, если в журнале операций используется режим показа проводок.
Открытие формы журнала проводок.
"ЖурналПроводок.YYYYY", где YYYYY — идентификатор формы журнала проводок;
Значение типа «документ», операция которого будет использована для первоначального позиционирования.
Необязательный параметр. Числовое выражение — номер проводки операции, на которую нужно в начале позиционироваться.
Необязательный параметр. Числовое выражение — номер корреспонденции указанной проводки, на которую нужно в начале позиционироваться.
Открытие окна истории значений периодических констант, реквизитов справочников и счетов.
Идентификатор периодической константы, как он задан в конфигураторе.
Идентификатор справочника, как он задан в конфигураторе.
Идентификатор периодического реквизита справочника, как он задан в конфигураторе.
Элемент справочника, для периодического реквизита которого открывается окно истории значений.
Счет, для которого открывается окно истории значений.
Необязательный параметр. Дата, на которую нужно установить курсор при открытии окна.
ОткрытьФормуМодально
Выполняет открытие модальной формы из встроенного языка.
Англоязычный синоним:
Параметры: см. параметры метода ОткрытьФорму
Возвращаемое значение: см. метод ОткрытьФорму .
Функция ОткрытьФормуМодально позволяет открыть модальную форму документа, справочника, журнала документов, и других форм используемых в системе 1С:Предприятие. Синтаксис и описание см. метод ОткрытьФорму .
См. также: ОткрытьФорму
ТипЗначения
Получить тип значения данных.
Англоязычный синоним:
< 3начение >Выражение, тип данных значения которого надо определить.
Возвращаемое значение:
Функция возвращает числовое значение:
0 — неопределенный тип данных;
1 — числовой тип данных;
2 — строковый тип данных;
3 — тип данных — дата;
10 — агрегатный тип данных «Перечисление»;
11 — агрегатный тип данных «Справочник»;
12 — агрегатный тип данных «Документ»;
13 — агрегатный тип данных «Календарь»;
14 — агрегатный тип данных «ВидРасчета»;
15 — агрегатный тип данных «Счет»;
16 — агрегатный тип данных «ВидСубконто»;
17 — агрегатный тип данных «ПланСчетов»;
100 — так называемый внешний объект. В этот класс попадают все агрегатные объекты, не вошедшие в вышеперечисленный список, такие как «Текст», «Таблица», «Запрос», «ЖурналРасчетов» и т. п.
Функция ТипЗначения определяет, к какому типу данных принадлежит переданный параметр < 3начение >и возвращает числовой результат:
Если ТипЗначения(Код)<>1 Тогда
Предупреждение("Код имеет не числовой тип . ");
ТипЗначенияСтр
Получить строковое обозначение типа данных.
Англоязычный синоним:
< 3начение >Выражение, тип данных значения которого надо определить.
Возвращаемое значение:
Функция возвращает строковое значение в русскоязычном или в англоязычном написании — в зависимости от текущей установки основного языка конфигурации:
Итак, что же такое параметр?
Параметр – это значение, передаваемое в форму при открытии. Параметр может иметь любой тип и принимать любое значение.
Зачем нужен параметр?
Параметр нужен для передачи в форму дополнительных значений. Например: откуда открыта форма.
Как передать параметр?
Параметр передается в форму при открытии. Например:
Как получить параметр в открывшейся форме?
Получить параметр, переданный в форму, мы можем таким образом:
Как передать несколько значений?
Поскольку параметр может принимать любое значение, он может принимать значение типа Список. Пример
Пример обработки его в открывшейся форме:
Что такое контекст формы?
Контекст – это идентификатор формы, что-то вроде ее имени. Он используется для того, чтобы точно указать программе, к какой форме вы обращаетесь. То есть с помощью контекста можно обращаться к одной форме из другой.
Как работать с контекстом?
Все довольно просто. Для того, чтобы с контекстом работать, его надо сначала передать.
Передается он с помощью параметра. Например:
Но правильнее будет воспользоваться такой процедурой в глобально модуле:
использовать ее нужно так:
Для закрепления полученных знаний приведем практический пример.
Создадим тестовую обработку, и назовем ее Пример. Добави на нее кнопку Закрыть для закрытия формы. Теперь добавим на нее Текстовый реквизит и пропишем ему в поле Формула ТР. Также в модуле формы пропишем:
Теперь откроем форму списка справочника Номенклатура и добавим туда кнопку. В формуле кнопки напишем
Запустите 1С, откройте справочник номенклатуры, нажмите кнопку. Откроется форма и там будет наименование выбранной номенклатуры. Мы передали параметр.
Теперь передадим несколько значений. У кнопки поменяем формулу на ОткрытьПример(). Опишем процедуру:
В обработке перепишем:
Пробуем. В зависимости от того, группа или нет, текущий элемент, в обработке пишется полное наименование или обычное.
Теперь поработаем с контекстом. Перепишем процедуру ОткрытьПример:
Изменим и обработку:
В текстовом реквизите на обработке в формулу пропишем Надпись() и приделаем туда еще одну кнопку Обновить у которой в формулу пропишем Форма.Обновить()
Запускаем. При открытии в текстовом реквизите высвечивается текущий элемент справочника, но при его смене надпись не меняется, а меняется она только после нажатия кнопки Обновить. То есть текстовый реквизит на форме не обновляется. Незадача? Давайте решим и ее. Оказывается, при открытии формы можно получить и ее контекст из места открытия. В форме списка справочника объявим переменную ПримерКонт. Перепишем процедуру ОткрытьПример:
Теперь в функции какого-нить текстового реквизита (например ИнформационнаяНадпись()), пропишем такие строки:
РазмерОкна(. )
Синтаксис:
РазмерОкна(,,,,)
Назначение:
Установить/получить размер заданного окна.
Параметры:
- Необязательный параметр. Объект Форма окна, для которого необходимо установить или получить
- при передачи этого параметра = 1 и параметр Форма = '''' будут возвращены ширина и высота пользовательской части окна.
ЗАМЕЧАНИЕ:
Ширину и высоту окна нельзя сделать меньше или равной нулю.
?>
(2) ничем не ограничивается. Можешь, для красоты еще заголовок убрать иикнопкииуправления окномифоомы
(7) нет, основная форма документа, незнаю в чем соль. Даже мышей растянуть-стянуть не могу. Другой документ уменьшает.
(10) судя по тому, что я не знаю что это такое - не используются. я такого не умею делать :) визуально уменьшает только до того размера, на который форма растянута в конфигураторе.
нет. я меняю размер той формы, из которой по кнопке открывается другая. ту, что открывается модально - не трогаю.
может я чего-то не понимаю..
- а чисто полюбопытствовать - ты зачем размер формы меняешь? какую задачу решаешь изменением размера?
1) при активации нужного для редактирования элемента форма расширяется и появляется вирт. клавиатура
2) разворачивать свернутое окно на тач скрин неудобно (тяжело пальцем или стилусом попадать). Кнопка "свернуть" уменьшает окно формы до границ кнопки "развернуть", делаает окно неактивным и смещает вниз. Кнопка "развернуть" востанавливает размеры окна. Она хорошо доступна для нажатия.
с перввым пунктом конечно, не получится, ибо мне это нужно для модальных окон. а со вторым поизвращаюсь
(16) При активации нужного для редактирования элемента просто открываешь модально окно с виртуальной клавой где отображаешь нужную информацию и вводимое значение.
(20) а как можно перехватить не просто активацию колонки ТЧ, а дабл-клик (когда курсор в ячейке ТЧ появляется)?
(25) блин устал. чего только не пробовал. и галку снимал. форма формексом причесана, может в этом причина?
(20) это правильно.
а еще правильнее - при работе с тсд\тачем - пошаговые действия\экраны, где не надо ничего активизировать - потому как элемент в который надо вводить данные - единственный активный.
(26) А попробуй Formex-ом не через Окна.РазмерОкна (что-то он меня тоже когда-то подводил), а через РасширениеФормы.Ширина/Высота. Эти вроде и на модальных окнах хорошо работали.
(21) Как по мне с ТЧ в ТДС вообще не удобно работать нет перевода строки и трудно всю информацию вывести, я обычно на таблице в режиме ввода данных реализую ТЧ.
А в ТЧ ПриНачалеВыбораЗначения можно юзать, но там еще для строк и чисел надо включить, что они вводятся через выбор
забыл синтаксис
(33) Не знаю в чем прикол, но судя по всему 7-ка запоминает отступы от табличной части и размеры кнопок.
Если взять твой документ "тест" и в нем ничего не меняя в модуле все кнопки сделать маленькими и поместить в верхний левый угол, а табличную часть растянуть на все свободное место. То документ начинает отлично изменять размер окна.
Видимо надо как то переработать интерфейс чтобы кнопки не были по сторонам табличной части.
(34) и мне так кажется, но в то же время віглядит странно, что разработчики формекса этого не учли, иначе, получается, можно изменять размер оконо толко с пустыми формами.
(35) Да видимо размер документов особо не нужно менять было. Если просто удалить ТабличнуюЧасть с формы, то все работает вообще идеально.
Я потыркался, видимо как то движок запоминает расположение кнопок, если многострочную часть сместить ниже всех кнопок то формы ровно по кнопкам изменяет размер. И на это не влияет свойство формы Изменяет размер.
В при открытии прописываешь.
Редактирование()
Синтаксис:
Редактирование()
Назначение:
Определяет возможность редактирования значения непосредственно в элементе диалога для полей ввода типа Число, Строка, Дата, Счет.
Параметры:
- число: 1 - значение элемента редактируется как обычно ; 0 - значение не редактируется, но может выбираться кнопкой выбора. Отличие от метода ''Доступность '' в том, что ''Доступность'' отключает и кнопку выбора.
Замечание:
Доступ к методу возможен только в контексте Модуля формы через атрибут Форма.
А потом отлавливаеш в.
КонецПроцедуры
Синтаксис:
ПриНачалеВыбораЗначения(,)
Назначение:
Предопределенная процедура после выбора значения в форме выбора (выбор может быть инициирован в немодальном режиме интерактивно, при помощи элемента диалога с ''педалькой'').
- идентификатор элемента диалога, которым инициализирован выбор значения.
- флаг, изначально, при вызове процедуры равен 1, если в теле процедуры значение этого параметра поменять на 0, то стандартный процесс выбора значения не будет происходить.
Замечание:
Данная процедура может располагаться только в программном модуле формы.
(37) Так тоже не работает. Ему нужно чтобы форма документа стала размером с кнопку "Развернуть". А она никак не становится меньше крайне правых и крайне нижних кнопок.
Следующая информация будет полезна программистам, занимающимся разработкой(доработкой) прикладных решений на платформе 1С:Предприятие 7.7
В данной статье описан не совсем очевидный но очень удобный способ возврата параметра из обработки (отчета).
Наверное, многие, кто занимался разработкой прикладных решений на платформе 1С:Предприятие 7.7, сталкивались со следующей задачей: в процессе выполнения кода нужно открыть обработку, передать в неё параметр и получить результат её работы, в виде возвращаемого параметра. С передачей параметра в обработку никаких проблем не возникает, как следует из документации:
ОткрытьФормуМодально("Обработка.МояОбработка",Параметр);
А вот с возвратом параметра у многих бывают затруднения. Одним из способов является возврат параметра через глобальную переменную, но в данной статье я опишу более изящный и неочевидный способ. В документации сказано что переданный в форму параметр будет доступен в открытой форме(обработки, отчета) через форма.параметр, но нигде не описан такой немаловажный факт, что через эту же самую конструкцию, т.е форма.параметр обработка может вернуть любой параметр в тот же модуль из которого она была вызвана! Для этого достаточно в модуле формы обработки перед ее закрытием выполнить
форма.параметр="ВозвращаемыйПараметр";
В качестве примера приведу простую обработку проверки пароля:
Вызов из программного модуля:
ПравильныйПароль = "12345";
ОткрытьФормуМодально("Обработка.Авторизация",ПравильныйПароль);
Если (ПравильныйПароль=0) Тогда
Сообщить("Не угадали");
Возврат;
КонецЕсли;
Обработка Авторизация:
// Пароль - поле ввода на форме
// На форме имеются две кнопки, их обработчики - процедуры Ок() и Отмена()
// Модуль формы обработки
Процедура ПриОткрытии()
ПравильныйПароль=Форма.Параметр;
Форма.Параметр=0;
КонецПроцедуры
Процедура Ок()
Если (СокрЛП(Пароль)=ПравильныйПароль) Тогда
Форма.Параметр=1;
Форма.Закрыть(0);
Иначе
Пароль="";
Предупреждение("Неверный пароль !");
Активизировать("Пароль",1);
КонецЕсли;
КонецПроцедуры
Данная статья описывает, как штатными средствами передать в качестве параметра значение при открытии управляемой формы 8.2 в сравнении с тем, как аналогичную операцию получалось реализовать в обычных формах.
Как передаются параметры в обычных формах
В обычных формах для передачи параметра было 2 возможности:
- менее распространенный способ: в форме объекта на вкладке «Реквизиты» добавлялся реквизит, при необходимости определялся доступ визуальными средствами
- более распространенный способ: в модуле формы объявлялась экспортная переменная и в обработчике « ПередОткрытием » значение обрабатывалось
в обоих случаях вызов формы выглядел примерно так:
Форма = Объект . ПолучитьФорму ( "ФормаВыбора" , ВладелецФормы , КлючУникальности );
Форма . Параметр = ЗначениеПараметра ;
Форма . Открыть ();
Как передаются параметры в управляемых формах
В управляемых формах теперь есть возможность сразу передавать параметры при получении формы. Параметры передаются в виде структуры:
Параметры = Новый Структура ( "ТекущееЗначение" , ПоследнийЭлемент );
ФормаВыбора = ПолучитьФорму ( "Справочник.Номенклатура.ФормаВыбора" , Параметры );
НайденыйЭлемент = ФормаВыбора . ОткрытьМодально ();
Также у управляемой формы появились «расширения формы» (объект, справочник, документ, отчет). В зависимости от типа объекта определяется состав доступных параметров. Например, если в форме выбора справочника нужно позиционироваться на определенном элементе, то используется параметр «ТекущееЗначение». Большим плюсом является, что в самой форме не требуется писать обработчиков для предопределенных параметров, сокращает количество кода.
Также у разработчика появилась возможность определять свои параметры (в конструкторе управляемой формы вкладка «Параметры»). Время жизни параметров ограничено обработчиком ПриСозданииНаСервере , что логично т.к. параметры требуются только при создании формы, но если данный параметр определяет уникальность формы (установлен флаг «ключевой параметр» в свойствах параметра) он будет доступен и в других обработчиках.
Для передачи специфического параметра манипуляций требуется сделать немного больше:
В обработчике ПриСозданииНаСервере определить обработку данного параметра (обращение к переданным параметрам через свойство « Параметры », имеющее тип ДанныеФормыСтруктура )
- Описать получение формы и передать значение нового параметра в параметрах функции ПолучитьФорму.
Таким образом код будет иметь вид:
Параметры = Новый Структура ( "НовыйПараметр" , ПоследнийЭлемент );
ФормаВыбора = ПолучитьФорму ( "Справочник.Номенклатура.ФормаВыбора" , Параметры );
Заключение
Возможно данная статья кому-то пригодится, с экономит время и убережет от лишнего кода. Для более детальной информации о полном списке параметров управляемой формы рекомендуется посмотреть справку «Интерфейс управляемый \ Управляемая форма».
Читайте также: