|
Как делать создание справочника более оптимально? | ☑ | ||
---|---|---|---|---|
0
program345
23.02.15
✎
11:53
|
Доброго дня!
Есть код: 1. // Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) ТекПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; Если Справочники.Пользователи.НайтиПоНаименованию(ТекПользователь) = Справочники.Пользователи.ПустаяСсылка() Тогда ЭлСпр = Справочники.Пользователи.СоздатьЭлемент(); ЭлСпр.Наименование = ТекПользователь; Роли = ПользователиИнформационнойБазы.ТекущийПользователь().Роли; Для каждого Эл Из Роли Цикл Если Эл = Метаданные.Роли.ПолныеПрава Тогда ЭлСпр.Администратор = истина; КонецЕсли; КонецЦикла; ЭлСпр.Записать(); Сообщить("В справочнике ""Пользователи"" создан новый элемент " +ТекПользователь + "!!!"); КонецЕсли; КонецПроцедуры // 2. // Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) ТекПользователь = ПользователиИнформационнойБазы.ТекущийПользователь().Имя; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Пользователи.Наименование |ИЗ | Справочник.Пользователи КАК Пользователи |ГДЕ | Пользователи.Наименование = &Наименование"; Запрос.УстановитьПараметр("Наименование", ТекПользователь); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Спр = Справочники.Пользователи.СоздатьЭлемент(); Спр.Наименование = ТекПользователь; Для каждого Эл Из ПользователиИнформационнойБазы.ТекущийПользователь().Роли Цикл Если Эл = Метаданные.Роли.ПолныеПрава Тогда Спр.Администратор = Истина; КонецЕсли; КонецЦикла; Спр.Записать(); Сообщить("В справочнике ""Пользователи"" создан новый элемент " +ТекПользователь + "!!!"); Иначе Сообщить("Данный пользователь уже имеется в системе!!!"); КонецЕсли; КонецПроцедуры // функционал одинаков, а как более щедяще для ресурсов ком-па? |
|||
1
program345
23.02.15
✎
11:55
|
есть мнение что 1с заточена под запросы
|
|||
2
Godofsin
23.02.15
✎
12:00
|
Пипец... ну замерь произвоительность и узри, что разница во времени будет равна чонить 0,00000001 сек. При выборке одной записи не существенно
|
|||
3
shuhard
23.02.15
✎
12:01
|
(1)[есть мнение что 1с заточена под запросы]
не ссы 1С это пофиг |
|||
4
program345
23.02.15
✎
12:03
|
(2) как замерить?
|
|||
5
Godofsin
23.02.15
✎
12:10
|
(4) Конфигуратор - замер производительности
|
|||
6
program345
23.02.15
✎
12:18
|
0,003489 - хапрос
0,0225 - не запрос |
|||
7
GROOVY
23.02.15
✎
12:19
|
(1) А "НайтиПоНаименованию" - это не запрос?
|
|||
8
GROOVY
23.02.15
✎
12:21
|
Я бы еще точное соответствие в параметрах выставил.
|
|||
9
program345
23.02.15
✎
12:24
|
С точным соответствием НайтиПоНаименованию - 0,0037
|
|||
10
Godofsin
23.02.15
✎
12:25
|
(9) И каков вывод?
|
|||
11
EugeniaK
23.02.15
✎
12:28
|
(0) Учитывая, что этот запрос выполнится максимум 1 раз для каждого пользователя за все время работы - абсолютно пофиг.
|
|||
12
GROOVY
23.02.15
✎
12:32
|
Я надеюсь тесты проводятся на скулевой, а не на файловой версии. И перед замером производительности, для чистоты эксперимента и исключение влияния кеша все перезагружается? :)
|
|||
13
Godofsin
23.02.15
✎
12:33
|
(12) =))))
|
|||
14
tridog
23.02.15
✎
13:48
|
(0) Совсем скучно стало?
|
|||
15
ДенисЧ
23.02.15
✎
13:54
|
ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Принадлежит(Метаданные.Роли.ПолныеПрава)
Не? |
|||
16
program345
23.02.15
✎
14:56
|
(15)
// такого не нашел... Если ПользователиИнформационнойБазы.ТекущийПользователь().Роли.Содержит(Метаданные.Роли.ПолныеПрава) Тогда Спр.Администратор = Истина; КонецЕсли; // |
|||
17
program345
23.02.15
✎
14:57
|
(12) тесты на файловой. кеш не чишен. ок спс.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |