1с 8 как получить значение константы

от admin

1с 8 как получить значение константы

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Константы

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

В программных модулях для общих действий над заданными в конфигураторе константами (получение формы для управления константами, создание набора констант) служит объект КонстантыМенеджер. Для одновременного изменения значений определенной группы констант следует пользоваться объектом КонстантыНабор. Для чтения и записи значения определенной константы можно обращаться к объекту КонстантаМенеджер.<Имя константы>.

  • Как получить и изменить значение константы
  • Работа с константой через менеджер значений
  • Работа с константами через набор
  • Как получить значения всех констант
  • Скачать и выполнить эти примеры на компьютере

Константы в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Константы в 1С 8.3

В платформе 1С 8.3 имеется объект метаданных Константы. Смысл констант в языке программирования 1С несколько другой, чем в других языках. В 1С константы хранят постоянную или условно постоянную информацию, которая редко изменяется. Здесь я опираюсь на слово «изменяется». Если в других языках программирования пользователь не может менять константу, то в платформе 1С имеется такая возможность, но по определению делать он это должен крайне редко. В этой статье мы будем учиться работать с константами: научимся создавать их, научимся работать с константами в командном интерфейсе 1С 8.3, узнаем, что такое форма констант и научимся программно обращаться к константе: получать значение константы и записывать константу.

Создание константы в 1С

Создадим несколько констант 1С. Обратите внимание на ветку Константы в дереве метаданных конфигуратора 1С, это именно то место, где в 1С расположен список констант. Найдем эту ветку в дереве, выделим её, и вызовем правой кнопкой мышки контекстное меню, в котором нас интересует команда «Добавить».

Где в 1С константы

После выполнения этой команды, константа будет создана, а в правой части рабочего стола откроется палитра свойств новой константы. Здесь мы можем указать название константы и её тип. Пусть наша первая константа будет называться НазваниеОрганизации (тип строка (200)).

Константа 1С и палитра свойств

Создадим еще несколько констант с примитивными типами.

Дата начала работы организации (тип Дата).

Константа 1С и палитра свойств

Процент налога на прибыль (тип число)

Константа 1С и палитра свойств

Константы в командном интерфейсе 1С

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

Объект не включен ни в одну подсистему

Можно это сообщение проигнорировать и работать дальше (тогда доступ к значениям константан будет затруднен, но критических проблем не возникнет), а можно добавить константы в подсистему 1С.

В моей учебной конфигурации имеется подсистема НСИ, в эту подсистему я и добавлю все новые константы

Сделать это можно двумя способами.

Первый. Открыть редактор нужной подсистемы, и на закладке Состав включить вхождение нужной константы в подсистему.

 Включение константы в подсистему

Второй. У константы вызвать контекстное меню, в котором выполнить команду «Дополнительно».

Контекстное меню константы

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

Контекстное меню константы

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

Константы в пользовательском приложении 1С

Константы в пользовательском приложении 1С

Разберем, почему они там оказались.

Во-первых, если мы войдем в командный интерфейс подсистемы НСИ, в которую я добавил все константы, то найдем их в группе команд «Панель действий. Сервис», в эту группу платформа поместила команды на открытие констант автоматически, после того, как мы добавили константы в подсистему.

Константы в командном интерфейсе

Во-вторых, у каждой константы имеется свойство Использовать стандартные команды, это свойство отвечает за то, будут ли использоваться стандартные команды работы с константой (открытие формы редактирования) или нет.

Свойство константы использовать стандартные команды

Например, если мы снимем это свойство у константы «Процент налога на прибыль».

Свойство константы использовать стандартные команды

То команда на открытие этой константы исчезнет, как и из командного интерфейса подсистемы.

Константы в командном интерфейсе

Так и из командного интерфейса пользовательского приложения.

Константы в командном интерфейсе

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

Форма ввода константы

Форма констант 1С

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

Создадим форму констант. Для этого нужно выделить ветку метаданных Константы, вызвать контекстное меню, и выполнить команду «Создать форму констант…» этого меню.

Создание формы констант

Откроется конструктор общих форм.

Конструктор общих форм для формы констант

Где советую обратить внимание на Тип Формы, и на свойство Использовать стандартные команды. Первое указывает, что это форма константа, а при установке второго будут созданы стандартные команды на открытие этой формы.

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

Выбор констант для общей формы

После того, как выбрали нужные константы, нажимаем кнопку Готово, и управляемая форма констант будет создана.

Форма констант 1С

Замечу, что форма добавилась в ветку Общие формы ветки Общие дерева метаданных 1С.

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

Контекстное меню формы констант

В открывшемся окне включим форму констант в подсистему 1С.

Включение формы констант в подсистему

Также эту форму можно добавить в подсистему, напрямую во время редактирования подсистемы.

Включение формы констант в подсистему

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

Как в командном интерфейсе подсистемы в конфигураторе.

Форма констант в командном интерфейсе в конфигураторе

Так и в пользовательском режиме

Форма констант в командном интерфейсе пользовательского приложения

Если эту форму открыть, то в ней будут поля ввода для всех констант, которые мы добавили при создании этой формы.

Открытая форма констант

Что делать, если форма уже создана, но позже добавили новую константу, например «ИНН Организации».

Новая константа 1С

Тогда следует добавить новую константу на форму. Для этого, нужно открыть форму на редактирование, развернуть в закладке Реквизиты дерево НаборКонстант, найти в этом дереве новую константу и перетащить её в элементы формы.

Добавление новой константы на форму констант

Как получить константу 1С

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

В этом случае процедура Получить(Команда) это обработчик команды, которая вызывает процедуру ПолучитьНаСервере. В этой процедуре используется объект Константы, который имеет тип КонстантыМенеджер, и посредством которого можно программно обратиться к любой константе.

Читать:
Xmp профиль оперативной памяти ddr4 что это

Выбор констант менеджера констант

Константы.НазваниеОрганизации – это уже менеджер конкретной константы, у которого есть метод Получить(), при помощи которого можно получить значение константы.

Вы заметили, что с менеджером команды я работаю в серверном контексте (под директивой &НаСервереБезКонтекста, но можно использовать и директиву &НаСервере ). Это потому что менеджер констант имеете доступность Сервер, Толстый клиент и прочее «тяжелые» режимы. В тонком клиенте нельзя обратиться к менеджеру констант!

Установить значение константы

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

В параметрах метода менеджера Установить необходимо указать новое значение константы. Замечу, тип значения в параметре должен совпадать с типом константы. Точно также как и с получением значения, устанавливать значение константы нужно в серверном контексте.

Другие статьи по теме конфигурирования:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Константы в 1с

Константы в 1с. Использование констант и перечислений в программировании на 1с : Предприятии 8.

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

Константы в 1с

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

Практическая часть

Создадим Константу НазваниеОрганизации. Тип данных Строка длинна 50 символов.

Константы в 1с

Объект конфигурации Константы имеют форму по умолчанию. Эту форму конфигурация создает без участия программиста.

Константы в 1с

Вы можете самостоятельно изменить форму Константы. Для этого при из Контекстного меню выбираете команду Создать форму константы. Далее редактируете Форму по собственному усмотрению.

Константы в 1с

Мы внесли добавили дополнительный реквизит типа строка. Создастся форма константы в Разделе-Общие Формы.

Константы в 1с

После этого для Константы надо добавить форму НазваниеОрганизации.

Константы в 1с

В результате получим следующую форму константы.

Форма объекта 1с

Создадим еще одну Константу ИНН организации.Тип Число длинна поставим 15. Форму оставим по умолчанию. Проверим форму созданную для этой константы.

Форма объекта

Форма Константы НазваниеОрганизации осталось прежней.

форма объекта

Получить значение константы 1с

Константу, как и любой объект, в 1с можно использовать по имени и при помощи команды Получить(). Функция на сервере.

2.4. Обращение к значениям констант из встроенного языка

Для того чтобы обратиться к значениям констант, необходимо воспользоваться свойством глобального контекста Константы. Тип данных этого свойства – КонстантыМенеджер, который является по сути дела коллекцией значений.

2.4.1. Менеджер константы

Обратиться к конкретной константе можно, записав следующее выражение: Константы.Имя.

Такая запись дает нам доступ к объекту типа КонстантаМенеджер. Этот объект имеет два метода:

Получить();

Установить(<Значение>);

Эти методы позволяют получить и записать значение константы.

Приведем примеры обращения к константам, которые разместим в отдельной процедуре ПримерыОбращенияККонстантам() Модуля приложения.

Для того чтобы открыть Модуль приложения нужно сначала выделить объект Конфигурация и, используя правую кнопку мыши, выбрать одноименный пункт меню. Работа с данным Модулем более подробно разобрана в Приложении A.

Вызов процедуры ПримерыОбращенияККонстантам() мы расположим в теле процедуры ПриНачалеРаботыСистемы(), для того чтобы ее вызов происходил при каждом запуске Конфигурации в режиме «1С: Предприятие»:

// Модуль приложения //ПримерыОбращенияККонстантам() — содержит примеры //обращения к Константам Процедура ПримерыОбращенияККонстантам() // Если это первый запуск конфигурации, то константа // содержит в качестве значения 1 января 0001 года. Если Константы.ДатаРегистрации.Получить()=‘00010101’ Тогда // Тогда установим 1 января текущего года Константы.ДатаРегистрации.Установить (НачалоГода(ТекущаяДата())); КонецЕсли; // распечатаем значения констант: сообщить(«Дата регистрации:»+Константы.ДатаРегистрации.Получить()+».»); Сообщить(«Наименование организации:»+Константы.НаименованиеОрганизации.Получить()+».»); КонецПроцедуры Процедура ПриНачалеРаботыСистемы() //Примеры: ПримерыОбращенияККонстантам(); КонецПроцедуры

К этому тексту мы сделаем одно пояснение.

Часто бывает необходимо понять, что ввел пользователь в какой-то реквизит – там что-то есть или там «пусто»?

Когда Вы в Конфигураторе создаете какой-либо реквизит, то система при реструктуризации ИБ не только выделяет место, но и записывает в него начальное значение:

Для типа Булево, это будет Ложь.

Для чисел – это 0.

Для строк – это «» , или строка, содержащая все пробелы.

Для даты – это «точка отсчета»: ‘00010101’.

Если Константы.ДатаРегистрации.Получить()=‘00010101’ Тогда

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

2.4.2. Набор констант

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

Несмотря на то, что наш пример учебный, такой подход (считывание и запись по одному значению) нельзя признать оптимальным. Поэтому во встроенном языке существуют способы, позволяющие считывать и записывать набор значений, выполняя необходимые действия по чтению и записи за одну операцию обращения к ИБ.

Сначала набор необходимо будет создать:

НаборКонстант = Константы.СоздатьНабор(«Список констант»);

При этом метод СоздатьНабор() создаст объект типа «КонстантыНабор». Свойствами этого объекта будут все имена констант, которые вошли в список констант (перечисляются через запятую), переданный методу СоздатьНабор() в качестве параметра.

Похожие статьи