Тест по Автоматизации бухгалтерского учета с ответами
Нет времени или сил пройти тест онлайн? Поможем сдать тест дистанционно для любого учебного заведения: подробности.
Вопрос 1. При помощи объекта конфигурации «Константа» обеспечивается хранение:
- Единичной величины или набора значений, показывающего изменение этой величины во времени;
- Чисел и строк;
- Набора однотипных величин;
- Единичной величины.
Вопрос 2. Объект конфигурации «Перечисление» представляет собой:
- Список значений, создаваемый на этапе конфигурирования;
- Список значений, создаваемый либо на этапе конфигурирования, либо на этапе использования конфигурации;
- Список однородных элементов данных, создаваемый на этапе конфигурирования;
- Список однородных элементов данных, создаваемый как на этапе конфигурирования, так и на этапе использования конфигурации;
- Набор текстовых строк.
Вопрос 3. Объект конфигурации «Справочник» предназначен для:
- Формирования выходной информации;
- Хранения информации о совершенных хозяйственных операциях;
- Хранения списков однородных элементов;
- Выполнения различных действий над информационной базой;
- Для накопления информации о наличии и движении средств.
Вопрос 4. Объекту конфигурации «План видов характеристик» соответствует учетное понятие:
- Множество счетов бухгалтерского учета;
- Множество типов счетов бухгалтерского учета;
- Множество объектов аналитического учета;
- Множество типов объектов аналитического учета;
- Множество планов счетов бухгалтерского учета.
Вопрос 5. Какой режим позволяет настраивать компоненты системы автоматизации и запоминать их в специальной базе данных.
- Пользователь;
- Конфигуратор;
- Совет дня;
- Монопольный.
Вопрос 6. В качестве регистраторов могут выступать следующие объекты системы «1С:Предприятие»:.
- Документы;
- Документы и справочники;
- Регистры бухгалтерии;
- Регистры бухгалтерии и регистры накопления;
- Документы, справочники, регистры бухгалтерии и регистры накопления.
Вопрос 7. Список активных пользователей содержит:
- Список пользователей, которым разрешен вход в систему;
- Список пользователей, которые работали с системой в заданный период времени;
- Список пользователей, которые работали с системой в заданный период времени не менее установленного количества сеансов;
- Список пользователей, подключенных в настоящий момент к информационной базе;
- Список пользователей, ожидающих в настоящий момент ответ на запрос к информационной базе.
Вопрос 8. Список активных пользователей включает:
- Пользователей, работающих только в режиме конфигурирования;
- Пользователей, работающих только в режиме использования конфигурации (1C:Предприятие);
- Пользователей, работающих как в режиме конфигурирования, так и в режиме использования конфигурации (1С:Предприятие);
- Пользователей, работающих только в режиме отладки конфигурации.
Вопрос 9. Роль для конкретного пользователя назначается:
- В списке активных пользователей
- В списке пользователей
- В справочнике «Сотрудники организации»
- В ветви «Роли» дерева конфигурации
- В списке пользователей или справочнике «Сотрудники организации»
Вопрос 10. Роль для конкретного пользователя назначается:
- Только в режиме конфигурирования;
- Только в режиме использования конфигурации (1С:Предприятие);
- Только в режиме отладки конфигурации;
- Как в режиме конфигурирования, так и в режиме использования конфигурации (1С:Предприятие).
Вопрос 11. Справочник, построенный как иерархический список, в котором записи объединяются в группы, называется:
- Одноуровневый;
- Группа;
- Контрогенты;
- Многоуровневый.
Вопрос 12. Справочник, предназначенный для учета кадров предприятия:
Вопрос 13. Справочник, хранящий сведения о физических и юридических лицах (поставщиках, покупателях и т.д.), с которыми имеет дело организация:
- Номенклатура;
- Резервы;
- Контрагенты;
- Физические лица.
Вопрос 14. Предназначены для хранения сведений о множестве однотипных объектов, которые используются при ведении аналитического учета и для заполнения документов:
- Справочники;
- Константы;
- Регистры;
- Отчеты.
Вопрос 15. Справочник, построенный как простой список элементов называется:
- Одноуровневый;
- Многоуровневый;
- Простой;
- Сложный.
Вопрос 16. Какие закладки не предусмотрены в справочнике «Организации»?
- Основные;
- Адреса и телефоны;
- Коды;
- Сотрудники.
Вопрос 17. К справочникам, созданным пользователем, относятся:
- справочник «Валюты»;
- справочник «Классификатор единиц измерения»;
- справочник «Организации»;
- справочник «Статьи движения денежных средств».
Вопрос 18. К справочнику «Корреспонденция счетов» можно обратиться следующим образом:
- по кнопке «Ввести хозяйственную операцию» с командной панели главного меню программы;
- по закладке «Операции» на панели функций;
- по закладке «Общие сведения» в учетной политике;
- по кнопке «настройки параметров учета» на закладке «начало работы» на панели функций.
Вопрос 19. Основной интерфейс назначается конкретному пользователю:
- Только в режиме конфигурирования;
- Только в режиме использования конфигурации (1С:Предприятие»);
- Только в режиме отладки конфигурации;
- Как в режиме конфигурирования, так и в режиме использования конфигурации (1С:Предприятие).
Вопрос 20. Основной интерфейс для конкретного пользователя назначается:
- В списке активных пользователей;
- В списке пользователей;
- В справочнике «Сотрудники организации» или в справочнике «Физические лица»;
- В ветви «Интерфейсы» дерева конфигурации;
- В Плане видов обмена.
Вопрос 21. Промежуточное звено между аналитическими и синтетическими счетами:
- Субконто;
- Счет;
- Субсчета;
- нет правильного ответа.
Вопрос 22. Механизм проводок предназначенный для автоматического контроля вводимых операций:
- Корректные проводки;
- Монитор пользователя;
- Администрирование;
- Нет верного ответа.
Вопрос 23. Использование нескольких планов счетов обеспечивает:
- Ведение учета для группы предприятий с формированием консолидированной отчетности;
- Ведение учета в нескольких стандартах;
- Ведение параллельного учета в дополнительной валюте;
- Для первого и второго;
- Для первого, второго и третьего.
Вопрос 24. Количество счетов первого уровня в плане счетов:
- Не ограничено;
- Не может превышать 99;
- Не может превышать 255;
- Не может превышать 999.
Вопрос 25. Для ввода или просмотра предопределенных счетов необходимо:
- Обратиться к списку предопределенных счетов на закладке «Данные»;
- Обратиться к списку предопределенных счетов на закладке «Прочие»;
- Обратиться к списку предопределенных счетов через меню, вызываемое нажатием кнопки «Действия»;
- Сделать либо первое, либо второе;
- Сделать либо второе, либо третье.
Вопрос 26. Количество уровней субсчетов в плане счетов:
- Ничем не ограничено;
- Не может превышать 99;
- Не может превышать 255;
- Ограничено общей длиной кода счета.
Вопрос 27. В режиме «1С:Предприятие» допускается добавлять к счетам дополнительные аналитические разрезы (субконто):
- Только для предопределенных счетов;
- Только для счетов, не являющихся предопределенньми;
- Как для предопределенных, так и для непредопределенных счетов;
- Только для балансовых счетов;
- Только для забалансовых счетов.
Вопрос 28. Новый счет может быть введен в план счетов:
- Только в режиме «1С:Предприятие»;
- Только в режиме «Конфигуратор»;
- Как в режиме «1С:Предприятие», так и в режиме «Конфигуратор»;
- Только в том режиме, в котором был введен план счетов.
Вопрос 29. Необходимым условием для добавления нового аналитического разреза к счету является:
- Наличие объекта типа «Справочник», используемого в качестве аналитического разреза;
- Наличие объекта типа «Справочник», «Перечисление» или «Документ», используемого в качестве аналитического разреза;
- Наличие в плане видов характеристик характеристики, используемой в качестве аналитического разреза;
- Наличие измерения в регистре бухгалтерии, используемого в качестве аналитического разреза;
- Одно из условий, указанных в ответах 3 и 4.
Вопрос 30. Если организация начинает работу с 1 января 2014 года, то остатки по счетам вводятся:
- на 1.01.2014;
- 31.12.2013;
- на 1.12.2013;
- 1.01.2013.
Вопрос 31. В типовой конфигурации для целей бухгалтерского учета способ оценки МПЗ:
- Реализован только по средней стоимости;
- Устанавливается пользователем в параметрах учетной политики, путем выбора одного из вариантов: ФИФО, по средней стоимости;
- Устанавливается пользователем в параметрах учетной политики, путем выбора одного из вариантов: по средней стоимости;
- Устанавливается пользователем в параметрах учетной политики, путем выбора одного из вариантов: по средней стоимости или ФИФО.
Вопрос 32. Информация о счетах учета номенклатуры организаций хранится:
- В справочнике «Номенклатура»;
- В справочнике «Номенклатурные группы»;
- В регистре сведений «Основные спецификации номенклатуры»;
- В регистре сведений «Счета учета номенклатуры»;
- Внутри программы и недоступна для корректировки пользователем.
Вопрос 33. В записях регистра сведений «Счета учета номенклатуры» счета учета номенклатуры задаются:
- По видам номенклатуры для всего предприятия в целом;
- По видам номенклатуры и организациям предприятия;
- По видам номенклатуры, организациям предприятия и местам хранения;
- По видам номенклатуры, организациям предприятия и назначению использования;
- По видам номенклатуры, организациям предприятия, местам хранения и назначению использования.
Вопрос 34. В записях регистра сведений «Счета учета номенклатуры» счета учета номенклатуры задаются:
- Только для каждой номенклатурной позиции;
- Только для групп номенклатуры;
- Как для каждой номенклатурной позиции, так и для групп номенклатуры;
- Для каждой номенклатурной позиции, для групп номенклатуры и для всей номенклатуры в целом.
Вопрос 35. В записях регистра сведений «Счета учета номенклатуры» определяются правила:
- Бухгалтерского учета и налогового учета по налогу на прибыль;
- Бухгалтерского учета, налогового учета по налогу на прибыль и НДС;
- Бухгалтерского учета, налогового учета по налогу на прибыль, НДС и УСН;
- Бухгалтерского учета, налогового учета по налогу на прибыль, НДС, УСН и забалансового учета;
- Бухгалтерского учета, налогового учета по налогу на прибыль, НДС и забалансового учета.
Вопрос 36. Если в план счетов пользователем введены собственные субсчета учета номенклатуры, то:
- Их нельзя добавить в регистр сведений «Счета учета номенклатуры»;
- В регистр сведений «Счета учета номенклатуры» они могут быть добавлены но они не будут автоматически подставляться в документы типовой конфигурации;
- Их можно добавить в регистр сведений «Счета учета номенклатуры» и они будут автоматически подставляться в документы типовой конфигурации.
Вопрос 37. Список складов (мест хранения) представлен в типовой конфигурации при помощи объекта:
- Справочник;
- Перечисление;
- Регистр сведений;
- План видов характеристик;
- План видов обмена.
Вопрос 38. Список «Счета учета номенклатуры» представлен в типовой конфигурации объектом:
- Справочник;
- Регистр бухгалтерии;
- Регистр сведений;
- Документ;
- Журнал.
Вопрос 39. Метод списания запасов (ФИФО, по средней стоимости) устанавливается:
- Для каждой номенклатурной позиции;
- Для групп номенклатуры;
- Единым для всей номенклатуры;
- Первым и вторым способами;
- Всеми способами.
Вопрос 40. Приобретение объекта основных средств, не требующих монтажа, за плату отражается в бухгалтерском и налоговом учете документом типовой конфигурации:
- «Поступление товаров и услуг» с видом операции «Оборудование»;
- «Поступление товаров и услуг» с видом операции «Объекты строительства»;
- «Поступление товаров и услуг» с видом операции «Покупка, комиссия»;
- «Поступление товаров и услуг» с видом операции «Оборудование» или с видом операции «Объекты строительства»;
- «Поступление товаров и услуг» с видом операции «Оборудование» или с видом операции «Покупка, комиссия».
Что такое константы в 1с. Константы
Назначение, создание, возможные типы значений.
— Возможные способы для задания и получения значений констант в процессе эксплуатации системы.
Назначение, создание, возможные типы значений.
Цитата из книги «Конфигурирование и администрирование» пакета 1С:Предприятие:
В системе 1С:Предприятие константы предназначены для хранения постоянной или условно-постоянной информации. Такая информация либо совсем не изменяется в процессе деятельности предприятия, либо изменяется достаточно редко. Наиболее простой пример подобной информации — название организации, которое, как правило, не меняется.
Такая трактовка применения констант является довольно узкой. Более верным будет трактовать константы следующим образом:
«Константы — это суперглобальные переменные, значения которых сохраняются между сеансами работы с системой и одинаковы для всех пользователей системы.»
Константы применяются для возможности создания универсальных конфигураций, которые легко адаптировать для применения в нескольких организациях. Константы хранят значения которые могут применяться в различных частях системы. Цитата из книги «Конфигурирование и администрирование»:
Основная причина использования констант заключается в том, что в них один раз заносится какая-либо информация, которая затем может многократно использоваться при формировании документов, в расчетах, при построении отчетных форм. Информация, внесенная в константу время от времени может редактироваться, но сути константы это не меняет: единожды введенное в систему, значение константы используется многократно.
Константа может принимать базовые типы значений:
строка (константа не может иметь тип «Строка неограниченной длины»);
число;
дата;
Также константа может принимать в качестве значения объекты типообразующих объектов метаданных:
справочник;
документ;
перечисление;
счет;
«план счетов»;
«вид субконто»;
«вид расчета»;
«календарь».
Также константа может иметь «неопределенный» тип. В этом случае тип значения определяется программно при установке константы.
Константы определяются в «Конфигураторе» в окне «Конфигурация» в ветке «Константы».
Возможные способы для задания и получения значений констант в процессе эксплуатации системы.
Стандартным (штатным) способом заполнения или просмотра констант является использование окна «Список констант», которое можно открыть через меню «Операции» — «Константы» (пункт меню для вызова списка констант может быть переопределен при редактировании интерфейса конфигурации).
Программно работать с константами можно следующим образом. Получение значения константы:
Установка значения константы:
Итак в 1С есть справочники. Например, справочник товаров (номенклатуры). Там мы укажем список товаров, которыми торгует наша организация.
С помощью такого справочника мы можем организовать прайс-лист для клиентов, а также отчет о продажах для руководства.
Товары бывают разные. Например, продукты и химия. Что делать, если руководитель попросит сделать отчет – сколько денег мы заработали на продуктах, а сколько на химии?
Легко! – ответим мы. Нужно добавить справочник Видов товаров, а в справочнике Номенклатура добавить такой реквизит. Теперь когда мы вводим новый товар – нужно будет выбрать вид товара.
Однако девочки не рады такому нововведению – ведь теперь нужно им заполнять целое дополнительное поле, а у них и так много работы и они ничего не успевают. Да и вообще! – говорят они – у нас 900 наименований продуктов, и только 50 наименований химии! Даже дураку ясно, что нужно по умолчанию ставить вид товара продукты.
Отлично! – отметим мы. И… что делать?

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

Мало добавить параметр сеанса 1С, потому что если он не заполнен, то программа покажет ошибку.
Заполнение (установка) параметров сеанса 1С должна производиться при старте 1С в режиме Предприятие. Нажмите правой кнопкой на верхнюю ветку конфигурации (программисты называют ее «Голова») и выберите пункт меню Открыть модуль сеанса.
В модуле уже может быть функция УстановкаПараметровСеанса(). Если таковой еще нет, то выберите это события в соответствующем выпадающем списке. Вот пример установки значения параметра сеанса 1С:
ПараметрыСеанса.НужныйПараметр = Знч; //запись, один раз в самом начале
Знч = ПараметрыСеанса.НужныйПараметр; //чтение, строго после записи.
Описание констант 1с 8.
Обращение к константам из программы на встроенном языке производится очень просто, хотя этот способ и отличается от версии 7.7
// чтение значения из константы Название = Константы.НазваниеОрганизации.Получить(); // запись нового значения в константу Константы.НазваниеОрганизации.Установить(НовоеНазвание);
Обратите внимание на слово Константы (а не Константа, как было в версии 7.7). Через такую конструкцию мы обращаемся к объекту КонстантыМенеджер (заметьте, что применяется множественное число), который позволяет затем обратиться к менеджеру конкретной константы по ее имени.
Если расшифровать приведенный выше пример, то станет более понятна взаимосвязь объектов:
//получаем объект для управления списком констант КонстантыМенеджер = Константы; //получаем объект для управления одной константой КонстантаМенеджер = КонстантыМенеджер.НазваниеОрганизации; //считываем значение константы из базы данных Значение — КонстантаМенеджер.Получить(); //записываем новое значение константы в базу данных КонстантаМенеджер.Установить(НовоеЗначение);
Как мы увидим дальше, такая схема распространяется на все объекты конфигурации и необходимо ее понимать. Объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументыМенеджер и аналогичные им предназначены для обращения к списку менеджеров объектов конфигурации. Свойствами этих объектов являются другие объекты типа КонстантаМенеджер, СправочникМенеджер и ДокументМенеджер. В свою очередь эти объекты предназначены для обращения к менеджеру одного объекта конфигурации, например, менеджеру справочника Номенклатура.
Существуют свойства глобального контекста, ссылающиеся на объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументМенеджер и т.д., они называются односложно: Константы, Справочники, Документы. Это позволяет упростить написание программы и следующие примеры это демонстрируют:
Назв = Константы.НазваниеОрганизации.Получить(); СпрСотр = Справочники.Сотрудники; ВсеДолжности = Справочники.Должности.Выбрать(); ДокНакл = Документы.РасходнаяНакладная;
Работа с константами производится с помощью нескольких объектов, и необходимо понимать их взаимосвязь, потому что подобная ситуация повторяется почти с каждым объектом конфигурации.
Ниже дано описание объектов для работы с константами:
Объект предоставляет доступ к списку констант. Через этот объект можно перебрать все константы с помощью конструкции «Для Каждого» или получить объект КонстантаМенеджер для управления конкретной константой. Кроме того, данный объект позволяет создать объект КонстантыНабор для одновременного чтения и записи сразу нескольких констант.
Менеджер константы обеспечивает доступ к конкретной константе. Через него можно прочитать и установить ее значение с помощью методов Получить и Установить.
Через этот объект можно получить доступ сразу к нескольким константам, но необязательно всем существующим в
Схематично взаимосвязь объектов для работы с константами можно отобразить следующим образом:
Константы в 1С используются как правило для хранения одного значения в базе данных. Обычно в константах хранят редко или совсем не изменяемые значения, но которые часто используют. Например, версия программы, различные настройки, наименование организации, основные ответственные лица и т.д.
Для каждой константы указывается ее имя и тип данных. Обращение к константам в программном модуле осуществляется очень просто:
1. Чтение значения константы
// чтение значения Константы
Название = Константы. НазваниеОрганизации. Получить();
Обратите внимание на слово «Константы», а не «Константа», как было в версии 1С 7.7.
2. Запись нового значения константы
Для записи (установки) нового значения константы используется методУстановить()
// запись нового значения Константы
Константы . НазваниеОрганизации. Установить( «ООО Рога и копыта» );
3. Работу с набором констант
Иногда может возникнуть необходимость прочитать или записать значения группы из нескольких констант. Для таких ситуаций можно воспользоваться так называемым набором констант. При использовании набора все входящие в него константы считываются и записываются вместе в одной транзакции, т.е. операция над несколькими константами производится одновременно.
//создаем набор из трех констант
//обратите внимание, что мы лишь создаем набор констант и пока не знаем их значения
Набор = Константы. СоздатьНабор( «Руководитель,НазваниеОрганизации,АдресОрганизации» );
Так как при работе с набором констант мы может изменить (записать) значения всех констант набора одновременно, то сначал нам необходимо установить каждой константе новое значение, а затем с помощью методаЗаписать()произвести их одновременную запись.
//устанавливаем значение констант в наборе (не в базе)
Набор . Руководитель = «Иванов И.И.» ;
Набор . НазваниеОрганизации = «ООО Новые рога и копыта» ;
Набор . АдресОрганизации = «Россия, г. Москва, Кремль» ;
Набор . Записать(); //записываем в базу сразу значения трех констант
4. Сравнение со значением константы в запросах
Константы можно использовать в запросах. Например, нам может потребоваться в запросе сравнить данные со значением константы. В данном примере мы выбираем записи из справочника Номенклатура, у которых значение реквизита Код равно значению нашей константы КонстЧисло.
«ВЫБРАТЬ
| НашеЧисло.Значение,
| Номен.Код,
|ИЗ
| Константа.КонстЧисло КАК НашеЧисло,
| Справочник.Номенклатура КАК Номен
|ГДЕ
| Номен.Код = НашеЧисло.Значение»
Более подробно язык запросов 1С будет описан в следующих материалах справочника 1С.
Есть вопросы, что то нужно осветить подробнее, спрашивайте в комментариях.
Какие параметры определяются для каждой константы
Enums или перечисления представляют тип данных, который позволяет определить набор логически связанных констант. Для определения перечисления применяются ключевые слова enum class . Например, определим перечисление:
enum class Day
Данное перечисление Day представляет день недели. Внутри перечисления определяются константы. В данном случае это названия семи дней недели. Константы определяются через запятую. Каждая константа фактически представляет объект данного перечисления.
fun main() < val day: Day = Day.FRIDAY println(day) // FRIDAY println(Day.MONDAY) // MONDAY >
Классы перечислений как и обычные классы также могут иметь конструктор. Кроме того, для констант перечисления также может вызываться конструктор для их инициализации.
enum class Day(val value: Int) < MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(100500) >fun main() < val day: Day = Day.FRIDAY println(day.value) // 5 println(Day.MONDAY.value) // 1 >
В примере выше у класса перечисления через конструктор определяется свойство value. Соответственно при определении констант перечисления необходимо каждую из этих констант инициализировать, передав значение для свойства value.
При этом перечисления — это не просто список значений. Они могут определять также свойства и функции. Но если класс перечисления содержит свойства или функции, то константы должны быть отделены точкой с запятой.
enum class Day(val value: Int) < MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7); fun getDuration(day: Day): Int< return value - day.value; >> fun main() < val day1: Day = Day.FRIDAY val day2: Day = Day.MONDAY println(day1.getDuration(day2)) // 4 >
В данном случае в перечислении определена функция getDuration() , которая вычисляет разницу в днях между двумя днями недели.
Встроенные свойства и вспомогательные методы
Все перечисления обладают двумя встроенными свойствами:
- name : возвращает название константы в виде строки
- ordinal : возвращает порядковый номер константы
enum class Day(val value: Int) < MONDAY(1), TUESDAY(2), WEDNESDAY(3), THURSDAY(4), FRIDAY(5), SATURDAY(6), SUNDAY(7) >fun main() < val day1: Day = Day.FRIDAY println(day1.name) // FRIDAY println(day1.ordinal) // 4 >
Кроме того, в Kotlin нам доступны вспомогательные функции:
- valueOf(value: String) : возвращает объект перечисления по названию константы
- values() : возвращает массив констант текущего перечисления
fun main()
Анонимные классы и реализация интерфейсов
Константы перечисления могут определять анонимные классы, которые могут иметь собственные методы и свойства или реализовать абстрактные методы класса перечисления:
enum class DayTime < DAY< override val startHour = 6 override val endHour = 21 override fun printName()< println("День") >>, NIGHT < override val startHour = 22 override val endHour = 5 override fun printName()< println("Ночь") >>; abstract fun printName() abstract val startHour: Int abstract val endHour: Int > fun main() < DayTime.DAY.printName() // День DayTime.NIGHT.printName() // Ночь println("Day from $to $") >
В данном случае класс перечисления DayTime определяет абстрактный метод printName() и две переменных — startHour (начальный час) и endHour (конечный час). А константы определяют анонимные классы, которые реализуют эти свойства и функцию.
Также, классы перечислений могут применять интерфейсы. Для этого для каждой константы определяется анонимный класс, который содержат все реализуемые свойства и функции:
interface Printable < fun printName() >enum class DayTime: Printable < DAY< override fun printName()< println("День") >>, NIGHT < override fun printName()< println("Ночь") >> > fun main() < DayTime.DAY.printName() // День DayTime.NIGHT.printName() // Ночь >
Хранение состояния
Нередко перечисления применяются для хранения состояния в программе. И в зависимоси от этого состояния мы можем направить действие программы по определенному пути. Например, определим перечисление, которое представляет арифметические операции, и функцию, которая в зависимости от переданной операции выполняет то или иное действие:
fun main() < println(operate(5, 6, Operation.ADD)) // 11 println(operate(5, 6, Operation.SUBTRACT)) // -1 println(operate(5, 6, Operation.MULTIPLY)) // 30 >enum class Operation < ADD, SUBTRACT, MULTIPLY >fun operate(n1: Int, n2: Int, op: Operation): Int < when(op)< Operation.ADD ->return n1 + n2 Operation.SUBTRACT -> return n1 - n2 Operation.MULTIPLY -> return n1 *n2 > >
Функция operate() принимает два числа — операнды операции и тип операции в виде перечисления Operation. И в зависимоси от значения перечисления возвращает либо сумму, либо разность, либо произведение двух чисел.
Константа
Константы — это прикладные объекты конфигурации. Они позволяют хранить в информационной базе данные, которые не изменяются во времени, или изменяются очень редко. Каждая константа позволяет хранить одно значение.
Например, в константе может храниться наименование предприятия, его ИНН и другая информация. В прикладном решении может быть создано произвольное количество констант:

Форма констант
Для того, чтобы пользователь мог просматривать и изменять значения констант, система может автоматически сгенерировать форму константы:

Наряду с этим разработчик имеет возможность создать собственную форму, которую система будет использовать вместо формы по умолчанию: