Гибкое управление свойствами доступности элементов управления в обычных формах 1С: Предприятия 8.х
Наверное, одной из самых непростых и скучных задач при проектировании обычной формы в «1С: Предприятии» является управление доступностью элементов в зависимости от того или иного набора данных. Мне встречалось очень много решений: от процедуры вроде УстановитьВидимостьДоступность() с включением в нее всех правил для элементов управления, до совершенно хаотично разбросанных по всему коду обращений к указанным свойствам.
Признаюсь честно, я тоже перепробовал различные способы, но в один прекрасный момент дошел до очень удобного и логичного (как мне кажется), который и будет описан в этом посте.
Все началось с того, что поиск решения для этой задачи натолкнул меня на статью из «Методик разработки» под названием «Организация управления доступом в форме». Ключевым моментом в статье является то, что управление доступом сосредотачивается в одной лишь процедуре УстановитьДоступ(). И если необходимо изменить состояния элементов управления, вызывается только эта процедура. Сама процедура не занимается определением доступа, а работает с данными из списков, которые формируются следующими функциями:
То есть сами условия доступности устанавливаются в этих функциях, а уже процедура УстановитьДоступ() присваивает соответствующим свойствам элементов управления эти заранее установленные значения.
Я разделил код на три составляющих. Первая — это методы, которые как раз выполняют изменения значений свойств доступности элементов формы. Вынес их в общий модуль. Назовем его условно УправлениеДоступом. Ниже расположен код, который размещается в нем. Я постарался максимально прокомментировать малопонятные участки кода.
Например, у нас есть табличное поле Товары, в котором присутствует колонка СкидкаПоДисконтнойКарте. Колонка видна только тогда, когда дисконтная карта проставлена в документ, т.е. реквизит ДисконтнаяКарта является заполненным. Соответственно, условие списока управления видимостью для колонки СкидкаПоДисконтнойКарте будет следующим:
Вторая часть когда — это функции, которые отвечают за формирование списков доступности. Они располагаются непосредственно в форме и являются экспортируемыми. Я немного отошел от стандарта 1С и заменил метод ПолучитьСписокДоступаКУправлениюВидимостью() на ПолучитьСписокУправлениеРедактированиемТекста(). Просто мне кажется, что так удобнее и логичнее. Ниже приведен шаблон кода с этими функциями:
И, наконец, третья часть — это процедура УстановитьДоступ(), которая тоже расположена в модуле формы. Именно эту процедуру мы вызываем в любом месте кода нашей формы, чтобы переопределить доступность элементов формы.
Чтобы было все нагляднее и понятнее, давайте рассмотрим следующий пример. Допустим, что у нас есть форма. На ней расположен флажок НаличнаяПродажа (булево), флажок ПробиватьФискальныйЧек (булево), поле ввода ДисконтнаяКарта (ссылка на справочник ДисконтныеКарты), поле ввода Комментарий (строка) и табличное поле Товары. Все связаны с одноименными реквизитами. У табличного поля есть колонка с именем СкидкаПоДисконтнойКарте (число). Кроме этого, есть командная панель ОсновныеДействияФормы, на которой размещена кнопка ПробитьЧек. Определим некоторые условия:
- Если установлен флажок НаличнаяПродажа, флажок ПробиватьФискальныйЧек видим и поле ДисконтнаяКарта доступно для ввода.
- Если стоит флажок ПробиватьФискальныйЧек, кнопка ПробитьЧек доступна.
- Если поле ДисконтнаяКарта заполнено, то видна колонка СкидкаПоДисконтнойКарте табличной части Товары и поле ввода Комментарий доступно для редактирования.
Теперь достаточно вызвать процедуру формы УстановитьДоступ(), и мы получим то состояние элементов, которые задали.
Хочется выделить следующий момент. В списки можно можно добавлять пути к элементам формы. Например, для вышеприведенного примера с таблицей Товары имя элемента определяем как «Товары.Колонки.СкидкаПоДисконтнойКарте». Или путь к кнопке ПробитьЧек. Можно использовать множественные вложения, вроде «ИмяКоманднойПанели.Кнопки.ИмяПодменю.Кнопки.ИмяКнопки».
Предлагаемый вариант не конечный. Можно внести множество мелких дополнений, вроде указаний, какие списки обрабатывать, а какие нет. Но это уже зависит от точечных потребностей разработчика.
Что определяет интервал видимости 1с
При просмотре журнала операций обычно представляют интерес не все проводки, а только те из них, которые принадлежат некоторому временному интервалу (текущий месяц, квартал, год и т.д.). Иногда требуется просматривать только проводки с определенным номером журнала операций (скажем, проводки, введенные на некотором рабочем месте). “1C:Бухгалтерия” для этого позволяет задавать интервал видимости операций. Он определяет, какие проводки будут видны при просмотре журнала операций.
Установка интервала видимости операций осуществляется при выборе пункта “Интервал операций” из группы “Операции” главного меню программы. При этом на экран выводится запрос, изображенный на рис. 5.5.
В данном запросе Вы можете задать границы интервала видимости операций (поля “Начало интервала” и “Конец интервала”). Кроме того, Вы можете выбрать один из трех вариантов вывода журнала операций:
Не разделять по номерам журналов — при этом при просмотре журнала будут доступны все проводки, вне зависимости от номера журнала;
Рис. 5.5. Установка интервала видимости операций
Разделять по всем номерам журналов — в этом случае при открытии журнала операций будет открыт журнал, в котором будут присутствовать только проводки и документы с номером журнала, устанавливаемым по умолчанию. Чтобы вывести проводки и документы с другими номерами журнала, надо нажать (Alt)(F5);
Разделять только по указанным номерам журналов — этот режим позволяет выделить один или несколько номеров журнала, которые будут просматриваться отдельно. При выборе этого варианта в текстовом поле под данным пунктом следует указать (через запятую) список номеров журналов, которые Вы хотите просматривать отдельно. В этом случае при нажатии (Alt)(F5) Вы сможете, нажав на кнопку [ Выбрать прочие ], открыть журнал, содержащий все проводки и документы, кроме тех, номера журналов которых перечислены в данном запросе.
Пример. Если Вы хотите отделить документы с номерами журналов “ПП” и “СЧ” (платежные поручения и счета), то следует указать “ПП,СЧ”. Тогда при открытии журнала операций в журнале “Прочие” будут содержаться все проводки и документы, кроме платежных поручений и счетов.
Установив параметры видимости операций, нажмите на кнопку запроса [ Установить ].
Замечание. Интервал видимости операций не влияет на период расчета итоговых показателей.
4.3. Интервал видимости
Интервал видимости журнала определяет, за какой период времени будут видны документы при просмотре журнала. Текущий интервал видимости выводится в заголовке окна журнала в скобках после названия журнала. С помощью интервала видимости можно ограничить объем просмотра записей в журнале документов.
Когда окно с журналом выводится на экран, интервал видимости автоматически устанавливается таким, как определено в настройках параметров журнала (пункт «Параметры» меню «Сервис» главного меню программы).
Для местного изменения интервала видимости журнала документов необходимо выбрать пункт меню «Действия» – «Установить интервал дат».
В журнале документов можно осуществлять быстрый поиск документов в списке (аналогичным образом, как и в справочниках).
Быстрый поиск в списке может производиться также по дате документа. При начале набора даты в колонке «Дата» под нижней строкой открывается специальное поле для ввода даты. При наборе даты время указывать не нужно. После окончания ввода нужно нажать клавишу ENTER. В случае обнаружения строки с указанной датой курсор устанавливается в ту ячейку журнала.
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Читайте также
Интервал дискретизации времени
Интервал дискретизации времени Поскольку выявление тренда может быть осуществлено одним взглядом на график изменения цены, встает очень важный вопрос выбора интервала времени для построения такого графика. Ситуацию путает то обстоятельство, что трендов может быть
6. 5. Интервал решений
6. 5. Интервал решений Интервал решений должен быть достаточно коротким, чтобы его величина не влияла сколько-нибудь серьезно на результаты вычислений. Его следует выбирать по возможности максимально большим с тем, чтобы не допускать увеличения загрузки вычислительной
Приложение A ИНТЕРВАЛ РЕШЕНИЯ УРАВНЕНИЙ
Приложение A ИНТЕРВАЛ РЕШЕНИЯ УРАВНЕНИЙ В разделе 6.5 рассмотрены правила выбора интервала DT при решении уравнений модели динамической системы. Следовало бы вновь прочесть этот раздел, прежде чем переходить к настоящему приложению.Выбор интервала зависит от
3. ПЛАЦЕБО ПИТЕРА – ГРАММ ВИДИМОСТИ
3. ПЛАЦЕБО ПИТЕРА – ГРАММ ВИДИМОСТИ С точки зрения иерархиологии плацебо – это применение нейтрального приема для подавления нежелательных эффектов, порожденных достижением уровня некомпетентности.Я хотел бы вернуться к случаю миссис Витрин, о котором говорилось выше.