| 
    
            
         
         | 
    
  | 
УТ 11.4 получить все документы по виду номенклатуры | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        buketovav    
     23.11.20 
            ✎
    22:36 
 | 
         
        Добрый день, Дорогие Форумчане!
 
        Вот задача у меня такая, получить все документы, в табличных частых которых есть номенклатура с определенным видом, у этого вида номенклатуры указана политика учета серий "Серии не используются", но для склада установлена политика "Управление по FEFO остатками серий". Серия идентифицирует партию товаров. Я хочу получить все документы. в табличных частях которых есть номенклатура с определенным видом номенклатуры. Пока выборку делаю так, чтобы не писать километровый запрос обхожу массив с указанными возможными вариантами документов, которые надо получить СписокТиповДокументов = Новый Массив; СписокТиповДокументов.Добавить(Метаданные.Документы.ПриобретениеТоваровУслуг.Имя); СписокТиповДокументов.Добавить(Метаданные.Документы.ВозвратТоваровОтКлиента.Имя); СписокТиповДокументов.Добавить(Метаданные.Документы.ВозвратТоваровПоставщику.Имя); СписокТиповДокументов.Добавить(Метаданные.Документы.ПеремещениеТоваров.Имя); СписокТиповДокументов.Добавить(Метаданные.Документы.СборкаТоваров.Имя); СписокТиповДокументов.Добавить(Метаданные.Документы.ПрочееОприходованиеТоваров.Имя); ТекстЗапроса = ""; Для каждого Вид Из СписокИменДокументов Цикл Если ТекстЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ОБЪЕДИНИТЬ ВСЕ"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ | " + Вид + "Товары.Ссылка КАК Ссылка |ИЗ | Документ." + Вид + ".Товары КАК " + Вид + " | |СГРУППИРОВАТЬ ПО | " + Вид + "Товары.Ссылка"; КонецЦикла; основная проблема, с которой столкнулся, что таким образом я ни как не могу в своем запросе обратиться сразу к ТЧ выбираемых документов, что только не делал, ни как. А в результате этого запроса я получаю список документов, но как теперь мне его еще обработать, чтобы оставить проведенные и наложить условие на вил номенклатуры, что-то ни как не могу сообразить. Может кто-то уже что-то подобное делал и может мне подсказать как это реализовать? Заранее благодарю за ответы ))  | 
|||
| 
    1
    
        asady    
     23.11.20 
            ✎
    23:00 
 | 
         
        (0) судя по всему запрос нерабочий
 
        ТекстЗапроса = ""; Для каждого Вид Из СписокИменДокументов Цикл Если ТекстЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ОБЪЕДИНИТЬ ВСЕ"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ | " + Вид + "Товары.Ссылка КАК Ссылка, | " + Вид + "Товары.Номенклатура КАК Номенклатура |ИЗ | Документ." + Вид + ".Товары КАК " + Вид + "Товары //!!! | |СГРУППИРОВАТЬ ПО | " + Вид + "Товары.Ссылка"; КонецЦикла; спокойно обращайся к табличным частям  | 
|||
| 
    2
    
        asady    
     23.11.20 
            ✎
    23:01 
 | 
         
        0) судя по всему запрос нерабочий
 
        ТекстЗапроса = ""; Для каждого Вид Из СписокИменДокументов Цикл Если ТекстЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ОБЪЕДИНИТЬ ВСЕ"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ | " + Вид + "Товары.Ссылка КАК Ссылка, | " + Вид + "Товары.Номенклатура КАК Номенклатура |ИЗ | Документ." + Вид + ".Товары КАК " + Вид + "Товары//!!! //это лишнее // | // |СГРУППИРОВАТЬ ПО // | " + Вид + "Товары.Ссылка |"; КонецЦикла; спокойно обращайся к табличным частям  | 
|||
| 
    3
    
        buketovav    
     23.11.20 
            ✎
    23:06 
 | 
         
        (1) Поле не входит в группу "ПриобретениеТоваровУслугТовары.Номенклатура"
 
        <<?>>ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура  | 
|||
| 
    4
    
        buketovav    
     23.11.20 
            ✎
    23:07 
 | 
         
        (3) подобная ошибка и возникает, когда пытался сделать подобным образом     
         | 
|||
| 
    5
    
        buketovav    
     23.11.20 
            ✎
    23:08 
 | 
         
        (2) |    " + Вид + "Товары.Номенклатура КАК Номенклатура - без этого сработало     
         | 
|||
| 
    6
    
        buketovav    
     23.11.20 
            ✎
    23:12 
 | 
         
        (2) а не, вот так все сработало )
 
        теперь осталось наложить условие на вид номенклатуры  | 
|||
| 
    7
    
        RomanYS    
     23.11.20 
            ✎
    23:16 
 | 
         
        (0) 
 
        Шаблон = "ВЫБРАТЬ | ТЧ.Ссылка КАК Ссылка, | ТЧ.Номенклатура КАК Номенклатура |ИЗ | Документ.ПриобретениеТоваровУслуг.Товары КАК ТЧ |ГДЕ ТЧ.Ссылка.Проведен И ТЧ.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры"; ... Для каждого Вид Из СписокИменДокументов Цикл ... ТекстЗапроса = ТекстЗапроса+СтрЗаменить(Шаблон, "ПриобретениеТоваровУслуг", Вид );  | 
|||
| 
    8
    
        buketovav    
     23.11.20 
            ✎
    23:16 
 | 
         
        ТЗДокументы.Очистить();
 
        СписокИменДокументов = СформироватьСписокЗначенийСтипамиДокументов(); ТекстЗапроса = ""; Для каждого Вид Из СписокИменДокументов Цикл Если ТекстЗапроса<>"" Тогда ТекстЗапроса=ТекстЗапроса+" |ОБЪЕДИНИТЬ ВСЕ"; КонецЕсли; ТекстЗапроса = ТекстЗапроса+" |ВЫБРАТЬ | " + Вид + "Товары.Ссылка КАК Ссылка, | " + Вид + "Товары.Номенклатура КАК Номенклатура |ИЗ | Документ." + Вид + ".Товары КАК " + Вид + "Товары |ГДЕ |" + Вид + "Товары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры"; КонецЦикла; Запрос = Новый Запрос(ТекстЗапроса); Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл НоваСтрокаТЗ = ТЗДокументы.Добавить(); НоваСтрокаТЗ.Документ = Выборка.Ссылка; КонецЦикла; так пока работает. спасибо  | 
|||
| 
    9
    
        RomanYS    
     23.11.20 
            ✎
    23:19 
 | 
         
        Из плюсов подхода (7) - исходный запрос прекрасно создается и редактируется конструктором     
         | 
|||
| 
    10
    
        buketovav    
     23.11.20 
            ✎
    23:21 
 | 
         
        (7) спасибо
 
        попробую и Ваш вариант  | 
|||
| 
    11
    
        RomanYS    
     23.11.20 
            ✎
    23:33 
 | 
         
        Интересно схемы запроса кто-нибудь использует, по идее как раз для подобных случаев?     
         | 
|||
| 
    12
    
        buketovav    
     23.11.20 
            ✎
    23:35 
 | 
         
        (11) это Вы про это? - http://catalog.mista.ru/1c/articles/307045/     
         | 
|||
| 
    13
    
        RomanYS    
     24.11.20 
            ✎
    00:08 
 | 
         
        (12) Ага, никак не пойму, эта штука мертворожденная или вполне рабочая. Идея вроде рабочая, и работает вроде в обе стороны (собрать/разобрать запрос), а примеров красивых не встречал.     
         | 
|||
| 
    14
    
        buketovav    
     24.11.20 
            ✎
    00:13 
 | 
         
        (13) согласен, надо пробовать применять в работе. Я, если честно, ни разу не использовал     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |