С наступившими!
Активно пользуюсь 1cpp и AccountsRecordSet под SQL. Понадобилось использовать прямые запросы к DBF базе. попробовал ПрямойЗапрос. Пока туговато перестроиться на синтаксис и структуру.
Не могу понять, почему не работает запрос:
запрос = "
|select
| ост.КоличествоОстаток Количество,
| ЛЕВО(ост.Субконто1, 9) [Товар $Справочник.Номенклатура],
| ост.Субконто1_вид Товар_вид,
| ост.Субконто2 [Склад $Субконто],
| ост.Субконто2_вид Склад_вид
//| ост.Субконто3 [Партия $Субконто],
//| ост.Субконто3_вид Партия_вид
|from $БИОстатки.Основной(
| :КонДата~,
| #Счет,
| (Субконто1, Субконто2),
| ,
| (Субконто1 в (
| select distinct
| $нп.Продукт
| from Справочник.НаборПродуктов as нп
| where нп.parentext in (select val from #СписокИзделий)))
| and (Субконто2 = :Склад)
| ,
|) as ост
|join Справочник.Номенклатура as ном on ном.id = ЛЕВО(Субконто1, 9)
|";
рс = СоздатьОбъект("ПрямойЗапрос");
рс.УстановитьТекстовыйПараметр("КонДата", ДатаДок);
рс.УстановитьТекстовыйПараметр("Склад", Склад);
рс.УложитьСписокОбъектов(СчетПоКоду("41.2"), "#Счет");
рс.УложитьСписокОбъектов(СписокИзделий, "#СписокИзделий", "Номенклатура");
тз = рс.Выполнить("ТаблицаЗначений", запрос);
Типизация ост.Субконто1 [Товар $Справочник.Номенклатура] не прокатывала. Почитал - сделал ост.Субконто1 [Товар $Субконто], потом ЛЕВО(ост.Субконто1, 9) [Товар $Справочник.Номенклатура] - оба варианта работает.
Почему тогда
join Справочник.Номенклатура as ном on ном.id = ЛЕВО(Субконто1, 9) выдает пустой результат?
И еще: не могу получить остатки, которые бы сходились со штатными отчетами. Как бороть? с AccuntsRecordSet проблем не возникало, поэтому думаю, что чего-то не уловил в ПрямомЗапросе. Разъясните как быть.