Обучающие статьи. Урок - Типы данных в BAS

Эта статья была обновлена 03 Июня 2022, Пт

Служебные типы данных в BAS. Перечисления и Регистры сведений.

Приветствуем читателей сайта. На повестке дня новые объекты BAS для изучения под одним общим заголовком - "служебные типы данных".

Рассмотрим на примере конфигурации BAS Управління торгівлею

Перечисления

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

«Пол физического лица» со значениями:

  • Мужчина
  • Женщина

«Юр. Физ. лицо» со значениями:

  • Юр. Лицо
  • Физ. Лицо

«Типы контактной информации» со значениями:

  • Адрес
  • Телефон
  • E-Mail
  • Веб-страница
  • Другое

И многие другие. Т.е., перечисление это фиксированный список каких-то значений.

Типы данных

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

Регистр сведений

Регистр сведений – объект конфигурации, предназначенный для хранения информации в разрезе нескольких измерений. Информация в регистре сведений хранится в виде набора строк (записей). Каждая строка содержит набор измерений и соответствующие им значения ресурсов. Комбинация измерений идентифицирует запись.

Самым распространённым примером регистра сведений являются курсы валют, где измерение это валюта, а ресурс это курс. Такой регистр называется «Периодический». Это означает, что помимо ваших измерений и ресурсов в регистре будет создана еще одна колонка «Период». Регистру можно установить «Периодичность записи». Например, у курсов валют установлена периодичность – день. Это означает, что запись с одинаковыми значениями измерений можно сделать только раз в день, система автоматически позаботится о проверке.

Регистры сведений

И он же в режиме предприятия. Добавлена колонка «Период».

Регистры сведений

В одном периоде одно ключевое измерение (Или доллар или Евро) и ресурсы курс и кратность.

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

Документ, которым вносится запись в регистр сведений, называется регистратором.

Регистры, записываемые независимо, могут свободно редактироваться вручную или средствами встроенного языка. При этом если измерение такого регистра назначено как "ведущее" и значением измерения является ссылка на объект базы данных, то будет считаться, что запись регистра имеет смысл, только пока существует этот объект.

Например, если назначить ведущим измерение "Конкурент", то считается, что запись имеет смысл только как информация по данному конкуренту. Соответственно, при удалении конкурента записи по нему будут удалены автоматически.

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

Задание 1. Новый регистр ставок водителей:

Добавим новый регистр сведений «фсСтавкиВодителей», независимый, а периодичность в пределах секунды. На закладке данные добавим Измерение «Водитель» - ссылка на наш справочник Водители и ресурс «Ставка» число, точность 3. Неотрицательное.

Регистры сведений

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

Регистры сведений

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

Начнем с отбора. Нам нужно событие формы «ПередОткрытием» там добавим следующий код:

Регистры сведений

Ставки это наш элемент формы с типом регистр. Укажем, что отбор нужно сделать по водителю, где водитель это текущий элемент ссылки, а так же использование этого отбора в истина.

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

Регистры сведений

Все так и есть. Теперь добавление записей прямо в форме справочника водители. Для этого в конфигураторе откроем свойства регистра (правой клавишей мышки по регистру, пункт свойства).

Нас интересует пункт Способ редактирования. Укажем пункт в списке.

Регистры сведений

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

Давайте поставим заглушку. Для этого нам нужно событие элемента формы Ставки «ПередНачаломДобавления». Добавим тут следующий код:

Листинг 1. Проверка на заполнение Ссылки

Регистры сведений

Если в нашем объекте не заполнена ссылка, а заполнена, она может быть только когда элемент записан, то установим переменную Отказ в значение Истина. Эта переменная отвечает за безошибочность исполнения.

Поиск в периодическом реквизите можно делать несколькими способами:

Листинг 2. Поиск через функцию ПолучитьПоследнее

Регистры сведений

Листинг 3. Поиск через функцию Выбрать

Регистры сведений

Листинг 4. Поиск через функцию Найти

Регистры сведений

Так же возможно выбирать записи из регистра обыкновенным запросом.

Также, наша компания проводит обучение по курсам:

 Обучение проводится в вечернее время, что позволит вам не отрываться от работы или обучения, практикующим программистом нашей компании.

Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20

( 13 )
Комментарии
Пока нет комментариев
Написать комментарий

Свяжитесь с нами

Если вы хотите получить больше информации, заполните эту форму. Мы свяжемся с вами в ближайшее время.

(073) 090-70-20 (095) 090-70-20 (068) 090-70-20 info@finsoft.ua