По теме из базы знаний
Найденные решения
(16) Может так заработает?
И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
СГРУППИРОВАТЬ ПО
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
ПоказатьИ период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Отчёт на скд. ВидДвижения задал в условиях. Но необходимо получить последние записи "НаДату", не пойму как в случае с периодом это реализовать.
То есть к примеру из РегистраНакопления.Остатки, можно задать &НаДату в параметрах этой виртуальной таблицы. Мне вот так же надо, но регистр нак. обычный.
То есть к примеру из РегистраНакопления.Остатки, можно задать &НаДату в параметрах этой виртуальной таблицы. Мне вот так же надо, но регистр нак. обычный.
(8) Если конкретнее. То есть документ с номенклатурой и серией.
И есть рег.накопления с измерениями номенклатура, серия и статус.
Мне необходимо вывести отчёт по данным документов + статус в строках.
Я делаю левое соединение документа с рег.накопления по номенклатура и серии.
На выходе у каждой позиции номенклатуры из документа напротив хочу получить текущий статус( А именно ВидДвижения.Приход) плюс ко всему на текущую дату().
И есть рег.накопления с измерениями номенклатура, серия и статус.
Мне необходимо вывести отчёт по данным документов + статус в строках.
Я делаю левое соединение документа с рег.накопления по номенклатура и серии.
На выходе у каждой позиции номенклатуры из документа напротив хочу получить текущий статус( А именно ВидДвижения.Приход) плюс ко всему на текущую дату().
(8) Вот запрос, но он выводит несколько строк и берёт первую строку из регистра, а мне нужна последняя. В итоге номенклатура дублируется несколько раз с разными статусами..( это тоже проблема..)
ВЫБРАТЬ
ЗаявкаНаСклад.Ссылка КАК Документ,
ЗаявкаНаСклад.Дата КАК Дата,
ЗаявкаНаСклад.Номер,
ЗаявкаНаСкладТовары.Номенклатура,
ЗаявкаНаСкладТовары.СерияНоменклатуры,
ЗаявкаНаСкладТовары.ЕдиницаИзмерения,
ЗаявкаНаСкладТовары.Количество,
ЗаявкаНаСкладТовары.ДатаПлановая,
ЗаявкаНаСкладТовары.Готовность,
ЗаявкаНаСкладТовары.ФлагПриоритет,
ЗаявкаНаСклад.Организация,
ЗаявкаНаСклад.Контрагент,
ЗаявкаНаСклад.ДоговорКонтрагента,
ЗаявкаНаСклад.Склад,
ЗаявкаНаСклад.АвторЗаявки,
ЗаявкаНаСклад.Исполнитель,
ЗаявкаНаСкладТовары.НомерСтроки
ПОМЕСТИТЬ ВТ_ЗаявкиНаСклад
ИЗ
Документ.лад_ЗаявкаНаСклад.Товары КАК ЗаявкаНаСкладТовары
ЛЕВОЕ СОЕДИНЕНИЕ Документ.лад_ЗаявкаНаСклад КАК ЗаявкаНаСклад
ПО ЗаявкаНаСкладТовары.Ссылка = ЗаявкаНаСклад.Ссылка
ГДЕ
(НЕ ЗаявкаНаСклад.ПометкаУдаления)
И ЗаявкаНаСклад.Проведен = ИСТИНА
И ЗаявкаНаСклад.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СостояниеТоваровНаСкладахСВХ.Статус,
СостояниеТоваровНаСкладахСВХ.Период,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры,
СостояниеТоваровНаСкладахСВХ.Количество
ПОМЕСТИТЬ ВТ_Статусы
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
И СостояниеТоваровНаСкладахСВХ.Период <= &НаДату
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_ЗаявкиНаСклад.Документ,
ВТ_ЗаявкиНаСклад.Дата,
ВТ_ЗаявкиНаСклад.Номер,
ВТ_ЗаявкиНаСклад.Номенклатура,
ВТ_ЗаявкиНаСклад.СерияНоменклатуры,
ВТ_ЗаявкиНаСклад.ЕдиницаИзмерения,
ВТ_ЗаявкиНаСклад.Количество,
ВТ_ЗаявкиНаСклад.ДатаПлановая,
ВТ_ЗаявкиНаСклад.Готовность,
ВТ_ЗаявкиНаСклад.ФлагПриоритет,
ВТ_ЗаявкиНаСклад.Организация,
ВТ_ЗаявкиНаСклад.Контрагент,
ВТ_ЗаявкиНаСклад.ДоговорКонтрагента,
ВТ_ЗаявкиНаСклад.Склад,
ВТ_ЗаявкиНаСклад.АвторЗаявки,
ВТ_ЗаявкиНаСклад.Исполнитель,
ВТ_ЗаявкиНаСклад.НомерСтроки,
ВТ_Статусы.Статус
ИЗ
ВТ_ЗаявкиНаСклад КАК ВТ_ЗаявкиНаСклад
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Статусы КАК ВТ_Статусы
ПО ВТ_ЗаявкиНаСклад.Номенклатура = ВТ_Статусы.Номенклатура
И ВТ_ЗаявкиНаСклад.СерияНоменклатуры = ВТ_Статусы.СерияНоменклатуры
Показать
(10) Если я првильно понял что вам нужно, во втором пакете
Вроде так должно работать, но производительность не очень, надо как-то на временные таблицы переделать и ограничить кол-во
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксСПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
СГРУППИРОВАТЬ ПО
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
ПоказатьВроде так должно работать, но производительность не очень, надо как-то на временные таблицы переделать и ограничить кол-во
(16) Может так заработает?
И период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
Внутреннее соединение
(ВЫБРАТЬ
МАКСИМУМ(СостояниеТоваровНаСкладахСВХ.Период) КАК МаксПериод,
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры
ИЗ
РегистрНакопления.СостояниеТоваровНаСкладахСВХ КАК СостояниеТоваровНаСкладахСВХ
ГДЕ
СостояниеТоваровНаСкладахСВХ.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
И СостояниеТоваровНаСкладахСВХ.Период <&НаДату
СГРУППИРОВАТЬ ПО
СостояниеТоваровНаСкладахСВХ.Номенклатура,
СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры) КАК ТаблицаМаксПериодов
ПО СостояниеТоваровНаСкладахСВХ.Период = ТаблицаМаксПериодов.МаксПериод
И СостояниеТоваровНаСкладахСВХ.Номенклатура= ТаблицаМаксПериодов.Номенклатура
И СостояниеТоваровНаСкладахСВХ.СерияНоменклатуры= ТаблицаМаксПериодов.СерияНоменклатуры
ПоказатьИ период в пределах секунды или дня? может быть что в пределах одного и того же периода два разных статуса устанавливались?
(19) Попробовал просто сделать максимум(период) без внутреннего соединения во втором пакете и вывести выборку.
Вывелось как надо от последней даты к начальной! ( 4 позиции на разые периоды и разные статусы)
Но при соединении в 3 запросе идут дубли. То есть берутся эти разные 4 статуса почему то.
Вывелось как надо от последней даты к начальной! ( 4 позиции на разые периоды и разные статусы)
Но при соединении в 3 запросе идут дубли. То есть берутся эти разные 4 статуса почему то.
(20) Внутреннее соединение надо чтобы в ВТ_Статусы попали только последние записи, надо смотреть где двоит и почему, без консоли мне так тоже трудно определить. Может количество надо выбросить из 2 пакета, оно все равно не нужно. Если статусы по периоду повторяются, то с ними ХЗ что делать.
Используйте виртуальную таблицу "Обороты". Дата окончания - Ваш параметр НаДату. и числовой ресурс с постфиксом "Приход" или "Расход".
Если вид движения задается в параметрах отчета (скажем строкой), то можно ресурс вычислять так:
Если вид движения задается в параметрах отчета (скажем строкой), то можно ресурс вычислять так:
ВЫБОР
КОГДА &ВидДвижения = "Приход"
ТОГДА Обороты.СуммаПриход
КОГДА &ВидДвижения = "Расход"
ТОГДА Обороты.СуммаРасход
ИНАЧЕ 0
КОНЕЦ
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот