ОБСУЖДЕНИЕ

Запросы

3 ответов 5,5 тыс.
Статус
Закрыто для дальнейших ответов.
Автор темы
Справочник Сотрудники имеет периодичекий реквизит История. Не получается по каждому сотруднику выводить текущее значение Истории.
Подскажите, плиз, почему

Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Шапка");
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|Сотр=Справочник.Сотрудники.ТекущийЭлемент;
|Ист= Справочник.Сотрудники.История;
|Группировка Сотр упорядочить по Сотр.Наименование;
|";
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Таб.ВывестиСекцию("Строка");
Пока Запрос.Группировка("Сотр") = 1 Цикл
Если Запрос.Сотр.ЭтоГруппа() = 0 Тогда
Таб.ВывестиСекцию("Строка2");
КонецЕсли;
КонецЦикла;

КонецПроцедуры
 
Периодические реквизиты в черном запросе - глюк 1С (или фича?)...
Дело в том, что значение периодического реквизита можно получить только если в запросе прописан период, и только на дату "по". Т.к. в вашем запросе даты не важны - можете смело указывать период построения запроса.
Как вариант - можете в группировке по "Сотр" вытягивать значение в переменную, а из нее - в отчет.
 
Вопросец один наклюнулся... Почему именно запрос? Если ваш запрос - это все, что необходимо сделать, проще будет выборкой, которая, кстати, именно в этом конкретном случае будет работать быстрее.
 
В общем итоге мне нужно выбрать работающих на конкретную дату сотрудников, посмотреть их Историю (периодический реквизит, хранит значения документов прием, увольнение, изменение) и в зависимости от неё выбрать документ Изменение, Увольнение или Прием на этого сотрудника
 
Статус
Закрыто для дальнейших ответов.