15 сент. 2012 г.

Установка отбора программно в 8.1 и 8.2.

2013.11.29: 

Открытие управляемой формы

У формы объекта или записи регистра есть ключевой реквизит. В списке реквизитов формы он выделен полужирным. Чтобы открыть форму объекта, нужно в параметр процедуры ОткрытьФорму() добавить элемент с Ключом «Ключ» и значением — ссылкой на нужный объект(если объектный тип) или ключем записи (если регистр). Например:

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

   ОткрытьФорму("Справочник.Проекты.ФормаОбъекта", П);
КонецПроцедуры

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

В этом случае вызывается процедура «ОбработкаЗаполнения» модуля объекта. Эта процедура имеет единственный параметр «Основание».  Если мы в параметры вставим ключ «Основание», то он будет передан в процедуру «ОбработкаЗаполнения». 

&НаКлиенте
Процедура ОткрытьФорму(Команда)

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

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


2013.07.20
: добавил ссылку на пример по работе с отбрами из FAQ от 1С



Пример кода для установки отбора в форме списка документов на 8.1 и 8.2.

Для 8.1:

Отбор.Контрагент.Установить(Контрагент);

Для 8.2:

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

6 комментариев:

  1. Спасибо очень помогло

    ОтветитьУдалить
  2. (Тип("ЭлементОтбораКомпоновкиДанных")) - это что?

    ОтветитьУдалить
  3. Самая закавыка не в том, чтобы программно поставить отбор, а в том, чтобы потом ограничить к нему доступ пользователя. Сколько ни бился, так и не нашёл толкового способа... :(

    ОтветитьУдалить