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

&НаКлиенте

Процедура Команда1(Команда)

   ПроведениеОплатаОтгрузка();

   ЭтаФорма.ОбновитьОтображениеДанных();

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

&НаСервере

Процедура ПроведениеОплатаОтгрузка()

   док = ДанныеФормыВЗначение(Объект, Тип("ДокументОбъект.ЗаказКлиента") );

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

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

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

Дано: Документ "РучнаяОперация" по регистру Бухгалтерии

Субконто меняются на разных Счетах.

Выбирается комбинация:

Субконто1 = Контрагент

Субконто2 = Документ (движение по контрагенту)

Задача:Наложить ограничение по выбору субконто2 из списка документов только по Контрагент.

Решение (Настроить параметры отбора ДинамическогоСписка):

создать: ФормаВыбора, объект ДинамическийСписок,

добавить обработку события типа Активация у ДинамическийСписок:

ЭлементыОтбора = ДинамическийСписок.Отбор.Элементы;

Если ЭлементыОтбора.Количество()>0 Тогда

   ЭлементыОтбора.Очистить();

КонецЕсли;

ЭлементОтбора = ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.Использование = Истина;

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");

ЭлементОтбора.ПравоеЗначение = Ссылка;

Связь по типу выбор данных Управляемая форма

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

Можно наложить ограничения по типу програмно :

Пример: Взависимости от вида карты выбирается нужный справочник в табличной части.

Код в обработчике ПриИзменении

Если Объект.ВидыКарт = ПредопределенноеЗначение("Перечисление.ВидыКарт.Вид1") Тогда

   Элементы.ТабличнаяЧасть1Карта.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Справочник1");

ИначеЕсли Объект.ВидыКарт = ПредопределенноеЗначение("Перечисление.ВидыКарт.Вид2") Тогда

   Элементы.ТабличнаяЧасть1Карта.ОграничениеТипа = Новый ОписаниеТипов("СправочникСсылка.Справочник2");

КонецЕсли;

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

Дано:

На управляемой форме размещен объект ДвиженияДокумента типа ДинамическийСписок, формирующийся запросом по регистру.

Задача:Фильтровать ДвиженияДокумента по документу регистратору. Установить период.

Решение:

// 1-й способ:

// Управление через параметры запроса. Минус - каждый раз при изменении параметра происходит обращение к БД.

&НаКлиенте

...

Если ЗначениеЗаполнено( СсылкаНаДокумент ) Тогда

   ДвиженияДокумента.Параметры.УстановитьЗначениеПараметра("Регистратор" , СсылкаНаДокумент);

КонецЕсли;

// 2-й способ:

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

&НаКлиенте

Процедура СписокПриАктивизацииСтроки(Элемент)

   тс = Элемент.ТекущаяСтрока;

   Если ЗначениеЗаполнено(тс) Тогда

      ЭлементыОтбора = ДвиженияДокумента.Отбор.Элементы;

      Если ЭлементыОтбора.Количество()>0 Тогда

         ЭлементыОтбора.Очистить();

      КонецЕсли;

      ЭлементОтбора = ЭлементыОтбора.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

      ЭлементОтбора.Использование = Истина;

      ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Регистратор");

      ЭлементОтбора.ПравоеЗначение = тс;

   КонецЕсли;

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

Отображение изображения (картинка) Управляемые формы

1. Создать реквизит формы КартинаНаФорме тип Строка

2. Перетащить КартинаНаФорме на поле формы и установить свойство Вид "Поле картинки"

3. Связать данные БД и Формы (КартинаНаФорме<->Реквизит справочника КартинаВСправочнике):

&НаКлиенте

КартинаНаФорме = ПолучитьНавигационнуюСсылку( Элемент.ТекушиеДанные.<Ссылка на справочник>, "КартинаВСправочнике");

или

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

Элементы.КартинаНаФорме.Видимость = Истина;

Чтение файла изображения на клиенте и запись в БД.

&НаКлиенте

Процедура ДобавитьКартинку(Команда)

   ИмяФайлаВФайловойСистеме = "";

   АдресВоВременномХранилище = "";

   ПоместитьФайл(АдресВоВременномХранилище , , ИмяФайлаВФайловойСистеме, Истина);

   КартинаНаФорме = АдресВоВременномХранилище;

   УстановитьКартинку();

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

&НаСервере

Процедура УстановитьКартинку()

   сп = РеквизитФормыВЗначение("Объект");// сп - элемент справочника

   сп.КартинаВСправочнике = Новый ХранилищеЗначений( ПолучитьИзВременногоХранилища(КартинаНаФорме) );

   сп.Записать();

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

Контроль заполнения полей управляемых форм.

Контроль осуществляется на стороне сервера.

Проверяемый реквизит объекта метаданных свойство "Проверка заполения" установить в состояние "Выдавать ошибку" (по умолчанию "Не проверять"). Это включает обработку "поумолчанию". Обработку проверки можно изменить в обработке события в модуле Объекта (&НаСервере) ОбработкаПроверкиЗаполнения.