ВидДвижения + НаДату

1. Intercititude 29.07.20 14:51 Сейчас в теме
Добрый день всем!
Необходимо получить данные из регистра накопления с указанием ВидаДвижения и НаДату.
ВидДвижения есть только у обычного регистра и там "Период". Как период прировнять к НаДату ?
На Выходе необходимо получить значение измерения регистра НаДату.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
17. zarankony 312 29.07.20 16:54 Сейчас в теме +0.2 $m
(16) Может так заработает?
ИЗ

РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение 
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
СГРУППИРОВАТЬ ПО 
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
Показать

И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
Intercititude; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SaschaL 29.07.20 14:58 Сейчас в теме
(1)Вы уже составили примерный текст запроса?
Модно допустим присвоить синоним параметру период

"НаименованиеРегистраНакопления.Период как НаДату"

И вид вдижения.Приход
AlexandrSmith; +1 Ответить
3. Intercititude 29.07.20 15:16 Сейчас в теме
(2) Отчёт на скд. ВидДвижения задал в условиях. Но необходимо получить последние записи "НаДату", не пойму как в случае с периодом это реализовать.

То есть к примеру из РегистраНакопления.Остатки, можно задать &НаДату в параметрах этой виртуальной таблицы. Мне вот так же надо, но регистр нак. обычный.
6. zarankony 312 29.07.20 15:34 Сейчас в теме
(3) В таблице считайте
Сумма(НаименованиеРегистраНакопления.Ресурс)
ГДЕ
НаименованиеРегистраНакопления.Период <= &Период
И НаименованиеРегистраНакопления.ВидДвижения = &ВидДвижения
7. Intercititude 29.07.20 15:48 Сейчас в теме
(6) Будет выводить несколько записей. Мне необходимо значение измерения последнее на дату.
Возможно вытащить поле Период и сделать порядок по нему Убывание ?
Или как..
8. zarankony 312 29.07.20 15:57 Сейчас в теме
(7)Вам в итоге надо несколько записей? По каждому измерению или как?
9. Intercititude 29.07.20 16:02 Сейчас в теме
(8) Если конкретнее. То есть документ с номенклатурой и серией.
И есть рег.накопления с измерениями номенклатура, серия и статус.
Мне необходимо вывести отчёт по данным документов + статус в строках.

Я делаю левое соединение документа с рег.накопления по номенклатура и серии.
На выходе у каждой позиции номенклатуры из документа напротив хочу получить текущий статус( А именно ВидДвижения.Приход) плюс ко всему на текущую дату().
10. Intercititude 29.07.20 16:08 Сейчас в теме
(8) Вот запрос, но он выводит несколько строк и берёт первую строку из регистра, а мне нужна последняя. В итоге номенклатура дублируется несколько раз с разными статусами..( это тоже проблема..)

ВЫБРАТЬ

ЗаявкаНаСклад.Ссылка КАК Документ,

ЗаявкаНаСклад.Дата КАК Дата,

ЗаявкаНаСклад.Номер,

ЗаявкаНаСкладТовары.Номенклатура,

ЗаявкаНаСкладТовары.СерияНоменклатуры,

ЗаявкаНаСкладТовары.ЕдиницаИзмерения,

ЗаявкаНаСкладТовары.Количество,

ЗаявкаНаСкладТовары.ДатаПлановая,

ЗаявкаНаСкладТовары.Готовность,

ЗаявкаНаСкладТовары.ФлагПриоритет,

ЗаявкаНаСклад.Организация,

ЗаявкаНаСклад.Контрагент,

ЗаявкаНаСклад.ДоговорКонтрагента,

ЗаявкаНаСклад.Склад,

ЗаявкаНаСклад.АвторЗаявки,

ЗаявкаНаСклад.Исполнитель,

ЗаявкаНаСкладТовары.НомерСтроки

ПОМЕСТИТЬ ВТ_ЗаявкиНаСклад

ИЗ

Документ.лад_ЗаявкаНаСклад.Товары КАК ЗаявкаНаСкладТовары

ЛЕВОЕ СОЕДИНЕНИЕ Документ.лад_ЗаявкаНаСклад КАК ЗаявкаНаСклад

ПО ЗаявкаНаСкладТовары.Ссылка = ЗаявкаНаСклад.Ссылка

ГДЕ

(НЕ ЗаявкаНаСклад.ПометкаУдаления)

И ЗаявкаНаСклад.Проведен = ИСТИНА

И ЗаявкаНаСклад.Дата МЕЖДУ &ДатаНачала И &ДатаКонца

;



////////////////////////////////////////////////////////////­////////////////////

ВЫБРАТЬ

СостояниеТоваровНаСкладахСВХ.Статус,

СостояниеТоваровНаСкладахСВХ.Период,

СостояниеТоваровНаСкладахСВХ.Номенклатура,

СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры,

СостояниеТоваровНаСкладахСВХ.Количество

ПОМЕСТИТЬ ВТ_Статусы

ИЗ

РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ

ГДЕ

СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)

И СостояниеТоваровНаСкладахСВХ.Период <= &НаДату

;



////////////////////////////////////////////////////////////­////////////////////

ВЫБРАТЬ

ВТ_ЗаявкиНаСклад.Документ,

ВТ_ЗаявкиНаСклад.Дата,

ВТ_ЗаявкиНаСклад.Номер,

ВТ_ЗаявкиНаСклад.Номенклатура,

ВТ_ЗаявкиНаСклад.СерияНоменклатуры,

ВТ_ЗаявкиНаСклад.ЕдиницаИзмерения,

ВТ_ЗаявкиНаСклад.Количество,

ВТ_ЗаявкиНаСклад.ДатаПлановая,

ВТ_ЗаявкиНаСклад.Готовность,

ВТ_ЗаявкиНаСклад.ФлагПриоритет,

ВТ_ЗаявкиНаСклад.Организация,

ВТ_ЗаявкиНаСклад.Контрагент,

ВТ_ЗаявкиНаСклад.ДоговорКонтрагента,

ВТ_ЗаявкиНаСклад.Склад,

ВТ_ЗаявкиНаСклад.АвторЗаявки,

ВТ_ЗаявкиНаСклад.Исполнитель,

ВТ_ЗаявкиНаСклад.НомерСтроки,

ВТ_Статусы.Статус

ИЗ

ВТ_ЗаявкиНаСклад КАК ВТ_ЗаявкиНаСклад

ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Статусы КАК ВТ_Статусы

ПО ВТ_ЗаявкиНаСклад.Номенклатура = ВТ_Статусы.Номенклатура

И ВТ_ЗаявкиНаСклад.СерияНоменклатуры = ВТ_Статусы.СерияНоменклатуры

Показать
11. zarankony 312 29.07.20 16:22 Сейчас в теме
(10) Если я првильно понял что вам нужно, во втором пакете
ИЗ

РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение 
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксСПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
СГРУППИРОВАТЬ ПО 
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
Показать

Вроде так должно работать, но производительность не очень, надо как-то на временные таблицы переделать и ограничить кол-во
12. Intercititude 29.07.20 16:31 Сейчас в теме
(11) То есть во втором пакете Вы добавил этот же регистр и связали с ним же ?
Не совсем умею ещё читать без конструктора )
13. zarankony 312 29.07.20 16:33 Сейчас в теме
(12)Да, но туда вывел максимум периода по измерениям, по которым будете присоединяться.
14. Intercititude 29.07.20 16:38 Сейчас в теме
(13) А мой запрос не измененным остаётся ?
И если этот Ваше кусок во вложеный запрос поместить и связать ?
15. zarankony 312 29.07.20 16:38 Сейчас в теме
16. Intercititude 29.07.20 16:42 Сейчас в теме
(15) Всё равно выводит несколько записей :(
И статусы по периоду вообще перемешались.
Максимум не отрабатывает почему то..
МОжет всё-таки с порядком играться и полем период ?
Не знаю как правильнее.
17. zarankony 312 29.07.20 16:54 Сейчас в теме +0.2 $m
(16) Может так заработает?
ИЗ

РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение 
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
СГРУППИРОВАТЬ ПО 
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
Показать

И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
Intercititude; +1 Ответить
18. Intercititude 29.07.20 17:00 Сейчас в теме
(17) Да, такое может быть. В пределах секунды думаю.
< &НаДату не помогло.
Взял просто Ваш запрос и указал параметры номенклатуры и серии.
Выводит четыре строки как и в регистре, но порядка по дате нету.
19. zarankony 312 29.07.20 17:08 Сейчас в теме
(18)Во временной таблице ВТ_Статусы уже задвоены или задваиваются в 3 пакете при присоединении?
20. Intercititude 29.07.20 17:12 Сейчас в теме
(19) Попробовал просто сделать максимум(период) без внутреннего соединения во втором пакете и вывести выборку.
Вывелось как надо от последней даты к начальной! ( 4 позиции на разые периоды и разные статусы)
Но при соединении в 3 запросе идут дубли. То есть берутся эти разные 4 статуса почему то.
21. zarankony 312 29.07.20 17:25 Сейчас в теме
(20) Внутреннее соединение надо чтобы в ВТ_Статусы попали только последние записи, надо смотреть где двоит и почему, без консоли мне так тоже трудно определить. Может количество надо выбросить из 2 пакета, оно все равно не нужно. Если статусы по периоду повторяются, то с ними ХЗ что делать.
22. Intercititude 29.07.20 17:30 Сейчас в теме
(21) А если в вкладке дополнитено сделать выборка записей первые 1 ?
23. zarankony 312 29.07.20 17:36 Сейчас в теме
(22)не, не то. Смотрите что во 2 пакете попадает в ВТ_Статусы
24. Intercititude 29.07.20 17:55 Сейчас в теме
4. TimurD 6 29.07.20 15:22 Сейчас в теме
Используйте виртуальную таблицу "Обороты". Дата окончания - Ваш параметр НаДату. и числовой ресурс с постфиксом "Приход" или "Расход".
Если вид движения задается в параметрах отчета (скажем строкой), то можно ресурс вычислять так:
ВЫБОР
      КОГДА &ВидДвижения = "Приход"
           ТОГДА Обороты.СуммаПриход
      КОГДА &ВидДвижения = "Расход"
           ТОГДА Обороты.СуммаРасход
       ИНАЧЕ 0
КОНЕЦ
Показать
5. Intercititude 29.07.20 15:26 Сейчас в теме
(4) Ну мне необходим только приход. И необходимо на выходе получение не Суммы,а значения измерения.

Возможно достаточно вытащить СуммаПриход ?
И в дополнительно указать первые 1 ?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот