Работа с приложением в языке 1С 8.3, 8.2 (в примерах)
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
2017-12-18T22:21:27+00:00Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат
ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
/// Как узнать имя текущего пользователя в 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С 8.3, 8.2 (в примерах)
Дата Если Массивы Математика Процедуры Строки Циклы
Диалоги ОписаниеТипов ОперационнаяСистема Приложение Соответствие
СписокЗначений Структура ТаблицаЗначений ФайловаяСистема Формат
ОбщиеОбъекты Запросы ПрикладныеОбъекты УниверсальныеФункции