1с глобальные команды как найти

Глобальная команда — где ее отловить в конфигураторе ?

Я
   lamme

26.12.20 — 15:04

УФ

Глобальная команда формы элемента номенклатуры — Цены номенклатуры. открывается список регистра сведений — цены номенеклатуры — с отбором по текущему товару.

Команда находится на панели -перейти

https://c2n.me/4anmoEj

У номенклатуры — такой команды нет

В глобальных — глаз сломал — не нашел (не факт что нет, но не вижу … )

У РС — команды нет

Точка остановки в списке РС- ловит только событие  — присоздании — но до этого — нет ничего

В конфигуртора поиск по открыть форму  «ЦеныНоменклатуры.форма.» — не находит ..

куда смотреть далее ?

какой командой открывается этот список цен

   Kigo_Kigo

1 — 26.12.20 — 15:11

Включи замер производительности и там смотри

   lamme

2 — 26.12.20 — 15:12

замер производительности на каком моменте ?

при открытии формы списка РС — те на первой строке процедуры — ПриСозданииНаСервере() ?

ставил — не находит ничего. молчит

   ДенисЧ

3 — 26.12.20 — 15:15

Сделай глобальный поиск со всеми галками по тексту, который эта команда показывает в названии или в подсказке

   Kigo_Kigo

4 — 26.12.20 — 15:16

(2) включаешь отладку на сервере

Вкл замер производительности

Жмешь перейти — цены номенклатуры

откл замер производительности — ищешь что куда обращалось

   lamme

5 — 26.12.20 — 15:26

(4)

так и делал. я же говорю — ничего не дало.

поставил точку остановки на ПриСозданиинаСервере списка РС

запутсил замер

нажал на Цены номенклатуры

остановил замер

тишина .. никого …

   lamme

6 — 26.12.20 — 15:26

(3)

да. это и делаю сейчас.

   vis_tmp

7 — 26.12.20 — 15:29

(6)И?

   lamme

8 — 26.12.20 — 15:29

(7)

не так быстро

в процессе

   lamme

9 — 26.12.20 — 15:31

нашлось много …

   PR

10 — 26.12.20 — 15:32

(8) Ты что, издеваешься?

Запусти поиск ссылок на справочник Номенклатура и ищи свою ссылку в командах

   lamme

11 — 26.12.20 — 15:32

но я так понимаю — ищу все таки объект ..

у которого есть команда

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

   lamme

12 — 26.12.20 — 15:34

при чем тут номенклатура ?

хм .. искал регистр сведений ..

сейчас посмотрю поиск на объект Номенклатура

   PR

13 — 26.12.20 — 15:37

(12) Потому что команду ты цепляешь к номенклатуре

   Prog111

14 — 26.12.20 — 16:32

А это разве не «предопределенная» команда? Не знаю, как точно называется термин, но речь про те команды, которые по умолчанию появляются в форме эелементов справочников, если их сделать ведущим измерением в каком-либо регистре сведений.

Ну то есть если создать регистр сведений, а в нём измерением сделать какой-нибудь справочник и установить его ведущим — то в форме справочника эта гиперссылка на РС появится автоматически, и не будет выполняться никакого кода при нажатии на эту гиперссылку-«команду».

   lamme

15 — 26.12.20 — 16:34

(13)

не нашел ничего и никого

   lamme

16 — 26.12.20 — 16:35

(14)

если это предопределенная команда — то как =то можно понять — кому она доступна или нет

ситуация — пользователь

у него в карточке товара нет это команды.

при этой сам регистр сведений — Цена — по ссылке открывается без ошибок.

а команды это — нет

   lamme

17 — 26.12.20 — 16:51

пошло оно все в ж…

судя по всеу- на какие то права завязано

ибо дал прав по одному — меню появилось

   Prog111

18 — 26.12.20 — 16:54

Вот ещё решение нашёл в интернете, попробуй, может поможет:

