Здравствуйте
Есть запросПостритель
Активизируется ПриОткрытии() обработки (все работает нормально)
При нажатии на ваполнить обработку тоже все нормально
Выставлияю параметры срез последних ДатаАктуальности (реквизит формы)
Ругается
{Обработка.ОтборСпискаСотрудников.Форма.ФормаПодбора.Форма(257)}: Ошибка при получении значения атрибута контекста (Результат)
ТЗ = Построитель.Результат.Выгрузить();
по причине:
{(13, 46)}: Не задано значение параметра "ДатаАктуальности"
РегистрСведений.РС_Сотрудники.СрезПоследних(<<?>>&ДатаАктуальности, ) КАК ПериодическиеДанныеСотрудника
Что не так?(делал и через скобки) В консоли запроса все идет прекрасно.
А где Вы задаёте параметр &ДатаАктуальности для построителя? Ведь Построитель.Текст = Запрос.Текст; передаёт только текст запроса, но не сам запрос с параметрами... вот тут и ошибка. Вообще это лишнее телодвижение.
Лучше сразу;
ТекстЗапроса = "...";
Построитель.Текст = ТекстЗапроса;
Построитель.Параметры.Вставить("ДатаАктуальности", КонецДня(ДатаАктуальности));Изменено 26.06.13 11:09:03
(3) Bell, это надо запрос такой для построителя писать, с фигурными скобками, вот тогда отрабатывает отбор, а не параметры, например:
| .......
|{ГДЕ
| Сотрудники.*,
| Подразделение.*,
| Отдел.*,
| Должность.*,
| ГрафикРаботы.*,
| Статус.*,
| ДатаПриема,
| ДатаУвольнения}
если отбор пуст, то блок ГДЕ вообще в текст запроса не подставляется, иначе подставятся только те отборы, у которых выставлен флажок Использование
кстати, можно и так сделать:
РегистрСведений.РС_Сотрудники.СрезПоследних({ДатаАктуальности}, ) КАК ПериодическиеДанныеСотрудника
тогда ДатаАктуальности превращается из параметра в отбор))))
Еще тогда вопрос
Переметров сейчас много, есть или у построителя, если выбраны все реквизиты в ГДЕ чтобы заменить их на (*)
Как будет синтаксис (4) MokeyПеределал так, все идет
|{ГДЕ
| ПериодическиеДанныеСотрудника.Сотрудники.*,
| ПериодическиеДанныеСотрудника.Подразделение.*,
| ПериодическиеДанныеСотрудника.Отдел.*,
| ПериодическиеДанныеСотрудника.Должность.*,
| ПериодическиеДанныеСотрудника.ГрафикРаботы.*,
| ПериодическиеДанныеСотрудника.Статус.*,
| ПериодическиеДанныеСотрудника.ДатаПриема,
| ПериодическиеДанныеСотрудника.ДатаУвольнения,
| Справочник.Ссылка.*}";
Построитель.Текст = Запрос.Текст;
Построитель.Параметры.Вставить("ДатаАктуальности", КонецДня(ДатаАктуальности));
Если Построитель.Отбор.Количество() = 0 Тогда
Возможно ли использование в пострителе Звездочки в ГДЕ, если выбраны все реквизиты чтобы уменьшить размер запроса. К пример ГДЕ ( *.*) как то так или по другому
Как в обычном запросе.
Выбрать
* // ??? (я руками это длеаю всегда ,если выбираю все реквзиты для уменьшения запроса и лучшей читабельности)
ИЗ
Документ.Доверенность