Обучающие статьи. Урок - Типы данных в BAS
Служебные типы данных в BAS. Перечисления и Регистры сведений.
Приветствуем читателей сайта. На повестке дня новые объекты BAS для изучения под одним общим заголовком - "служебные типы данных".
Рассмотрим на примере конфигурации BAS Управління торгівлею
Перечисления
Перечисление представляет собой служебный тип данных, который не используется самостоятельно, а применяется, в основном, в совокупности с другими типами данных. Изменять значения таких данных из режима Предприятие невозможно. Например, перечислением являются:
«Пол физического лица» со значениями:
- Мужчина
- Женщина
«Юр. Физ. лицо» со значениями:
- Юр. Лицо
- Физ. Лицо
«Типы контактной информации» со значениями:
- Адрес
- Телефон
- Веб-страница
- Другое
И многие другие. Т.е., перечисление это фиксированный список каких-то значений.
Перечислениям можно добавить формы, принадлежность к подсистемам, команды и даже макеты печатных форм.
Регистр сведений
Регистр сведений – объект конфигурации, предназначенный для хранения информации в разрезе нескольких измерений. Информация в регистре сведений хранится в виде набора строк (записей). Каждая строка содержит набор измерений и соответствующие им значения ресурсов. Комбинация измерений идентифицирует запись.
Самым распространённым примером регистра сведений являются курсы валют, где измерение это валюта, а ресурс это курс. Такой регистр называется «Периодический». Это означает, что помимо ваших измерений и ресурсов в регистре будет создана еще одна колонка «Период». Регистру можно установить «Периодичность записи». Например, у курсов валют установлена периодичность – день. Это означает, что запись с одинаковыми значениями измерений можно сделать только раз в день, система автоматически позаботится о проверке.
И он же в режиме предприятия. Добавлена колонка «Период».
В одном периоде одно ключевое измерение (Или доллар или Евро) и ресурсы курс и кратность.
Записи в регистр сведений можно вносить двумя способами: вручную или документами. Эти два варианта влияют на способ внесения информации, а не на основную логику работы регистра.
Документ, которым вносится запись в регистр сведений, называется регистратором.
Регистры, записываемые независимо, могут свободно редактироваться вручную или средствами встроенного языка. При этом если измерение такого регистра назначено как "ведущее" и значением измерения является ссылка на объект базы данных, то будет считаться, что запись регистра имеет смысл, только пока существует этот объект.
Например, если назначить ведущим измерение "Конкурент", то считается, что запись имеет смысл только как информация по данному конкуренту. Соответственно, при удалении конкурента записи по нему будут удалены автоматически.
Если регистр записывается регистратором, то это значит, что записи будут жестко подчинены регистраторам - документам. Обычно это значит, что записи будут порождаться при проведении документов. Соответственно, при удалении документа записи будут удаляться автоматически. В отличие от ведущих измерений, регистратор может быть только один.
Задание 1. Новый регистр ставок водителей:
Добавим новый регистр сведений «фсСтавкиВодителей», независимый, а периодичность в пределах секунды. На закладке данные добавим Измерение «Водитель» - ссылка на наш справочник Водители и ресурс «Ставка» число, точность 3. Неотрицательное.
Теперь создадим форму элемента для справочника Водители, если ее еще нет. Удалим с формы реквизит Ставка. Поместим элемент формы Табличное поле и назовем его «Ставки», тип данных у этого поля будет наш новый регистр сведений, уберем так же видимость с колонки Водитель. Должно получиться вот так:
Если сейчас открыть наш справочник водители в режиме предприятия и попробовать внести новую запись в регистр, то нам при добавлении откроется форма записи регистра, где нам нужно указать какому водителю соответствует запись и ставку. Не очень- то удобно. Сделаем редактирование прямо в форме элемента справочника водители, а так же добавим отбор, чтобы при открытии у нас были отобраны только те записи, которые соответствуют нашему водителю.
Начнем с отбора. Нам нужно событие формы «ПередОткрытием» там добавим следующий код:
Ставки это наш элемент формы с типом регистр. Укажем, что отбор нужно сделать по водителю, где водитель это текущий элемент ссылки, а так же использование этого отбора в истина.
Откроем элемент справочника в режиме предприятия и наш новый регистр через меню Операции. Проверим, что отбор работает верно.
Все так и есть. Теперь добавление записей прямо в форме справочника водители. Для этого в конфигураторе откроем свойства регистра (правой клавишей мышки по регистру, пункт свойства).
Нас интересует пункт Способ редактирования. Укажем пункт в списке.
Все, теперь мы можем, как добавлять новые элементы, так и редактировать существующие прямо в форме элемента. Но есть подводный камень. Если мы добавим запись в регистр из формы элемента, который еще не записан, то в измерение Водитель будет записана пустая ссылка на справочники водители, что крайне не корректно.
Давайте поставим заглушку. Для этого нам нужно событие элемента формы Ставки «ПередНачаломДобавления». Добавим тут следующий код:
Листинг 1. Проверка на заполнение Ссылки
Если в нашем объекте не заполнена ссылка, а заполнена, она может быть только когда элемент записан, то установим переменную Отказ в значение Истина. Эта переменная отвечает за безошибочность исполнения.
Поиск в периодическом реквизите можно делать несколькими способами:
Листинг 2. Поиск через функцию ПолучитьПоследнее
Листинг 3. Поиск через функцию Выбрать
Листинг 4. Поиск через функцию Найти
Так же возможно выбирать записи из регистра обыкновенным запросом.
Также, наша компания проводит обучение по курсам:
Обучение проводится в вечернее время, что позволит вам не отрываться от работы или обучения, практикующим программистом нашей компании.
Если у вас остались вопросы, Вы всегда можете обратиться к нашим аналитикам по телефонам:
(093) 090-70-20
(095) 090-70-20
(068) 090-70-20
Свяжитесь с нами
Если вы хотите получить больше информации, заполните эту форму. Мы свяжемся с вами в ближайшее время.