«Была такая же проблема. В форме одного документа в командном интерфейсе в подменю «Перейти» созданный регистр накоплений был, а в другом документе этого же регистра не было. Сделал простую манипуляцию: в свойствах данного регистра накоплений убрал и тут же поставил снова галочку с поля «Использовать стандартные команды». После этого в форме второго документа в командном интерфейсе в подменю «Перейти» данный регистр тоже появился.»

  

Chameleon1980

19 — 27.12.20 — 05:30

(17) ну конечно права

ибо накуя показывать, что можно перейти, а потом говорит «а вам нельзя»

Заметки: Глобальные команды и несколько динамических списков

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

Но бывают ситуации, которые могу поставить в тупик разработчика 1C, который в силу разных обстоятельств плотно не работал с объектом команды. Например, если на форме списка находится несколько динамических списков. В этой ситуации галочка «Основной реквизит» может стоять только у одного объекта, который в списке реквизитов выделяется полужирным, и именно по отношению к этому объекту будут работать все глобальные команды.

При попытке использовать команду во втором (третьем) динамическом списке вывалится ошибка:

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

Подписывайтесь на канал
«Полезный 1С»

В телеграм канале — наш практический опыт, бизнес-кейсы и способы повышения эффективности компании, которые мы опробовали внутри группы Neti.

.

Возврат к списку

Команды формы

 Команды формы

1. Общая информация

Действия в форме выполняются с помощью команд формы. Сами команды служат лишь описанием выполняемых действий. Для того чтобы команда стала выполнять свою функцию, она должна быть привязана к элементу формы (типа Кнопка). Можно выделить несколько групп команд, которые присутствуют в форме:
● Команды, создаваемые разработчиком в процессе проектирования формы. Для них необходимо создавать обработчик непосредственно в модуле формы.
Стандартные команды, которые предоставляются расширением основного реквизита формы и расширениями реквизитов, которые являются списками (например, табличная часть объекта, динамический список, набор записей регистра сведений и т. д.), если с этим реквизитом есть связанный элемент формы.
Глобальные команды – команды, предоставленные глобальным командным интерфейсом . Такие команды могут быть непараметризованными и параметризованными. Параметризованные глобальные команды будут предоставлены форме только в
том случае, если на форме есть источники параметров с соответствующими типами.
Доступность стандартных команд формы и элементов формы определяется свойством Состав команд соответствующего элемента формы.
Команды, которые предоставляет глобальный командный интерфейс (закладка Глобальные команды), могут быть размещены в любом месте формы, точно так же, как и команды формы.
В свойстве Действие указывается обработчик, который реализует действие, выполняемое командой. Если обработчик не задан, то команда будет недоступна для использования. К выбору в этом поле доступны только процедуры и функции без параметров, которые являются клиентскими
Если команда изменяет данные формы, то следует указать на это установкой свойства Изменяет сохраняемые данные. Тогда при попытке выполнения команды будут выполняться следующие действия:
● Попытка выполнить блокировку основного реквизита формы. Если попытка закончится неудачей – команда не будет выполнена.
● Установлен признака изменения у формы (флаг Модифицированность).
Если для команды установлено свойство Изменяет сохраняемые данные и форма находится в режиме Только просмотр, то все элементы формы, связанные с этой командой, также будут находиться в состоянии Только просмотр.
Кроме того, исполнение параметризованной глобальной команды, для которой параметр предоставляется реквизитом с установленным свойством Сохраняемые данные, для нового и несохраненного объекта приведет к попытке записать объект. При этом пользователю будет задан вопрос о необходимости записи. Если ответ будет отрицательный – команда не будет выполнена.
ПРИМЕЧАНИЕ. При автоматическом заполнении командных панелей и контекстных меню, для которых указан источник команд, стандартные команды не добавляются, если в данном элементе есть кнопки, добавленные вручную с такими же командами. Данная логика не распространяется на команды, добавляемые из фрагмента глобального командного интерфейса.
Для упрощения разработки различных диалогов в стандартные команды формы добавлены команды Да, Нет, ОК, Отмена, Повторить, Прервать,Игнорировать. Если такая команда добавлена в форму, то при нажатии пользователем этой кнопки будут выполнены следующие действия:
● Для формы, открытой в модальном режиме, выполняется закрытие формы и возвращается соответствующее значение типа КодВозвратаДиалога.
● Для формы, открытой в немодальном режиме, выполняется только закрытие формы.
При формировании имени обработчика выполнения команды будет использоваться свойство команды Имя.
Стандартная команда формы Справка служит для открытия справочной информации по форме/объекту конфигурации. Расположение этой кнопки на командной панели формы определяется свойством ТолькоВоВсехДействиях этой кнопки. Если данное свойство установлено в значение Авто (и для командной панели с автоматическим заполнением), то фактическое расположение будет следующим:
Интерфейс Такси – если у формы или родительского объекта конфигурации имеется справочная информация, то кнопка будет располагаться на командной панели. В противном случае кнопка будет располагаться только в меню Еще.
● Другие интерфейсы – кнопка всегда располагается на командной панели формы.
Функциональные опции – определяет, с какими функциональными опциями связан данный реквизит формы.

2. Особенности применения различных команд

Для расширений управляемой формы для объекта, справочника, документа, плана видов характеристик, бизнес-процесса, задачи и записи регистра сведений существует стандартная команда Показать в списке, которая предназначена для отображения формы списка соответствующего объекта с позиционированием открываемого списка на объекте, из которого выполняется команда. В интерфейсе команда будет недоступна, если ключевой реквизит формы равен пустой ссылке (или пустому ключу записи), т. е. редактируется новый объект.
Если команда используется в форме документа, то для такой команды доступно свойство Параметр, в котором можно выбрать форму, которая будет использоваться для отображения списка. Для выбора доступен собственно документ и все журналы, в состав которых входит используемый документ.
Кнопка, связанная с командой ПоказатьВСписке, отображается на форме вне зависимости от заполненности свойства Параметр. Если значение свойства Параметр задано, то в качестве заголовка по умолчанию у кнопки, связанной с командой ПоказатьВСписке, используется представление списка соответствующего объекта конфигурации (документа или журнала).
При автоматическом заполнении командной панели формы документа анализируются журналы, в которые входит документ, при этом на эти журналы текущий пользователь должен иметь право Просмотр  и они (журналы) должны быть включены функциональным опциям . Если есть хотя бы один такой журнал, то в командной панели вместо кнопки Показать в списке размещается группа кнопок с заголовком Показать в списке. Подменю содержит:
● Команду ПоказатьВСписке, для которой свойство Параметр заполняется ссылкой на документ, в форме которого формируется командная панель;
● Команды ПоказатьВСписке (по одной на каждый подходящий журнал), для которых свойство Параметр заполняется ссылкой на соответствующий журнал документов.
Если нет доступных журналов, то в командной панели размещается команда ПоказатьВСписке, у кнопки которой свойство Параметр не задано.
Для отображения используется основная форма списка (с учетом возможности переопределения, подробнее см. здесь) соответствующего объекта конфигурации.
Если необходимо обеспечить функциональность команды ПоказатьВСписке в рамках реализации какого-то другого алгоритма, то для этого следует использовать метод ВыполнитьПереход(), существующий для объекта УправляемаяФорма.
Пример реализации:

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

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

Previous ArticleПараметры формы

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

Общими, называют часто используемые команды и при этом они не привязаны к конкретному объекту системы, а наоборот выполняют одинаковое действие. К ним относятся: кнопки печати документа, отчет об изменении объекта или его проводок, структуры подчиненности, проще говоря — стандартные настройки 1С.

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

Когда вы добавляете в дерево метаданных свою общую команду, то после этого автоматически будут открыты окна модуля команды и ее свойств.

Свойства общей команды:

— группа, т.е. расположение в интерфейсе;

— тип параметра команды – указывается, в каких объектах будет доступна данная кнопка;

— режим использования параметра – определяет, сколько значений можно будет передать в параметр;

— изменяет данные – определяет, будет ли форма перечитывать данные после выполнения команды;

— модуль команды – описание действий, которые выполняет данная команда.

Также надо проверять на закладке «Команды» установлен ли флаг «Использовать 1С стандартные команды».

Объект конфигурации «Группы команд»

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

Свойства группы команд:

— синоним – текст, который будет выводиться как название группы;

— отображение – вариант отображения, по умолчанию установлено «Авто»;

— подсказка – текст всплывающей подсказки;

— картинка – картинка, представляющая группу в интерфейсе конфигурации.

У этого объекта есть такие особенности:

Не назначаются права;

Не определяется принадлежность к подсистемам;

Независим от функциональных опций;

Группа видна, когда одна из команд группы доступна пользователю.

Занятие 27 851

Можно также программно добавить реквизит в массив проверяемых реквизитов (листинг 27.5).

Листинг 27.5. Добавление реквизита в массив проверяемых реквизитов

ПроверяемыеРеквизиты.Добавить(«ПереченьНоменклатуры.НаборСвойств»);

Использование параметризованных команд

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

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

Склад.

В режиме «Конфигуратор»

Сначала создадим параметризованную команду объекта конфигу-

рации Отчет Материалы.

Для этого откроем окно редактирования этого объекта. На закладке Команды нажмем кнопку Добавить и создадим команду Остат-

киПоСкладу.

В открывшейся палитре свойств зададим Тип параметра команды

СправочникСсылка.Склады. В свойстве Группа укажем Командная панель формы.Важное (рис. 27.37).

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

852 1С:Предприятие 8.3. Практическое пособие разработчика

Рис. 27.37. Создание параметризованной команды

В открывшемся модуле команды заполним обработчик для ее выполнения следующим образом (листинг 27.6).

Листинг 27.6. Обработчик параметризованной команды

&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

ПараметрыФормы = Новый Структура(«Отбор, КлючНазначенияИспользования, СформироватьПриОткрытии», Новый Структура(«Склад», ПараметрКоманды), «ОстаткиПоСкладу», Истина);

ОткрытьФорму(«Отчет.Материалы.Форма», ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, Истина, ПараметрыВыполненияКоманды.Окно);

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

Прокомментируем этот код.

Занятие 27 853

В процедуру ОбработкаКоманды() передается ПараметрКоманды,

содержащий значение типа СправочникСсылка.Склады. Затем создается структура параметров формы (ПараметрыФормы): Отбор,

КлючНазначенияИспользования, СформироватьПриОткрытии.

В параметр Отбор добавляется структура, содержащая элемент Склад со значением, содержащимся в параметре команды

(ПараметрКоманды), параметр КлючНазначенияИспользования –

«ОстаткиПоСкладу» определяет назначение использования формы, а параметру СформироватьПриОткрытии присваивается значение Истина, чтобы отчет формировался сразу после открытия.

Затем структура параметров формы передается в глобальный метод ОткрытьФорму(), и форма, указанная в первом параметре метода, открывается с параметром Склад. Причем поскольку в четвертом параметре Уникальность этого метода передается Истина, то при открытии формы каждый раз будет открываться новая форма отчета и отчет будет заново сформирован с отбором по складу, переданному в параметре команды.

Теперь поместим нашу команду в форму документа.

Как мы уже говорили, в формах документов ПриходнаяНакладная

и  ОказаниеУслуги содержится команда ОстаткиПоСкладу, так как они имеют реквизит Склад типа СправочникСсылка.Склады.

Откроем форму документа ОказаниеУслуги.

На закладке Команды перейдем в раздел Глобальные команды. Здесь мы видим список глобальных параметризуемых команд, доступных в форме. В группе Параметризуемые раскроем строку

Объект и перетащим нашу команду Отчет.Материалы.Команда.ОстаткиПоСкладу(Объект.Склад) в командную панель элементов формы.

В скобках у команды указано значение реквизита Склад (Объект.Склад), которое будет передаваться в команду при ее выпол-

нении (рис. 27.38).

Заметьте, что мы не создавали форму отчета и не добавляли в настройки отчета отбор по параметру формы Склад. Система сделает это сама при выполнении обработчика команды ОстаткиПо-

Складу.

854 1С:Предприятие 8.3. Практическое пособие разработчика

Рис. 27.38. Помещение параметризованной команды в форму

В режиме «1С:Предприятие»

Запустим «1С:Предприятие» в режиме отладки и откроем документ

Оказание услуги № ЦБ000000001.

Нажмем кнопку Остатки по складу и вызовем отчет Материалы. Форма отчета генерируется системой автоматически. Отчет будет выполнен сразу при открытии формы с отбором по складу Основной, указанному в форме документа (рис. 27.39).

Закроем отчет. Если в форме документа мы изменим склад на Розничный, а затем выполним отчет нажатием кнопки Остатки по складу, то он будет сформирован с отбором по складу Розничный (в данном случае отчет будет пустой, так как у нас нет движений материалов по этому складу).

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

Занятие 27 855

Рис. 27.39. Отчет «Материалы» с отбором по складу, указанному в документе

Открытие формы списка с заданным отбором

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

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

Похожую задачу мы уже решали с помощью критерия отбора и механизма ввода на основании (см. раздел «Получение объектов, введенных на основании» на стр. 811). Теперь выполним ее с помощью встроенного языка.

В режиме «Конфигуратор»

Итак, нам нужно открыть форму списка документов Оказание услуги с отбором по мастеру, в котором поле Мастер будет равно ссылке на текущего сотрудника в списке сотрудников.

Для этого создадим форму списка справочника Сотрудники, затем создадим в ней команду ОказаниеУслуг и перетащим ее в командную

856 1С:Предприятие 8.3. Практическое пособие разработчика

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

(рис. 27.40).

Рис. 27.40. Форма списка справочника «Сотрудники»

В модуле формы заполним обработчик команды следующим образом

(листинг 27.7).

Листинг 27.7. Обработчик команды «Оказание услуг»

&НаКлиенте Процедура ОказаниеУслуг(Команда)

ПараметрыФормы = Новый Структура( «Отбор», Новый Структура(«Мастер», Элементы.Список.ТекущаяСтрока));

ОткрытьФорму(«Документ.ОказаниеУслуги.ФормаСписка», ПараметрыФормы,, Истина);

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

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

Оказание услуги.

Занятие 27 857

В режиме «1С:Предприятие»

Запустим «1С:Предприятие» и откроем список сотрудников. В форме списка появилась кнопка Оказание услуг. При ее нажатии открывается список документов об оказании услуг, где мастером является текущий сотрудник (рис. 27.41).

Рис. 27.41. Отбор по мастеру в списке документов «Оказание услуги»

Однако не все так просто, как может показаться. Здесь есть одна тонкость, которую нужно знать и учитывать при создании настроек (в частности, отборов) динамических списков.

Как уже говорилось, динамический список построен на основе системы компоновки данных. Настройки списка при открытии формы помещаются в свойство динамического списка Компонов-

щикНастроек.

Следует различать три вида настроек динамического списка:

Фиксированные настройки, сделанные программным путем, помещаются в свойство динамического списка КомпоновщикНа-

строек.ФиксированныеНастройки;

Настройки, сделанные в конфигураторе, помещаются в свойство динамического списка КомпоновщикНастроек.Настройки;

Пользовательские настройки, сделанные в режиме 1С:Предприятие, помещаются в свойство динамического списка Компо-

новщикНастроек.ПользовательскиеНастройки.

858 1С:Предприятие 8.3. Практическое пособие разработчика

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

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

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

(КомпоновщикНастроек.ФиксированныеНастройки.Отбор) и добавить этот отбор в коллекцию основных настроек списка (КомпоновщикНа-

строек.Настройки.Отбор).

В режиме «Конфигуратор»

Чтобы решить поставленную задачу, откроем форму списка документа ОказаниеУслуги, которую мы создали ранее. В редакторе формы создадим реквизиты формы ПрограммныйОтбор типа Булево и два реквизита произвольного типа – ПолеОтбора и ЗначениеОтбора. Эти реквизиты будут хранить информацию о программном отборе в форме списка.

Затем создадим обработчик события формы ПриСозданииНаСервере и заполним его следующим образом (листинг 27.8).

Листинг 27.8. Обработчик события формы «ПриСозданииНаСервере»

&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Параметры.Отбор.Свойство(«Мастер») Тогда ПрограммныйОтбор = Истина; ПолеОтбора = Новый ПолеКомпоновкиДанных(«Мастер»);

Параметры.Отбор.Свойство(«Мастер», ЗначениеОтбора); КонецЕсли

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

Занятие 27 859

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

Далее создадим обработчик события формы ПриОткрытии и заполним его следующим образом (листинг 27.9).

Листинг 27.9. Обработчик события формы «ПриОткрытии»

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

Если ПрограммныйОтбор = Истина Тогда ПрограммныеНастройки = Список.КомпоновщикНастроек.ФиксированныеНастройки;

Для Каждого ЭлементНастроек Из ПрограммныеНастройки.Отбор.Элементы Цикл Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда

ПрограммныеНастройки.Отбор.Элементы.Удалить(ЭлементНастроек); КонецЕсли;

КонецЦикла;

Настройки = Список.КомпоновщикНастроек.Настройки;

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

ЭлементОтбора.ЛевоеЗначение = ПолеОтбора; ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора.ПравоеЗначение = ЗначениеОтбора;

Список.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); КонецЕсли;

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

Код обработчика выполняется в случае, если форма была открыта с  программным отбором.

Сначала обходится коллекция элементов отбора фиксированных настроек компоновщика настроек динамического списка. Если в  коллекции присутствует элемент отбора, в котором ЛевоеЗначение равно значению реквизита ПолеОтбора (т. е. установлен программный отбор по полю Мастер), то этот элемент удаляется.

Затем этот же отбор добавляется в коллекцию настроек динамиче-

ского списка КомпоновщикНастроек.Настройки.Отбор, и измененные настройки загружаются в компоновщик настроек.

860 1С:Предприятие 8.3. Практическое пособие разработчика

Теперь осталось только удалить созданный элемент отбора при закрытии формы списка документа ОказаниеУслуги.

Для этого создадим обработчик события формы ПередЗакрытием и заполним его следующим образом (листинг 27.10).

Листинг 27.10. Обработчик события формы «ПередЗакрытием»

&НаКлиенте Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)

Если ПрограммныйОтбор = Истина Тогда Настройки = Список.КомпоновщикНастроек.Настройки;

Для Каждого ЭлементНастроек Из Настройки.Отбор.Элементы Цикл Если ЭлементНастроек.ЛевоеЗначение = ПолеОтбора Тогда

Настройки.Отбор.Элементы.Удалить(ЭлементНастроек); КонецЕсли;

КонецЦикла; Список.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

КонецЕсли;

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

Код обработчика выполняется в случае, если форма была открыта с программным отбором.

Коллекция элементов отбора настроек компоновщика настроек дина-

мического списка КомпоновщикНастроек.Настройки.Отбор обходится в цикле. Если в коллекции присутствует элемент отбора, в котором ЛевоеЗначение равно значению реквизита ПолеОтбора, то этот элемент удаляется. Затем измененные настройки загружаются в компоновщик настроек.

В режиме «1С:Предприятие»

Запустим «1С:Предприятие», откроем список сотрудников и нажмем кнопку Оказание услуг. Откроется список документов об оказании услуг, где мастером является текущий сотрудник. Вызовем окно настройки списка, выполнив команду Еще Настроить список… В открывшемся окне мы видим добавленный нами отбор по полю Мастер, который пользователь может изменить или очистить

(рис. 27.42).

Соседние файлы в папке Учебники

  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Как исправить плохой почерк почерка
  • File not found что за ошибка как исправить
  • Как составить резюме логист
  • Как найти значение угла в многоугольнике
  • Как найти 100 от 130