Был такой рабочий 1С-ный код
ТекстЗапроса="
|Период С КонПериода По КонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|Товар = Регистр.Остатки.Товар, Справочник.Товар.ТекущийЭлемент;
|Склад = Регистр.Остатки.МестоХранения, Справочник.МестаХранения.ТекущийЭлемент;
|Фирма = Регистр.Остатки.Фирма;
|Количество= Регистр.Остатки.Кво;
|Функция КонКол=КонОст(Количество);
|Группировка Товар Без Групп Без Упорядочивания;
|Группировка Склад Без Групп Без Упорядочивания;
|Условие (Склад В ТаблНастроек.Склады);
|Условие (Фирма В ТаблНастроек.Фирмы);
|";
Запрос=СоздатьОбъект("Запрос");
//выполнить запрос с проверкой
Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
ДобавитьВЛогФайл("","Ошибка запроса по клиентам",0);
Возврат;
КонецЕсли;
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
КэшОстатков.Добавить();
КэшОстатков.Firm = Запрос.Фирма.Код;
КэшОстатков.Stock = Запрос.Склад.Код;
КэшОстатков.Good = Запрос.Товар.Код;
КэшОстатков.Rest = Запрос.КонКол;
КэшОстатков.Записать();
КонецЦикла;
КонецЦикла;
после переделки на прямой запрос код выглядит так
ТекстЗапроса =
"SELECT
| Данные.Firm as Firm,
| Данные.Good as Good,
| Данные.Stock as Stock,
| SUM(Данные.Rest) as Rest
|FROM (SELECT
| Фирмы.Code as Firm,
| Товары.Code as Good,
| МестаХранения.Code as Stock,
| Ост.КвоОстаток as Rest
|FROM
| $РегистрОстатки.Остатки(:КонПериода,,,
| (Фирма,Товар,МестоХранения), (Кво)) as Ост
|LEFT JOIN
| $Справочник.Фирмы AS Фирмы
| ON Фирмы.ID = Ост.Фирма
|LEFT JOIN
| $Справочник.МестаХранения AS МестаХранения
| ON МестаХранения.ID = Ост.МестоХранения
|LEFT JOIN
| $Справочник.Товар AS Товары
| ON Товары.ID = Ост.Товар) as Данные
|
|GROUP BY
| Firm,
| Good,
| Stock";
RS.УстановитьТекстовыйПараметр("КонПериода", КонПериода);
тб = RS.ВыполнитьИнструкцию(ТекстЗапроса);
тб.ВыбратьСтроки();
инд = 0;
Пока тб.ПолучитьСтроку() = 1 Цикл
КэшОстатков.Добавить();
КэшОстатков.Firm = Число(тб.Firm);
КэшОстатков.Stock = Число(тб.Stock);
КэшОстатков.Good = Число(тб.Good);
КэшОстатков.Rest = Число(тб.Rest);
КэшОстатков.Записать();
инд = инд + 1;
глПрогрессор("Обработано записей",тб.КоличествоСтрок(),инд);
КонецЦикла;
переделанный код не работает, запрос выполняется, DBF начинает заполняться, но где-то на 8% заполнения выскакивает такая ошибка
подскажите, что не так