Каталог решений - Выбор Движений документа по конкретному регистру, с помощью прямого запроса

Выбор Движений документа по конкретному регистру, с помощью прямого запроса

Выбор Движений документа по конкретному регистру, с помощью прямого запроса

В наличии

Чтобы узнать какие движения сделал документ по конкретному регистру, в моем случае это регистр "ОстаткиПоСчетам" (оборотный), была написана следующая функция в глобальном модуле. Работает только для SQL версии и установленной внешнй компонентой 1С++!

Категория:

Описание

 

 

 

 

Перем RSДвиж Экспорт ;

Функция глВыбратьДвиженияДокумента(ВыбДок,ВыбСклад="") Экспорт
 Перем ТЗ;
 RSДвиж = СоздатьОбъект("ODBCRecordset");
 ТекстЗапроса = "
 |SELECT
 |    Рег.IDDoc as [Док $Документ],
 |    Жур.IDDocDef as Док_вид,
 |    $Рег.Склад as [Склад $Справочник.Склады],
 |    $Рег.Количество        as Количество,
 |    $Рег.Отгружено         as Отгружено,
 |    $Рег.Зарезервировано   as Зарезервировано,
 |    $Рег.НаСборку          as НаСборку,
 |    $Рег.Собрано           as Собрано,
 |    $Рег.ОтгруженоПоСкладу as ОтгруженоПоСкладу
 |FROM
 |    $Регистр.ОстаткиПоСчетам as Рег
 |INNER JOIN
 |    _1Sjourn as Жур ON Жур.IDDoc = Рег.IDDoc
 |WHERE {Условие}
// |    Рег.IDDoc = :ВыбДок AND $Рег.Склад = :ВыбСклад
 |";
 Если ВыбСклад <> "" Тогда
        стр = "Рег.IDDoc = :ВыбДок AND $Рег.Склад = :ВыбСклад AND (Жур.ISMARK<=?)";
 Иначе
  стр = "Рег.IDDoc = :ВыбДок AND (Жур.ISMARK<=?)";
 КонецЕсли;
    ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "{Условие}", стр) ;
    RSДвиж.УстановитьТекстовыйПараметр("ВыбДок",ВыбДок);
 RSДвиж.УстановитьТекстовыйПараметр("ВыбСклад",ВыбСклад);
 ТЗ = RSДвиж.ВыполнитьИнструкцию(ТекстЗапроса);
 ТЗ.Свернуть("Док","Количество,Отгружено,Зарезервировано,НаСборку,Собрано,ОтгруженоПоСкладу");
 Если  ПустоеЗначение(ТЗ) = 1 Тогда
  Возврат 0;
 Иначе
    Возврат ТЗ
    КонецЕсли;  
КонецФункции

 

has been added to your cart:
Оформление заказа