Движения по регистру накопления

1. Jovi 06.03.20 11:25 Сейчас в теме
Добрый день. Подскажите пожалуйста. Мне нужно в моём текущем запросе полученную дату документов Инвентаризации изменить на дату документов Оприходования/Списания (которые формируются на основе Инвентаризации). В регистре накопления ПартииТоваровнаСкладах есть реквизиты Регистратор и ДокументДвижения. Как наладить связь?

ВЫБРАТЬ
ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка,
ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки КАК НомерСтроки,
ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
ИнвентаризацияТоваровНаСкладеТовары.Количество КАК Количество,
ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет КАК КоличествоУчет,
ИнвентаризацияТоваровНаСкладеТовары.Цена КАК Цена,
ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Сумма,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет КАК СуммаУчет,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет - ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Разница,
ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ИнвентаризацияТоваровНаСкладеТовары.МестоХранения КАК МестоХранения,
ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата КАК Дата
ИЗ
Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
ГДЕ
ИнвентаризацияТоваровНаСкладеТовары.Ссылка.мд_Оформлено
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Проведен
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = &Склад
И ИнвентаризацияТоваровНаСкладеТовары.Количество <> ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата >= &Дата
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. MuxaH 06.03.20 11:32 Сейчас в теме
3. Jovi 06.03.20 11:35 Сейчас в теме
(2) Ну я так понимаю, что мне нужно наладить связь между этим запросом и регистром накопления. В этом запросе есть дата документов, и в регистре накоплении у документов Оприходование/Списание тоже есть дата. Мне нужно дату из текущего запроса изменить на дату документов Оприходование/Списание.
4. Jovi 06.03.20 11:39 Сейчас в теме
Если не ошибаюсь:

ВЫБРАТЬ
ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка,
ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки КАК НомерСтроки,
ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
ИнвентаризацияТоваровНаСкладеТовары.Количество КАК Количество,
ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет КАК КоличествоУчет,
ИнвентаризацияТоваровНаСкладеТовары.Цена КАК Цена,
ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Сумма,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет КАК СуммаУчет,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет - ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Разница,
ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ИнвентаризацияТоваровНаСкладеТовары.МестоХранения КАК МестоХранения,
ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата КАК Дата,
ПартииТоваровНаСкладах.Регистратор КАК Регистратор,
ПартииТоваровНаСкладах.Период КАК Период
ИЗ
Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ПО ИнвентаризацияТоваровНаСкладеТовары.Номенклатура = ПартииТоваровНаСкладах.Номенклатура
ГДЕ
ИнвентаризацияТоваровНаСкладеТовары.Ссылка.мд_Оформлено
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Проведен
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = &Склад
И ИнвентаризацияТоваровНаСкладеТовары.Количество <> ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет
И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата >= &Дата
И (ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.СписаниеТоваров
ИЛИ ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ОприходованиеТоваров)
5. xSavantx 28 06.03.20 11:45 Сейчас в теме
Может быть легче выбирать данные не из инвентаризации товаров, а из РН?
6. Jovi 06.03.20 11:46 Сейчас в теме
(5) Нет. Нужно именно доработать текущий запрос.
7. xSavantx 28 06.03.20 12:07 Сейчас в теме
(6) Тогда соединять нужно не по номенклатуре, а по Документу-основанию из регистратора
8. Jovi 06.03.20 13:00 Сейчас в теме
(7) А если с помощью РН, то таблицу "товары" из документа Инвентаризация я также подтягиваю? И в таком случае связь получается какая?
9. Jovi 06.03.20 13:08 Сейчас в теме
(7)ВЫБРАТЬ
ПартииТоваровНаСкладах.Регистратор КАК Регистратор,
ПартииТоваровНаСкладах.Период КАК Период,
ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки КАК НомерСтроки,
ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
ИнвентаризацияТоваровНаСкладеТовары.Количество КАК Количество,
ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет КАК КоличествоУчет,
ИнвентаризацияТоваровНаСкладеТовары.Цена КАК Цена,
ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Сумма,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет КАК СуммаУчет,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет - ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Разница,
ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ИнвентаризацияТоваровНаСкладеТовары.МестоХранения КАК МестоХранения
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
ПО ПартииТоваровНаСкладах.Номенклатура = ИнвентаризацияТоваровНаСкладеТовары.Номенклатура
ГДЕ
(ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ОприходованиеТоваров
ИЛИ ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.СписаниеТоваров)
И ПартииТоваровНаСкладах.Период >= &Дата
10. Jovi 06.03.20 18:48 Сейчас в теме
Остановился на таком варианте, но теперь нужно подтянуть таблицу "Товары" из документа "Инвентаризация",а как сделать это, думаю не знаю.

ВЫБРАТЬ
ПартииТоваровНаСкладах.Регистратор КАК СписаниеОприходование,
ПартииТоваровНаСкладах.Период КАК ДатаСписаниеОприходование,
ПартииТоваровНаСкладах.Номенклатура КАК НоменклатураСписаниеОприходование,
ПартииТоваровНаСкладах.Регистратор.ИнвентаризацияТоваровНаСкладе КАК Инвентаризация
ПОМЕСТИТЬ РН
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
(ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ОприходованиеТоваров
ИЛИ ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.СписаниеТоваров)
И ПартииТоваровНаСкладах.Период >= &Дата
И НЕ ПартииТоваровНаСкладах.Регистратор.ИнвентаризацияТоваровНаСкладе = ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)
11. AlexO 136 07.03.20 14:58 Сейчас в теме
(10)Вот кто вас этому научил-то? Ага, и сейчас еще и ТЧ"Товары" из Инвентаризации приляпать третьим разъименованием, и совсем красота будет:
ПартииТоваровНаСкладах.Регистратор.ИнвентаризацияТоваровНаСкладе

Сначала получить все Регистраторы.
Потом следующих этапом подзапросом - отобрать у которых
НЕ Регистратор.ИнвентаризацияТоваровНаСкладе = ЗНАЧЕНИЕ(Документ.ИнвентаризацияТоваровНаСкладе.ПустаяСсылка)

далее из полученного - 3-ий итоговый запрос по ИнвентаризацияТоваров с получением и выводом ТЧ "Товары".
12. AlexO 136 07.03.20 15:03 Сейчас в теме
(10)
И НЕ ПартииТоваровНаСкладах.Регистратор.ИнвентаризацияТоваровНаСкладе =
а тут - сразу тянешь все по условию из РН, плюс - пока отбираешь регистраторы, к КАЖДОМУ (даже не попадающему в отбор) присоединяется по таблице дока ИнвентаризацияТоваров, и идет еще поиск там.
Условия-то одноранговые, запрос сразу выбирает все необходимые данные для сравнения.
13. Jovi 09.03.20 14:34 Сейчас в теме
ВЫБРАТЬ
ПартииТоваровНаСкладах.Регистратор КАК СписаниеОприходование,
ПартииТоваровНаСкладах.Период КАК ДатаСписаниеОприходование,
ПартииТоваровНаСкладах.Номенклатура КАК НоменклатураСписаниеОприходование
ПОМЕСТИТЬ Регистраторы
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах
ГДЕ
(ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.ОприходованиеТоваров
ИЛИ ПартииТоваровНаСкладах.Регистратор ССЫЛКА Документ.СписаниеТоваров)
И ПартииТоваровНаСкладах.Период >= &Дата
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
НеПустаяИнвентаризачия.СписаниеОприходование КАК СписаниеОприходование,
НеПустаяИнвентаризачия.ДатаСписаниеОприходование КАК ДатаСписаниеОприходование,
НеПустаяИнвентаризачия.НоменклатураСписаниеОприходование КАК НоменклатураСписаниеОприходование,
ИнвентаризацияТоваровНаСкладеТовары.Ссылка КАК Ссылка,
ИнвентаризацияТоваровНаСкладеТовары.НомерСтроки КАК НомерСтроки,
ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
ИнвентаризацияТоваровНаСкладеТовары.Количество КАК Количество,
ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет КАК КоличествоУчет,
ИнвентаризацияТоваровНаСкладеТовары.Цена КАК Цена,
ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Сумма,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет КАК СуммаУчет,
ИнвентаризацияТоваровНаСкладеТовары.СуммаУчет - ИнвентаризацияТоваровНаСкладеТовары.Сумма КАК Разница,
ИнвентаризацияТоваровНаСкладеТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
ИнвентаризацияТоваровНаСкладеТовары.МестоХранения КАК МестоХранения,
ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата КАК Дата
ИЗ
НеПустаяИнвентаризачия КАК НеПустаяИнвентаризачия
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
ПО НеПустаяИнвентаризачия.НоменклатураСписаниеОприходование = ИнвентаризацияТоваровНаСкладеТовары.Номенклатура
ГДЕ
ИнвентаризацияТоваровНаСкладеТовары.Количество <> ИнвентаризацияТоваровНаСкладеТовары.КоличествоУчет

УПОРЯДОЧИТЬ ПО
ДатаСписаниеОприходование
14. AlexO 136 11.03.20 12:23 Сейчас в теме
(13)логика соблюдена, проверь на каждом этапе, что выводит (если то, что нужно - переходишь дальше по этапам).
И первые два можно оформить как запрос и подзапросом, там одно условие накладывается ведь (ВЫБРАТЬ ИЗ (ВЫБРАТЬ ...)), но не суть важно.
Еще не уверен, что по номенклатуре вытащит то, что нужно из РН (ПартииТоваровНаСкладах.Номенклатура КАК НоменклатураСписаниеОприходование), все нужно смотреть и проверять, что там.
Оставьте свое сообщение

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