1с скрыть стандартные команды
Сегодня мы поработаем с формой и научимся на ней прятать элементы - устанавливать видимость их (Рисунок 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с
Есть необходимость в зависимости от пользователя скрыть некоторые команды в командном интерфейсе рабочего стола.
Через роли и функциональные опции не прокатывает. Если кто с такой нуждой сталкивался, помогите. Очень нужно. Заранее благодарен.
В разных конфигурациях, разные методы. Посмотри как в Рознице настроены права у пользователя - там некоторые права снимаются/устанавливаются флажками в интерфейсе программы.
Самописная конфигурация. Какая версия Розницы? В инете будет? Если не сложно, кинь ссылку или саму конфу на ящик.
Если у тебя самописка
1.Введи пользователей базы елси нет.
2.Введи функциональные опции в спр. пользователи
3. У ОодулеСеанса распиши все что тебе надо по скрытию
В базе порядка 50 учетных записей пользователей. Функционал между ними определяется шестью ролями.
Для пользователей одной из ролей (МАСТЕР) хотелось бы ввести ограничения по видимости команд на рабочем столе по дополнительным
признакам. Признаки эти формируются особым пользователем через справочник и наделяются пользователям с ролью МАСТЕР. У одного пользователя этик признаков может быть несколько. Исходя из этих наборов и хотелось бы гасить команды рабочего стола. Т.е. по сути добавление дополнительных
ролей или функциональных опций, но не меняя конфигурацию. В конфигурации все разнообразие этих признаков не предусмотришь, а посему функциональные опции и роли применить нельзя. Может я просто не вижу как это организовать программно? Если кто сталкивался с таким, подскажите.
Что бы выйти на роль НУЖЕН Пользователь(что она у него есть) который зашел в базу от этого и плясасть. Если нет пользователя как ты к нему привяжушь роль. Изменять придется .
Все разнообразие ножно сделать путем рзабирия ролей на более мелкие
Разбитие ролей на более мелкие приведет к постоянному изменению конфигурации, что не возможно. Пользовательская видимость завязана на роли, которая одна (МАСТЕР) и вопрос не решает. Пользователя и его роль я определяю. Вопрос в том, как гасить программно команды рабочего стола исходя из пользователя с его набором дополнительных характеристик (количество которых изначально не определено) Грубо говоря хочу с имитировать распределение мастеров по ролям, но на программном уровне а не на уровне конфигурации. Я понимаю, что роль в конфигурации это одно, а гасить кнопки это другое, но смысл похож. Как добраться до команд программно, типа: Метаданные.ЭлементыРабочегоCтола и т.д.
Роли когда ты их разобъешь слажаваются между собой и никагого измения конфигурации НЕ ТРЕБУЮТ.В итоге ты получишь свою роль МАСТЕР.
Что такое ДОПОЛНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ.? Что бы добраться до команд надо ОПРЕДЕЛИТЬ РОЛИ (С РАЗБИТИЕМ по кажому документу ).ДОКУМЕНТ это и есть твой команда. Гасить документы (надо определить эти докменты) , а это роли.
У любой формы в 1С есть стандартная командная панель, на которой располагаются стандартные команды, если это форма документа то там обычно есть кнопки «Провести и закрыть», «Записать»,»Провести» в левой части присутствует выпадающие меню «Еще» в котором расположено еще очень много команд «Изменить», «Отменить проведение», «Найти», «Изменить форму» и многое другое. Стандартная командная панель есть и у табличных частей, на ней расположены кнопки «Добавить», «Перемещение элементов», «Поиск» и меню «Еще» с дополнительными командами «Изменить», «Скопировать», «Переместить вверх», «Переместить вниз» и т.д. В большинстве случаев стандартные командные панели оставляют, но в некоторых случаях их нужно отключить, например, чтобы пользователь не смог добавлять, изменять или удалять элементы табличной части. Отключить отображение стандартных командных панелей на формах очень просто.
Как убрать Стандартную панель
Но обо всем поп порядку, сначала давайте посмотрим как выглядит стандартная командная панель на различных формах, вот на она на форме списка.
А вот стандартная командная панель формы документа и табличной части.
Для того чтобы отключить отображение стандартной командной панели формы списка, нужно открыть её свойства и снять галочку с пункта «Автозаполнение»
Тоже самое нужно сделать и у командной панели формы документы и табличной части.
Без стандартной командной панели форма списка будет выглядеть вот так.
А сам документ и его табличная часть вот так.
Вот таким образом можно отключить отображение стандартной командной панели на любой форме в 1С. Свойства различных элементов формы можно вполне изучить самостоятельно, делать это лучше постепенно и не спеша.
В 1С добавить команду на форму можно двумя способами, используя графический интерфейс либо программно. Кстати, программно можно добавить все что угодно. На всех курсах по 1С программированию рассказывают про первый вариант так как он очень простой, а вот второй использую уже профессионалы своего дела. В результате новички испытывают в некотором роде шок, когда на форме видят какие-то элементы, например, те же команды, но открыв форму в конфигураторе видят их отсутствие. Информации по этому поводу достаточно много в интернете, вот и я решил немного рассказать и показать как это делается.
Программное добавление команд
Для этого в конфигураторе создаем обработчик события «При создании на сервере». Если кто не знает как его создать то для этого выделяем всю форму одинарным кликом, после чего в открывшемся меню справа ищем раздел «События» и напротив «При создании на сервере» нажимаем на значок лупы.
Далее пишем следующий код.
Обязательно пишите комментарии к своему коду.
Можно изменить внешний вид кнопки сделать её например ссылкой для этого в коде в процедуре на сервере меняем «ОбычнаяКнопка» на «Гиперссылка».
Вариантов настройки внешнего вида и расположения очень много более подробно об этом можно почитать в синтаксис помощнике.
В большинстве случаев все не стандартные реквизите добавляются именно программно. Если мы откроем команды и саму форму в конфигураторе то увидим что их нет.
Как программно добавить в командную панель кнопку со стандартной функцией "Сортировать по убыванию"?
Можно, например, включить автозаполнение в ком. панели, потом при открытии создать структуру или массив с действиями, заполнить его, и после этого отключить автозаполнение
Код 1C v 8.х
Похожие FAQ
Google maps, поиск оптимального маршрута 5
В данном посте хочу коснуться основных аспектов построения оптимального маршрута с использованием API Google maps. Исходные данные для построения маршрута: * Географические координаты объектов, которые хранятся в базе; * Координаты начальной и коне База 1С при запуске уходит в дамп и вылетает 1
В последнее время частенько обращаются пользователи у которых после замены или ремонта компьютера 1С не запускается, а точнее при открытии уходит в dump и вылетает. Как правило, решение одно: Отключить аппаратное ускорение видеокарты В Window В регламентированной отчетности не печается штрих-код 1С ( EanGnivc ) 0
Установка шрифта EanGnivc В формах регламентированной отчетности, например, налоговые декларации, которые введены для предоставления отчетности, на всех листах в левом верхнем углу содержат свой уникальный штрих-код. В этих формах, которые распрос Горячие клавиши 1С Пользователю [ Предприятие] 5
Основные команды: Интерфейс: F6 - переключение между формами рабочего стола F10 - переход в главное меню окна Alt+1 - переход на панель Разделов Alt+2 - переход на панель Навигации Alt+3 - переход на панель Действий Alt+9 - переход Горячие клавиши 1С Разработчику [ Конфигуратор ] 128
Основные команды: Кодирование: Ctrl+Пробел - вызов подсказки Ctrl+Q - вызов шаблона Ctrl+F1 - поиск в синтакс-помощнике Ctrl + L - удалить текущую строку Alt+Shift+F - отформатировать код Исследование: F12 - ставим курсор на про Посмотреть все результаты поиска похожих
Читайте также: