Тема 4 Константы
Цель:
1) познакомится с понятием «константа», «периодическая константа» в системе 1С;
2) получить и закрепить навыки создания констант, в том числе периодических;
3) получить и закрепить навыки использования методов работы с константами в программных модулях.
Пояснения к работе
Константа – это агрегатный тип данных, средство работы с постоянными (условно постоянными) величинами. В константах хранится информация, характеризующая конфигурацию в целом, которая может быть как постоянной, так и изменяться с той или иной периодичностью.
Основная причина использования констант заключается в том, что в них один раз заносится какая–либо информация, которая затем может многократно использоваться при формировании документов, в расчетах, при построении отчетных форм. Информация, внесенная в константу время от времени может редактироваться, но сути константы это не меняет: единожды введенное в систему, значение константы используется многократно.
Рассмотрим такой пример. Наиболее часто на документах предприятия встречается подпись директора и главного бухгалтера. Естественно, что подписи эти должностные лица должны ставить самостоятельно. Но помимо самой подписи, в документах требуется ее расшифровка – фамилия подписавшего документ. Конечно, можно ввести фамилии директора и главного бухгалтера непосредственно в формы документов. Но, если какая–либо из фамилий изменится, то придется вновь редактировать все бланки документов и исправлять фамилии. Поэтому гораздо удобнее создать в Конфигураторе 2 константы – для хранения фамилий директора и главного бухгалтера, ввести эти фамилии в константы один раз, а в многочисленных бланках документов использовать идентификаторы констант для получения их значений. При смене директора или главного бухгалтера достаточно внести изменения только в константы – ввести и них новые фамилии – и все изменения автоматически будут отражены в тех местах, где эти константы используются.
Константы могут быть периодическими или нет (это задается в конфигураторе при их создании). Периодические константы – это константы, значения которых связаны с датой. При изменении значения периодической константы старое значение сохраняется, просто новое значение действует с указанной даты, а старое до указанной даты.
Пример:
// Изначально значение периодической константы Константа.ИмяДиректора было – "Иванов И. И.". В некоторый момент директор сменился.
Константа.ИмяДиректора.Установить('01.05.96', "Петров П.П.");
// Данный оператор устанавливает новое значение периодической константы с даты '01.05.96', но старое значение – "Иванов И. И." сохраняется до этой даты и может быть получено, например, следующей строкой текста программы:
ПрежнДирект = Константа.ИмяДиректора.Получить('01.01.96');
Конфигуратор системы 1С:Предприятие позволяет создавать практически неограниченное количество констант для хранения любой нужной информации.
Следует обговорить, что в Конфигураторе создастся только описание константы как места для хранения какой–либо информации. Но в данном контексте для простоты будет использоваться термин «константа».
Для создания константы необходимо запустить 1С в режиме Конфигуратор, открыть окно Конфигурация вкладка Метаданные. Щелкнуть правой кнопкой мыши на агрегатном типе Константы и в появившемся контекстном меню выбрать пункт Новая константа. На экране появится окно Свойства константы (рисунок 4.1), где необходимо задать реквизиты создаваемой константы. На вкладке Общие:
Идентификатор – имя константы. Представляет собой строку длинной не более 128 символов, состоящую из букв, цифр и знаков подчеркивания. Не должен начинаться с цифры и содержать пробелы. Идентификатор позволяет обращаться к константе из программных модулей.
Комментарий – краткое описание объекта.
Тип значения – устанавливает, значение какого типа может быть данный объект.
Длина – максимальное количество позиций, которое отводится для ввода значения объекта. Длина указывается только для значений типа Строка и Число. Для значения типа Дата его длина всегда равна 8 (ДД.ММ.ГГ), а для значений типа Справочник и Документ указания длины значения не требуется.
Точность –устанавливает максимально возможное количество знаков после десятичной точки для числового реквизита.
На вкладке Дополнительные:
Разделять триады – устанавливает признак разделения триад при отображении значения константы.
Неотрицательный – устанавливает признак неотрицательного значения константы.
Периодический – устанавливает признак периодического константы (каждое новое значение объекта привязывается к дате его установки.
Вкладка Права предназначена для управления правами.
После создания константы ее значение можно задать в режиме Предприятие через пункт Константы меню Операции.
Средства языка предоставляют возможность непосредственного доступа к созданным в Конфигураторе названиям констант в любом программном модуле, т. к. константы принадлежат глобальному контексту задачи. Работа с периодическими константами осуществляется при помощи методов Получить и Установить или при помощи специального агрегатного типа данных – Периодический. Работа с непериодическими константами осуществляется непосредственно через их идентификаторы (названия).
Использование непериодических констант в синтаксисе языка аналогично глобальным переменным, т. е. идентификаторы непериодических констант могут размещаться в левой и правой части оператора присваивания, в выражениях, быть параметрами методов, процедур или функций в любом программном модуле.
В качестве имени константы обязательно должно выступать полное имя конкретной константы, как оно объявлено в конфигураторе. Имя константы записывается через точку после ключевого слова Константа, т. е. полное имя константы записывается следующим образом:
Константа.<Имя_константы>
где <Имя_константы> – название конкретной константы, как оно объявлено в окне Конфигурация вкладка Метаданные конфигуратора.
Пример:
// Пример работы с непериодическими константами:
Константа.Организация = "АО СПЕЦСТРОЙКОНСЕРВБАНК";
Константа.Адрес = "г.Москва, Вернадского, 523, 25";
Р_Счет = Константа.НашСчет;
// операторы
Если Всего > Константа.МинимальнаяЗарплата Тогда
// операторы
Иначе
// операторы
КонецЕсли;
Методы констант
НазначитьТип(<ИмяКонстанты>, <ИмяТипа>, <Длина>, <Точность>) – позволяет назначить тип для константы, которой в конфигураторе назначен тип Неопределенный.
Параметры:
<ИмяКонстанты> – строковое выражение – название константы неопределенного типа, как она названа в конфигураторе.
<ИмяТипа> – строковое выражение – название типа данных (или Вид субконто), который назначается константе. Например: Строка, Число, Справочник.Товары, Документ.РасходнаяНакладная и т. п.
<Длина> – необязательный параметр. Длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> – необязательный параметр. Число знаков числа после десятичной точки. Имеет смысл только при задании числового типа.
Пример:
Константа.НазначитьТип("ТМЦ", "Справочник.Товары");
УстановитьАтрибут(<ИмяРеквизита>, <3начение>) – позволяет задать значение константы по имени идентификатора, как оно задано в конфигураторе
Параметры:
<ИмяРеквизита> – строковое выражение, содержащее имя константы, как оно задано в конфигураторе.
<3начение> – выражение, содержащее устанавливаемое значение константы.
Пример:
Константа.УстановитьАтрибут("ФлагЗапретаРедактирования", 1);
ПолучитьАтрибут(<ИмяАтрибута>) – позволяет получить значение константы по идентификатору, как оно задано в метаданных.
Параметры:
<ИмяАтрибута> – строковое выражение, содержащее имя константы, как оно задано в конфигураторе.
Возвращаемое значение – значение константы <ИмяАтрибута>.
Пример:
ФлЗапрРед = Константа.ПолучитьАтрибут("ФлагЗапретаРедактирования");
Методы периодических констант
Получить(<Дата>) – возвращает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.
Параметры:
<Дата> – выражение со значением требуемой даты.
Возвращаемое значение – значение константы на заданную дату.
Пример:
// Константа.РазмерКомпенсации – периодическая
// поэтому получим значение этой константы на дату документа
РазмерДК = Константа.РазмерКомпенсации.Получить(ДатаДок);
Если РазмерДК <> 0 Тогда
Результат = РазмерДК;
Иначе
// операторы
КонецЕсли;
Установить(<Дата>, <3начение>) – устанавливает значение константы на определенную дату. Данный метод можно использовать только для периодических констант.
Параметры:
<Дата> – выражение со значением требуемой даты.
<3начение> – новое значение константы.
Пример:
Константа.РасчетныйСчет.Установить('01.07.96', "77889001");
Константа.Директор.Установить('01.01.85', "Иванов П.С.")
В конфигурации, созданной на прошлом занятии, создайте следующие константы:
Идентификатор – Директор, Синоним и Комментарий – Директор, Тип – Строка, Длина – 30, Периодический – установлен;
Идентификатор – ГлБух, Синоним и Комментарий – Главный бухгалтер, Тип – Строка, Длина – 30, Периодический – установлен.
Сохраните конфигурации и запустите 1С в режиме Предприятие. В меню Операции выберите пункт Справочники и задайте конкретные значения констант.
Задание:
В конфигурациях, созданных на прошлых занятиях, по теме «Работа со справочниками» для перечисленных ниже вариантов создать указанные константы и задать им указанные значения. В глобальном модуле выведите значение констант через процедуру Сообщить.
Вариант 1
1) Идентификатор – ЮридическийАдрес
Синоним – Адрес
Комментарий – Юридический адрес
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – г.Йошкар–Ола, ул.Коммунистическая, д.32.
2) Идентификатор – Владелец
Синоним – Владелец
Комментарий – Владелец галереи
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Иванов В.В. на дату 01.10.2000, Петров А.В. на дату 01.01.2006
3) Идентификатор – НазваниеГалереи
Синоним – Название
Комментарий – Название галереи
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – Экзерсис
4) Идентификатор – ГлБух
Синоним – ГлавБух
Комментарий – Главный бухгалтер
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Сидорова Т.И. на дату 01.10.2000, Петрова О.В. на дату 01.01.2006
Вариант 2
1) Идентификатор – ЮридическийАдрес
Синоним – Адрес
Комментарий – Юридический адрес
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – г.Йошкар–Ола, ул.Петрова, д.18.
2) Идентификатор – Директор
Синоним – Директор
Комментарий – Директор склада
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Трумов В.В. на дату 12.09.1997, Щеглова А.В. на дату 24.03.2005
3) Идентификатор – НазваниеСклада
Синоним – Название
Комментарий – Название склада
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – ОАО «Продтовары»
4) Идентификатор – ГлБух
Синоним – ГлавБух
Комментарий – Главный бухгалтер
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Лехина Т.И. на дату 01.10.2000, Гонцова О.В. на дату 01.08.2005
Вариант 3
1) Идентификатор – ЮридическийАдрес
Синоним – Адрес
Комментарий – Юридический адрес
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – г.Йошкар–Ола, ул. К.Маркса, д.40.
2) Идентификатор – ГенДиректор
Синоним – Директор
Комментарий – Генеральный директор предприятия
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Москвин В.В. на дату 13.11.2002, Удавин А.В. на дату 19.01.2004
3) Идентификатор – НазваниеПредприятия
Синоним – Название
Комментарий – Название предприятия
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – ОАО «Волгателеком ГТС»
4) Идентификатор – ГлБух
Синоним – ГлавБух
Комментарий – Главный бухгалтер
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Мромов Т.И. на дату 24.11.2001, Петрова О.В. на дату 01.01.2006
Вариант 4
1) Идентификатор – ЮридическийАдрес
Синоним – Адрес
Комментарий – Юридический адрес
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – г.Йошкар–Ола, ул.Волкова, д.31.
2) Идентификатор – Заведующий
Синоним – Заведующий
Комментарий – Заведующий библиотекой
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Федотова В.В. на дату 12.10.2000, Муромов А.В. на дату 01.01.2006
3) Идентификатор – НазваниеБиблиотеки
Синоним – Название
Комментарий – Название библиотеки
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – Национальная библиотека им.С.Г.Чавайна
4) Идентификатор – ГлБух
Синоним – ГлавБух
Комментарий – Главный бухгалтер
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Галиева Т.В. на дату 01.12.1998, Петрова О.В. на дату 01.01.2006
Вариант 5
1) Идентификатор – ЮридическийАдрес
Синоним – Адрес
Комментарий – Юридический адрес
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – г.Йошкар–Ола, ул.Советская, д.54.
2) Идентификатор – Директор
Синоним – Директор
Комментарий – Директор учреждения
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Иванов В.В. на дату 01.10.2000, Петров А.В. на дату 01.01.2006
3) Идентификатор – НазваниеУчреждения
Синоним – Название
Комментарий – Название учреждения
Длина – 40
Опция Периодический не установлена.
Устанавливаемое значение – Налоговая инспекция по РМЭ
4) Идентификатор – ГлБух
Синоним – ГлавБух
Комментарий – Главный бухгалтер
Длина – 30
Опция Периодический установлена.
Устанавливаемое значение – Сидорова Т.И. на дату 01.10.2000, Петрова О.В. на дату 01.01.2006