1. Nikita890 14.08.19 05:59 Сейчас в теме

Параметр в запросе, как правильно сделать

Добрый день всем. Нужно сделать чтобы при установленной галочке в документе перемещениеЗапасов у номенклатуры стиралась характеристика. При проведении документа для таблицы движений делается запрос, вот его кусочек:
ВЫБРАТЬ
	|	ТаблицаЗапасы.НомерСтроки,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
	|	ТаблицаЗапасы.Период,
	|	ТаблицаЗапасы.КоррСтруктурнаяЕдиница,
	|	ТаблицаЗапасы.КоррЯчейка,
	|	ТаблицаЗапасы.Организация,
	|	ТаблицаЗапасы.Номенклатура,
	|	ТаблицаЗапасы.Характеристика,
	|	ТаблицаЗапасы.Партия,
	|	ТаблицаЗапасы.Количество
Показать


Я сделал так:
ВЫБРАТЬ
	|	ТаблицаЗапасы.НомерСтроки,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
	|	ТаблицаЗапасы.Период,
	|	ТаблицаЗапасы.КоррСтруктурнаяЕдиница,
	|	ТаблицаЗапасы.КоррЯчейка,
	|	ТаблицаЗапасы.Организация,
	|	ТаблицаЗапасы.Номенклатура,
	|	ВЫБОР
	|		КОГДА &СтеретьХарактеристики = ЛОЖЬ
	|			ТОГДА ТаблицаЗапасы.Характеристика
	|		ИНАЧЕ NULL
	|	КОНЕЦ,
	|	ТаблицаЗапасы.Партия,
	|	ТаблицаЗапасы.Количество
Показать

Почему то в таблицу движений, вместо 4 строк передается 1525 - дублируются они, а если вместо моей конструкции на месте ТаблицаЗапасы.Характеристика оставить NULL, то получается как надо, расходуются 2 строчки с характеристикой, а приходуются без них. Надеюсь понятно объяснил)
Ответы
Избранное Подписка Сортировка: Древо
2. Fox-trot 93 14.08.19 06:13 Сейчас в теме
(1) подозреваю, что есть еще код, который ты не огласил, но который таки влияет = создает эти лишние движения
Nikita890; +1 Ответить
3. Nikita890 14.08.19 06:15 Сейчас в теме
Ну весь запрос выглядит так:
Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = СтруктураДополнительныеСвойства.ДляПроведения.СтруктураВременныеТаблицы.МенеджерВременныхТаблиц;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ТаблицаЗапасы.НомерСтроки КАК НомерСтроки,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) КАК ВидДвижения,
	|	ТаблицаЗапасы.Период КАК Период,
	|	ТаблицаЗапасы.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница,
	|	ТаблицаЗапасы.Ячейка КАК Ячейка,
	|	ТаблицаЗапасы.Организация КАК Организация,
	|	ТаблицаЗапасы.Номенклатура КАК Номенклатура,
	|	ТаблицаЗапасы.Характеристика КАК Характеристика,
	|	ТаблицаЗапасы.Партия КАК Партия,
	|	ТаблицаЗапасы.Количество КАК Количество
	|ИЗ
	|	ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы,
	|	Документ.ПеремещениеЗапасов КАК ПеремещениеЗапасов
	|ГДЕ
	|	НЕ ТаблицаЗапасы.ОрдерныйСклад
	|	И НЕ ТаблицаЗапасы.ВозвратИзРозницыСуммовойУчет
	|	И НЕ ТаблицаЗапасы.ПеремещениеВРозницеСуммовойУчет
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ТаблицаЗапасы.НомерСтроки,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
	|	ТаблицаЗапасы.Период,
	|	ТаблицаЗапасы.КоррСтруктурнаяЕдиница,
	|	ТаблицаЗапасы.КоррЯчейка,
	|	ТаблицаЗапасы.Организация,
	|	ТаблицаЗапасы.Номенклатура,
	|	ТаблицаЗапасы.Характеристика,
	|	ТаблицаЗапасы.Партия,
	|	ТаблицаЗапасы.Количество
	|ИЗ
	|	ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы,
	|	Документ.ПеремещениеЗапасов КАК ПеремещениеЗапасов
	|ГДЕ
	|	ТаблицаЗапасы.Период < ТаблицаЗапасы.ДатаОбновленияНаРелиз_1_2_1
	|	И НЕ ТаблицаЗапасы.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПеремещениеЗапасов.СписаниеНаРасходы)
	|	И НЕ ТаблицаЗапасы.ПеремещениеВРозницуСуммовойУчет
	|	И НЕ ТаблицаЗапасы.ПеремещениеВРозницеСуммовойУчет
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ТаблицаЗапасы.НомерСтроки,
	|	ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход),
	|	ТаблицаЗапасы.Период,
	|	ТаблицаЗапасы.КоррСтруктурнаяЕдиница,
	|	ТаблицаЗапасы.КоррЯчейка,
	|	ТаблицаЗапасы.Организация,
	|	ТаблицаЗапасы.Номенклатура,
	|	ВЫБОР
	|		КОГДА &СтеретьХарактеристики = ЛОЖЬ
	|			ТОГДА ТаблицаЗапасы.Характеристика
	|		ИНАЧЕ NULL
	|	КОНЕЦ,
	|	ТаблицаЗапасы.Партия,
	|	ТаблицаЗапасы.Количество
	|ИЗ
	|	ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы,
	|	Документ.ПеремещениеЗапасов КАК ПеремещениеЗапасов
	|ГДЕ
	|	НЕ ТаблицаЗапасы.КоррОрдерныйСклад
	|	И ТаблицаЗапасы.Период >= ТаблицаЗапасы.ДатаОбновленияНаРелиз_1_2_1
	|	И НЕ ТаблицаЗапасы.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийПеремещениеЗапасов.СписаниеНаРасходы)
	|	И НЕ ТаблицаЗапасы.ПеремещениеВРозницуСуммовойУчет
	|	И НЕ ТаблицаЗапасы.ПеремещениеВРозницеСуммовойУчет
	|	И ПеремещениеЗапасов.СтеретьХарактеристики = &СтеретьХарактеристики";
    Запрос.УстановитьПараметр("СтеретьХарактеристики", ДокументСсылкаПеремещениеЗапасов.СтеретьХарактеристики);		
	РезультатЗапроса = Запрос.Выполнить();
Показать
4. Nikita890 14.08.19 06:37 Сейчас в теме
Убрал вот это
|    И ПеремещениеЗапасов.СтеретьХарактеристики = &СтеретьХарактеристики";

и стало нормально
5. el07 14.08.19 09:36 Сейчас в теме
" | ВременнаяТаблицаЗапасы КАК ТаблицаЗапасы,
| Документ.ПеремещениеЗапасов КАК ПеремещениеЗапасов"

не поняла как соединяются эти 2 таблицы?
Потому, наверное и множатся строки, что нет соединения, а когда убрали условие на 2-ю таблицу, множиться перестает.
Nikita890; +1 Ответить
6. Nikita890 14.08.19 10:04 Сейчас в теме
(5)Ну да, в этом ошибка и была
7. lefthander 14.08.19 10:13 Сейчас в теме
(6)| Документ.ПеремещениеЗапасов КАК ПеремещениеЗапасов - вообще все такие строки можно убрать. Вы нигде в запросе не обращаетесь к документу
Nikita890; +1 Ответить
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

Консультант 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день

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

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

Программисты 1С УТ / БУЗ/ЗУП / БИТ ФИНАНС
Москва
зарплата от 100 000 руб. до 180 000 руб.
Полный день