Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
common_all:priemyraboty:queries [2019/04/05 14:07]
alexander
common_all:priemyraboty:queries [2023/09/05 11:42] (текущий)
alexander
Строка 4: Строка 4:
 [[common_all:​priemyraboty|назад]] [[common_all:​priemyraboty|назад]]
 ---- ----
 +
 +===== Типичные причины неоптимальной работы запросов =====
 +[[https://​its.1c.ru/​db/​metod8dev/​content/​5842/​hdoc|На сайте ИТС]]
 +
 +- соединения с подзапросами,​
 +
 +- соединения с виртуальными таблицами,​
 +
 +- несоответствие индексов и условий запроса,​
 +
 +- использование логического ИЛИ в условиях,​
 +
 +- использование подзапросов в условии соединения,​
 +
 +- получение данных через точку от полей составного типа,
 +
 +- фильтрация виртуальных таблиц без использования параметров
  
 ===== Отличия виртуальных таблиц регистра бухгалтерии Таблица оборотов и Таблица оборотов Дт Кт ===== ===== Отличия виртуальных таблиц регистра бухгалтерии Таблица оборотов и Таблица оборотов Дт Кт =====
Строка 181: Строка 198:
 ===== Работаем с датами в запросе ===== ===== Работаем с датами в запросе =====
 [[http://​infostart.ru/​public/​68269/​|Статья на инфостарте Алексея Константинова "​Работаем с датами в запросе"​]] [[http://​infostart.ru/​public/​68269/​|Статья на инфостарте Алексея Константинова "​Работаем с датами в запросе"​]]
 +
 +==== Дату с Строку в запросе ====
 +<​code>​ПОДСТРОКА("​0123456789",​ ДЕНЬ(Реквизиты.ЕФС_ДатаНачала) / 10 + 1, 1) + ПОДСТРОКА("​0123456789",​ СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,​ 1, 1), СЕКУНДА,​ 6 * ДЕНЬ(Реквизиты.ЕФС_ДатаНачала))) / 6 + 1, 1) + "​."​ + ПОДСТРОКА("​0123456789",​ МЕСЯЦ(Реквизиты.ЕФС_ДатаНачала) / 10 + 1, 1) + ПОДСТРОКА("​0123456789",​ СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,​ 1, 1), СЕКУНДА,​ 6 * МЕСЯЦ(Реквизиты.ЕФС_ДатаНачала))) / 6 + 1, 1) + "​."​ + ПОДСТРОКА("​0123456789",​ ГОД(Реквизиты.ЕФС_ДатаНачала) / 1000 + 1, 1) + ПОДСТРОКА("​0123456789",​ СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,​ 1, 1), СЕКУНДА,​ ГОД(Реквизиты.ЕФС_ДатаНачала) * 0.06)) / 6 + 1, 1) + ПОДСТРОКА("​0123456789",​ СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,​ 1, 1), СЕКУНДА,​ ГОД(Реквизиты.ЕФС_ДатаНачала) * 0.6)) / 6 + 1, 1) + ПОДСТРОКА("​0123456789",​ СЕКУНДА(ДОБАВИТЬКДАТЕ(ДАТАВРЕМЯ(1,​ 1, 1), СЕКУНДА,​ ГОД(Реквизиты.ЕФС_ДатаНачала) * 6)) / 6 + 1, 1) КАК ДатаНачалаСтрокой</​code>​
 +
 ==== Расчет даты оплаты в банковских днях ==== ==== Расчет даты оплаты в банковских днях ====
 <​code>////////////////////////////////////////////////////////////////////////////////​ <​code>////////////////////////////////////////////////////////////////////////////////​