Главная » 1С Предприятие » ПРИМЕРЫ РАБОТЫ С НЕПЕРИОДИЧЕСКИМИ КОНСТАНТАМИ

0

Значение   непериодической   константы  можно    получать   и   изменять,   обращаясь к  ней  по  имени  Константа.ИдентификаторКонстанты  или  употребляя  методы  ПолучитьАтрибут и УстановитьАтрибут.

Пример  1.  Вывести  название организации.

процедура Выполнить()                            //                Связана с кнопкой Пуск Сообщить(Константа.НазваниеОрганизации);    //  Напечатает, например, АО ТрансМаш

// То же сообщение выведет вызов Сообщить(Константа.ПолучитьАтрибут("НазваниеОрганизации"));

конецПроцедуры // Выполнить

Пример  2.   Создать   код,  изменяющий  значение  непериодической   константы  НазваниеОрганизации с прежнего на АО Простор, а затем восстанавливающий старое название.

процедура Выполнить()                      //             Связана с кнопкой Пуск обработки Проба  перем новоеНазвание, староеНазвание, ответ;

новоеНазвание = "АО Простор";

староеНазвание =  Константа.НазваниеОрганизации; ОчиститьОкноСообщений();

Сообщить("Прежнее название организации:" + староеНазвание);

ответ = Вопрос("Изменить название организации на " + новоеНазвание +"?", "Да+Нет"); если ответ = "Да" тогда                  //           Нажата  кнопка Да

Константа.НазваниеОрганизации = новоеНазвание; Сообщить("Название организации после изменения: " +

Константа.НазваниеОрганизации);

// Восстановим старое название константы Предупреждение("Название организации будет восстановлено."); Константа.НазваниеОрганизации  =  староеНазвание;

иначе                                 //                    Выбрана  кнопка Нет

Предупреждение("Название  организации осталось  без изменений."); конецЕсли;

конецПроцедуры // Выполнить

Замечания:

1 • Вместо  присваивания

Константа.НазваниеОрганизации = новоеНазвание; можно  использовать  метод Константа.УстановитьАтрибут("НазваниеОрганизации",   новоеНазвание);

2   Встроенная функция  Вопрос  выведет при исполнении программы окно  с кнопкам!

Да и Нет (рис. 1.29).

Рис.  1.29.  Окно,  порождаемое встроенной  функцией Вопрос

Имена кнопок определяются вторым параметром функции,  заданным в  виде строки  "Да+Нет". Функция  Вопрос  вернет строку  со  значением,  совпадающим  с именем нажатой кнопки.

3.       В случае  громоздких  операторов  или выражений их следует размещать на нескольких строчках.  Символы переноса при этом  не употребляются. Например:

Сообщить("Название организации после изменения:" + Константа.НазваниеОрганизации);

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

Пример  3.  Выводится список непериодических констант, имеющих  синоним,  в окно сообщений.

Просмотр списка констант можно  организовать, написав  программу,  выводящую,

например, в  окно  сообщений  идентификатор,  синоним константы и ее значение.  Разместим этот код, как  всегда, в процедуре Выполнить  модуля обработки Проба:

// Процедура вывода списка непериодических, определенных в конфигурации констант

процедура Выполнить()

//

Связана с кнопкой Пуск  обработки Проба

перем  всегоКонстант; перем идеи, син, значен;

//

Число констант в конфигурации

ОчиститьОкноСообщений();      //   Очищаем окно  сообщений

всегоКонстант  =  Метаданные.Константа(); для ин = 1 по всегоКонстант цикл

если Метаданные.Константа(ин).Периодический = 1 тогда

продолжить;              //        Значения  периодических констант не выводятся конецЕсли;

син = Метаданные.Константа(ии).Синоним;

// Выводим сообщения о константах, для которых задан синоним если ПустоеЗначение(син) = 0 тогда

идеи = Метаданные.Константа(ин).Идентификатор; значен = Константа.ПолучитьАтрибут(иден); Сообщить(иден + " " + син + " " + значен);

конецЕсли; конецЦикла; // для • конецПроцедуры // Выполнить

Замечание.  Встроенная функция  ПустоеЗначение(параметр)  вернет  нуль,  если  параметр определен (имеет значение), и  единицу в противном  случае.

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

•   если не задан параметр, число констант в конфигурации;

•   константу, расположенную в конфигурации  под номером ин,  если  параметром метода является целочисленная переменная ин, например Метаданные.Константа(ин);

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

перем идеи, конст; идеи = "ГлБухгалтер";

конст = Метаданные.Константа(иден);

Сообщить(конст);          //      Вернет значение синонима, например Главный бухгалтер

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

•    идентификатор, например АдресГНИ;

•    синоним, например Адрес ГНИ;

•    комментарий, например Адрес ГНИ;

•    тип, например Строка;

•    вид, например ДаНет, если тип константы Перечисление;

•    длина, например 240;

•    точность, например 0;

•    неотрицательный, например 0;

•    разделятьТриады, например 0;

•    периодический, например 0;

•    областьРаспространения, например ВсеИнформационныеБазы.

Пример.  Процедура

Сообщить(Метаданные.Константа(1).Длина);    //  Вернет, например, 240 выведет  в окне сообщений данные о длине первой константы.

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии