пользовательское поле выбор 1с
Пользовательские поля в СКД
Разберем их по порядку на тестовом примере.
Формирование поля выбора.
Допустим, у нас есть отчет показывающий срок работы сотрудников в компании, рис 01.
Кадровику не интересно видеть количество дней отработанных сотрудником а ему интересно видеть пройден сотрудником испытательный срок (допустим 40-к дней) или нет.
Заходим в отчет->Настройки->Пользовательские поля->Новое поле выбора. Рис 02
В открывшейся форме указываем заголовок «Пройден испытательный срок» и добавляем новую строку вариантов. Открываем колонку отбор и добавляем вариант отбора. Причем мы можем добавлять как группы условий, так и единичное условие. Рис 03
Выбираем поле, на основании которого мы будем определять пройден испытательный срок или нет, это поле «Период работы», указываем «Вид сравнения» больше 40 и заканчиваем редактирование отбора.
В форме «Пользовательское поле выбор», в колонке «Значение» выбираем тип «Булево» и указываем ее значение «Да». В нашей ситуации колонки «Значение» и «Представление» равнозначны. Рис 04
Теперь осталось добавить наше созданное поле в отчет, для этого переходим на закладку «Выбранные поля» и в группировку «Пользовательские поля» и добавляем наше поле в список выбранных полей. Рис 05
Вот итоговый отчет. Рис 07
Теперь необходимо сохранить наши изменения рис 08
Формирование полей выражения
Работая над этой заметкой, я наткнулся на аналогичную статью в которой подробно разбирается формирование выражений.
Хочется дополнительно упомянуть, что все арифметические выражения можно применять как к полю «Выражение детальные записи», именно этот случай описывает автор, НО и к полю «Выражение итоговые записи». Что позволяет использовать для подсчета итогов в разнообразных вариациях.
Простой пример использования пользовательских полей в отчете на СКД
Отчет
Отчет получает остатки товаров на складах в различных разрезах (характеристики, серии, единицы измерения и т.д.). Чтобы не усложнять пример, оставим лишь группировку по номенклатуре и вывод лишь конечного остатка на дату отчета. Итоговая таблица будет показывать остатки по номенклатуре в зазрезе складов.
Но тут пользователь сообщил, что ему нужно добавить два дополнительных поля:
Конечно тут мог бы вмешаться программист, и изменить запрос схемы компоновки данных и настройку отчета, но мы выполним задачу в пользовательском режиме без изменения отчета в режиме конфигуратора.
Дополнительные поля
И так, приступим. Зайдем в настройки варианта отчета:
Перед нами откроется конструктор настроек варианта отчета СКД. Перейдя на вкладку «Пользовательские поля» начнем их создание.
На скриншоте уже показаны два созданных пользовательских поля, функционал которых был описан выше. Рассмотрим настройки каждого. Начнем с поля «Оповещение».
В настройка нам нужно задать заголовок поля, который будет отображаться в отчете, а также задать выражения для формирования значения в поле детальных записей и в итогах для этого поля. Поскольку оповещение показывать в итогах нет необходимости, напишем выражение только для детальных записей.
Синтаксис выражения похож на язык запросов 1С:Предприятия. Имеются некоторые отличия, но касаться подробно мы в настоящей статье мы их не будем. В выражении используется оператор выбора:
» Выбор Когда Тогда Иначе Конец»,
аналогичный оператору в языке запросов. Поля в выражениях пользовательских полей задаются по их представлению. Для того, чтобы платформа поняла, что введеное представление обозначает некоторое поле, имя представления обрамляется квадратными скобками «[]». Если представление поля имеет одно слово, то квадратные скобки не обязательны. В примере выше мы обращаемся к полю «Конечный остаток».
Аналогично заданы настройки для поля «Формула расчета конечного остатка»:
Здесь нужно сказать о некоторых нюансах:
Настраиваем и формируем отчет
Поле «Формула расчета конечного остатка» добавим в выводимые поля отчета:
Выражение «Оповещение» добавим к детальным записям номенклатуры. Для этого в группировку «Номенклатура» добавим поле выражения «Оповещение». После этого структура отчета примет следующий вид:
Настройка отчета на этом выполнена. При необходимости добавленные настройки можно сохранить для повторного использования. Сформируем отчет:
Как мы видим, в отчет добавлены поля в соответствии с условиями задачи. При этом дорабатывать отчет в режиме конфигуратора не пришлось. В этом и заключается главное преимущество пользовательских полей! Пользователь, обученный ими пользоваться, может использовать их для создания отчета по своим требованиям собственными силами, без участия программиста.
Поверьте мне, обучить его использовать эти возможности можно, ведь это куда проще, чем писать формулы в электронных таблицах Excel.
Работа с полем выбора
Элемент управления «Поле выбора» предназначен для хранения и быстрого выбора одного из значений, входящих в его список выбора. Список выбора для поля выбора есть список значений. Значением поля выбора является одно единственное значение, а не весь список выбора.
Установка значения в поле выбора
В Поле выбора можно установить любое значение. В процессе установки значения будет выполнен его поиск среди значений, входящих в список выбора. Если устанавливаемое значение найдено в списке выбора, оно будет сохранено в поле выбора, иначе в поле выбора будет установлено значение «Неопределено». Исключение составляет значение «Неопределено», которое можно установить в поле выбора в любом случае, независимо от того, какие значения при этом хранятся в списке выбора.
Например, если список выбора имеет значениями числа 1, 2 и 3, тогда в поле выбора удастся установить любое из этих значений. При установке других значений, хотя ошибки времени выполнения и не произойдет, они сохранены не будут.
Представление значения, хранящегося в поле выбора
В качестве представления значения, хранящегося в поле выбора, используется представление элемента списка выбора, значение которого эквивалентного значению поля выбора. Если у элемента списка выбора представление не указано, оно формируется в виде текстового представления самого значения. В ситуациях, когда в списке выбора есть несколько одинаковых значений с разными представлениями, будет использоваться первое найденное из этих значений. Представление значения при этом будет сформировано на его основе, как описывалось выше.
Поиск значения в поле выбора по введенному тексту
Поиск значений по тексту осуществляется на основе представлений для элементов списка выбора. Для тех из элементов, в которых представление значения не указано, используется представление самого значения, хранящегося в нем.
Связь поля выбора с данными
Поле выбора можно связывать по данным с выбираемым значением, а не со списком значений. Например, если мы хотим, чтобы в поле выбора можно было выбирать число, и оно было связано по данным со значением некоторого реквизита, типом данных для реквизита должно быть число, а не список значений.
Особенности инициализации и использования списка выбора
Для правильного отображения в поле выбора данных, с которыми он связан, список выбора должен формироваться в теле модуля формы. Формировать список выбора для поля выбора в обработчике любого из событий формы – поздно. Это приведет к тому, что в поле выбора будет установлено значение «Неопределено», хотя в реквизите при этом может быть любое значение.
Такая ситуация возникает из-за того, что данные устанавливаются в элементы управления формы, связанные с ними, в процессе создания формы. А обработчики событий ПередОткрытием(), ПриОткрытии() вызываются после создания самой формы, в процессе инициализации ее визуальной части. Получается, что при создании формы полю выбора поставили некоторое значение в момент, когда его список выбора пустой. При этом, поскольку список выбора пустой, вместо устанавливаемого значения в поле выбора будет сохранено значение «Неопределено».
При смене типа значения (свойство «ТипЗначения») для списка выбора, у которого есть элементы, будет выполнено преобразование их значений к новому типу. Может быть следующая ситуация: после смены типа значения для списка выбора некоторое значение, которое раньше удавалось успешно установить в поле выбора, после смены типа значения установить не получается. Причина такой ситуации в том, что в процессе установки типа значения для списка выбора, успешно устанавливаемое ранее значение было конвертировано в другое значение (в соответствии с новым типом значения). Соответственно, устанавливаемое значение в списке выбора больше найдено не будет.
Использование поля выбора: пример 1
Пусть есть форма, в которой размещены поле выбора (ПолеВыбора1), поле ввода (ПолеВвода1) и создан реквизит (Реквизит1: число, длина = 10, точность = 0). В качестве данных для редактирования в ПолеВвода1 и ПолеВыбора1 стоит реквизит Реквизит1. В теле модуля формы написан следующий код:
Открыв такую форму в режиме 1С:Предприятие, можно видеть, как будут устанавливаться значения в поле выбора:
2. Выбираем в поле выбора в выпадающем списке строку с надписью «Один»: в поле ввода помещается значение 1. Поскольку поле ввода и поле выбора связаны с одним и тем же реквизитом формы, при изменении значения в поле ввода оно устанавливается в поле выбора и наоборот. В данном случае в поле выбора выбрали строку «Один», значение для которой равно 1. Оно и отобразилось в поле ввода.
3. Выбираем в поле выбора в выпадающем списке строку с надписью «Два»: в поле ввода помещается значение 2.
Перейдем в поле ввода и попробуем редактировать значения в нем:
1. Введем в поле ввода значение 3 и сойдем с поля ввода. В поле выбора запишется значение 3 и установится значение из соответствующей строки списка выбора поля выбора («Три»).
2. Вернемся в поле ввода и введем в нем значение 4. Перейдем с поля ввода к следующему элементу управления. В поле ввода будет сохранено введенное значение «4», а поле выбора станет пустым. В данном случае введенное в поле ввода значение 4 будет сохранено в связанных с полем ввода данных, после чего выставлено из них в поле выбора. Поскольку поле выбора в списке выбора значения 4 не имеет, оно установлено в поле выбора не будет.
Использование поля выбора: пример 2
Пусть есть форма, в которой размещены поле выбора (ПолеВыбора1), поле ввода (ПолеВвода1) и создан реквизит (Реквизит1: СправочникСсылка.Номенклатура). В качестве данных для редактирования в ПолеВвода1 и ПолеВыбора1 стоит реквизит Реквизит1. В теле модуля формы написан следующий код:
Открыв такую форму в режиме 1С:Предприятие, можно видеть, как будут устанавливаться значения в поле выбора:
2. Выбираем в поле выбора в выпадающем списке строку с надписью «Один»: в поле ввода помещается значение. Поскольку поле ввода и поле выбора связаны с одним и тем же реквизитом формы, при изменении значения в поле ввода оно устанавливается в поле выбора и наоборот. В данном случае в поле выбора выбрали строку «Один», значение для которой равно ссылке на на элемент справочника Справочники.Номенклатура.Элемент1. Оно и отобразилось в поле ввода.
3. Выбираем в поле выбора в выпадающем списке строку с надписью «Два»: в поле ввода помещается ссылка на элемент справочника Справочники.Номенклатура.Элемент2:
Перейдем в поле ввода и попробуем редактировать значения в нем:
1. Выберем в поле ввода значение Справочники.Номенклатура.Элемент1. В поле выбора запишется значение Справочники.Номенклатура.Элемент1 и установится значение из соответствующей строки списка выбора поля выбора («Один»).
2. Выберем в поле ввода значение Справочники.Номенклатура.Элемент2. В поле выбора запишется значение Справочники.Номенклатура.Элемент2 и установится значение из соответствующей строки списка выбора поля выбора («Два»).
3. Выберем в поле ввода значение Справочники.Номенклатура.Элемент3. В поле выбора значение Справочники.Номенклатура.Элемент3 записано не будет, поскольку оно не было добавлено в список выбора. Значением в поле ввода будет «Неопределено»:
Использование поля выбора: пример 3
Пусть есть внешняя обработка, в которой создан реквизит Реквизит1 типа СправочникСсылка.Номенклатура. Во внешней обработке есть две формы: в первой устанавливается значение реквизита и по нажатию на кнопку открывается вторая форма.
Посмотрим, как будет выглядеть вторая форма в зависимости от того, какое значение сохранено предварительно в реквизите внешней обработки Реквизит1.
Значение реквизита в списке выбора для поля выбора отсутствует:
Пользовательские настройки системы компоновки данных
И так, продолжаем тему настроек отчетов, построенных на базе СКД. Для тех, кто не читал первые статьи, ссылки ниже:
В данной статье поговорим про пользовательские настройки.
Что же это такое, зачем они нужны и чем отличаются от настроек варианта?
Дело в том, что настройки варианта отчета достаточно сложны для пользователя. Много различных закладок, сложная структура отчета – не каждый рядовой сотрудник сможет во всем этом разобраться:
По этой причине, разработчики решили упростить работу для конечных пользователей отчетов, и создать дополнительную сущность, так называемые пользовательские настройки, которые представляют собой подмножество настроек вариантов отчетов. Разработчик отчета определяет сам, что, и в каком объеме будет доступно пользователям:
Несмотря на то, что на программном уровне, пользовательские настройки – это отдельная ветвь компоновщика настроек, они не могут существовать без привязки к настройкам варианта. На программном уровне связь выполняется по идентификатору пользовательской настройки.
Работа с отчетами в пользовательском режиме
Само собой разумеется, что пользовательские настройки доступны для редактирования в режиме 1С-предприятия. Они сохраняются автоматически при работе пользователей в специальном системном хранилище пользовательских настроек (его можно переопределить на уровне конфигурации в целом). Редактирование пользовательских настроек не приводит к необходимости сохранять новый или измененный вариант отчета, в отличие от редактирования настроек самого варианта в пользовательском режиме.
Настройки вариантов отчетов, также доступны в режиме работы пользователей. То-есть, «продвинутые» сотрудники имеют возможность редактировать, или сохранять новые варианты отчета, а также определять доступные «пользовательские» настройки для остальных пользователей отчета.
Как правило, в пользовательские настройки выносятся наиболее часто используемые настройки варианта. Сами же настройки варианта можно вообще скрыть от пользователей, чтобы не загромождать их лишней информацией.
Сам интерфейс работы с настройками вариантов и пользовательскими настройками зависит от используемой конфигурации и наличия специальных форм для отчетов.
Формы, для отчетов на базе СКД система генерирует автоматически. Однако, при необходимости, можно создать собственные формы. Для отчетов доступны следующие виды форм:
Например, в демонстрационной конфигурации (Управляемое приложение), формы для отчетов не указаны. Сгенерированная автоматически форма отчета выглядят так:
После кнопки «Сформировать» расположена кнопка открытия списка доступных вариантов отчетов.
Далее расположена кнопка открытия формы настроек (это именно пользовательские настройки, состав и определение которых будет описано ниже).
Под этими кнопками расположен раздел «быстрых» пользовательских настроек, о которых мы будем говорить позже.
Что касается настройки варианта отчета, или сохранение нового, эти действия доступны через меню «Еще». Также, далее в этом меню есть команды для принудительного сохранения и применения пользовательских настроек. Напомню, пользовательские настройки сохраняются автоматически при закрытии формы отчета.
Пункт меню «Установить стандартные настройки» позволяет вернуться к изначально заданным настройкам варианта отчета.
На заметку . Команду «Установить стандартные настройки» целесообразно использовать в случае, если в процессе работы изменяются настройки варианта отчета. Так как они могут быть «перекрыты» сохраненными ранее пользовательскими настройками.
Есть возможность указать общие формы, которые будут применятся по умолчанию для всех отчетов конфигурации.
В типовых конфигурациях семейства ЕРП, существуют общие предопределенные формы для самого отчета и настроек, заданные на уровне конфигурации в целом:
На ряду с другими дополнительными возможностями, типовая форма настроек позволяет выполнять редактировать как пользовательские настройки так и настройки вариантов отчетов. Переход осуществляется нажатием на кнопку «Расширенный» в настройках отчета:
Также, в выпадающем списке по кнопке «Еще» формы отчета, можно выполнить работу с вариантами отчетов и с сохраненными пользовательскими настройками.
В типовой конфигурации бухгалтерии 3.0, также заданы общие формы на уровне конфигурации в целом. Но во многих отчетах, формы переопределены непосредственно для этих отчетов.
Определение состава пользовательских настроек
И так, поговорим о том, каким образом можно включить те или иные настройки варианта отчета в пользовательские настройки.
Определение состава на уровне структуры
В пользовательские настройки можно включить целиком целые разделы настроек варианта, которые будут влиять на весь отчет в целом. Эти действия выполняются из окна структуры настроек:
Доступны для включения следующие разделы:
При добавлении группировок в пользовательские настройки, есть одна особенность. Группировки добавляются в виде списка, а не иерархической структуры, как они определены в настройках варианта:
Такая настройка соответствует простой структуре, где в первую группировку по списку входит следующая и так далее:
С одной стороны, это удобно, так как можно быстро выбрать нужные группировки и их последовательность. Причем, можно отключить использование первых группировок, и это не повлияет на вывод остальных. Однако, настроить более сложную структуру группировок таким образом нельзя, и это существенное ограничение.
Теперь, что касается быстрого доступа.
Это те настройки, которые можно редактировать непосредственно на форме самого отчета. Существует три варианта добавления настроек в пользовательские настройки:
В параметре «Режим редактирования» можно указать один из выше указанных вариантов, и это будет отражено на расположении настроек.
Разделы настроек можно включить в пользовательские не только для всего отчета в целом, как было описано выше, но и для отдельных уровней структуры:
Такие настройки будут влиять только на тот уровень структуры отчета, для которого они используются. Состав возможных настроек для группировки включает дополнительные пункты:
Определение состава на уровне отдельных элементов
Помимо включения в пользовательские настройки разделов целиком, есть возможность включить отдельные элементы следующих разделов:
Так же как и для разделов целиком, можно включать в пользовательские настройки отдельные элементы для всего отчета в целом и для конкретных группировок. Для выполнения этих действий используется кнопка или одноименный пункт контекстного меню «Свойство элемента пользовательских настроек»:
В открывшимся окна можно указать режим редактирования и представление настройки:
Если задано представление, наименование настройки будет изменено, а также будет доступно для выбора только значение данной настройки.
Например: если это отбор, не будет возможности выбрать вид сравнения. Если это условное оформление, не будет возможности выбрать условие оформления и поля, к которым оно будет применено.
Для элементов отборов и условного оформления, можно задать дополнительное представление непосредственно в табличной части для отборов или оформления. Для отображения дополнительного представления, необходимо нажать на кнопку «Подробно»:
Обратите внимание: это представление не является представлением, которое описано выше, и у него другое назначение!
Если указано представление в табличной части, отборы или оформления будут выводиться в пользовательских настройках в виде флага (использовать / не использовать). Все характеристики, в этом случае полностью должен быть заданы в настройках варианта.
Как было описано в предыдущей статье про настройки вариантов, на закладке «Отборы» можно создать группы отборов, для объединения различных отборов по логическому И, ИЛИ и НЕ. Такие группы целиком, также можно включить в пользовательские настройки. Можно задать для группы оба представления, описанные выше.
Просмотреть все пользовательские настройки можно по кнопке «Предварительный просмотр пользовательских настроек» в окне структуры настроек:
Произвольное добавление настроек на форму отчета
Как указано выше, для отчетов на СКД можно не создавать специальных форм самого отчета и настроек. Формы генерируются автоматически. Однако, если в этом есть необходимость, можно создать собственные формы и выполнить произвольное размещение необходимых дополнительных элементов.
При создании собственной формы отчета необходимо иметь в виду, что форма обязательно должна содержать группу для отображение быстрых пользовательских настроек. Такая группа должны быть указана в свойстве формы «ГруппаПользовательскихНастроек»:
По мимо быстрых пользовательских настроек, в форме отчета на СКД можно вывести непосредственно таблицу полей отчета, таблицу отборов или таблицу порядка, связав ее с соответствующим разделом из настроек:
Если таким образом добавляются отборы, у таблицы будет присутствовать свойство «РежимОтображения». Оно влияет на то, какие отборы будут попадать в данную таблицу. Если «Режим отображения = Быстрый доступ», в таблицу попадут только те отборы, для которых в свойствах пользовательских настроек указано значение «Быстрый доступ».
Функциональные опции и настройки отчетов
Не забывайте о том, что в отображаемых данных отчетов, построенных на СКД учитываются значения функциональных опций.
Также ФО учитываются в настройках варианта отчета в режиме 1С-предприятие и в пользовательских настройках. Недоступные поля нельзя выбрать в настройках. А если ФО отключает объект целиком, в настройках варианта и в пользовательских настройках в пользовательском режиме нельзя будет выбрать не одно поле отключенного объекта.
Отдельно стоит сказать про параметризуемые функциональное опции. Это те ФО, место хранения которых «Справочник». Более подробно что такое параметризуемые ФО, и как они используются можно почитать в этой статье.
И так, для того, чтобы СКД смогла определить доступность полей, которые связаны с параметризуемыми ФО необходимо передать в схему параметр ФО. Для этого нужно добавить новый параметр на закладку «Параметры» схему компоновки и установить для него значение реквизита «Параметр функциональной опции»:
После установки такого параметра (по умолчанию в схеме или в пользовательском режиме), СКД будет определять видимость полей, привязанных к параметризуемым ФО.
На этом, я заканчиваю большую тему настроек компоновки: настройки вариантов, пользовательские настройки. Мы еще к ней вернемся, когда будем рассматривать программную работу с отчетом и с настройками.
В следующих статьях будут рассмотрены:
Для ознакомления с предыдущими статьями можно перейти по ссылкам:
Если статья Вам понравилась, ставьте плюс. Успехов в работе и хорошего настроения!