1с 8 как получить значение константы
Перейти к содержимому

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

  • автор:

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

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

Полный синтаксис (нажмите, чтобы раскрыть)

Константы

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

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

Оглавление (нажмите, чтобы раскрыть)

  • Как получить и изменить значение константы
  • Работа с константой через менеджер значений
  • Работа с константами через набор
  • Как получить значения всех констант
  • Скачать и выполнить эти примеры на компьютере
&НаСервере Процедура ВыполнитьКодНаСервере() /// Как получить и изменить значение константы в 1с 8.3, 8.2 // менеджер значений создаётся и используется неявно Сообщить(Константы.ЛучшийКлиент.Получить()); Константы.ЛучшийКлиент.Установить( Справочники.Клиенты.НайтиПоНаименованию("Марина") ); /// Работа с константой через менеджер значений в 1с 8.3, 8.2 // создаём и используем менеджер значений константы напрямую ЛюбимаяЕда = Константы.ЛюбимаяЕда.СоздатьМенеджерЗначения(); // читаем значение ЛюбимаяЕда.Прочитать(); Сообщить(ЛюбимаяЕда.Значение); // меняем значение ЛюбимаяЕда.Значение = Справочники.Еда.НайтиПоНаименованию( "Крыжовник"); // записываем значение ЛюбимаяЕда.Записать(); /// Работа с константами через набор в 1с 8.3, 8.2 // подходит для работы сразу с группой констант НазванияКонстант = "ЛюбимаяЕда, ЛучшийКлиент"; НаборКонстант = Константы.СоздатьНабор(НазванияКонстант); // читаем набор констант НаборКонстант.Прочитать(); Сообщить(НаборКонстант.ЛюбимаяЕда); Сообщить(НаборКонстант.ЛучшийКлиент); // меняем значения констант НаборКонстант.ЛюбимаяЕда = Справочники.Еда.НайтиПоНаименованию( "Чипсы"); НаборКонстант.ЛучшийКлиент = Справочники.Клиенты.НайтиПоНаименованию( "Пётр"); // записываем набор НаборКонстант.Записать(); /// Как получить значения всех констант в 1с 8.3, 8.2 Для Каждого Константа Из Константы Цикл Сообщить(Строка(Константа) + " = " + Константа.Получить()); КонецЦикла; КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере

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

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

Полезные функции при работе с управляемыми формами

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

Как получить значение перечисления в тонком клиенте?

При этом следует обратить внимание на последнюю букву в слове « ПеречислениЕ».

Как передать результат запроса с сервера на клиент?

В большенстве типовых конфигураций есть:

Как получить значение реквизита на клиенте?

Как привязать сообщение к реквизиту на форме?

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = «Не заполен контрагент»;

Сообщение.Поле = «Объект.Контрагент»;

Сообщение.Сообщить();

Тэги

  • Блог пользователя Nicholas
  • Добавить комментарий

Константы в 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С

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

&НаСервереБезКонтекста Процедура ПолучитьНаСервере() НазваниеОрганизации = Константы.НазваниеОрганизации.Получить(); Сообщить(НазваниеОрганизации); КонецПроцедуры &НаКлиенте Процедура Получить(Команда) ПолучитьНаСервере(); КонецПроцедур

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

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

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

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

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

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

&НаСервереБезКонтекста Процедура УстановитьНаСервере() Константы.ПроцентНалогаНаПрибыль.Установить(25); КонецПроцедуры &НаКлиенте Процедура Установить(Команда) УстановитьНаСервере(); КонецПроцедуры 

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

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

Более подробно и основательно начальные вопросы программирования в 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С 8.2 – 8.3

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

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

//получаем объект для управления списком констант
КонстантыМенеджер = Константы ;
//получаем объект для управления одной константой
КонстантаМенеджер = КонстантыМенеджер . НазваниеОрганизаци и;
//считываем значение константы из базы данных
Значение - КонстантаМенеджер . Получить ( ) ;
//записываем новое значение константы в базу данных
КонстантаМенеджер . Установить ( НовоеЗначение ) ;

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

Существуют свойства глобального контекста, ссылающиеся на объекты типа КонстантыМенеджер, СправочникиМенеджер, ДокументМенеджер и т.д., они называются односложно: Константы, Справочники, Документы. Это позволяет упростить написание программы и следующие примеры это демонстрируют:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *