«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
Институт инженерных технологий и естественных наук
Кафедра прикладной информатики и информационных технологий
Отчет по лабораторной работе №2
Тема работы: Константы, основы клиент-серверного программирования, общие реквизиты
студента очного отделения
4 курса 12001504 группы
Марко С. Тангуила
Проверил:
Старший преподаватель
Коваленко Анастасия Николаевна
БЕЛГОРОД, 2018
Включим константу в состав подсистемы УчетРаботыМастеров. Предполагается, что данная константа будет использоваться для показа сообщения пользователям, входящим в систему.

Рис. 1. Настройка параметров новой константы
Щелкнем по команде Текст сообщения в панели действий. Отобразится окно, которое позволяет нам редактировать константу ТекстСообщения. Введем в поле Текст сообщения строку "Здравствуйте, уважаемый пользователь!", и нажмем на кнопку Записать и закрыть.

Рис. 2. Форма редактирования константы Текст сообщения

Рис. 3. Право Сохранение данных пользователя
В ветви Общие формы появится новая форма с именем ФормаКонстант, будет открыто окно редактирования формы.

Рис. 4. Окно редактирования формы

Рис. 5. Общий модуль СерверныеФункции, свойства
Откроем редактор кода для кода модуля (например, двойным щелчком по модулю в дереве конфигурации) и введем следующий код:
//Экспортная функция для вызова из других модулей
Функция ПолучитьКонстанту() Экспорт
//Возвращаем полученное значение константы
Возврат(Константы.ТекстСообщения.Получить());
КонецФункции

Рис. 6. Общий модуль СерверныеФункции, код
Теперь нам нужно вызвать эту функцию в подходящем месте кода обработчика события ПриНачалеРаботыСистемы в модуле управляемого приложения. Например, это можно сделать так:
Процедура ПриНачалеРаботыСистемы()
//Выводим сообщение пользователю
Сообщить(СерверныеФункции.ПолучитьКонстанту());
КонецПроцедуры
В результате при входе в систему мы получим сообщение следующего вида.

Рис. 7. Вывод сообщения пользователю
Попытаемся в модуле формы вывести в окно сообщения значение константы. Для этого необходимо добавить в модуль функцию, возвращающую значение константы, которая должна выполняться в контексте сервера. Например, это можно сделать одним из следующих способов – ниже приведена дополненная процедура ПриОткрытии и еще пара процедур, заданных в коде модуля формы:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Сообщить("Вы открыли форму констант!");
Сообщить(ПолучитьКонстанту()+" - из функции модуля формы без директивы");
Сообщить(СерверныеФункции.ПолучитьКонстанту()+" - из общего модуля");
Сообщить(ПолучитьКонстантуНаСервере()+" - из функции модуля формы с директивой &НаСервере");
КонецПроцедуры
//По умолчанию функция считается серверной
Функция ПолучитьКонстанту()
//Возвращаем полученное значение константы
Возврат(Константы.ТекстСообщения.Получить());
КонецФункции
//Директива компиляции задана явно
&НаСервере
Функция ПолучитьКонстантуНаСервере()
//Возвращаем полученное значение константы
Возврат(Константы.ТекстСообщения.Получить());
КонецФункции

Рис. 8. Вывод сообщения в форму констант, разные варианты работы с серверными данными
Этот реквизит мы планируем добавить ко всем объектам, допускающим использование общих реквизитов, за исключением справочникаОрганизации и некоторых других. Перейдем в окно настройки состава общего реквизита и установим свойство Использование у справочника Организации в значение Не использовать.

Рис. 9. Настройка общего реквизита

Рис. 10. Документ ПоступлениеМатериалов

Рис. 11. Справочник Сотрудники