Вход | Регистрация
 

УТ 11.4 получить все документы по виду номенклатуры

УТ 11.4 получить все документы по виду номенклатуры
Я
   buketovav
 
23.11.20 - 22:36
Добрый день, Дорогие Форумчане!
Вот задача у меня такая, получить все документы, в табличных частых которых есть номенклатура с определенным видом, у этого вида номенклатуры указана политика учета серий "Серии не используются",
но для склада установлена политика "Управление по FEFO остатками серий". Серия идентифицирует партию товаров.

Я хочу получить все документы. в табличных частях которых есть номенклатура с определенным видом номенклатуры.

Пока выборку делаю так,  чтобы не писать километровый запрос обхожу массив с указанными возможными вариантами документов, которые надо получить


        СписокТиповДокументов = Новый Массив;
    
    СписокТиповДокументов.Добавить(Метаданные.Документы.ПриобретениеТоваровУслуг.Имя);
    СписокТиповДокументов.Добавить(Метаданные.Документы.ВозвратТоваровОтКлиента.Имя);
    СписокТиповДокументов.Добавить(Метаданные.Документы.ВозвратТоваровПоставщику.Имя);
    СписокТиповДокументов.Добавить(Метаданные.Документы.ПеремещениеТоваров.Имя);
    СписокТиповДокументов.Добавить(Метаданные.Документы.СборкаТоваров.Имя);
    СписокТиповДокументов.Добавить(Метаданные.Документы.ПрочееОприходованиеТоваров.Имя);
    
    ТекстЗапроса = "";
    Для каждого Вид Из СписокИменДокументов Цикл
        Если ТекстЗапроса<>"" Тогда
            ТекстЗапроса=ТекстЗапроса+"
            |ОБЪЕДИНИТЬ ВСЕ";
        КонецЕсли;
        
        ТекстЗапроса = ТекстЗапроса+"         
        |ВЫБРАТЬ
        |    " + Вид + "Товары.Ссылка КАК Ссылка
        |ИЗ
        |    Документ." + Вид + ".Товары КАК " + Вид + "
        |
        |СГРУППИРОВАТЬ ПО
        |    " + Вид + "Товары.Ссылка";
            
    КонецЦикла;  

основная проблема, с которой столкнулся, что таким образом я ни как не могу в своем запросе обратиться сразу к ТЧ выбираемых документов, что только не делал, ни как.
А в результате этого запроса я получаю список документов, но как теперь мне его еще обработать, чтобы оставить проведенные и наложить условие на вил номенклатуры, что-то ни как не могу сообразить.

Может кто-то уже что-то подобное делал и может мне подсказать как это реализовать?

Заранее благодарю за ответы ))
   asady
 
1 - 23.11.20 - 23:00
(0) судя по всему запрос нерабочий
ТекстЗапроса = "";
    Для каждого Вид Из СписокИменДокументов Цикл
        Если ТекстЗапроса<>"" Тогда
            ТекстЗапроса=ТекстЗапроса+"
            |ОБЪЕДИНИТЬ ВСЕ";
        КонецЕсли;
        
        ТекстЗапроса = ТекстЗапроса+"         
        |ВЫБРАТЬ
        |    " + Вид + "Товары.Ссылка КАК Ссылка,
        |    " + Вид + "Товары.Номенклатура КАК Номенклатура
        |ИЗ
        |    Документ." + Вид + ".Товары КАК " + Вид + "Товары//!!!

        |
        |СГРУППИРОВАТЬ ПО
        |    " + Вид + "Товары.Ссылка";
            
    КонецЦикла;   

спокойно обращайся к табличным частям
   asady
 
2 - 23.11.20 - 23:01
0) судя по всему запрос нерабочий
ТекстЗапроса = "";
    Для каждого Вид Из СписокИменДокументов Цикл
        Если ТекстЗапроса<>"" Тогда
            ТекстЗапроса=ТекстЗапроса+"
            |ОБЪЕДИНИТЬ ВСЕ";
        КонецЕсли;
        
        ТекстЗапроса = ТекстЗапроса+"         
        |ВЫБРАТЬ
        |    " + Вид + "Товары.Ссылка КАК Ссылка,
        |    " + Вид + "Товары.Номенклатура КАК Номенклатура
        |ИЗ
        |    Документ." + Вид + ".Товары КАК " + Вид + "Товар//!!!

//это лишнее
//        |

//        |СГРУППИРОВАТЬ ПО
//        |    " + Вид + "Товары.Ссылка

|";
            
    КонецЦикла;   

спокойно обращайся к табличным частям
   buketovav
 
3 - 23.11.20 - 23:06
(1) Поле не входит в группу "ПриобретениеТоваровУслугТовары.Номенклатура"
<<?>>ПриобретениеТоваровУслугТовары.Номенклатура КАК Номенклатура
   buketovav
 
4 - 23.11.20 - 23:07
(3) подобная ошибка и возникает, когда пытался сделать подобным образом
   buketovav
 
5 - 23.11.20 - 23:08
(2) |    " + Вид + "Товары.Номенклатура КАК Номенклатура - без этого сработало
   buketovav
 
6 - 23.11.20 - 23:12
(2) а не, вот так все сработало )
теперь осталось наложить условие на вид номенклатуры
   RomanYS
 
7 - 23.11.20 - 23:16
(0)
Шаблон =
"ВЫБРАТЬ
|  ТЧ.Ссылка КАК Ссылка,
|  ТЧ.Номенклатура КАК Номенклатура
|ИЗ
|  Документ.ПриобретениеТоваровУслуг.Товары КАК ТЧ
|ГДЕ ТЧ.Ссылка.Проведен И ТЧ.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры";

...
Для каждого Вид Из СписокИменДокументов Цикл

...
       ТекстЗапроса = ТекстЗапроса+СтрЗаменить(Шаблон, "ПриобретениеТоваровУслуг", Вид );
   buketovav
 
8 - 23.11.20 - 23:16
ТЗДокументы.Очистить();
    
    СписокИменДокументов = СформироватьСписокЗначенийСтипамиДокументов();
    
    ТекстЗапроса = "";
    Для каждого Вид Из СписокИменДокументов Цикл
        Если ТекстЗапроса<>"" Тогда
            ТекстЗапроса=ТекстЗапроса+"
            |ОБЪЕДИНИТЬ ВСЕ";
        КонецЕсли;
        
         ТекстЗапроса = ТекстЗапроса+"
        |ВЫБРАТЬ
        |    " + Вид + "Товары.Ссылка КАК Ссылка,
        |    " + Вид + "Товары.Номенклатура КАК Номенклатура
        |ИЗ
        |    Документ." + Вид + ".Товары КАК " + Вид + "Товары
        |ГДЕ
        |" + Вид + "Товары.Номенклатура.ВидНоменклатуры = &ВидНоменклатуры";
                    
    КонецЦикла;   

    Запрос = Новый Запрос(ТекстЗапроса);
    Запрос.УстановитьПараметр("ВидНоменклатуры", ВидНоменклатуры);    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        НоваСтрокаТЗ = ТЗДокументы.Добавить();
        НоваСтрокаТЗ.Документ = Выборка.Ссылка;
    КонецЦикла;


так пока работает. спасибо
   RomanYS
 
9 - 23.11.20 - 23:19
Из плюсов подхода (7) - исходный запрос прекрасно создается и редактируется конструктором
   buketovav
 
10 - 23.11.20 - 23:21
(7) спасибо
попробую и Ваш вариант
   RomanYS
 
11 - 23.11.20 - 23:33
Интересно схемы запроса кто-нибудь использует, по идее как раз для подобных случаев?
   buketovav
 
12 - 23.11.20 - 23:35
(11) это Вы про это? - http://catalog.mista.ru/1c/articles/307045/
   RomanYS
 
13 - 24.11.20 - 00:08
(12) Ага, никак не пойму, эта штука мертворожденная или вполне рабочая. Идея вроде рабочая, и работает вроде в обе стороны (собрать/разобрать запрос), а примеров красивых не встречал.
   buketovav
 
14 - 24.11.20 - 00:13
(13) согласен, надо пробовать применять в работе. Я, если честно, ни разу не использовал

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.