Добрый день.
Есть задача.
Получить остатки по месяцам из регистра ПартииТоваровНаСкладах
Выбирает, но если нет оборотов, то нет и остатков. А они ведь есть...
Как получить остаток за месяц, в котором нет оборотов?
Прошу помочь.
Есть задача.
Получить остатки по месяцам из регистра ПартииТоваровНаСкладах
Выбрать
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Месяц)
Выбирает, но если нет оборотов, то нет и остатков. А они ведь есть...
Как получить остаток за месяц, в котором нет оборотов?
Прошу помочь.
По теме из базы знаний
- Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники
- Перенос данных из БП 3.0 / БП 2.0 в УПП 1.3 / КА 1.1. Переносятся документы, остатки и справочники
- Перенос данных из БП 2.0 в УТ 11 / КА 2 / ERP 2. Переносятся документы, остатки и справочники
- Помощник закрытия месяца
- Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ЕРП 2.4. Интеркампани, механизм формирования резервов
Найденные решения
Нашел решение.
ТЗ - это таблица значений с датами.
ТЗ - это таблица значений с датами.
ВЫБРАТЬ
ТЗ.ДатаПериода
ПОМЕСТИТЬ ВТ
ИЗ
&ТЗ КАК ТЗ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.ДатаПериода,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Остаток,
МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты1.Период) КАК ПериодПусто,
ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура КАК НоменклатураПусто
ПОМЕСТИТЬ ВТ1
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПО ВТ.ДатаПериода = ПартииТоваровНаСкладахОстаткиИОбороты.Период
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты1
ПО ВТ.ДатаПериода >= ПартииТоваровНаСкладахОстаткиИОбороты1.Период
СГРУППИРОВАТЬ ПО
ВТ.ДатаПериода,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ1.ДатаПериода,
ЕСТЬNULL(ВТ1.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(ВТ1.Остаток, ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Остаток
ИЗ
ВТ1 КАК ВТ1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПО ВТ1.НоменклатураПусто = ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
И ВТ1.ПериодПусто = ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Нашел решение.
ТЗ - это таблица значений с датами.
ТЗ - это таблица значений с датами.
ВЫБРАТЬ
ТЗ.ДатаПериода
ПОМЕСТИТЬ ВТ
ИЗ
&ТЗ КАК ТЗ
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ.ДатаПериода,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Остаток,
МАКСИМУМ(ПартииТоваровНаСкладахОстаткиИОбороты1.Период) КАК ПериодПусто,
ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура КАК НоменклатураПусто
ПОМЕСТИТЬ ВТ1
ИЗ
ВТ КАК ВТ
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПО ВТ.ДатаПериода = ПартииТоваровНаСкладахОстаткиИОбороты.Период
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты1
ПО ВТ.ДатаПериода >= ПартииТоваровНаСкладахОстаткиИОбороты1.Период
СГРУППИРОВАТЬ ПО
ВТ.ДатаПериода,
ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ПартииТоваровНаСкладахОстаткиИОбороты1.Номенклатура
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ1.ДатаПериода,
ЕСТЬNULL(ВТ1.Номенклатура, ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(ВТ1.Остаток, ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Остаток
ИЗ
ВТ1 КАК ВТ1
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, Месяц, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты
ПО ВТ1.НоменклатураПусто = ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
И ВТ1.ПериодПусто = ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот