Типы полей


Введение

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

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

Валюта

Поле предназначено для хранения вещественных чисел с точностью до 4 знаков после запятой и может выполнять конвертацию валют.

Настройки

  • Разделитель триад. По умолчанию, пробел, то есть 1 000 000. Доступны точка и запятая, можно вообще отключить этот разделитель.
  • Десятичный разделитель. По умолчанию, запятая, то есть 1,52. Доступна точка.
  • Количество знаков после запятой.
  • Минимальное значение.
  • Максимальное значение.
  • Настройка автоматической конвертации валют в таблице пересчета.

Таблица пересчета содержит следующие столбцы:

  • Код валюты. На основании этого кода идентифицируется валюта. В качестве кода может выступать значение любого типа. Например, можно в справочнике «Пользователи» разместить списочное поле валют (из которого пользователь сможет выбрать предпочтительную для него валюту), в котором ввести несколько вариантов (скажем, значение - 1, заголовок - тенге; значение - 2, заголовок - рубль; значение - 3, заголовок - гривна и т.д.). Значение, указанное в этом списочном поле, и будет являться кодом валюты, которое следует использовать при заполнении таблицы пересчета валют описываемого поля Валюта.
  • Обозначение валюты. Если при настройке валюты указать сокращенное название например, будет введено руб), то при отображении поля в данной валюте рядом с числом будет показываться это сокращенное название (например, 500 руб; если сокращенного названия не будет, то будет показываться просто 500).
  • Курс обмена. Поле, содержащее коэффициент пересчета валюта по отношению к основному. Предположим, в качестве основной валюты используется российский рубль (то есть в поле хранится число - количество российских рублей), и необходимо отобразить для пользователей из Казахстана значение в их национальной валюте - тенге. Предположим, что текущий курс 1 рубля составляет 5 тенге. Таким образом, заполняя таблицу пересчета валют, в строке для тенге в столбце Курс администратор должен будет выбрать поле (удобнее всего было бы использовать настроечное поле, где легко будет актуализировать курс), содержание 5. Тогда при введенном в поле значении, скажем в 100 рублей, казахстанские пользователи увидят 500 тенге.
  • Точность — количество знаков после запятой. Скажем, в Казахстане копеек (тиын) давно уже нет, поэтому валюту тенге нужно отображать без дробной части. А, если настраиваем российский рубль, то после запятой уместно выбрать 2 знака для учета копеек.
  • Поле с кодом отображаемой валюты. Данный параметр позволяет динамически в режиме исполнения документа определить какую валюту следует отобразить. Код валюты, которую следует отобразить, получается из обычного поля (текущего документа или другого документа по ссылке из любого поля текущего документа) или настроечного. В качестве примера используем ту же ситуацию с пользователями из Казахстана. Если для казахстанского пользователя в справочнике Пользователи в некоем, предположим, списочном поле выбрана валюта тенге со значением списочного поля, равным 1, то в настройках описываемого параметра поля Валюта следует выбрать обычное поле, документ получить по ссылке из некоего поля текущего документа, содержащего ссылку на текущего пользователя (значение такого поля легко сформировать при помощи переменной Пользовательский идентификатор текущего пользователя действия Запись), а в качестве поля выбрать поле Пользователи - Валюта. Таким образом, наш казахстанский друг увидит привычный и удобный для него тенге, россиянин - рубль, украинец - гривну и так далее.

Методы записи

Перечисленные ниже методы позволяют выполнять простые арифметические операции над числами в поле. Вот список доступных арифметических методов:

  • Прибавить
  • Вычесть
  • Умножить
  • Разделить

Методы чтения

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

Время

Это поле для хранения даты и / или времени.

Настройки

  • Формат времени. Список возможных форматов отображения значения поля. Форматы состоят из следующих обозначений:
    • ГГГГ — четыре цифры года, например, 2022
    • ГГ — две цифры года, например, 22
    • ММ (если перед ММ нет двоеточия) — две цифры месяца, например, 06 для июня
    • ДД — две цифры номера дня в месяце
    • ЧЧ — две цифры часа в 24-часовом формате
    • :ММ — две цифры минут
    • СС — две цифры секунд
  • Пользовательское значение. Ограничивает пользователя в выборе времени: любое, или только в прошлом, или только в будущем.

Методы записи

  • Увеличить дату на количество лет / месяцев / дней / часов / минут. Метод позволяет добавить заданное количество лет / месяцев / дней / часов / минут к значению, записанном в поле. Для методов добавления дней и часов можно использовать рабочее время.
    Для рабочего времени можно настроить рабочий график, праздники, а также рабочие дни с нестандартным рабочим временем. Эти три параметра загружаются из полей. По умолчанию, используются настроечные поля РАБОЧИЙ ГРАФИК, ПРАЗДНИЧНЫЕ ДНИ, НЕСТАНДАРТНЫЕ РАБОЧИЕ ДНИ типа документа НАСТРОЙКИ.
    Поле РАБОЧИЙ ГРАФИК хранит данные в следующем формате: НОМЕР_ДНЯ_НЕДЕЛИ:РАБ_ЧАС1, РАБ_ЧАС2, РАБ_ЧАС3;
    Например, для шестидневной рабочей недели (с пн по пт с 9 до 18, с обеденным перерывом с 13 до 14 часов) поле должно содержать следующую строку:
    1:9,10,11,12,14,15,16,17; 2:9,10,11,12,14,15,16,17; 3:9,10,11,12,14,15,16,17; 4:9,10,11,12,14,15,16,17; 5:9,10,11,12,14,15,16,17
    Поле ПРАЗДНИЧНЫЕ ДНИ содержит даты праздников и дополнительных выходных дней в формате: ГГГГ-ММ-ДД; ГГГГ-ММ-ДД
    Например, 2023-01-01; 2023-08-03; 2023-05-09
    Поле НЕСТАНДАРТНЫЕ РАБОЧИЕ ДНИ позволяет описать дни с нестандартным рабочим временем в формате: ГГГГ-ММ-ДД:РАБ_ЧАС1, РАБ_ЧАС2;
    Например, сокращенный рабочий день 31 декабря с графиком работы с 9 до 13 часов и 7 марта с 9 до 15 часов можно описать следующим образом:
    2022-12-31:9,10,11,12;2023-03-07:9,10,11,12,13,14
  • Уменьшить дату на количество лет / месяцев / дней / часов / минут. Метод полностью идентичен аналогичному метода для добавления, за тем исключением, что он уменьшает дату (время), а не увеличивает. В методе уменьшения даты на количество дней допускается использование рабочего времени.
  • Установить год / месяц / день / час / минуту. Метод позволяет изменить в поле не всю дату, а только ее год, месяц, день, час, минуту.

Методы чтения

  • Получить год (4 цифры). Метод возвращает четыре цифры года даты, хранящейся в поле.
  • Получить год (2 цифры). Метод возвращает две цифры года даты, хранящейся в поле.
  • Получить месяц. Метод возвращает две цифры месяца даты, хранящейся в поле.
  • Получить день. Метод возвращает две цифры дня даты, хранящейся в поле.
  • Получить час. Метод возвращает две цифры часа даты, записанной в поле.
  • Получить минуту. Метод возвращает две цифры минут даты, записанной в поле.
  • Получить секунду. Метод возвращает две цифры секунд даты, записанной в поле.
  • Получить порядковый номер дня в году. Для 1 января метод вернет 1, для 1 февраля - 32 и т. д.
  • Получить порядковый номер дня недели. Метод возвращает для понедельника 1, для вторника 2 и т. д.
  • Получить порядковый номер недели в году. Возвращает цифру от 1 до 52.
  • Получить количество дней в месяце. Возвращает количество дней в месяце даты, хранящейся в поле.
  • Получить разницу в днях / часах / минутах с другим временем, которое находится в указываемом поле. При расчете разницы в днях время игнорируется. То есть 02.01.2001 00:00 - 01.01.2001 23:59 = 1 день.
  • Получить измененное время. Время из поля может быть увеличено или уменьшено на заданное количество лет, месяцев, дней, часов, минут. Результирующее время может быть не просто получено, но и записано в само поле (обратите внимание, что если на это поле будет установлен контекст изменения, контекст сработает, но никаких сообщений из этого контекста (например, от действия Сообщения) получено не будет).

Дерево документов

Когда документ создается из другого документа между ними устанавливается родственная связь. Документы-родственники образуют иерархическое дерево, ведь из одного документа может быть создано несколько документов.

Это дерево и отображает поле «Дерево документов».

Кстати, можно исключить документы некоторых типов из дерева документов при помощи настройки «Включать в дерево документов».

Настройки

  • Количество раскрытых уровней. Определяет сколько уровней дерева будет раскрыто автоматически.

Методы

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

Коллекция документов

Это поле позволяет создавать произвольные подборки документов любых типов и отображать их в табличном виде. Поле персонализировано и для каждого пользователя отображает его собственный набор документов. В таблице коллекции доступна одноуровневая группировка документов, сортировка и средства быстрого поиска, а также возможность удаления документа из коллекции (только из коллекции, но не из системы; кнопка удаления доступна только в том случае, если владельцем документа в коллекции является сам пользователь, а не подразделение, к которому он относится). Поле не предназначено для замены журналов документов и в нем не рекомендуется хранить более 1 000 документов для одного пользователя.

Настройки

Поле имеет следующие параметры:

  • Поля коллекции. Администратор может настроить поля таблицы, в которой будет отображаться коллекция. Каждое поле имеет настройки: Название
    • Тип (строка, текст, дата, дата со временем, целое число, вещественное число), который определяет формат отображения данных в таблице и способ сортировки
    • Ширина столбца для поля. Можно использовать %, px, em, rem и пр.
  • Категоризация позволяет настроить категоризацию таблицы, расположенную слева:
  • Стили. Можно настроить фильтры и стили оформления документов в таблице коллекции для подпадающих под условия этих фильтров документов
  • Удаление документов. По умолчанию, пользователь может удалять документы из своей коллекции. Параметр позволяет запретить такую возможность.

Методы записи

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

  • Добавить / изменить документ. Если документ уже находится в коллекции, будут изменены его поля, которые отображаются в таблице коллекции. Если документа в коллекции нет, он будет добавлен. В параметрах метода указываются:
    • Владелец коллекции. В качестве владельца может быть указан как отдельный сотрудник, так и группа сотрудников или подразделение. Если документ добавляется в подразделение, он станет доступным в коллекции всех сотрудников, которые находятся в этом подразделении, включая сотрудников дочерних подразделений. При отображении коллекции сотруднику, для которого один и тот же документ был добавлен с владельцем одного или нескольких подразделений, в которые входит этот сотрудник, будет использоваться тот вариант, который "ближе" к этому сотруднику. Если в коллекции находится документ, владельцем которого назначен сам сотрудник, будет показан этот документ безусловно. В любом случае показан будет один и тот же документ, речь идет только о его описании (значении в столбцах таблицы).
    • Добавляемый / изменяемый документ. Документ в коллекции для одного и того же владельца может быть только в единственном экземпляре. Поэтому, если документ уже присутствует в коллекции, будут просто изменены значения полей таблицы коллекции.
    • Поля коллекции. Для каждого поля таблицы коллекции назначается соответствующее значение.
  • Удалить документ. Параметр принимает один аргумент - идентификатор удаляемого документа. Документ удаляется полностью из коллекции у всех владельцев.
  • Удалить документ у владельца. В отличие от предыдущего метода, этот позволяет удалить документ только у заданного владельца.

Образ документа

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

Пароль

Поле предназначено для надежного хранения паролей и используется, в первую очередь, в справочнике «Учетные записи» системы.

Настройки

В настройках поля доступен два параметра:

  • Способ хранения пароля: в хэшированном или зашифрованном виде. Второй вариант позволяет восстановить пароль в исходном виде и может применяться для хранения паролей, которые в будущем могут понадобиться для использования в каких-либо целях (этот вариант очень ненадежен и использовать его без особой необходимости не следует).
  • Уровень сложности пароля, вводимого пользователем: любой, средний (минимум 6 символов, не менее одной строчной и одной прописной буквы или цифры) или сложный (минимум 8 символов, не менее одной строчной и одной прописной буквы, а также цифры).

Методы чтения

Если пароль в поле хранится в зашифрованном виде, получить его исходное значение можно при помощи метода «Получить расшифрованное значение».

Сложная таблица

Сложная таблица позволяет отображать сложные таблицы, имеющие многоуровневые заголовки и возможность расшифровки значений (при нажатии на соответствующую ячейку открывается окно, в котором отображаются документы, из которых сформировано значение этой ячейки). Таблица на текущий момент никак не настраивается, а используется действием «Генератор отчетов» и полем «Хранилище» для отображения отчетов.

Список

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

Настройки

Значения для списка могут определяться администратором на этапе разработки конфигурации в специальной таблице или загружаться в процессе выполнения документа из заданного поля.

  • Значения из таблицы, которая состоит из двух столбцов: значение и заголовок. Значение будет храниться в поле, а заголовок отображаться пользователю. Заголовок можно будет всегда изменить, и во всех документах он обновиться. Изменять же значение без особой надобности не следует, т. к. существующие выбранные пользователями в документах будут утеряны.
  • Значения из поля, в которое можно будет записать необходимое значение в процессе выполнения документа. При использовании этого варианта необходимо установить:
    • поле-источник (как правило, используются строковое или текстовое поле);
    • разделитель между вариантами, например, |
    • разделитель между значением и заголовком, например, ::
      Если использовать приведенные примеры разделителей, то поле-источник может содержать строку следующего формата:
      1::Заголовок 1|2::Заголовок 2|3::Заголовок 3
      которое поле «Список» превратит в список:
      • Заголовок 1,
      • Заголовок 2,
      • Заголовок 3,
        а в качестве значения поля будут использоваться 1, 2 или 3.
  • Множественный выбор определяет сможет ли выбрать пользователь одно значение из списка или два и больше.
  • Отображение (выпадающим списком или переключателем) определяет то, каким пользователь увидит поле «Список».

Методы записи

Найти и записать значение по заголовку. По умолчанию, для изменения выбранного варианта через, скажем, действие «Запись» в поле нужно передавать значение соответствующего варианта списка. Данный метод позволяет использовать не значение, а заголовок. Например, имеется списочное поле с двумя вариантами: Да (значение = 1) и Нет (значение = 2). Чтобы установить второй вариант можно напрямую (через обычный стандартный метод) записать 2 либо через описываемый метод строку Нет. В обоих случаях результат будет одинаков.

Методы чтения

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

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

Настройки

Настройки поля распределены по трем вкладкам:

  • Общие настройки
    • Тип ссылки. Определяет тип документов, которые могут быть в поле. Все дальнейшие манипуляции будут выполняться над документами этого типа. Возможно создание нетипизированной ссылки. В такое поле могут быть записаны ссылки на документы любых типов. При такой настройке становится недоступными все остальные настройки (кроме множественного выбора), а в качестве отображаемого названия документа используется Заголовок.
    • Отображаемое поле. Здесь нужно указать одно из полей выбранного типа документа. Отображаемое поле определяет представление выбранных в Ссылке документов. Если, например, для справочника стран выбрать поле «Название», ссылки на страны будут с текстом Казахстан, Молдова и пр.
    • Множественный выбор. Параметр определяет сколько документов (ссылок) сможет выбрать пользователь: один или несколько.
    • Обратная ссылка. Здесь можно выбрать поле целевого типа документа, которое будет использоваться для создания обратной ссылки, то есть ссылки на текущий документ. Например, в типе документа А есть ссылочное поле на тип документа Б. В настройках этого поля выбрано поле для обратной ссылки БП. Если в документе А1 в ссылочном поле будет выбран (записан) документ Б1, то в поле БП документа Б1 будет записан идентификатор документа А1. Если будет создан документ А2, также ссылающийся на Б1, то поле БП документа Б1 станет равным А2,А1, если оно множественное, или А2, если одиночное. При удалении документа Б из поля со включенной обратной ссылкой документа А, ссылка на А удаляется из соответствующего поля документа Б.
  • Форма
    • Виджет. В режиме формы поле может отображаться в виде списка с автоподстановкой, журнала, в котором можно выбирать документы и списка с переключателями. Список с переключателями не рекомендуется использовать на большом количестве документов; наилучшую производительность можно достичь, используя журнал.
    • Документы для ссылки. По умолчанию, можно выбирать все документы заданного типа. Для виджетов списков можно выбрать поле, из которого будут загружаться документы для выбора. Или воспользоваться фильтрами, описанными ниже.
    • Фильтры для документов в ссылке. Эти фильтры позволяют ограничить документы для выбора в виджетах списков. Если ввести несколько фильтров можно определить логические связи между ними: И или ИЛИ. ИЛИ имеет приоритет. Например, красный И сладкий ИЛИ желтый И кислый будет соответствовать красному сладкому яблоку ИЛИ желтому кислому лимону.
  • Просмотр
    • Разделитель. Параметр актуален при множественном выборе и позволяет изменить разделитель между ссылками, который используется по умолчанию (запятая). Помимо запятой доступны следующие разделители: точка, перевод на новую строку, запятая / точка с переводом на новую строку.
    • Показывать ссылку. По умолчанию, выбранные документы отображаются в виде гиперссылок. При необходимости можно отображать без ссылок, просто текстом.
    • Показывать всплывающее окно. Если включить эту настройку, в режиме просмотра поля при наведении курсора мыши на его значение будет показано всплывающее окно с соответствующим документом.
    • Актуализация текста ссылки. Значение отображаемого поля выбранного документа может измениться, что приведет к изменению текста ссылки. Если отключить актуализацию текст ссылки изменяться не будет. Отключенную актуализацию уместно использовать для Структуры, чтобы после того, как должность займет новый сотрудник, в старых документах не появился этот новый сотрудник вместо прежнего.

Методы записи

  • Добавить к содержимому поля. Если к примеру, в нашем ссылочном поле уже есть Иванов с Петровым, то, используя этот метод легко добавить Сидорова.
  • Удалить из содержимого поля. А этот метод позволяет удалить, скажем, Иванова и оставить только Сидорова.
  • Удалить n ссылок из содержимого поля. Метод позволяет удалить из начала или конца поля заданное количество ссылок.

Методы чтения

  • Получить идентификатор первого значения поля. Если в поле включен множественный выбор, данный метод позволяет получить идентификатор первого по порядку документа.
  • Получить гиперссылку на первое значение поля. Возвращается HTML-код гиперссылки на первый документ в поле.
  • Получить текст первой ссылки из поля. Возвращается отображаемое значение отображаемого поля первого документа ссылки.
  • Получить количество ссылок в поле. Возвращает числовое значение, соответствующее количеству записанных в поле ссылок.
  • Получить отображаемое значение поля без гиперссылок. Если, к примеру, в режиме просмотра мы увидим Москва, Киев, Ереван с гиперссылками на соответствующие городам документы, то, используя этот метод, можно получить текст без гиперссылок.
  • Получить отображаемое значение поля с гиперссылками. Получим то, что видим в поле (если отключили отображение с гиперссылками в его настройках). Полученный HTML код можно записать, скажем, в текстовое поле.
  • Получить значение заданного поля по ссылке. Все описанные выше методы манипулировали только с одним полем документа, доступного по ссылке, - тем, что администратор выбирает в параметре «Отображаемое поле». Этот же метод позволяет получить значение любого поля документа по ссылке. Например, в ссылочном поле выбран Актюбинск (отображаемое поле «Название города» типа документа «Справочник городов»). Используя этот метод, можно легко получить и название страны для этого города. Для этого нужно, собственно, выбрать этот метод, а в форме этого метода выбрать поле, значение которого нужно получить.
  • Получить отображаемое значение заданного поля документа по ссылке. В примере описанного выше метода мы можем получить не совсем Казахстан, а что-то вроде вот такого f957c7f3-6876-11e8-a2ab-201a06f86b88. Это произойдет в том случае, если поле Страна нашего гипотетического справочника городов является ссылкой на справочник стран. Чтобы получить все-таки Казахстан, следует использовать этот метод (в этом методе как и в предыдущем доступен параметр для выбора поля, отображаемое значение которого нужно получить). Все дело в том, что любая Ссылка на самом деле хранит идентификаторы документов, а не значение отображаемого поля, который видит пользователь в Ссылке.
  • Получить родственные документы. Метод позволяет получить предков, потомков и братьев текущего значения поля по дереву, которое выстраивается по указываемому родительскому полю. Например, если применить этот метод к ссылке на «Структуру», то можно получить все подразделения, в которые входит сотрудник, выбранный в поле, его коллег или входящих в отдел сотрудников (если выбрано подразделение).
  • Получить название типа документа. Если в поле несколько документов, то возвращается тип документа первого из них.
  • Получить идентификатор типа документа. В отличие от предыдущего метода, этот возвращает не название типа документа, а его уникальный идентификатор.

Строка

В отличие от поля «Текст» поле «Строка» может хранить меньше символов, не поддерживает HTML и в качестве виджета формы использует обычную строку ввода.

Настройки

  • Максимальное количество символов, которое может быть введено в поле пользователем (не более 16 777 215 символов). По умолчанию, 256 символов.
  • Маска ввода, которая позволяет определить шаблон, которому должны отвечать вводимые пользователем данные. К примеру, для номера телефона можно применить маску вида +9(999)999-99-99. Поле с такой маской не позволит пользователю ввести телефон вот таким образом 777 77-77-777 или 7777777777 или любым иным, а только +1(234)567-89-01.
    В шаблоне маски можно использовать следующие спецсимволы:
    • a - любой буквенный символ,
    • 9 - любой цифровой символ,
    • * - любой буквенно-цифровой символ,
    • ? - позволяет сделать часть маски необязательной (все, что после ? пользователь сможет не вводить)

Методы записи

  • Добавить в конец поля - добавляет данные к существующему значению в поле.
  • Вставить в начало поля - добавляет данные перед существующим значением в поле.
  • Добавить в конец поля через разделитель — добавляет к существующему в поле значение разделитель и указанные данные.
  • Записать множество значений. При помощи этого метода можно сформировать значение поля из множества других полей, переменных и значений, введенных администратором вручную. В параметрах метода находится кнопка +, которая позволяет добавлять новые значения, которые при запуске метода действием Запись будут конкатенироваться.
  • Удалить первые n символов. При помощи данного метода можно удалить заданное количество символов слева. Количество символов может быть введено вручную администратором или получено из какого-либо поля.
  • Удалить последние n символов. Метод аналогичен предыдущему, с той разницей, что удаляет символы справа. Например, если поле содержит строку «Скачать СЭД бесплатно», то метод с количеством символов, равным 10, вернет: «Скачать СЭД».

Методы чтения

  • Получить первые n символов. Метод имеет параметр, который позволяет указать количество возвращаемых символов.
  • Получить подстроку. Этот метод позволяет разбить строку на подстроки и получить одну из них. Разбивка осуществляется по разделителю, который может быть введен администратором вручную или получен из какого-либо поля системы (по умолчанию, используется запятая); таким же образом может быть определен порядковый номер возвращаемой части строки (части нумеруются, начиная с 0). Например, строковое поле содержит значение "качество, скорость, цена". Если в качестве разделителя передать описываемому методу запятую, а в качестве порядкового номера 1, то метод вернет "скорость".
  • Получить строку в верхнем регистре. Возвращает содержимое поле прописными буквами.
  • Получить строку в нижнем регистре. Этот метод возвращает строку из поля строчными буквами.
  • Получить цифровые символы. Метод извлекает из содержимого поля числовые символы и возвращает их. Например, применив метод к значения А17, можно записать в числовое поле 17.
  • Получить случайный набор из n символов. Метод является по сути генератором случайных наборов символов. Количество символов в наборе можно определить в методе; если количество не будет задано, метод вернет набор из 32 символов.

Таблица

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

Пользователь, работая с таблицей, может добавлять новые, изменять, копировать и удалять существующие строки. Интерфейс достаточно прост и интуитивно понятен.

Настройки

  • Столбцы таблицы. Для каждого столбца указывается тип поля. Может быть выбран любой тип из перечисленных ниже:
    • Валюта
    • Время
    • Пароль
    • Список
    • Ссылка
    • Строка
    • Текст
    • Файл
    • Число (целое)
    • JSON
    • XML
    На вкладке «Атрибуты» столбца доступны параметры:
    • В таблице: показывать или скрывать, - определяет будет ли столбец отображаться в таблице. В поле может храниться какая-то служебная информация и в этом случае его можно будет скрыть из таблицы.
    • В форме: показывать или скрывать, - позволяет скрыть значение столбца в форме, которая отрывается, когда пользователь добавляет новую строку или изменяет существующую, то есть фактически определяет возможность изменения столбца пользователем.
    • Выравнивание: по левому краю, по правому, по центру или ширине.
    • Обязательно для заполнения. Пользователь не сможет сохранить строку, пока не заполнит этот столбец.
    • Уникальное значение. Если включить это атрибут, в каждую строку таблицы пользователь должен будет ввести уникальное значение в этот столбец.
  • Категоризация. В параметре можно выбрать столбец, по которому данные в таблице будут группироваться.
  • Разбивка на страницы. При большом количестве строк, поле «Таблица» может потребовать время для отрисовки в браузере пользователя. Для ускорения загрузки можно включить этот атрибут, чтобы показывать на одной странице не более заданного количества строк.

Методы записи

  • Добавить строку. Строку можно добавить в конец таблицы либо вставить перед строкой с заданным порядковым номером (параметр «Вставить перед строкой» / «Вставить в конец»; если этот параметр не задавать, строка будет вставлена в конец таблицы; нумерация начинается с 1). Сама вставляемая строка задается при помощи табличного параметра «Данные строки», в котором можно определить значения столбцов табличного поля.
  • Изменить строку. Метод имеет два параметра: «Номер строки» (нумерация строк начинается с 1), которая изменяется, и табличный параметр «Данные строки», в котором можно определить новые значения столбцов табличного поля.
  • Удалить строку. У метода есть один параметр - порядковый «Номер строки» для удаления (нумерация с 1).

Методы чтения

  • Получить количество строк. Возвращает количеству строк в таблице.
  • Получить значение ячейки. Метод возвращает значение ячейки, находящейся на пересечении строки и столбца таблицы. Строка таблицы может быть задана по номеру (нумерация начинается с 1) или по поиску на основе заданных фильтров.

Таблица документов

Данное поле представляет собой таблицу, строки в которой являются документами системы. Фактически, поле хранит идентификаторы документов, как и поле «Ссылка», только отображает их в табличном виде и имеет некоторые дополнительные функциональные возможности, включая возможность создания нового документа соответствующего типа прямо из таблицы.

Настройки

Настройки поля разделяются на две вкладки:

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

Методы записи

  • Добавить к содержимому поля. Метод добавляет переданные идентификаторы документов к содержимому поля.

Текст

Поле позволяет хранить текст объемом до 4 ГБ.

  • Текстовый редактор. Для ввода этого текста может применяться WYSIWIG-редактор, который включается администратором в настройках поля установкой галочки в параметре "Отображать редактор". В этом случае поле начинает выполнять введенный в него HTML-код. В редакторе доступны возможности настройки шрифта текста, его размера, начертания, цвета, выравнивания текста, вставки таблиц, гиперссылок, изображений. Если редактор отключен, поле не выполняет HTML-код, а просто выводит теги.
  • Максимальная ширина вставляемого изображения.
  • Максимальная высота вставляемого изображения.
  • Максимальный размер файла загружаемого изображения.

Методы записи

  • Добавить текст в конец поля
  • Добавить текст в конец поля на новую строку
  • Добавить текст к конец поля через разделитель. У этого метода есть параметр, позволяющий указать разделитель. В качестве разделителя могут использоваться HTML тэги.
  • Записать множество значений. При помощи этого метода можно записать значения нескольких полей, переменных или значений, введенных вручную.
  • Вставить текст по шаблону. Используя редактор в этом методе можно сформировать отформатированное значение текстового поля с использованием других полей и переменных

Методы чтения

  • Получить первые n символов, где n указывается в параметре метода.
  • Получить строку n. При помощи этого метода получить строку с порядковым номер, указанным в поле, которое может указать в параметре метода.
  • Получить количество строк. Метод возвращает количество строк в данном текстовом поле.
  • Получить подстроку. Метод позволяет разбить содержимое поля на подстроки и получить одну из них. Для разделения необходимо настроить разделитель, и указать порядковый номер подстроки - ее порядковый номер (отсчет начинается с нуля).
  • Вставить текст по шаблону. В данном методе есть один параметр - шаблон, в который можно вносить любые данные, вставлять поля и переменные. При запуске шаблон будет обработан и полученное значение будет записано в поле.
  • Получить чистый текст (без HTML). Метод возвращает содержимое поля с вырезанными HTML-тегами.

Файл

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

После загрузки файлы размещаются в каталоге storage/files, и каждому файлу присваивается уникальный идентификатор. При копировании файла из одного поля в другое, копируется только этот идентификатор. При удалении файла из поля, он не удаляется сразу из файловой системы. Окончательное удаление осуществляет задача планировщика «Оптимизация данных», которая вначале проверит использование файла в других полях системы.

Настройки

  • Предварительный просмотр. Для файлов форматов JPEG, PNG, GIF и PDF возможен предварительный просмотр. При включенной настройке «Приложения / Просмотр офисных файлов» в предварительном просмотре будут отображаться и файлы офисных форматов (xls(x), doc(x), ppt(x), ods, odt и пр.).
  • Максимальный размер загружаемого файла. Максимальный возможный размер загружаемого в поле файла в килобайтах. Если значение не указано либо равно 0, действуют ограничения, установленные в настройке MaxFileSize в секции [File] конфигурационного файла doc-v.conf (значения вводятся в байтах или с применением литер K (килобайты), M (мегабайты), G (гигабайты)).
  • Максимальное количество загружаемых файлов. Максимальное количество файлов, которое может быть загружено в поле. Если значение не указано либо равно 0, количество не ограничивается.
  • Разделитель между файлами: запятая, точка, перевод на новую строку, запятая / точка с переводом на новую строку.

Методы записи

Файловое поле может принимать для записи не только идентификаторы файлов, но и JSON-объект:

{
"name": "Название файла",
"base64": "Содержимое файла в кодировке Base64"
}

Получив такой объект поле создает файл с соответствующими названием и содержимым в файловом хранилище и сохраняет его идентификатор. Можно передать массив описанных объектов для создания и записи нескольких файлов.

  • Добавить к содержимому поля. Метод имеет один параметр, который должен определить идентификатор (один или несколько, перечисленных через запятую), который будет добавлен к полю.
  • Удалить из содержимого поля. Имеет такой же параметр, как и метод добавления, только вместо добавления удаляет полученные идентификаторы файлов из поля.
  • Добавить файл из файловой системы. При помощи этого метода можно передать полю полный путь к файлу в файловой системе сервера, чтобы поле загрузило этот файл. Загружать файлы можно не из любого места в файловой системе, а только из файлового хранилища (каталог storage по умолчанию). Можно добавить свои собственные каталоги, перечислив полные пути через запятую в настройке AllowedCopyDirs в секции [Files] конфигурационного файла doc-v.conf и перезагрузив настройки командой doc-v reload

Методы чтения

  • Получить отображаемое значение поля без гиперссылок. Метод возвращает названия файлов, перечисленные через запятую.
  • Получить URL первого файла в поле. Метод позволяет получить URL первого файла в поле. Доступ к файлу по ссылке будет ограничен доступом к файловому полю, из которого он будет получен.
  • Получить HTML-код гиперссылок для всех файлов поля. Возвращает названия файлов в виде гиперссылок (HTML-тег <a>) на их скачивание с разделителем, указанным администратором в параметре «Разделитель между файлами». Доступ к файлам по ссылкам будет ограничен доступом к файловому полю, из которого они получены.
  • Получить количество файлов в поле. Возвращает число, соответствующих количеству файлов, загруженных в данное поле документа пользователем.
  • Получить содержимое файлов поля. Метод имеет смысл использовать для текстовых файлов, он позволяет считать их содержимое, скажем, в поле Текст.
  • Получить содержимое первого файла в BASE64.
  • Получить полный путь каждого файла в поле. Физически файлы, загружаемые в поле, хранятся в файловой системе сервера. Этот метод позволяет получить полный путь к каждому файлу, загруженному в поле.

Хранилище

Поле «Хранилище» является высокоуровневой реализацией процессами управления товарно-материальными запасами (ТМЗ). Поле реализует операции прихода ТМЗ на склад, перемещения с одного склада на другой склад и списания. Поддерживает штрих-кодирование.

На рисунке отображено поле в режиме формы у пользователя, в которой пользователь может изменить время операции, выбрать склад, на который осуществляется приход, вводить ТМЗ при помощи штрих-кода или вручную через таблицу ТМЗ.

Настройки

Настройки поля распределены по 4 вкладкам:

  • Операция
    • Тип хранилища. Поле может работать с различными складами, на которых могут храниться разнообразные полезные ценности. Например, компания может заниматься продажей апельсинов и иметь собственный небольшой склад для хранения оргтехники. Поле «Хранилище» позволяет управлять как апельсинами, так и компьютерами, и для каждого из них нужно создать отдельный тип хранилищ (складов). Типы хранилищ создаются через системный справочник «Типы хранилищ», включающий следующие поля:
      • Название типа склада. Например, «Склад ТМЗ».
      • Тип документа. Тут необходимо выбрать тип документа справочника ТМЗ, который нужно создать самостоятельно и хранить в нем ТМЗ. В этом справочнике должны поля для хранения названия ТМЗ, штрих-кода, артикула (строковые), количества, цены (числовые), веса (необязательно). В остальных полях описываемого справочника следует выбирать эти поля.
      • Поле наименование. Значение этого поля будет отображаться в таблице хранилище, когда пользователи будут выбирать ТМЗ.
      • Поле штрих-кода. По этому полю будет осуществляться поиск введенного пользователем в поле «Хранилище» (вручную или сканером) штрих-кода ТМЗ.
      • Поле количества. В этом поле «Хранилище» будет записывать актуальный остаток ТМЗ на складе.
      • Поле покупной цены. Из последней операции прихода ТМЗ цена будет записываться в это поле.
      • Поле цены продажи. В таблице операции списания поля «Хранилище» можно отобразить это поле.
      • Поле веса. На текущий момент поле не используется и создана для будущего развития.
    • Операция. Поле «Хранилище» поддерживает операции:
      • Прихода (ТМЗ на склад)
      • Расхода (списание ТМЗ со склада)
      • Перемещения (со склада на склад)
      • Из поля (вид операции может определить пользователь; для этого лучше всего создать список со следующими вариантами:
        Значение: 1 Заголовок: Приход
        Значение: 2 Заголовок: Расход
        Значение: 3 Заголовок: Перемещение
        Заголовки можно менять на свое усмотрение, но значения должны быть 1, 2 или 3 (соответственно, приход (1), расход (2) или перемещение (3))
    • Время операции. Может устанавливаться автоматически во время проведения или изменяться пользователем. Речь идет о времени прихода / расхода / перемещения на складе. То есть можно сделать, например, приход задним числом, если позволить пользователю изменять время операции.
    • Проведение операции прихода / расхода / перемещение может осуществляться автоматически при сохранении поля или по вызове методу поля «Хранилище» (например, по кнопке). Во втором случае, даже, если документ с полем будет сохранен, никаких изменений на складах не произойдет до тех пор, пока не будет выполнен метод поля.
  • Хранилище. На этой вкладке определяются хранилища (склады).
    • Из хранилища / в хранилище. В зависимости от вида операции можно определить склад списания и склад поступления, а также предоставить возможность пользователю самостоятельно изменять склады. Хранилища определяются в системном справочник «Хранилище», который, по умолчанию, имеет поля:
      • Название хранилища (склада)
      • Тип хранилища (выбирается из системного справочника «Тип хранилища»)
      • Поле количества (в справочнике «Тип хранилища» можно определить поле для записи количества в справочнике ТМЗ, но, если складов несколько и хочется отобразить количество ТМЗ на каждом складе, можно добавить соответствующее количество полей в справочник ТМЗ и для каждого склада (хранилища) определить собственное поле — поле «Хранилище» будет записывать после проведения операции количество в соответствующие поля)
    • Фильтры хранилищ (складов). Если у пользователя есть возможность изменения хранилища, по умолчанию, он может вызывать любое, соответствующее выбранному на первой вкладке типу. Можно ограничить его в выборе, добавив соответствующие фильтры.
      Можно в справочнике «Хранилище» добавить поле «Кладовщик» (Ссылка на Структуру). И в фильтрах добавить условие: если кладовщик содержит переменную текущий пользователь. Тогда пользователь сможет выбрать только те склады, на которых он является кладовщиком.
      Фильтры определяются отдельно для каждой операции (приход, расход, перемещение). Причем для перемещения определяются отдельно для склада, с которого идет списание (расход), и для склада, на который идет поступление (приход). Какие фильтры отобразятся зависит от выбранной операции; если операция — перемещение или из поля, то будут доступны все фильтры.
  • Форма. На этой вкладе определяется внешний вид поля, каким его увидит пользователь.
    • Отображать поле для ввода штрих-кода. Если включить этот параметр, пользователь сможет не заполнять таблицу с ТМЗ вручную, а вводить штрих-коды в специальное поле вручную или при помощи сканера. Система будет осуществлять поиск соответствующего ТМЗ в справочнике, и, если найдет введенный штрих-код, запишет этот ТМЗ в таблицу поля. Если в таблице такой ТМЗ уже будет, будет увеличено его количество на 1.
    • Таблица ТМЗ может быть пустой. Можно запретить сохранения поля «Хранилище» с незаполненной таблицей ТМЗ (это может понадобиться, если заполнение поле может быть осуществлено позже пользователем или системой через маршрут при помощи методов, описанных ниже). Следующие параметры определяют столбцы таблицы ТМЗ для каждой операции и отображаются соответственно ей. Если выбрана операция перемещения или из поля, будут отображены настройки всех таблиц.
    • Таблица расход ТМЗ имеет следующие настройки:
      • Отображать штрих код
      • Отображать артикул
      • Отображать цену реализации (это установленная цена, она в справочнике ТМЗ)
      • Показывать поле для ввода цены (но ввести можно и другую цену со скидкой или наценкой)
      • Отображать остатки товара (поле «Хранилище» в любом случае выполняет проверку на количество и не позволит списать со склада больше, чем на нем есть)
    • Таблица прихода ТМЗ:
      • Отображать штрих-код
      • Отображать артикул
      • Показывать поле для ввода цены (поступления, то есть цены поставщика)
    • Таблица перемещения ТМЗ:
      • Отображать штрих-код
      • Отображать артикул
      • Отображать остатки товара
    • Фильтры ТМЗ позволяют ограничить ТМЗ, доступные для выбора в таблице (в списке автоподстановки; на ввод через штрих-код эти ограничения не распространяются). Фильтры определяются отдельно для операций прихода и расхода / перемещения.
    • Транзакция
      • Добавлять документ в поле справочника ТМЗ. Атрибут полезен для, например, формирования истории движений по ТМЗ. Если в справочник ТМЗ добавить поле «Таблица документов», при помощи данного атрибута можно записывать все документы движений по ТМЗ (то есть документы, содержащие поле «Хранилище» в эту таблицу).
        Если в справочник ТМЗ добавить поле «Таблица документов», при помощи данного атрибута можно записывать все документы движений по ТМЗ (то есть документы, содержащие поле «Хранилище» в эту таблицу).

Методы записи

  • Провести операцию. Этот метод запускает проведение операции (то есть ее отображение в Хранилище (на складе)). Метод может быть вызван вне зависимости от настроек поля - как с автоматическим проведением, так и без него.
  • Отменить проведение операции. Этот метод отменяет проведение операции (то есть ее отображение в Хранилище (на складе)). Метод может быть вызван вне зависимости от настроек поля - как с автоматическим проведением, так и без него.
  • Добавить ТМЗ. Метод добавляет ТМЗ в таблице и содержит параметры:
    • Добавляемый ТМЗ
    • Количество ТМЗ
    • Цена ТМЗ

Методы чтения

  • Получить количество заданного объекта ТМЗ. Метод позволяет узнать сколько штук (килограмм и т. п.) поступило заданного ТМЗ, иначе говоря, получить количество из таблицы ТМЗ по заданной позиции.
  • Получить остаток заданного объекта ТМЗ. Метод возвращает остаток по заданному ТМЗ после проведения операции.
  • Получить цену заданного объекта ТМЗ. Возвращает цену заданного объекта из таблицы ТМЗ.
  • Получить хранилище по операции, то есть документ типа «Хранилище» (склад), на который осуществлялся приход / списания ТМЗ.
  • Получить время операции.
  • Получить кол-во ТМЗ (позиций) в поле. Возвращает количество строк в таблице ТМЗ.
  • Получить кол-во ТМЗ (штук) в поле. Возвращает сумму по полю «Количество» в таблице ТМЗ.
  • Получить отчет по остаткам в хранилище. Этот метод формирует отчет с полями: ТМЗ, Остаток по заданному хранилищу (складу) на заданную дату. Метод может вызываться из любого поля «Хранилище» вне зависимости от его настроек и операции. Отчет возвращается в формате JSON, который используется в поле «Сложная таблица», поэтому «Запись» лучше выполнять в поле этого типа.
  • Получить отчет по хранилищу с детализацией расхода. Метод формирует отчет с полями: ТМЗ, Приход, Остаток и Расход по заданному хранилищу (складу) с расшифровкой расхода по операциям перемещения на другие склады (если их нет, расшифровки не будет) на заданный период времени. Метод может вызываться из любого поля «Хранилище» вне зависимости от его настроек и операции. Отчет возвращается в формате JSON, который используется в поле «Сложная таблица», поэтому «Запись» лучше выполнять в поле этого типа.
  • Получить отчет по документам. Метод формирует отчет с полями: ТМЗ, Количество. Отчет формируется на основе проведенных текущим полем «Хранилище» операций в переданных через метод документах. Отчет возвращается в формате JSON, который используется в поле «Сложная таблица», поэтому «Запись» лучше выполнять в поле этого типа.
    Отчет может быть полезен, например, для формирования списка товаров, полученных от некоего поставщика за определенный период времени. Перед вызовом этого метода следует сначала подготовить список документов-приходом от заданного поставщика при помощи действия «Выборка».

Число (целое)

Поле предназначено для хранения целочисленных значений в диапазоне значений от -2 147 483 648 до 2 147 483 647 (для хранения чисел с плавающей запятой предназначено поле «Валюта»).

Настройки

  • Разделитель триад. В качестве разделителя триад можно выбрать пробел (1 000 000), точку (1.000.000), запятую (1,000,000) или не использовать разделитель (1000000)
  • Минимальное значение
  • Максимальное значение

Методы записи

  • Прибавить
  • Вычесть
  • Умножить
  • Разделить
  • Остаток от деления

Методы чтения

  • Получить отображаемое значение. Метод возвращает значение поля в соответствии с настройкой разделителя.
  • Дополнить строку с числом ведущими нулями. В параметре метода указывается количество знаков, которое должно быть у получаемой строки. Например, если указать 5 знаков, а в поле хранится число 17 - метод возвратит 00017.
  • Получить сумму / разницы / произведение / частное текущего значения и числа n. Помимо указания числа n, в методе можно установить переключатель для сохранения сформированного значения в поле. Обратите внимание, что, если для этого поля включен контекста изменения маршрута, в котором запускаются интерактивные действия (такие как, «Диалог», «Редактирование» и пр.) эти действия пользователь не увидит, в силу архитектурных особенностей реализации.

JSON

Это поле позволяет выполнять некоторые операции над данными в формате JSON: добавлять и получать ключи и их значения.

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

{
 "name": "Comparium",?
 "country": "Kazakhstan",
 "contacts": {
   "phones":[
   "+77001289175"
   ],
   "emails": [
     "info@documentov.com"
   ]
 }
}

Приведенный JSON будет отображен полем следующим образом:

Впрочем, отображение JSON не имеет особой пользы; вся польза поля заключена в методах.

Настройки

У поля нет настроек.

Методы записи

  • Добавить ключи. В качестве параметров этот метод принимает:
    • Родительский ключ, включая полный путь к нему. Например, если в приведенный выше JSON необходимо добавить еще один номер телефона, то полный путь будет [contacts][phones]. Для формирования названия можно использовать значения полей текущего документа, вставляя их в строку с названием родительского ключа в двойных фигурных скобках. Например, [contacts][{{Поле}}].
    • Источник данных для добавляемых ключей. Значения для добавляемых ключей могут быть получены из полей текущего документа или документов, которые предварительно записаны в какое-либо поле.
    • Добавляемые ключи. Для ключа вводится его название, значение и тип данных. Название ключа может быть введено вручную или получено из какого-либо поля документа.

Задача: добавить в приведенный в начале этой статьи JSON сотрудников. Сделать это можно следующим образом:

  1. Сначала добавить в родительский ключ [contacts] новый ключ sotr без указания значения.
  2. После чего добавить в родительский ключ [contacts][employees] ключи, используя документы из какого-либо поля, указав их тип. В качестве ключей теперь можно будет использовать поля этих документов.

Методы чтения

  • Получить значение ключа. Метод позволяет получить значение определенного ключа. В единственном параметре метода указывается искомый ключ с полным путем к нему. Например, если указать в качестве ключа [contacts][employees], то метод вернет JSON [{"name":"Иванов"},{"name":"Иванова"}], а, если [contacts][employees][1][name], то "Иванова".
    Получить значение ключа в виде JSON-массива . Зачастую JSON может содержать много излишней информации. Например, наш массив с сотрудниками мог бы содержать несколько десятков ключей, в то время, как нас интересовали бы только несколько штук из них. Используя описываемый метод можно было бы в качестве родительского элемента ввести name и другие интересующие ключи. Такой метод вернул бы соответствующий JSON. Кстати, этот JSON можно было бы записать в подготовленную заранее с соответствующим набором поле Таблицу.
    Получить количество значений в массиве по ключу. Если ввести ключ [contacts][employees], то в ответ метод вернет 2, т.к. в нашем JSON два сотрудника. Если нужно получить количество элементов верхнего уровня, можно ввести пустые скобки [] - в нашем случае такая настройка метода вернет 3.

XML

Поле предназначено для хранения данных в формате XML и из обработки. Хранить XML можно и в обычном текстовом поле, но у описываемого поля есть несколько методов, которые позволяют извлекать и изменять данные дерева XML.

Настройки

  • Корневой элемент XML. XML имеет единственный корневой элемент, который включает в себя все остальные элементы. По умолчанию, в качестве корневого элемента используется root. Изменение корневого элемента не затрагивает уже существующие поля XML.

Методы записи

  • Добавить элемент. Метод позволяет добавить новый элемент в дерево XML. Имеет следующие параметры:
    • Родительский элемент. В этот элемент будет добавлен новый. Для родительского элемента необходимо указать полный путь по дереву XML (исключая корневой), заключая все элементы в угловые скобки.
    • Источник данных. Можно сформировать один или несколько добавляемых элементов на основе полей текущего документа. Можно добавить в качестве элемента другой XML (в этом случае появляется еще один параметр, в котором можно выбрать поле, содержащее этот XML). Или можно добавить массив элементов, на основе документов, собранных в указанном поле. Документы могут быть получены как из обычного поля текущего типа документа, так и любого настроечного поля системы. Помимо выбора поля, содержащего идентификаторы документов, необходимо также указать тип этих документов, а также название элемента, который станет родительским для добавляемого элемента. Например, для выгрузки «Cтруктуры» можно сформировать XML вот такого вида: <?xml version="1.0" encoding="UTF-8"?>
      <root>
        <structures>
          <structure type="2">
            <name >Иванов</name>
          </structure >
          <structure type="2">
            <name>Петров</name>
          </structure>
        </structures>
      </root>
      Пример демонстрирует выгрузку двух документов типа «Структура»: Иванова и Сидорова. В настройках метода для такой выгрузки в родительский элемент необходимо ввести <structures> (этот элемент должен быть создан предварительно), в качестве источника выбрать документы из поля, выбрать поля, указать тип документа «Структура», название элемента structure.
  • Добавляемые элементы. После нажатия на кнопку добавления (с пиктограммой в виде знака плюс) можно настроить следующие параметры добавляемого элемента:
    • Название элемента . Название элемента можно также полностью или частично получать из поля документа, из которого будут получены данные для формирования элемента. Например, elem{{Какое-то поле}}. Поле можно написать вручную или вставить при помощи кнопки с выпадающим списком поле справа.
    • Тип: Элемент со значением, Атрибут или Элемент без значения.
    • Значение , которое можно выбрать для элемента со значением или атрибута. Значение получается из обычного поля текущего документа или любого настроечного поля системы.
      Для реализации примера, описанного выше, следует создать два элемента.
      Для первого ввести название name, выбрать тип Элемент со значением, а для значения выбрать поле «Отображаемое имя» «Структуры».
      Для второго элемента ввести название type, установить переключатель Атрибут, а для значения выбрать поле «Тип единицы».

Методы чтения

  • Получить элемент. Метод имеет один параметр «Название элемента», в котором определяется полный путь к элементу, исключая корневой элемент. Каждый элемент в пути должен быть помещен в угловые скобки (в названии можно использовать содержимое полей текущего документа). Если в пути встречается несколько элементов с одинаковым названием, по умолчанию, используется первый из них. Чтобы выбрать произвольный элемент следует указать его порядковый номер в квадратных скобках сразу после названия элемента (нумерация начинается с 0).
    Например, чтобы получить Иванова из XML, приведенного выше, следует ввести <structures> <structure[0]><name> или <structures><structure><name>, а для получения Петрова <structures> <structure[1]><name>
  • Получить количество дочерних элементов. Форма настройки этого метода аналогична форме предыдущего. Метод возвращает количество дочерних элементов.
    Например, если ввести элемент <structures><structure>, то в нашем примере мы получим 2, поскольку в этом элементе есть два элемента <structure>.
  • Получить элемент в виде JSON-массива. При помощи этого метода можно получить часть XML в виде одномерного массива JSON, который можно записать, например, в поле «Таблица». У метода два параметра:
    • Родительский элемент. Массив JSON будет формироваться на основе содержимого этого элемента. Название можно ввести вручную или сформировать из полей текущего документа. Для названия можно использовать содержимое поле текущего документа. Возвращаясь к нашему примеру, тут следует ввести <structures><structure>
    • Элементы для JSON-массива. В этой таблице указываются все элементы возвращаемого массива. В качестве значений необходимо указывать путь до конкретного элемента XML, значение которого необходимо разместить в массиве. Если необходимо получить значение атрибута, его название следует предварять знаком -, а значения элемента ветви с атрибутами - знаком *. Для формирования пути можно использовать значения полей текущего документа.
      В нашем примере - <name>
      Метод с такими настройками вернет JSON-массив, который можно записать в поле Таблица с одним строковым полем.