Запрос

1. Mister_1C 25.03.19 16:15 Сейчас в теме
Здравствуйте! Подскажите пожалуйста как реализовать передачу данных в другой документ пропуская отмеченные строчки как на рисунке. Там где брак, не должно попасть в реализацию. Вот код нынешнего запроса. Но он все передает. И брак тоже.
&НаСервере
Функция РеализацияТоваровИУслугНаСервере(МассивДокументов)
	// Вставить содержимое обработчика.
	
	СписокСообщений	= Новый СписокЗначений;
	
	Запрос = Новый Запрос;
	Запрос.Текст = " ВЫБРАТЬ
	               |	ВложенныйЗапрос.Номенклатура,
	               |	ВложенныйЗапрос.ЕдиницаИзмерения,
	               |	ВложенныйЗапрос.Коэффициент,
	               |	ВложенныйЗапрос.Количество,
	               |	ВложенныйЗапрос.Сумма как Сумма,
				   |	ВложенныйЗапрос.ЦенаДоставки,
				   |	ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,
	               |	ВложенныйЗапрос.Водители КАК Водители,
	               |	ВложенныйЗапрос.Цена КАК Цена
	               |ИЗ
	               |	(ВЫБРАТЬ
	               |		ДоставкаТовары.Номенклатура КАК Номенклатура,
	               |		ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |		ДоставкаТовары.Коэффициент КАК Коэффициент,
	               |		СУММА(ДоставкаТовары.Количество) КАК Количество,
	               |		СУММА(ДоставкаТовары.Сумма) КАК Сумма,
	               |		ДоставкаТовары.Водители КАК Водители,
				   |		ДоставкаТовары.ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД,
				   |		ДоставкаТовары.Цена КАК Цена
	  
	               |	ИЗ
				
				   |		Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
	               |			ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
	               |				И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
	               |	ГДЕ
	               |		ДоставкаТовары.Ссылка В(&МассивДокументов)
	               |		И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
				   |		
	               |		И НЕ ДоставкаТовары.Номенклатура.Услуга
	               |	
	               |	СГРУППИРОВАТЬ ПО
				   |		ДоставкаТовары.ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД,
	               |		ДоставкаТовары.Номенклатура,
	               |		ДоставкаТовары.ЕдиницаИзмерения,
	               |		ДоставкаТовары.Коэффициент,
	               |		ДоставкаТовары.Водители,
				   |		ДоставкаТовары.Цена,
				   |		ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
				   |ИТОГИ ПО
				   |	Водители";
	
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	
	Результат = Запрос.Выполнить();
	ВыборкаДокументов = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	Пока ВыборкаДокументов.Следующий() Цикл
		
		Док				= Документы.РеализацияТоваровУслуг.СоздатьДокумент();
		Док.Дата		= ТекущаяДата();
		Док.Контрагент	= ВыборкаДокументов.Водители;
		Док.Комментарий	= "Сформирован по доставкам " + Док.Дата;

		Док.Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнаяОрганизация2");
		
		ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(Док, глЗначениеПеременной("глТекущийПользователь"), Константы.ВалютаРегламентированногоУчета.Получить(), "Покупка");
				
		ВыборкаТоваров	 = ВыборкаДокументов.Выбрать();
		Пока ВыборкаТоваров.Следующий() Цикл
			НоваяСтрока	 = Док.Товары.Добавить();
			ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоваров);
			// Выполнить общие действия для всех документов при изменении номенклатуры.
			ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, Док);
			НоваяСтрока.ЕдиницаИзмерения = ВыборкаТоваров.Номенклатура.ЕдиницаХраненияОстатков;
			НоваяСтрока.Коэффициент      = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
			НоваяСтрока.СтавкаНДС	 = Перечисления.СтавкиНДС.БезНДС;
		КонецЦикла;
	
		Если Док.Товары.Количество() > 0 Тогда
			Док.Записать(РежимЗаписиДокумента.Запись);
			СписокСообщений.Добавить("Создан документ: " + Док.Ссылка);
		КонецЕсли;
		
	КонецЦикла;
	Возврат СписокСообщений;
КонецФункции
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
27. Mister_1C 26.03.19 12:48 Сейчас в теме
Решил данную проблему.
Запрос.Текст = " ВЫБРАТЬ
				   |	ВложенныйЗапрос.Водители,
				   |	ВложенныйЗапрос.Номенклатура,
				   |	ВложенныйЗапрос.ЕдиницаИзмерения,
				   |	ВложенныйЗапрос.Коэффициент,
				   |	ВложенныйЗапрос.Количество,
				   |	ВложенныйЗапрос.Сумма,
				   |	ВложенныйЗапрос.ЦенаДоставки,
				   |	ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,  
				   |	ВложенныйЗапрос.Цена КАК Цена,
				   |	ВложенныйЗапрос.Брак КАК Брак
				   |ИЗ
	               | 	(ВЫБРАТЬ
				   |		ДоставкаТовары.Водители как Водители,
	               |		ДоставкаТовары.Номенклатура КАК Номенклатура,
	               |		ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |		ДоставкаТовары.Коэффициент КАК Коэффициент,
	               |		СУММА(ДоставкаТовары.Количество) КАК Количество,
	               |		СУММА(ДоставкаТовары.Сумма) КАК Сумма,
				   |		ДоставкаТовары.ЦенаДоставки Как ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД КАК ЦенаДоставкиЗаМКАД,
				   |		ДоставкаТовары.Цена КАК Цена,
				   |		ДоставкаТовары.Брак КАК Брак 
	               |	ИЗ
				   |		Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
	               |			ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
	               |				И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
	               |	ГДЕ
	               |		ДоставкаТовары.Ссылка В(&МассивДокументов)
				   |		И Брак = &Брак
				   |	СГРУППИРОВАТЬ ПО
				   |		ДоставкаТовары.ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД,
				   |		ДоставкаТовары.Номенклатура,
				   |		ДоставкаТовары.ЕдиницаИзмерения,
				   |		ДоставкаТовары.Коэффициент,
				   |		ДоставкаТовары.Водители,
				   |		ДоставкаТовары.Цена,
				   |		ДоставкаТовары.Брак,
				   |		ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
				   |ИТОГИ ПО
				   |	Водители";
	
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Запрос.УстановитьПараметр("Брак",Ложь);
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alljoke 25.03.19 16:31 Сейчас в теме
Брак - это реквизит элемента справочника?
3. nestokay 62 25.03.19 16:31 Сейчас в теме
Пока ВыборкаТоваров.Следующий() Цикл
Если ВыборкаТоваров.Брак = Истина Тогда
Продолжить;
КонецЕсли;
            НоваяСтрока     = Док.Товары.Добавить();
            ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаТоваров);
            // Выполнить общие действия для всех документов при изменении номенклатуры.
            ОбработкаТабличныхЧастей.ПриИзмененииНоменклатурыТабЧасти(НоваяСтрока, Док);
            НоваяСтрока.ЕдиницаИзмерения = ВыборкаТоваров.Номенклатура.ЕдиницаХраненияОстатков;
            НоваяСтрока.Коэффициент      = НоваяСтрока.ЕдиницаИзмерения.Коэффициент;
            НоваяСтрока.СтавкаНДС     = Перечисления.СтавкиНДС.БезНДС;
        КонецЦикла;
Показать

Может быть так.
5. Mister_1C 25.03.19 16:38 Сейчас в теме
7. nestokay 62 25.03.19 16:43 Сейчас в теме
(5) "Брак" к чему отношение имеет? К номенклатуре? К ТЧ Реализации? В табличной части он в строках (этот реквизит "Брак")?
4. alljoke 25.03.19 16:32 Сейчас в теме
Условие на брак можно в сам запрос закинуть.
nestokay; +1 Ответить
6. Mister_1C 25.03.19 16:41 Сейчас в теме
(4) как будет выгладить данное условие? я писал так:
  ГДЕ
                   |        ДоставкаТовары.Ссылка В(&МассивДокументов)
                   |        И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                   |        И ДоставкаТовары.Брак = Истина
                   |        И НЕ ДоставкаТовары.Номенклатура.Услуга

Не помогло
8. nestokay 62 25.03.19 16:44 Сейчас в теме
(6)
 ГДЕ 
| ДоставкаТовары.Ссылка В(&МассивДокументов) 
| И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка) 
| И НЕ ДоставкаТовары.Брак = Истина 
| И НЕ ДоставкаТовары.Номенклатура.Услуга
10. Mister_1C 25.03.19 16:46 Сейчас в теме
(8)Если так прописать он вообще не создает документ
9. Mister_1C 25.03.19 16:46 Сейчас в теме
Брак - Это реквизит типа Булево. В табличной части.
11. nestokay 62 25.03.19 16:51 Сейчас в теме
Вы обращаетесь к ТЧ документа, я так понимаю?
12. Mister_1C 25.03.19 16:52 Сейчас в теме
13. gudogu 93 25.03.19 16:53 Сейчас в теме
Что то такое у вас должно быть в запросе:

Запрос.Текст = " ВЫБРАТЬ
                   |    ВложенныйЗапрос.Номенклатура,
                   |    ВложенныйЗапрос.ЕдиницаИзмерения,
                   |    ВложенныйЗапрос.Коэффициент,
                   |    ВложенныйЗапрос.Количество,
                   |    ВложенныйЗапрос.Сумма как Сумма,
                   |    ВложенныйЗапрос.ЦенаДоставки,
                   |    ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,
                   |    ВложенныйЗапрос.Водители КАК Водители,
                   |    ВложенныйЗапрос.Цена КАК Цена,
				   |    ВложенныйЗапрос.Брак КАК Брак
                   |ИЗ
                   |    (ВЫБРАТЬ
                   |        ДоставкаТовары.Номенклатура КАК Номенклатура,
                   |        ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
                   |        ДоставкаТовары.Коэффициент КАК Коэффициент,
                   |        СУММА(ДоставкаТовары.Количество) КАК Количество,
                   |        СУММА(ДоставкаТовары.Сумма) КАК Сумма,
                   |        ДоставкаТовары.Водители КАК Водители,
                   |        ДоставкаТовары.ЦенаДоставки,
                   |        ДоставкаТовары.ЦенаДоставкиЗаМКАД,
                   |        ДоставкаТовары.Цена КАК Цена,
				   |		ДоставкаТовары.Брак КАК Брак
      
                   |    ИЗ
                
                   |        Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
                   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
                   |            ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
                   |                И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
                   |    ГДЕ
                   |        ДоставкаТовары.Ссылка В(&МассивДокументов)
                   |        И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                   |        
                   |        И НЕ ДоставкаТовары.Номенклатура.Услуга
                   |    
                   |    СГРУППИРОВАТЬ ПО
                   |        ДоставкаТовары.ЦенаДоставки,
                   |        ДоставкаТовары.ЦенаДоставкиЗаМКАД,
                   |        ДоставкаТовары.Номенклатура,
                   |        ДоставкаТовары.ЕдиницаИзмерения,
                   |        ДоставкаТовары.Коэффициент,
                   |        ДоставкаТовары.Водители,
                   |        ДоставкаТовары.Цена,
				   |		ДоставкаТовары.Брак,
                   |        ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
				   |ГДЕ
				   |	ВложенныйЗапрос.Брак = Ложь	
                   |ИТОГИ ПО
                   |    Водители";
Показать
14. Mister_1C 25.03.19 16:57 Сейчас в теме
(13)Он все равно не создает. Он создает только там где нет товаров в браке. А где есть товары в браке он не создает.
15. Mister_1C 25.03.19 16:59 Сейчас в теме
(13)А если сделать так
|ГДЕ
| ВложенныйЗапрос.Брак = Истина
Он никакой документ не создает.
16. gudogu 93 25.03.19 17:04 Сейчас в теме
(15) Отладьте для начала запрос, а потом уже создавайте документы. В параметр &МассивДокументов передайте массив с одним документом Реализации, где есть строки с браком и без. Выгрузите результат запроса в таблицу значений - Запрос.Выполнить().Выгрузить() и посмотрите запрос отработал так как вам нужно или нет. А потом уже создавайте документы
17. alljoke 25.03.19 17:05 Сейчас в теме
Там где брак, не должно попасть в реализацию. Вот код нынешнего запроса. Но он все передает. И брак тоже.


и

Он создает только там где нет товаров в браке. А где есть товары в браке он не создает.


Противоречия, нет?
19. Mister_1C 25.03.19 17:09 Сейчас в теме
(17)Стоковый код создавал документ и бракованные товары закидывал . Не фильтровал. Когда стал изменять условия запроса, перестал вообще создавать документ, там где есть брак.
20. alljoke 25.03.19 17:10 Сейчас в теме
(19) Значит у вас по всей этой реализации бракованный товар.
22. Mister_1C 25.03.19 17:14 Сейчас в теме
(20) из 4 товаров 2 я сделал брака. Он не создает
18. alljoke 25.03.19 17:08 Сейчас в теме
| И ДоставкаТовары.Брак = Ложь
21. alljoke 25.03.19 17:11 Сейчас в теме
Условие на брак засуньте во Вложенный Запрос.
23. YannikAlx 43 25.03.19 17:30 Сейчас в теме
        |  Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
                   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
                   |            ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
                   |                И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
                   |    ГДЕ
                   |        ДоставкаТовары.Ссылка В(&МассивДокументов)
                   |        И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                   |        
                   |        И НЕ ДоставкаТовары.Номенклатура.Услуга
                   |        И НЕ ДоставкаТовары.Брак
Показать


ИЛИ в зависимости где у вас находится Этот Брак...

        |  Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
                   |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
                   |            ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
                   |                И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
                   |    ГДЕ
                   |        ДоставкаТовары.Ссылка В(&МассивДокументов)
                   |        И ДоставкаТовары.Водители <> ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
                   |        
                   |        И НЕ ДоставкаТовары.Номенклатура.Услуга
                   |        И НЕ ДоставкаТовары.Ссылка.Брак
Показать
24. Mister_1C 25.03.19 17:50 Сейчас в теме
25. VladimirB 16 25.03.19 18:36 Сейчас в теме
26. VladimirB 16 25.03.19 18:37 Сейчас в теме
27. Mister_1C 26.03.19 12:48 Сейчас в теме
Решил данную проблему.
Запрос.Текст = " ВЫБРАТЬ
				   |	ВложенныйЗапрос.Водители,
				   |	ВложенныйЗапрос.Номенклатура,
				   |	ВложенныйЗапрос.ЕдиницаИзмерения,
				   |	ВложенныйЗапрос.Коэффициент,
				   |	ВложенныйЗапрос.Количество,
				   |	ВложенныйЗапрос.Сумма,
				   |	ВложенныйЗапрос.ЦенаДоставки,
				   |	ВложенныйЗапрос.ЦенаДоставкиЗаМКАД,  
				   |	ВложенныйЗапрос.Цена КАК Цена,
				   |	ВложенныйЗапрос.Брак КАК Брак
				   |ИЗ
	               | 	(ВЫБРАТЬ
				   |		ДоставкаТовары.Водители как Водители,
	               |		ДоставкаТовары.Номенклатура КАК Номенклатура,
	               |		ДоставкаТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	               |		ДоставкаТовары.Коэффициент КАК Коэффициент,
	               |		СУММА(ДоставкаТовары.Количество) КАК Количество,
	               |		СУММА(ДоставкаТовары.Сумма) КАК Сумма,
				   |		ДоставкаТовары.ЦенаДоставки Как ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД КАК ЦенаДоставкиЗаМКАД,
				   |		ДоставкаТовары.Цена КАК Цена,
				   |		ДоставкаТовары.Брак КАК Брак 
	               |	ИЗ
				   |		Документ.МаршрутПоездки.Маршруты КАК ДоставкаТовары
	               |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныПоставщиков.СрезПоследних КАК ЦеныПоставщиковСрезПоследних
	               |			ПО ДоставкаТовары.Номенклатура = ЦеныПоставщиковСрезПоследних.Номенклатура.Номенклатура
	               |				И ДоставкаТовары.Водители = ЦеныПоставщиковСрезПоследних.НастройкаЗагрузки.Контрагент
	               |	ГДЕ
	               |		ДоставкаТовары.Ссылка В(&МассивДокументов)
				   |		И Брак = &Брак
				   |	СГРУППИРОВАТЬ ПО
				   |		ДоставкаТовары.ЦенаДоставки,
				   |		ДоставкаТовары.ЦенаДоставкиЗаМКАД,
				   |		ДоставкаТовары.Номенклатура,
				   |		ДоставкаТовары.ЕдиницаИзмерения,
				   |		ДоставкаТовары.Коэффициент,
				   |		ДоставкаТовары.Водители,
				   |		ДоставкаТовары.Цена,
				   |		ДоставкаТовары.Брак,
				   |		ЕСТЬNULL(ЦеныПоставщиковСрезПоследних.ЦенаПоставщикаВал, 0)) КАК ВложенныйЗапрос
				   |ИТОГИ ПО
				   |	Водители";
	
	Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);
	Запрос.УстановитьПараметр("Брак",Ложь);
Показать
28. Mister_1C 26.03.19 12:50 Сейчас в теме
Всем спасибо за помощь!)
Оставьте свое сообщение

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