1с 7 не работает запрос по документам

Обновлено: 01.07.2024

1С 7.7 Запрос перестал выбирать данные за период. Проблема ТОЛЬКО в одном месяце.

Добрый день.
1С Предприятие 7.7 релиз 021 (DBF)
Во всех отчетах "Запрос" за Март 2016 перестал выбирать данные.

При формировании "Лицевого счета" за любой период Марта (перепровожу документ по начислению ЗП разными датами) данные не появляются.
При формировании "Лицевого счета" за Январь, Февраль, Апрель - данные есть.
При формировании "Лицевого счета" за период с Января по Апрель данные за Март появляются.
Начисление ЗП проведено, проводки есть, в ОСВ отражаются.
Выбрать данные методом "БухгалтерскиеИтоги" получается.

Кто с таким сталкивался? И как решить такую ситуацию? (Переписывать все отчеты методом "БухгалтерскиеИтоги" слишком кардинальное решение)

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"// |Период с Дата1 по Дата2;
|Сотрудники = Операция.Субконто.Сотрудни ки;
|ВидНачисл = Операция.Субконто.ВидыНачи слений;
|Сум=Операция.Сумма;
|Сч=Операция.Счет;
|функция Начисл=КО(Сум) когда (Сч=СчетПоКоду(""531.1""));
|функция Удерж=ДО(Сум) когда (Сч=СчетПоКоду(""531.1""));
|Группировка Сотрудники ;
|Группировка Месяц ;
|Группировка ВидНачисл ;
|"//>>ЗАПРОС
;
Если ПустоеЗначение(Сотрудник) = 0 Тогда // выбор элемента спр.Сотрудники в экранной форме отчета
ТекстЗапроса = ТекстЗапроса + "Условие(Сотрудники = Сотрудник) ;"
КонецЕсли;

Если Запрос.Выполнить(ТекстЗапр оса) = 0 Тогда
Сообщить("Ошибка при отборе Зарплата.");
Возврат;
КонецЕсли;

Пока Запрос.Группировка("Сотруд� �ики") = 1 Цикл // здесь в отладчике возвращает 0

Пока Запрос.Группировка("Месяц") = 1 Цикл // здесь в отладчике возвращает 0
ДатаААА=Запрос.КонецПериод а();

Пока Запрос.Группировка("ВидНач� �сл") = 1 Цикл // здесь в отладчике возвращает 0

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//** |Период с (НачДата-1000) по КонДата;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|Сотрудник = Документ.БольничныйЛист.Сотрудник.ОсновнойЭлемент;
|БольничныйЛист = Документ.БольничныйЛист.ТекущийДокумент;
|Группировка Сотрудник;
|Группировка БольничныйЛист;
|Условие(Сотрудник = Сотр.ТекущийЭлемент());
|"//****ЗАПРОС
;
КонецЦикла;

То есть в переборе сотрудников, нужно выбрать запросом все больничные сотра за период.
Запрос возвращает пустой результат. Подскажите, что не так я делаю. И вообще можно ли таким образом получить результат.

Пока Запрос.Группировка() = 1 Цикл
// Заполнение полей Сформировать
Сообщить("Сотр: "+ВыбСотр+" БЛ: "+Запрос.БольничныйЛист);
КонецЦикла;
Сообщить("======================================== ===");
КонецЦикла;
КонецПроцедуры

(19) ичоу , зависит от необходимости . у мну например есть обработка где закрывается НДС посчфактурам - отгруженный на оплаченный , дык там запрос в цикле для получения списка счфактур и выгрузка в ТЗ (причем в отдельной процедуре) потом обход списка счфактур и создание на их основе записей книг . так как документов шоппц за отчетный период - так шо бывают и необходимости запрос в цикле (у мну правда другая процедура вызывается)

модифицированный запрос, выполняет условие (0) без внешнего цикла по сотрудникам :)

Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//** |Период с НачПер по КонПер;
|Без итогов;
|БольничныйЛист = Документ.БольничныйЛист.ТекущийДокумент;
|Сотрудник = Документ.БольничныйЛист.Сотрудник;
|Группировка Сотрудник без групп;
|Группировка БольничныйЛист;
//|Условие(Сотрудник = ВыбСотр);
|"//****ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

Пока Запрос.Группировка("Сотрудник") = 1 Цикл
Сообщить(Запрос.Сотрудник);
Пока Запрос.Группировка("БольничныйЛист")=1 Цикл
Сообщить(" " +Запрос.БольничныйЛист);
КонецЦикла;
КонецЦикла;

За основу взято "Работающщий запрос" by banzay
убрано никчемушное условие по равенству сотра выбранному из справочника, ибо к чему гонять по справочнику пустых сотров, что без Б/Л??

Читайте также: