Работа с приложением в языке 1С 8.3

Aug 15, 2022 09:39


/// Как узнать имя текущего пользователя в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьИмяТекущегоПользователя(Команда)

Сообщить(ИмяПользователя()); // Администратор

КонецПроцедуры

/// Как получить или изменить заголовок окна приложения в 1с 8.3, 8.2

&НаКлиенте
Процедура КакПолучитьИлиИзменитьЗаголовокОкна(Команда)

// заголовок в 1с состоит из двух частей: префикс (короткая часть)
// и сам заголовок (длинная часть)

Сообщить(
ПолучитьКраткийЗаголовокПриложения()
); // обычно пустой

Сообщить(
ПолучитьЗаголовокКлиентскогоПриложения()
); // название конфигурации, например Бухгалтерия предприятия

// сделаем такой заголовок - Ромашка.Бухгалтерия
УстановитьКраткийЗаголовокПриложения("Ромашка");
УстановитьЗаголовокКлиентскогоПриложения("Бухгалтерия");

КонецПроцедуры
 
/// Как узнать текущий вариант интерфейса в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьТекущийВариантИнтерфейса(Команда)

Сообщить(
ТекущийВариантИнтерфейсаКлиентскогоПриложения()
); // например, Такси или Версия8_2

КонецПроцедуры

/// Как узнать текущий размер основного шрифта в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьТекущийРазмерШрифта(Команда)

Сообщить(
ТекущийВариантОсновногоШрифтаКлиентскогоПриложения()
); // Крупный или Обычный

КонецПроцедуры

/// Как подключить или отключить обработчик ожидания
/// для управляемой формы в 1с 8.3, 8.2

&НаКлиенте
Процедура РаботаСОбработчикамиОжиданияФормы(Команда)

// подключаем, чтобы процедура СкажиПривет
// вызвалась через 3 секунды
// процедура СкажиПривет определена чуть ниже
ПодключитьОбработчикОжидания(
"СкажиПривет", // имя процедуры
3, // интервал в секундах
Истина // однократный вызов
);

// тут же отключаем
ОтключитьОбработчикОжидания("СкажиПривет");

КонецПроцедуры

&НаКлиенте
Процедура СкажиПривет()

Сообщить("Привет!");

КонецПроцедуры

/// Как подключить или отключить глобальный обработчик
/// оповещения в 1с 8.3, 8.2

&НаКлиенте
Процедура РаботаСГлобальнымиОбработчикамиОповещения(Команда)

// подключаем экспортируемую процедуру глОбработкаОповещение,
// которая определена в модуле управляемого приложения
// также можно располагать её в одном из общих модулей
ПодключитьОбработчикОповещения("глОбработкаОповещения");

// тут же проводим тест
Оповестить("Кошмар", "Монстр", Объект);

// и отключаем этот обработчик оповещения
ОтключитьОбработчикОповещения("глОбработкаОповещения");

КонецПроцедуры

/// Как узнать скорость клиентского соединения в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьСкоростьСоединения(Команда)

Сообщить(
ПолучитьСкоростьКлиентскогоСоединения()
); // Низкая или Обычная

КонецПроцедуры

/// Как узнать текущий режим запуска в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьТекущийРежимЗапуска(Команда)

Сообщить(
ТекущийРежимЗапуска()
); // Авто, ОбычноеПриложение или УправляемоеПриложение
// Неопределено, если внешнее соединение

КонецПроцедуры

/// Как узнать строку соединения инормационной базы в 1с 8.3, 8.2

&НаКлиенте
Процедура КакУзнатьСтрокуСоединенияСБазой(Команда)

// часто из неё можно вытащить полезную информацию
Сообщить(
СтрокаСоединенияИнформационнойБазы()
); // Например, File="D:\Bases\Пустая";

КонецПроцедуры

/// Как заблокировать работу пользователя в 1с 8.3, 8.2

&НаКлиенте
Процедура КакЗаблокироватьРаботуПользователя(Команда)

ЗаблокироватьРаботуПользователя();

КонецПроцедуры

/// Как завершить работу системы (вызывая обработчики
/// закрытия) в 1с 8.3, 8.2

&НаКлиенте
Процедура КакЗавершитьРаботуСистемы(Команда)

ЗавершитьРаботуСистемы(
Истина, // запрашивать возможность
Ложь, // (необ.) перезапустить после завершения
"" // (необ.) дополнительные параметры, если делается перезапуск
);

КонецПроцедуры

/// Как прекратить работу системы (не вызывая обработчики
/// закрытия) в 1с 8.3, 8.2

&НаКлиенте
Процедура КакПрекратитьРаботуСистемы(Команда)

ПрекратитьРаботуСистемы(
Ложь, // (необ.) перезапустить после завершения
"" // (необ.) дополнительные параметры, если делается перезапуск
);

КонецПроцедуры

/// Как запустить ещё один экземпляр 1С Предприятия в 1с 8.3, 8.2

&НаКлиенте
Процедура КакЗапуститьЕщёОдинЭкземпляр1С(Команда)

// выдаст ошибку в учебной версии, так как
// в ней нельзя запускать больше одного сеанса

ЗапуститьСистему(
"", // дополнительные параметры
Истина // дождаться завершения запущенной системы для продолжения
);

КонецПроцедуры

&НаКлиенте
Процедура РаботаСДатой(Команда)
РаботаСДатойНаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура РаботаСДатойНаСервере()

/// Как узнать часовой пояс сеанса в 1с 8.3, 8.2

Сообщить(
ЧасовойПоясСеанса()
); // например, Australia/Brisbane

/// Как узнать текущую дату сеанса в 1с 8.3, 8.2

Сообщить(
ТекущаяДатаСеанса()
); // например, 16.02.2017 10:32:59

КонецПроцедуры

&НаКлиенте
Процедура РаботаСПравамиИРолями(Команда)
РаботаСПравамиИРолямиНаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура РаботаСПравамиИРолямиНаСервере()

/// Как узнать есть ли право у текущего пользователя
    /// применительно к объекту метаданных в 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с 8.3, 8.2

&НаСервереБезКонтекста
Процедура КакУзнатьПолноеИмяПользователяНаСервере()

Сообщить(
ПолноеИмяПользователя()
);

КонецПроцедуры

&НаКлиенте
Процедура РаботаСНастройкамиПользователей(Команда)
РаботаСНастройкамиПользователейНаСервере();
КонецПроцедуры

&НаСервереБезКонтекста
Процедура РаботаСНастройкамиПользователейНаСервере()

/// Как сохранить произвольные настройки пользователя
    /// в 1с 8.3, 8.2

// сохраним в настройках имя и фамилию
Настройки = Новый Структура;
Настройки.Вставить("Имя", "Владимир");
Настройки.Вставить("Фамилия", "Милькин");
Настройки.Вставить("Возраст", 31);

ХранилищеОбщихНастроек.Сохранить(
"Обработка.ТестированиеКода", // ключ объекта
"Автор", // ключ настроек
Настройки,
, // описание настроек
ИмяПользователя() // владелец настроек,
// если опустить, то настройки сохранятся
// для текущего пользователя
);

/// Как сохранить произвольные настройки для всех пользователей
    /// в 1с 8.3, 8.2

Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей();

Для Каждого Пользователь Из Пользователи Цикл

ХранилищеОбщихНастроек.Сохранить(
"Обработка.ТестированиеКода", // ключ объекта
"Автор", // ключ настроек
Настройки,
, // описание настроек
Пользователь.Имя // владелец настроек
);

КонецЦикла;

/// Как прочитать сохраненные настройки пользователя
    /// в 1с 8.3, 8.2

// восстанавливаем сохраненные настройки

ВосстановленныеНастройки = Неопределено;
Попытка
ВосстановленныеНастройки =
ХранилищеОбщихНастроек.Загрузить(
"Обработка.ТестированиеКода", // ключ объекта
"Автор", // ключ настроек
, // описание настроек
ИмяПользователя() // владелец настроек, если
// опустить, то настройки прочитаются
// для текущего пользователя
);
// если настроек нет, то будет возвращено значение "Неопределено"
Исключение
Сообщить("Что-то пошло не так..., возможно не хватает прав.");
КонецПопытки;

Если ВосстановленныеНастройки = Неопределено Тогда
Сообщить("Не получилось прочитать настройки.");
Иначе
Сообщить(ВосстановленныеНастройки.Имя);
Сообщить(ВосстановленныеНастройки.Фамилия);
Сообщить(ВосстановленныеНастройки.Возраст);
КонецЕсли;

/// Как удалить сохраненные настройки пользователя в 1с 8.3, 8.2

ХранилищеОбщихНастроек.Удалить(
"Обработка.ТестированиеКода", // ключ объекта
"Автор", // ключ настроек
ИмяПользователя() // владелец настроек, пропускать нельзя
// если указать Неопределено, то настрйка
// удалиться у всех пользователей
);

/// Как удалить сохраненные настройки у всех пользователей в 1с 8.3, 8.2

ХранилищеОбщихНастроек.Удалить(
"Обработка.ТестированиеКода", // ключ объекта
"Автор", // ключ настроек
Неопределено // владелец настроек, пропускать нельзя
);

КонецПроцедуры

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up