наверх
Свободные IT публикации
логин:
пароль:

Администрирование 1С

  • Как поменять значение рабочей даты?
  • Как установить/снять монопольный режим?
  • Как внести запись в журнал регистрации?
  • Как получить данные о зарегистрированных пользователях информационной базы?
  • Как определить общую системную информацию?
  • Как программно добавить пользователя в информационную базу?
  • Как создать собственный лог-файл для записи результатов работы внешней обработки?
  • Как в форме отобразить список пользователей, которые работают с данной информационной базой?
  • Как выгрузить журнал регистрации в XML-формате?
  • Как принудительно завершить работу всех пользователей информационной базы в клиент-серверном варианте работы?
  • Как загрузить внешнюю компоненту?
  • Как выполнить команду операционной системы?
  • Как исправить ошибку входа в 1С после неудачного динамического обновления?
  • Как включить отладку на сервере 1С (8.1, 8.2, 8.3) ?
  • Как поменять значение рабочей даты?

    Если ИспользованиеРабочейДаты = РежимРабочейДаты.Назначать Тогда 
    	РабочаяДата = УстанавливаемаяДата; 
    Иначе 
    	Сообщить("Рабочая дата не будет сменена. 
    	|Необходимо сначала в меню Сервис-Параметры-Общая 
    	|снять флажок - Использовать текущую дату компьютера ") 
    КонецЕсли;

    Как установить/снять монопольный режим?

    Попытка 
    	УстановитьМонопольныйРежим(Истина); 
    Исключение 
    	Предупреждение("К базе подключены пользователи. Монопольный режим установить невозможно!", 7); 
    КонецПопытки; 
    
    Если МонопольныйРежим() Тогда 
    	Сообщить("Монопольный режим установлен"); 
    КонецЕсли; 
    
    УстановитьМонопольныйРежим(Ложь);

    Как внести запись в журнал регистрации?

    ЗаписьЖурналаРегистрации("ОтчетныеДанные.Просмотр", УровеньЖурналаРегистрации.Информация, Метаданные(), ДатаКон,);

    Как получить данные о зарегистрированных пользователях информационной базы?

    Выборка = ПользователиИнформационнойБазы.ПолучитьПользователей(); 
    
    Для Каждого ЭлементМассива Из Выборка Цикл 
    	ИмяПользователя = ЭлементМассива.Имя; 
    	ПолноеИмяПользователя = ЭлементМассива.ПолноеИмя; 
    	ЕстьПароль = ЭлементМассива.ПарольУстановлен; 
    	Роли = ЭлементМассива.Роли; 
    
    	Для Каждого Роль Из Роли Цикл 
    		ИмяРоли = Роль.Имя; 
    	КонецЦикла; 
    КонецЦикла;

    Как определить общую системную информацию?

    Инфо = Новый СистемнаяИнформация; 
    
    Текст = "Версия 1С:Предприятия 8.0: " + Инфо.ВерсияПриложения; 
    Текст = Текст + Символы.ПС + "Конфигурация: " + Метаданные.Синоним; 
    Текст = Текст + Символы.ПС + "Поставщик: " + Метаданные.Поставщик; 
    Текст = Текст + Символы.ПС + "Операционная система: " + Инфо.ВерсияОС; 
    Текст = Текст + Символы.ПС + "Оперативная память (МБ): " + Инфо.ОперативнаяПамять; 
    Текст = Текст + Символы.ПС + "Процессор: " + Инфо.Процессор; 
    
    Предупреждение(Текст, , "ДАННЫЕ ТЕКУЩЕГО КОМПЬЮТЕРА И КОНФИГУРАЦИИ");

    Как программно добавить пользователя в информационную базу?

    НовыйПользователь = ПользователиИнформационнойБазы.СоздатьПользователя(); 
    НовыйПользователь.Имя = "Имя"; 
    НовыйПользователь.ПолноеИмя = "Фамилия Имя Отчество"; 
    НовыйПользователь.АутентификацияСтандартная = Истина; 
    НовыйПользователь.ОсновнойИнтерфейс = Метаданные.Интерфейсы.Администратор; 
    НовыйПользователь.Пароль = "пароль"; 
    НовыйПользователь.Роли.Добавить(Метаданные.Роли.Администратор); 
    НовыйПользователь.ПоказыватьВСпискеВыбора = Ложь; 
    НовыйПользователь.Язык = Метаданные.Языки.Русский; 
    НовыйПользователь.Записать(); 
    
    Процедура ЗаписатьНовогоПользователя(НовыйПользователь) Экспорт 
    
    	// Проверить наличие роли Администратор у нового пользователя. 
    	РольАдминистратор = Метаданные.Роли.Администратор; 
    	Если НовыйПользователь.Роли.Содержит(РольАдминистратор) Тогда 
    		Сообщить("Добавление пользователя с административными правами запрещено."); 
    	Иначе // у нового пользователя нет роли Администратор 
    		// Проверить, что текущий пользователь обладает правами Менеджера 
    		// или Администратора 
    		Если РольДоступна(РольАдминистратор) ИЛИ РольДоступна(Метаданные.Роли.Менеджер) Тогда 
    			// Выполнить запись нового пользователя. 
    			НовыйПользователь.Записать(); 
    		Иначе 
    			Сообщить("Недостаточно прав доступа для добавления пользователя."); 
    		КонецЕсли; 
    	КонецЕсли; 
    КонецПроцедуры

    Как создать собственный лог-файл для записи результатов работы внешней обработки?

    ФайлРегистрации = Новый ЗаписьТекста("C:\LogFile.txt", КодировкаТекста.ANSI, , Истина); 
    
    ФайлРегистрации.Записать("Первое сообщение" + Символы.ПФ); 
    
    ФайлРегистрации.Записать("Второе сообщение"+ Символы.ПФ); 
    
    ФайлРегистрации.Закрыть();

    Как в форме отобразить список пользователей, которые работают с данной информационной базой?

    МассивСоединений = ПолучитьСоединенияИнформационнойБазы(); 
    Колонки = Пользователи.Колонки; 
    Колонки.Добавить("Пользователь", , , 10); 
    Колонки.Добавить("Приложение", , , 10); 
    Колонки.Добавить("НачалоРаботы", , , 10); 
    Колонки.Добавить("Компьютер", , , 10); 
    Колонки.Добавить("Соединение", , , 10); 
    
    Для Каждого Соединение из МассивСоединений Цикл 
    	НоваяСтрока = Пользователи.Добавить(); 
    	НоваяСтрока.Компьютер = Соединение.ИмяКомпьютера; 
    	НоваяСтрока.Приложение = ПредставлениеПриложения(Соединение.ИмяПриложения); 
    	НоваяСтрока.НачалоРаботы = Соединение.НачалоСеанса; 
    	НоваяСтрока.Соединение = Соединение.НомерСоединения; 
    	НоваяСтрока.Пользователь = Соединение.Пользователь.Имя; 
    КонецЦикла; 
    
    ЭлементыФормы.Пользователи.СоздатьКолонки();

    Как выгрузить журнал регистрации в XML-формате?

    ВыгрузитьЖурналРегистрации("C:\log.xml"); 
    
    Пользователи = ПользователиИнформационнойБазы.ПолучитьПользователей(); 
    Для Каждого Пользователь из Пользователи Цикл 
    	НовыйЭлемент = СписокПользователей.Добавить(); 
    	НовыйЭлемент.Пометка = Истина; 
    	НовыйЭлемент.Значение = Пользователь; 
    	НовыйЭлемент.Представление = Пользователь.Имя; 
    КонецЦикла; 
    
    Массив = Новый Массив; 
    Для Каждого Пользователь Из СписокПользователей Цикл 
    	Если Пользователь.Пометка Тогда 
    		Массив.Добавить(Пользователь); 
    	КонецЕсли; 
    КонецЦикла; 
    
    СтруктураФильтра = Новый Структура; 
    СтруктураФильтра.Вставить("Пользователь", Массив); 
    ВыгрузитьЖурналРегистрации("C:\log.xml", СтруктураФильтра, "Дата, Пользователь, ПредставлениеСобытия");

    Как принудительно завершить работу всех пользователей информационной базы в клиент-серверном варианте работы?

    Коннектор = Новый COMОбъект("V8.COMConnector"); 
    Сервер = Коннектор.ConnectServer("TestServer"); 
    
    // Аутентифицироваться с административными правами в нужной базе. 
    Сервер.AddAuthentication("Администратор",""); 
    
    // Создать объект нужной информационной базы. 
    ИнформационнаяБаза = Сервер.CreateInfoBaseInfo(); 
    ИнформационнаяБаза.Name = "Test_Base"; 
    
    // Получить соединения базы. 
    СоединенияБазы = Сервер.GetIBConnections(ИнформационнаяБаза); 
    
    // Разорвать соединения клиентских приложений. 
    Для Каждого Соединение Из СоединенияБазы Цикл 
    	Сервер.Disconnect(Соединение); 
    КонецЦикла;

    Как загрузить внешнюю компоненту?

    Попытка 
    	ЗагрузитьВнешнююКомпоненту("scanopos.dll") 
    Исключение 
    	Сообщить("Ошибка загрузки внешней компоненты!"); 
    КонецПопытки; 
    
    Попытка 
    	// Получить объект компоненты. 
    	Объект = Новый("AddIn.Scanner"); 
    Исключение 
    	Сообщить("Не удалось создать объект внешней компоненты"); 
    КонецПопытки;

    Как выполнить команду операционной системы?

    КомандаСистемы("del *.* /q", "c:\temp"); 
    КомандаСистемы("cmd"); 
    ЗапуститьПриложение("ШаблонДоговора.doc");

    Как исправить ошибку входа в 1С после неудачного динамического обновления?


    При возникновени ошибки входа в 1С после сбоя при динамическом обновлении необходимо выполнить запрос SQL:
    delete from config where FileName = 'commit';
    delete from config where FileName = 'dbStruFinal';

    Запрос выполняется в БД, соответствующей испорченой конфигурации

    Как включить отладку на сервере 1С (8.1, 8.2, 8.3) ?

    • Остановить службу агента 1C.
    • Запустить редактор системного реестра. Чтобы открыть редактор реестра, необходимо нажать Windows + R (или Пуск-Выполнить) и ввести в командную строку regedit.
    • Для 1С V81 найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent].
    • Для 1С V82 или V83 найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.2 Server Agent\].
    • Скорректировать значение атрибута «ImagePath», добавив в конец строки «-debug».
    • Запустить службу агента 1C.