Запрос

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 Сейчас в теме
Всем спасибо за помощь!)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)