Бит.Управление медицинским центром (Бит.Стоматология)
Руководство пользователя
×

Создание пользовательских ячеек журнала записи

Элементы этого справочника выбираются в настройки отображения текста и примечания заявки в сетке расписания, цвет фона вспомогательной колонки.
Изначально в базе имеется ряд предопределенных элементов, разбитых на 2 группы: «Услуги» и «Клиент» - данное деление применяется программой для режима отображения заявки «Клиент и услуги раздельно». Предопределенные элементы реализуют вычисление значений непосредственно при формировании журнала записи внутренним кодом программы.
Пользователь может добавлять собственные - не предопределенные элементы. Для этого следует перейти в форму выбора справочника из нужной настройки отображения заявки и начать его добавление.
Элемент справочника имеет следующие ключевые реквизиты:
·         Назначение – для определения либо текста, либо цвета. Цвет может быть использован только в качестве цвета вспомогательной колонки, текст – только для всех остальных. Обратите внимание, что выбор поля накладывает отбор на форму выбора, например, если начать выбирать текстовый элемент, из открывшейся формы добавить элемент цвета – он не отобразится в списке, т.к. не пройдёт отбор.
·         Тип владельца – заявка либо клиент. В зависимости от типа владельца, хранимые признаки будут рассчитываться и храниться при записи либо заявки, либо клиента. Также, при использовании способа вычисления «Отбор СКД», влияет на доступные поля отбора.
·         Момент вычисления – онлайн при каждом формировании расписания или вычислять заранее и хранить в базе данных.
·         Способ вычисления – имеет следующие варианты:
1.      Указывается вручную в клиенте или заявке путём редактирования значения Дополнительного свойства объекта (см. соотв. раздел);
2.      Определяется списком отборов механизма компоновки данных;
3.      Указывается произвольный алгоритм, рассчитывающий для очередного владельца данное значение.
Момент вычисления. Варианты. Критерии выбора варианта.
Вариант вычисления значения при каждом формировании журнала записи предполагает, что расчет должен делаться достаточно легко и не отражаться на скорости формирования журнала записи. Поэтому, для способа расчета «Отбор СКД» в этом случае становятся недоступны реквизиты Владельца – их получение требовало бы получения дополнительных данных из базы, значит, создавало бы нагрузку. Но, при этом доступны такие поля как «Сумма долга» и «Текущая дата», которые применимы именно в момент формирования журнала записи, т.е. нельзя достоверно рассчитать заранее. Применяется только для владельца типа Клиент.
Использование произвольного алгоритма при онлайн-расчете также ограничено риском падения производительности, что должно учитываться программистом при его написании.
Вариант вычисления с сохранением значения в базе данных – полная противоположность первому. Расчет значения осуществляется заранее, после чего результат сохраняется в базу данных – при формировании журнала записи программе достаточно только считать из базы эту информацию.
Для этого варианта расчет происходит в следующие моменты:
·         При записи владельца – запись Владельца как правило означает изменение его данных, которые, возможно, влияют на хранимое значение ячейки.
·         Регламентным заданием «Актуализация хранимых значений ячеек журнала записи». Включать и делать расписание этому регламентному заданию имеет смысл, если среди хранимых ячеек есть такие, значение которых зависит не только от реквизитов Владельца, но и от течения времени (изменения текущей даты) или прочих данных в базе. В противном случае достаточно пересчета при записи Владельца.
Важный нюанс касается ячеек с пересчетом регл. заданием владельцев типа Заявка. В базе данных заявок могут накопиться сотни тысяч. Пересчет даже 1 раз в день такого количества не допустим. Требуется, чтобы пересчету подлежали только те заявки, которые сейчас актуальны – будущие (возможно, часть будущих на пару дней вперед) и, возможно, недавние прошлые. Для этого в форме настройки вида ячеек есть единые параметры Граница актуальности заявок (левая и правая). Левая – на сколько дней назад заявка еще актуальна, чтобы пересчитывать её (обычно, 0), правая – аналогично для будущих – количество дней определяется, очевидно, только сложившимся укладом работы организации.
Способы вычисления значения.
Дополнительное свойство – пользователь может добавлять свои элементы в классификатор Свойства объектов в подсистеме Администрирование. Значения этих свойств, указываемых пользователями вручную, могут применяться при формировании журнала записи. Значение преобразуется в текст по внутренним правилам платформы 1С. См. также «Свойства объектов».
Отбор СКД – позволяет последовательно задать несколько вариантов значения, выбор одного из которых определяется выполнением прописанного отбора для варианта значения.
Пользователь добавляет очередную строку в таблицу «Выбор значения по условию», в которой указывает значение – текст или цвет в зависимости от назначения. Далее в нижней правой таблице пользователь задает отбор из доступных полей.
При расчете, если Отбор выполняется, результатом расчета считается значение в этой строке. Если отбор не выполняется, анализируется следующая строка. Если ни один отбор не подошел, берётся значение по умолчанию – если оно было указано.
В зависимости от выбранных типа владельца и места расчета состав доступных полей для отбора будет разный.
Рисунок 18 – Настройка для онлайн-расчета фона ячейки по текущей сумме долга клиента
Условие на языке 1С – произвольный текст на встроенном языке 1С, итогом которого должно быть присвоение в переменную «Результат» вычисленного значения. Указанный программный код выполняется на стороне сервера, в контексте выполнения доступна переменная «Объект» - ссылка на Клиента или документ Заявка, для которого производится расчет.
Код выполняется по одному разу на каждого Объекта, т.е. количество выполнений будет равно количеству Владельцев для обсчета, соответственно, при выборе места расчета «При каждом формировании журнала записи» следует прописывать такой код, который не окажет в таких условиях критичного понижения скорости формирования.
Если выбран момент вычисления – при каждом формировании – доступен обработчик события «Перед формированием», где можно предварительно получить данные из базы данных и поместить их в структуру «Параметры» (добавлением новых элементов структуры). Это позволит не обращаться к базе в цикле выполнения алгоритма расчета.
Полный контекст выполнения обработчика «Перед формированием» и алгоритма обсчета описан прямо на форме, где вводится текст алгоритма.