Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Оборотный регистр - выборка по регистратору (число прочтений - 3836 )
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Оборотный регистр - выборка по регистратору
26. Мая 2020 :: 10:15
Печать  
Как выбрать оборотный регистр по регистраторам?

Код (C++)
Выбрать все
SELECT
     Реал.IDDoc as [Док $Документ],
     Реал.IDDocDef as Док_вид,
     Реал.СуммаОборот as Сумма,
     Реал.СуммаУчетнаяОборот as СуммаУчетная
FROM
 $РегистрОбороты.Реализация(:ВыбНачПериода,:ВыбКонПериода~,Месяц, , ,(IDDoc, IDDocDef),(Сумма,СуммаУчетная)) AS Реал
 

  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #1 - 26. Мая 2020 :: 10:41
Печать  
Тебе нужно в периодичность вместо "Месяц" использовать "Документ".

"ТекущийДокумент
ПолеТаблицы: ТекущийДокумент
Тип: Строка(9)
Типизация: $Документ.<ВидДокумента>
Пример: ОборотыДоходы.ТекущийДокумент КАК [Док $Документ]
Описание: Внутренний идентификатор документа. Существует только при периодичности = ДОКУМЕНТ.
"
  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #2 - 26. Мая 2020 :: 10:46
Печать  
Код (C++)
Выбрать все
SELECT
     Реал.IDDoc as [Док $Документ],
     Реал.IDDocDef as Док_вид,
     Реал.СуммаОборот as Сумма,
     Реал.СуммаУчетнаяОборот as СуммаУчетная
FROM
     $РегистрОбороты.Реализация(:ВыбНачПериода,:ВыбКонПериода~,Документ, , ,,(Сумма,СуммаУчетная)) AS Реал


 



Недопустимое имя столбца "IDDoc"

  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #3 - 26. Мая 2020 :: 10:50
Печать  
SELECT
     Реал.ТекущийДокумент as [Док $Документ],
  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #4 - 26. Мая 2020 :: 10:51
Печать  
Недопустимое имя столбца "ТекущийДокумент"
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #5 - 26. Мая 2020 :: 10:53
Печать  
SELECT
     Реал.ТекущийДокумент as [Док $Документ],    
     Реал.ВидДокумента as ВидДокумента,
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #6 - 26. Мая 2020 :: 10:56
Печать  
Вот из рабочей конфигурации кусок:
ТекстЗапроса = "
  |SELECT
  |      регОст.Номенклатура [Номенклатура $Справочник.Номенклатура]
           |      ,регОст.Склад [Склад $Справочник.Склады]
           |      ,регОст.ВидДокумента||регОст.ТекущийДокумент [Документ $Документ]
           |      ,регОст.ТекущийДокумент [ДокПеремещение $Документ.ПеремещениеТМЦ]
           |      ,регОст.ПозицияДокумента as ПозицияДокумента
           |      ,регОст.ВидДокумента [ВидДокумента $ВидДокументаПредставление]
           |      ,регОст.КоличествоНачальныйОстаток as НачальныйОстаток
           |      ,регОст.КоличествоКонечныйОстаток as КонечныйОстаток
           |      ,регОст.КоличествоПриход as Приход
           |      ,регОст.КоличествоРасход as Расход
           |FROM
           | $РегистрОстаткиОбороты.ОстаткиТМЦ(:ДатаНачала, :ДатаКонца~, Документ,
     
  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #7 - 26. Мая 2020 :: 11:09
Печать  
Код (SQL)
Выбрать все
SELECT
     Реал.ТекущийДокумент as [Док $Документ],
     Реал.ВидДокумента as ВидДокумента,
     Реал.СуммаОборот as Сумма,
     Реал.СуммаУчетнаяОборот as СуммаУчетная
FROM
     $РегистрОбороты.Реализация(:ВыбНачПериода,:ВыбКонПериода~,Документ, , ,,(Сумма,СуммаУчетная)) AS Реал
 



Недопустимое имя столбца "ТекущийДокумент".
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #8 - 26. Мая 2020 :: 11:16
Печать  
Может я тебя не правильно понял, ты не используешь класс "прямойЗапрос"?
  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #9 - 26. Мая 2020 :: 11:19
Печать  
     RS = СоздатьОбъект("ODBCRecordset");
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #10 - 26. Мая 2020 :: 11:23
Печать  
Тогда не подскажу.
Я использую класс "ПямойЗапрос" (автор
vandalsvq):
http://www.1cpp.ru/forum/YaBB.pl?num=1273512019/0

ТекстЗапроса = "
           |SELECT
           |      Рег.Номенклатура [Номенклатура $Справочник.Номенклатура]
           |      ,Рег.СебестоимостьОборот
           |      ,Рег.ПродСтоимостьОборот
           |      ,Рег.ВидДокумента||Рег.ТекущийДокумент [Документ $Документ]
           |      ,Рег.ВидДокумента
           |FROM
           |  $РегистрОбороты.Продажи(:ДатаНачала, :ДатаКонца~, Документ
           |            , ,(Номенклатура, Покупатель),(Себестоимость, ПродСтоимость),) as Рег
           |LIMIT 100
           |";
     
     ПрямойЗапрос = СоздатьОбъект("ПрямойЗапрос");
     ПрямойЗапрос.Текст = ТекстЗапроса;
     ПрямойЗапрос.РежимОтладки = 0;
     ПрямойЗапрос.УстановитьТекстовыйПараметр("ДатаНачала", Дата("01.01.2019"));
     ПрямойЗапрос.УстановитьТекстовыйПараметр("ДатаКонца", Дата("01.01.2020"));
     тз = ПрямойЗапрос.Выполнить("ТаблицаЗначений");
     тз.ВыбратьСтроку();

  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #11 - 26. Мая 2020 :: 11:54
Печать  
Сообразил. Вот так работает

Код (SQL)
Выбрать все
SELECT
     Реал.IDDoc as [Док $Документ],
     Реал.IDDocDef as Док_вид
FROM
     $Регистр.Реализация AS Реал
INNER JOIN
    _1Sjourn as Жур ON Жур.IDDoc = Реал.IDDoc
WHERE
    Жур.Date_Time_IDDoc BETWEEN :ВыбНачПериода AND:ВыбКонПериода~
 



Но теперь другой вопрос:  не могу добавить ресурсы.

Код (SQL)
Выбрать все
SELECT
     Реал.IDDoc as [Док $Документ],
     Реал.IDDocDef as Док_вид,
     Реал.Сумма as Сумма
FROM
     $Регистр.Реализация AS Реал
INNER JOIN
    _1Sjourn as Жур ON Жур.IDDoc = Реал.IDDoc
WHERE
    Жур.Date_Time_IDDoc BETWEEN :ВыбНачПериода AND:ВыбКонПериода~
 



Недопустимое имя столбца "Сумма".
  
Наверх
 
IP записан
 
nicesc
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 53
Зарегистрирован: 13. Июня 2009
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #12 - 26. Мая 2020 :: 12:04
Печать  
Скорее всего надо так: $Реал.Сумма
  
Наверх
 
IP записан
 
OnePrg
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 66
Зарегистрирован: 07. Октября 2019
Re: Оборотный регистр - выборка по регистратору
Ответ #13 - 26. Мая 2020 :: 12:13
Печать  
Заработало - спасибо.
  
Наверх
 
IP записан
 
Sserj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 77
Зарегистрирован: 25. Октября 2010
Re: Оборотный регистр - выборка по регистратору
Ответ #14 - 26. Мая 2020 :: 12:59
Печать  
Зачем соединять с журналом документов?
На картинке вверху у тебя стоит у регистра флажок Быстрая обработка движений.
С таким флажком Date_Time_Iddoc и IDDOCDEF уже есть в самой таблице движений, т.е. достаточно:

SELECT
     Реал.IDDoc as [Док $Документ],
     Реал.IDDocDef as Док_вид,
     $Реал.Сумма as Сумма
FROM
     $Регистр.Реализация AS Реал
WHERE
    Реал.Date_Time_IDDoc BETWEEN :ВыбНачПериода AND:ВыбКонПериода~
  
Наверх
 
IP записан
 
Sserj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 77
Зарегистрирован: 25. Октября 2010
Re: Оборотный регистр - выборка по регистратору
Ответ #15 - 26. Мая 2020 :: 13:03
Печать  
Но вообще у тебя получится на каждый документ по несколько строк, так как в регистр пишется запись для каждой строки документа, чтобы получить запись в одну строку нужно сгруппировать по документам, но чтобы точно попасть в индекс лучше группировать по Date_Time_Iddoc:

SELECT
     min(Реал.IDDoc) as [Док $Документ],
     min(Реал.IDDocDef) as Док_вид,
     sum($Реал.Сумма) as Сумма
FROM
     $Регистр.Реализация AS Реал
WHERE
    Реал.Date_Time_IDDoc BETWEEN :ВыбНачПериода AND:ВыбКонПериода~
GROUP BY
  Реал.Date_Time_IDDoc
ORDER BY
  Реал.Date_Time_IDDoc
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Оборотный регистр - выборка по регистратору
Ответ #16 - 27. Мая 2020 :: 07:12
Печать  
Код (SQL)
Выбрать все
SELECT
     right(Реал.ПозицияДокумента, 9) as [Док $Документ],
     Реал.ВидДокумента as Док_вид,
     Реал.СуммаОборот as Сумма,
     Реал.СуммаУчетнаяОборот as СуммаУчетная
FROM
     $РегистрОбороты.Реализация(:ВыбНачПериода,:ВыбКонПериода~,Документ, , ,,(Сумма,СуммаУчетная)) AS Реал 



http://www.1cpp.ru/docum/icpp/html/ODBC.html#id35
абзац - Поля
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать