Где
Регистры накопления и регистры сведений имеют общий индекс по всем измерениям, в порядке их расположения в метаданных. Условие следует накладывать так, чтобы оно охватывало любое количество первых измерений регистра без пропусков. В этом случае используется основной индекс регистра и отбор работает быстро.
Если наложить условие таким образом не удается, его стоит накладывать на одно измерение, имеющее индекс. Если отбор может использовать различные индексы регистра, Предприятие осуществляет выбор одного из них самостоятельно. Например, пусть регистр содержит измерения Товар, Покупатель, Поставщик, причем измерение Поставщик – индексированное. Целесообразно накладывать фильтры на комбинации измерений Товар; Товар, Покупатель; Товар, Покупатель Поставщик; Поставщик. Фильтр Покупатель не будет использовать индекс регистра, т.е использует полный перебор записей; фильтр Покупатель, Поставщик будет использовать индекс по измерению Поставщик, а результат будет отобран по фильтру Покупатель полным перебором.
Сгруппировать
В списке полей должны содержаться полные описания полей.
Например:
Если некое поле ГруппаЦен определяется при помощи оператора ВЫБОР, то для группировки по значению этого поля в разделе СГРУППИРОВАТЬ ПО нужно полностью повторить выражение – описание поля из списка полей выборки (за исключением объявления его псевдонима).
ВЫБРАТЬ …, ВЫБОР КОГДА Цена > 100 ТОГДА «больше 100» ИНАЧЕ «меньше 100» КОНЕЦ КАК КатегорияЦен, … ИЗ … СГРУППИРОВАТЬ ПО …, ВЫБОР КОГДА Цена > 100 ТОГДА «больше 100» ИНАЧЕ «меньше 100» КОНЕЦ, … |
Проверка на пустой результат выполнения запроса
Проверку того, что результат выполнения запроса не содержит строк следует выполнять с помощью функции Пустой(). Поскольку на получение выборки из результата запроса (выгрузка его в таблицу значений) будет затрачиваться дополнительное время.
Неправильно:
Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Возврат Истина; Иначе Возврат Ложь; КонецЕсли; |
Правильно:
Возврат НЕ Запрос.Выполнить().Пустой() |
Исключения составляют случаи, когда выборку из результата запроса полученную методом Выбрать() или таблицу значений (дерево значений) результата запроса полученную методом Выгрузить() предполагается использовать для анализа данных результата запроса в любом случае, т.е. проверка результата запроса методом Пустой() является излишней.
Настройка прав доступа к данным
Состав ролей конфигурации
Если в конфигурации предполагается разграничение прав доступа пользователей к данным, то должна быть обязательна определена роль ПолныеПрава:
Имя: ПолныеПрава
Синоним: Полные права
Роль должна иметь возможность использоваться самостоятельно.
При достаточно сложной системе разграничения прав доступа рекомендуется также создание ролей:
1. ПравоАдминистрирования
Имя: ПравоАдминистрирования
Синоним: Право администрирования
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.
2. ПравоВнешнегоПодключения
Имя: ПравоВнешнегоПодключения
Синоним: Право внешнего подключения
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.
3. ПравоЗапускаВнешнихОбработок
Имя: ПравоЗапускаВнешнихОбработок
Синоним: Право запуска внешних обработок
Роль может использоваться только вместе с ролями, самостоятельное использование которых разрешено.
Остальные роли должны определяться разработчиком конфигурации исходя из обеспечения доступа пользователям определенного рабочего места к данным. Например, менеджер по продажам, кассир, оператор ККМ и пр.
Перед началом работы конфигурации должна производиться проверка, на существование хотя бы одной роли у текущего пользователя, самостоятельное использование которой разрешено. В противном случае запрещать работу с конфигурацией.
Дата: 2018-11-18, просмотров: 269.