|
УТ11 РегистрНакопления ЗаказыПоставщикам | ☑ | ||
---|---|---|---|---|
0
eGorZZZ
16.12.15
✎
01:35
|
Не пинайте сильно, но очень нужно из РегистрНакопления ЗаказыПоставщикам.Остатки выдернуть ДатуПоступления товара по условию. Нужно получить что-то типа:
| ВЫБОР | КОГДА ТоварыКПоступлению.ЗаказПоставщику.ПоступлениеОднойДатой ТОГДА | ТоварыКПоступлению.ЗаказПоставщику.ДатаПоступления | ИНАЧЕ | ТоварыКПоступлению.ЗаказПоставщику.Товары.( | ДатаПоступления | ) | КОНЕЦ КАК ДатаПоступления 1C-ка ругается на отсутствие ДатаПоступления в ТЧ.Товары дока ЗаказПоставщику. Какие есть варианты решения этой задачи? Вложенный запрос? Соединение с табличной частью? |
|||
1
Vladal
16.12.15
✎
01:52
|
Используй поле Ссылка из табличной части Товары
|
|||
2
Vladal
16.12.15
✎
01:55
|
"ВЫБРАТЬ
| ПоступлениеТоваровУслугТовары.Ссылка.ДатаВходящегоДокумента, | ПоступлениеТоваровУслугТовары.Ссылка.ДоговорКонтрагента, | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент |ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары"; |
|||
3
eGorZZZ
16.12.15
✎
02:14
|
(2) Предлагаешь сделать вложенный запрос? А как его впихнуть в приведённое выше условие выбора?
Вообще, весь запрос у меня выглядит, как показано ниже, осталось выдернуть из заказов поставщикам предполагаемую дату поступления товаров, которая там может быть в двух местах - в шапке, и в ТЧ Товары по каждой строке своя, в зависимости от флага ПоступлениеОднойДатой (Булево): "ВЫБРАТЬ | СвободныеОстатки.Номенклатура КАК Номенклатура, | СвободныеОстатки.Характеристика КАК Характеристика, | ПРЕДСТАВЛЕНИЕ(СвободныеОстатки.Номенклатура) КАК ПредставлениеНоменклатуры, | СвободныеОстатки.Номенклатура.Наименование КАК Наименование, | СвободныеОстатки.Номенклатура.Артикул КАК Артикул, | СвободныеОстатки.Номенклатура.Родитель КАК Родитель, | СУММА(СвободныеОстатки.ВНаличииОстаток) КАК КоличествоОстаток, | СУММА(СвободныеОстатки.ВРезервеСоСкладаОстаток) КАК ВРезервеСоСкладаОстаток, | СУММА(СвободныеОстатки.ВРезервеПодЗаказОстаток) КАК ВРезервеПодЗаказОстаток, | 0 КАК КПоступлениюОстаток, | СвободныеОстатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения |ПОМЕСТИТЬ ВТ_ОСТАТКИЗАКАЗЫ |ИЗ | РегистрНакопления.СвободныеОстатки.Остатки( | &Дата, | Номенклатура В | (ВЫБРАТЬ | Номенклатура.Ссылка | ИЗ | Справочник.Номенклатура КАК Номенклатура | ГДЕ | НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&СписокГрупп)) | И НЕ Склад В (&СписокСкладовИсключения)) КАК СвободныеОстатки |ГДЕ | (СвободныеОстатки.ВНаличииОстаток > 0 | ИЛИ СвободныеОстатки.ВРезервеСоСкладаОстаток > 0 | ИЛИ СвободныеОстатки.ВРезервеПодЗаказОстаток > 0) | |СГРУППИРОВАТЬ ПО | СвободныеОстатки.Номенклатура, | СвободныеОстатки.Характеристика, | СвободныеОстатки.Номенклатура.Наименование, | СвободныеОстатки.Номенклатура.Артикул, | СвободныеОстатки.Номенклатура.Родитель, | СвободныеОстатки.Номенклатура.ЕдиницаИзмерения | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | ТоварыКПоступлению.Номенклатура, | ТоварыКПоступлению.Характеристика, | ПРЕДСТАВЛЕНИЕ(ТоварыКПоступлению.Номенклатура), | ТоварыКПоступлению.Номенклатура.Наименование, | ТоварыКПоступлению.Номенклатура.Артикул, | ТоварыКПоступлению.Номенклатура.Родитель, | 0, | 0, | 0, | СУММА(ТоварыКПоступлению.ЗаказаноОстаток), | ТоварыКПоступлению.Номенклатура.ЕдиницаИзмерения |ИЗ | РегистрНакопления.ЗаказыПоставщикам.Остатки( | &Дата, | Номенклатура В | (ВЫБРАТЬ | Номенклатура.Ссылка | ИЗ | Справочник.Номенклатура КАК Номенклатура | ГДЕ | НЕ Номенклатура.Ссылка В ИЕРАРХИИ (&СписокГрупп)) | И НЕ Склад В (&СписокСкладовИсключения)) КАК ТоварыКПоступлению |ГДЕ | ТоварыКПоступлению.ЗаказаноОстаток > 0 | |СГРУППИРОВАТЬ ПО | ТоварыКПоступлению.Номенклатура, | ТоварыКПоступлению.Характеристика, | ТоварыКПоступлению.Номенклатура.Наименование, | ТоварыКПоступлению.Номенклатура.Артикул, | ТоварыКПоступлению.Номенклатура.Родитель, | ТоварыКПоступлению.Номенклатура.ЕдиницаИзмерения |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_ОСТАТКИЗАКАЗЫ.Номенклатура, | ПРЕДСТАВЛЕНИЕ(ВТ_ОСТАТКИЗАКАЗЫ.Номенклатура) КАК ПредставлениеНоменклатуры, | ВТ_ОСТАТКИЗАКАЗЫ.Наименование, | ВТ_ОСТАТКИЗАКАЗЫ.Артикул, | ВТ_ОСТАТКИЗАКАЗЫ.Родитель, | СУММА(ВТ_ОСТАТКИЗАКАЗЫ.КоличествоОстаток) КАК КоличествоОстаток, | СУММА(ВТ_ОСТАТКИЗАКАЗЫ.ВРезервеСоСкладаОстаток) КАК ВРезервеСоСкладаОстаток, | СУММА(ВТ_ОСТАТКИЗАКАЗЫ.ВРезервеПодЗаказОстаток) КАК ВРезервеПодЗаказОстаток, | СУММА(ВТ_ОСТАТКИЗАКАЗЫ.КПоступлениюОстаток) КАК КПоступлениюОстаток, | ВТ_ОСТАТКИЗАКАЗЫ.ЕдиницаИзмерения, | МАКСИМУМ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК Цена, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Валюта.Код, ""978"") КАК КодВалюты |ИЗ | ВТ_ОСТАТКИЗАКАЗЫ КАК ВТ_ОСТАТКИЗАКАЗЫ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних | ПО ВТ_ОСТАТКИЗАКАЗЫ.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура | И ВТ_ОСТАТКИЗАКАЗЫ.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика |ГДЕ | ЦеныНоменклатурыСрезПоследних.ВидЦены.Идентификатор = ""РозничнаяЕвро"" | |СГРУППИРОВАТЬ ПО | ВТ_ОСТАТКИЗАКАЗЫ.Номенклатура, | ЦеныНоменклатурыСрезПоследних.Валюта.Код, | ВТ_ОСТАТКИЗАКАЗЫ.Наименование, | ВТ_ОСТАТКИЗАКАЗЫ.Артикул, | ВТ_ОСТАТКИЗАКАЗЫ.Родитель, | ВТ_ОСТАТКИЗАКАЗЫ.ЕдиницаИзмерения"; |
|||
4
eGorZZZ
16.12.15
✎
02:29
|
Если делать так
| ВЫБОР | КОГДА ТоварыКПоступлению.ЗаказПоставщику.ПоступлениеОднойДатой | ТОГДА ТоварыКПоступлению.ЗаказПоставщику.ДатаПоступления | ИНАЧЕ | ТоварыКПоступлению.ЗаказПоставщику.Товары.Ссылка.ДатаПоступления | КОНЕЦ То 1с-ка ругается, грит низзя объединять обычное поле со вложенными таблицами (без "Ссылка" тож самое, истественно), что вполне понятно - надо как-то соединяться с ТЧ документа, по всей видимости... |
|||
5
hhhh
16.12.15
✎
07:15
|
ТоварыКПоступлению.ЗаказПоставщику.Товары.ДатаПоступления
в Заказе поставщику одна строчка всегда у вас? Странно. |
|||
6
Enterprise
16.12.15
✎
07:29
|
(0) Так если дату поступления в шапке указывать он её всё равно в табличную часть проставляет. В УТ 11 так. Зачем из шапки брать?
|
|||
7
eGorZZZ
16.12.15
✎
14:46
|
(5) такой вариант тоже не прокатит в любом случае, см. (4).
Мне из заказа поставщику, как из регистратора, только одну строчку и надо выдернуть - всё остальное уже есть из регистров накопления. (6) Это понятно. Ты хоть код в (0) посмотри - объяснение в (3). Если флаг ПоступлениеОднойДатой установлен, то в ТЧ попадает одна и таже дата из шапки, если же флаг не установлен, то в ТЧ можно предполагаемую дату поступления проставлять по каждой позиции свою, и это как раз рабочая ситуация - заказ на поставку делается один общий, а сроки поставки по разным позициям разные, и это надо отрабатывать. Но суть твоего вопроса я понял - нет необходимости брать дату из шапки, т.к. она всегда проставляется в ТЧ вне зависимости от флага, т.е. можно всегда брать из ТЧ. |
|||
8
eGorZZZ
17.12.15
✎
14:02
|
Вобчем, идея получения ДатаПоступления в данном запросе мертворожденная, странно, что об этом никто не сказал.
Смысл в том, что после объединения двух запросов в виртуальной таблице не будет выполнено сложение результатов по полю Номенклатура в связи с различными данными в обоих запросах в полях ЗаказПоставщику и ДатаПоступления (в первом запросе эти поля принимают значение NULL, а во втором - это конкретные значения документа и даты). Дату поступления нужно выдергивать уже при обработке результатов выборки отдельными запросами, позиционируясь по Номенклатуре с положительным значением ЗаказаноОстаток (сначала находится сам ЗаказПоставщику, а уже из него берётся ДатаПоступления). По другому я придумать пока не смог. Если есть идеи - пишите - буду благодарен :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |