Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Получение остатков товаров, входящих в документ, на документ (число прочтений - 1078 )
LeshaUMC
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 30. Августа 2021
Получение остатков товаров, входящих в документ, на документ
30. Августа 2021 :: 23:24
Печать  
Есть регистр остаткоа Товары. Измерения: Товар, склад. Ресурсы: количество, сумма, суммавалюта. В документе, при проведении, нужно получить балансовую цену, для списания. Для этого нужно получить остатки на документ. Вот мой код:

ТекстЗапроса = " 
|SELECT 
|    Рег.Товар as [Товар $Справочник.Каталог],
|    Рег.Количество as Количество,
|    Рег.Сумма as Сумма,
|    Рег.СуммаВалюта as СуммаВалюта
|FROM
|    $ДокументСтроки." + Вид() + " as Док
|INNER JOIN
|    $Справочник.Каталог as СпрН ON СпрН.ID = $Док.Работы AND
|                                        $СпрН.ВидНоменклатуры = :$Перечисление.ВидыНоменклатуры.Товар
|
|LEFT JOIN
|    $РегистрОстатки.Товары("+?(ИтогиАктуальны()=1,",",":ДатаРасчета~,")+" ,
|                       Склад= :Склад,
|                       (Товар), (СуммаВалюта, Сумма, Количество)) as Рег
|   ON
|    $Док.Работы = Рег.Товар
|  WHERE
|    Док.IDDOC = :ВыбДок 
|GROUP BY 
|    $Док.Работы
|     ";      
кущийДокумент(), -1));
Запрос.УстановитьТекстовыйПараметр("ВыбДок",ТекущийДокумент());
Запрос.УстановитьТекстовыйПараметр("Склад",Склад);
ТЗ=Запрос.ВыполнитьИнструкцию(ТекстЗапроса);

Выдает ошибку: FAILED! ICommandText::Execute(): Missing operand.
  
Наверх
 
IP записан
 
LeshaUMC
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 30. Августа 2021
Re: Получение остатков товаров, входящих в документ, на документ
Ответ #1 - 30. Августа 2021 :: 23:29
Печать  
кущийДокумент(), -1));
Опечатка.
  
Наверх
 
IP записан
 
LeshaUMC
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 30. Августа 2021
Re: Получение остатков товаров, входящих в документ, на документ
Ответ #2 - 31. Августа 2021 :: 08:43
Печать  
Не работает. Я уже упрощал к виду:
Функция ПолучитьОстаткиДокПр()
Если МонопольныйРежим()=1 Тогда Возврат 0; КонецЕсли;
Попытка
База = СоздатьОбъект("OLEDBData");
Соединение ="
|Provider=VFPOLEDB.1;
|Data Source=" + КаталогИБ() + ";
|Mode=Read;
|";
Рез = База.Соединение(Соединение);
Запрос = База.СоздатьКоманду();
Исключение
Возврат 0;
КонецПопытки;
ТекстЗапроса = "
|SELECT
| РегСН.Товар AS [Товар $Справочник.Каталог],
| РегСН.Склад AS [Склад $Справочник.Склады],
| РегСН.Количество AS Количество,
| РегСН.Сумма AS Сумма,
| РегСН.СуммаВалюта AS СуммаВалюта
|FROM
| $РегистрОстатки.Товары(:ДатаРасчета~,,,(Товар, Склад),(Количество, Сумма, СуммаВалюта)) AS РегСН
|";
кущийДокумент(), -1));
ТЗ=Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
Если ТЗ.КоличествоСтрок() > 0 тогда
Иначе
ТЗ.НоваяСтрока();
ТЗ.Количество = 0;
КонецЕсли;
ТЗ.ВыбратьСтроку(,"",);
Возврат ТЗ
КонецФункции

Получаю ошибку:
ТЗ=Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{Документ.ПроизводствоПоНормативу.Модуль Документа(77)}: FAILED! ICommandText::Execute(): Syntax error.

  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Получение остатков товаров, входящих в документ, на документ
Ответ #3 - 31. Августа 2021 :: 15:27
Печать  
OLEDBData / ODBCRecordset + DBF не умеют виртуальные таблицы
  

1&&2&&3
Наверх
 
IP записан
 
LeshaUMC
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 4
Зарегистрирован: 30. Августа 2021
Re: Получение остатков товаров, входящих в документ, на документ
Ответ #4 - 01. Сентября 2021 :: 08:28
Печать  
Я, так понял, что нужно копать в сторону РегистрИтоги. Может кто сталкивался?
  
Наверх
 
IP записан
 
leshik
1c++ donor
Отсутствует



Сообщений: 820
Местоположение: Пятигорск
Зарегистрирован: 22. Апреля 2007
Пол: Мужской
Re: Получение остатков товаров, входящих в документ, на документ
Ответ #5 - 05. Сентября 2021 :: 06:59
Печать  
Копай в сторону класса ПрямойЗапрос
Ветка обсуждения в репозитории
https://www.1cpp.ru/forum/YaBB.pl?num=1285352210
Ветка с самим классом
https://www.1cpp.ru/forum/YaBB.pl?num=1273512019
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать