Как скрыть справочник в 1с

Обновлено: 07.07.2024

Сегодня мы поработаем с формой и научимся на ней прятать элементы - устанавливать видимость их (Рисунок 1).

На рисунке 1 изображена форма элемента, на которой есть элементы на форме в отображении списка - это синий прямоугольник, а на самой форме их нет - это жёлтый прямоугольник. То есть они есть, но они там не отображаются.

Это называется пользовательская видимость.

Делается она следующим образом: выделяется элемент на форме, открывается палитра свойств этого элемента и на свойстве "Видимость" снять галочку (Рисунок 2).

Снять/поставить галочку - это значит, что будет виден элемент или не будет виден. А если сказать иначе, то это Истина - галочка стоит и элемент виден, Ложь - галочка снята и элемент не виден.

Сохраните все изменения и увидите, что в пользовательском режиме они у вас теперь не будут отображаться, однако есть интересный момент: для поля "Наименование" установлено свойство "Проверка заполнения со значением Выдавать ошибку". Это свойство означает, что это поле обязательно должно быть заполнено и платформа выдаст ошибку, если оно будет пусто и не даст записать в базу. Запустите и нажмите кнопку "Записать и закрыть" и получите уведомление (Рисунок 3).

Как же так получается, что поля на форме нет, но платформа предупреждает нас, что это поле не заполнено?

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

А теперь мы попробуем сделать так, чтобы поле появлялось и исчезало в зависимости от какого-либо условия.

Проще всего это сделать с полем, у которого отображение будет в виде галочки. То есть если галочка будет стоять, то поле будет видно, а иначе поле будет спрятано. Давайте попробуем сделать это. Для этого необходимо добавить на форму еще один реквизит с типом "Булево" (Рисунок 3).

После этого необходимо перейти на форму и переместить его на форму (Рисунок 4).

Обратите внимание на рисунок 4, у поля "Видимость" галочка не стоит, а значит по умолчанию стоит значение Ложь!

Теперь необходимо прописать процедуру. Чтобы прописать, необходимо понять как это будет работать!

А работать это будет следующим образом: как только мы меняем значение поля "Показать/Скрыть", так сразу исчезает/появляется поле "Число". Все происходит именно в таком порядке. Чтобы это работало у платформы есть специальные события, а в данном случае нужно событие "ПриИзменении".

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

Создадим на форме группу (папку) и поместим в нее элемент, который будем прятать (убирать видимость) - поле "Число" (Рисунок 5).

Выделим поле "Показать/Скрыть" и найдем свойство и оно же событие "ПриИзменении" (Рисунок 5).

Нажмем на значок увеличительного стекла и создадим процедуру на клиенте (Рисунок 6).

В создавшейся процедуре убираем закомментированную строку и вместо нее прописываем нашу (Рисунок 7).

Этот код означает следующее:

1. Если - начало условия;

2. Объект.ПоказатьСкрыть - обращение к элементу формы;

3. Объект.ПоказатьСкрыть = Истина - само условие;

4. Элементы.Группа1 - обращение в элементу "Группа1";

5. Видимость - пользовательская видимость;

6. Элементы.Группа1.Видимость = Истина - папка с находящимися в ней элементами будет видна;

7. Элементы.Группа1.Видимость = Ложь- папка с находящимися в ней элементами будет не видна. КонецЕсли - окончание выполнения условия.

Запустите пользовательский режим и проверьте изменения. Как только поставите галочку, ничего не изменится. Снимете галочку, поле "Число" исчезнет, а как поставите галочку, так сразу же оно и появится.

Так и только так работает это событие - при изменении значения, то есть ставишь галочку или убираешь, начинает срабатывать событие и выполняться условие.

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

Ссылка для вступления телеграм-канал - t.me.Apiscourses

Подписаться в группу ВКонтакте

Прошлые уроки:

На этом все. Жду Вас на следующем занятии.

P.S. Подписывайтесь на мой канал :-)

программирование программирование 1с 1с предприятие обучение онлайн обучение 1с

Возникла задача добавить в интерфейс БП 3.0 новые разделы, причем видно их должно быть только тем пользователям, которым это дозволено.

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

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

В общем, по итогам вышло так:

1. Создаём дополнительное сведение для справочника «Пользователи», например «Доступный раздел», с типом значения «Дополнительное значение». Значениями которого сделаем «Вот такой раздел» и «Совсем другой раздел».

Как сделать? Администрирование – Общие настройки – «Дополнительные реквизиты и сведения» устанавливаем одноимённый флаг, затем гиперссылка «Дополнительные сведения». Ищем справочник «Пользователи», жмём «Создать», в поле наименование пишем «Доступный раздел», жмём «Записать», потом на закладке «Значения» создаём две, поименованные выше, строки.


2. Создаем расширение «СкрытьПоказатьРазделыПользователям»

Как сделать? В конфигураторе «Конфигурация» - «Расширения конфигурации» жмём «Добавить». В имени пишем «СкрытьПоказатьРазделыПользователям», Префикс «_еаю», назначение «Дополнение»:


Галки делаем как на картинке.

3. В модуле управляемого приложения расширения создаём процедуру:

Как сделать? ПКМ на первой строке расширения «Открыть модуль управляемого приложения». Туда копируем приведённый выше текст.

4. Добавляем в расширение все измерения и ресурс регистра сведений «ДополнительныеСведения»

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


5. Добавляем в расширение два справочника, например «Контрагенты» и «Номенклатура». Добавление аналогично п.4, только никаких реквизитов не добавляем, для примера нам достаточно только справочников.

6. Создаем две подсистемы в расширении «еаю_ВотТакаяПодсистема» и «еаю_СовсемДругаяПодсистема». В состав первой добавляем справочник «Контрагенты», с состав второй «Номенклатура». В обеих подсистемах устанавливаем флаг «Включать в командный интерфейс».

7. Добавляем две роли в расширение «еаю_ВТР» и «еаю_СДР», в ревой делаем доступной подсистему «еаю_ВотТакаяПодсистема», во второй «еаю_СовсемДругаяПодсистема»

Как сделать? В конфигураторе в ветке «Роли» открываем нужную роль, и с дереве прав в ветке подсистемы устанавливаем флаг «Просмотр» для соответствующей подсистемы:


8. Создаем два общих модуля еаю_ОбработчикиКлиент (галка «Клиент (Управляемое приложение)») и еаю_ОбработчикиСервер (галки «Сервер» и «Вызов сервера»)

Затем нужным пользователем выбираем в дополнительных сведениях нужный ему раздел, и после перезапуска наслаждаемся его наличием в панели разделов))))


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

Думаю, эта разработка понравится тем, кто имеет подобную задачу.

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

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

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

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


Далее для нужного набора свойств добавляем свойство из другого набора (рис.2-5).





Всё! Подготовка произведена. теперь при нажатии кнопки доп сведений увидим (рис.6). (не совсем удачно выбрал справочник, у него есть свой реквизит Действует, но это не важно).


Теперь в модуль формы списка справочника в процедуру ПриСозданииНаСервере() добавляем вызов.

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

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

При этом отбор, установленный в форме, можно снять, нажав на кнопку Настроить список (рис. 7)


Решение тестировалось на конфигурации УТ 11.4.5.143 платформа 8.3.12.1714, однако скорее всего будет работать на всех конфигурациях с управляемыми формами, где есть подсистема дополнительных реквизитов и сведений.

Едва ли не на каждом шагу нам приходится делать выбор. Работа в программе «1С:Бухгалтерия 8» редакции 3.0 не является исключением.. Разнообразие типов организаций и видов деятельности, и, как следствие, многовариантность учета приводят к постоянному увеличению функционала программы и часто ставит бухгалтера перед выбором. Новая функция программы позволяет сделать выбор, если не навсегда, то надолго.

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

До выхода релиза 3.0.35 возможность включения/выключения некоторых функций реализовывалась в форме настройки Параметров учета. Там же она осталась и сейчас, но появился и короткий путь к таким настройкам (рис. 1).

01-01.jpg

Теперь видимостью многих функций можно управлять нажатием одной из трех предлагаемых кнопок – «Основная», «Выборочная» и «Полная» (см. рис. 2). Комментарии «из уст» очаровательной помощницы говорят сами за себя.

01-02.jpg

Что именно кроется под той или иной функциональностью, можно увидеть на закладках формы. Для Основной – все флажки сняты, для Полной – все установлены. Соответственно, Выборочная подразумевает, что вы оставите только те опции, которые необходимы именно вам. Заметьте, если первоначально вы выбрали Основную функциональность, а затем добавили какие-то опции, или, наоборот, после установки Полной, часть функций отключили, то программа автоматически устанавливает Выборочную функциональность.

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

Читайте также: