1c запрос не выполняется

Новая тема
"Есть два документа

1-й заказ

2-й выполнение заказа



У них общие реквизиты например : сумма и вид номенклатуры



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

выборка была только по документам по которым не было выполнеия заказа, а в другом только по документам по которым было выполнение заказа

Попробовал так не выходит

Текст = "//ЗАПРОС(Заказы)

|Период с датаНачалаПериода по датаКонцаПериода;

|обрабатыватьДокументы все;

|Обрабатывать неПомеченныеНаУдаление;



|текДок = Документ.Заказ.текущийДокумент,

| Документ.выполнениеЗаказа.текущийДокумент;



|Контрагент = Документ.Заказ.Контрагент,

| Документ.ВыполнениеЗаказа.Контрагент;



|Заказ = Документ.Заказ.видЗаказа,

|Документ.ВыполнениеЗаказа.видЗаказа;



|СуммаЗ = Документ.Заказ.Сумма;

|СуммаВ = Документ.ВыполнениеЗаказа.Сумма;

|Группировка Контрагент без групп упорядочить по Контрагент.Наименование;

|Группировка Заказ;



И вот Собственно условия которые работают только при выпол заказа



Если выполнеие заказа = 1 Тогда

Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда СуммаВ > 0;";

Иначе

//сдесь не работает (все равно в выборке все заказы)

Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда (СуммаВ = 0);";



Подскажите замучился уже, другим способом делать не хочу

конецЕсли;



"
У вас получается следующее: когда вы после выполнения запроса делаете обход по группировке "Заказ", встаете на заказ, который имеет вид Документ.Заказ - для него СуммаВ всегд будет равна 0 (она берется из другого вида документа: Документ.ВыполнениеЗаказа)  - вот она вам и суммирует все суммы по всем заказм. Да и по первому условию мне не совсем понятно, как запрос при условии СуммаВ > 0 выдает общую сумму СуммаЗ.

Вообще это все это дело (отслеживание выполнения заказа) лучше организовывать через регистр. Тогда и запрос будет проще построить и результат получить по выполнению заказа можно будет и по документу, и по контрагенту, и по заказанной конкретной продукции.

"А я бы сделала так:

Эти строки убрала:

|текДок = Документ.Заказ.текущийДокумент,

| Документ.выполнениеЗаказа.текущийДокумент;

...

|Итог = Документ.Сумма;

и добавить функцию с условием:

|Функция СуммаЗ = Сумма(Итог) когда (текДок= Документ.Заказ)

|Функция СуммаВ = Сумма(Итог) когда (текДок= Документ.выполнениеЗаказа)

Прошу прощения за синтаксис. Скорее всего написала с головы все неправильно, но хотела передать идею :)





"
Да девушки особой логикой никогда не оттличались.

Когда я делаю обход по заказу я делаю обход по не по документу, а по элементу, который имеет вид "справочник", а для этого элемента существуют значения суммаЗ и СуммаВ. Это объяснение принципа работы запроса. В общем сделал обработку условий после запроса.

На счет регистров хорошая идея, но нет компоненты оперативный учет, вот досада-то.

Да еще и у клиента релиз 15, сложные запросы глючат ой ой ой, надо бы обновить.

Ладно спасибо девченки, но запросом второе условие не сделать.
Читают тему
(гостей: 1)

Быстрый переход