❓ А вот и ответы на викторину по теме «Стандарты разработки конфигураций» 🔽
Ой-ой, просим прощения, тут вкралась ошибочка.
1-й вариант должен быть: «соединения с виртуальными таблицами».
В таком случае верными будут варианты 1, 2 и 4, т. к. использование вложенных запросов, конечно же, не противозаконно 😉
Как указано в стандартах, индексирование временных таблиц обязательно в том случае, если эти таблицы в дальнейшем участвуют в соединениях или в отборах. Но это касается только таблиц, количество строк в которых превышает 1000.
Все мы знаем, что условие в параметрах виртуальной таблицы предпочтительнее, чем условие в предложении ГДЕ.
Но не всегда 😉
Если нужно наложить условие, например, на ресурс регистра сведений, то условие в ГДЕ и условие в параметрах приведут к разным результатам. То есть если речь идет об измерениях регистра, условие в параметрах — единственно верный вариант. А вот если о ресурсах или реквизитах — тут уже все не так однозначно.
Любое разыменование полей — это соединение с соответствующей таблицей. А если поле имеет составной тип, то разыменование приводит к соединению со всеми таблицами, соответствующими выбранным типам.
Например, если регистраторами в регистре указаны 15 документов, то, казалось бы, безобидное поле «Регистратор.Дата» приведет к 15 соединениям. Так что разыменование поля составного типа — это грубейшая ошибка. А вот разыменование обычных ссылочных полей вполне допустимо.
По стандартам параметру Отказ можно присваивать только значение Истина.
Представьте, что в процедуре ОбработкаПроведения где-то выше параметру Отказ уже присвоили Истина. И что произойдет, если ниже мы присвоим ему значение функции? Например, эта функция вернет Ложь.
Флаг Отказ, который сигнализировал о том, что проведение не может быть выполнено, сбросится в Ложь, и проведение будет выполнено.
А если мы напишем:
то сможем избежать такой неприятной ситуации.
Как вам викторина?
Оставьте реакцию:
❤️ — легкотня
🔥 — полезно, узнал(-а) кое-что новое
👍 — хочу еще викторину, да посложнее
#викторина@learn_prosto
❓Какие причины неоптимальной работы запросов существуют?
Ой-ой, просим прощения, тут вкралась ошибочка.
1-й вариант должен быть: «соединения с виртуальными таблицами».
В таком случае верными будут варианты 1, 2 и 4, т. к. использование вложенных запросов, конечно же, не противозаконно 😉
❓В каком случае нужно использовать индексирование временной таблицы в запросе?
Как указано в стандартах, индексирование временных таблиц обязательно в том случае, если эти таблицы в дальнейшем участвуют в соединениях или в отборах. Но это касается только таблиц, количество строк в которых превышает 1000.
❓При использовании виртуальных таблиц в запросах следует передавать в параметры таблиц все условия, относящиеся к данной виртуальной таблице. В каких случаях это утверждение верно?
Все мы знаем, что условие в параметрах виртуальной таблицы предпочтительнее, чем условие в предложении ГДЕ.
Но не всегда 😉
Если нужно наложить условие, например, на ресурс регистра сведений, то условие в ГДЕ и условие в параметрах приведут к разным результатам. То есть если речь идет об измерениях регистра, условие в параметрах — единственно верный вариант. А вот если о ресурсах или реквизитах — тут уже все не так однозначно.
❓Можно ли использовать в запросе разыменование полей? (обращаться через точку к реквизитам ссылки)
Любое разыменование полей — это соединение с соответствующей таблицей. А если поле имеет составной тип, то разыменование приводит к соединению со всеми таблицами, соответствующими выбранным типам.
Например, если регистраторами в регистре указаны 15 документов, то, казалось бы, безобидное поле «Регистратор.Дата» приведет к 15 соединениям. Так что разыменование поля составного типа — это грубейшая ошибка. А вот разыменование обычных ссылочных полей вполне допустимо.
❓Отказ = ЕстьОшибки();
Соответствует ли такой код стандартам разработки 1С?
По стандартам параметру Отказ можно присваивать только значение Истина.
Представьте, что в процедуре ОбработкаПроведения где-то выше параметру Отказ уже присвоили Истина. И что произойдет, если ниже мы присвоим ему значение функции? Например, эта функция вернет Ложь.
Флаг Отказ, который сигнализировал о том, что проведение не может быть выполнено, сбросится в Ложь, и проведение будет выполнено.
А если мы напишем:
Если ЕстьОшибки() Тогда
Отказ = Истина;
КонецЕсли;
то сможем избежать такой неприятной ситуации.
Как вам викторина?
Оставьте реакцию:
❤️ — легкотня
🔥 — полезно, узнал(-а) кое-что новое
👍 — хочу еще викторину, да посложнее
#викторина@learn_prosto