1c запрос не выполняется
09.07.2004
11:14
#1
"Есть два документа
1-й заказ
2-й выполнение заказа
У них общие реквизиты например : сумма и вид номенклатуры
Нужно построить запрос по двум документам так чтоб в одном случае
выборка была только по документам по которым не было выполнеия заказа, а в другом только по документам по которым было выполнение заказа
Попробовал так не выходит
Текст = "//ЗАПРОС(Заказы)
|Период с датаНачалаПериода по датаКонцаПериода;
|обрабатыватьДокументы все;
|Обрабатывать неПомеченныеНаУдаление;
|текДок = Документ.Заказ.текущийДокумент,
| Документ.выполнениеЗаказа.текущийДокумент;
|Контрагент = Документ.Заказ.Контрагент,
| Документ.ВыполнениеЗаказа.Контрагент;
|Заказ = Документ.Заказ.видЗаказа,
|Документ.ВыполнениеЗаказа.видЗаказа;
|СуммаЗ = Документ.Заказ.Сумма;
|СуммаВ = Документ.ВыполнениеЗаказа.Сумма;
|Группировка Контрагент без групп упорядочить по Контрагент.Наименование;
|Группировка Заказ;
И вот Собственно условия которые работают только при выпол заказа
Если выполнеие заказа = 1 Тогда
Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда СуммаВ > 0;";
Иначе
//сдесь не работает (все равно в выборке все заказы)
Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда (СуммаВ = 0);";
Подскажите замучился уже, другим способом делать не хочу
конецЕсли;
"
1-й заказ
2-й выполнение заказа
У них общие реквизиты например : сумма и вид номенклатуры
Нужно построить запрос по двум документам так чтоб в одном случае
выборка была только по документам по которым не было выполнеия заказа, а в другом только по документам по которым было выполнение заказа
Попробовал так не выходит
Текст = "//ЗАПРОС(Заказы)
|Период с датаНачалаПериода по датаКонцаПериода;
|обрабатыватьДокументы все;
|Обрабатывать неПомеченныеНаУдаление;
|текДок = Документ.Заказ.текущийДокумент,
| Документ.выполнениеЗаказа.текущийДокумент;
|Контрагент = Документ.Заказ.Контрагент,
| Документ.ВыполнениеЗаказа.Контрагент;
|Заказ = Документ.Заказ.видЗаказа,
|Документ.ВыполнениеЗаказа.видЗаказа;
|СуммаЗ = Документ.Заказ.Сумма;
|СуммаВ = Документ.ВыполнениеЗаказа.Сумма;
|Группировка Контрагент без групп упорядочить по Контрагент.Наименование;
|Группировка Заказ;
И вот Собственно условия которые работают только при выпол заказа
Если выполнеие заказа = 1 Тогда
Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда СуммаВ > 0;";
Иначе
//сдесь не работает (все равно в выборке все заказы)
Текст = Текст + "Функция итСумЗ = Сумма(СуммаЗ) когда (СуммаВ = 0);";
Подскажите замучился уже, другим способом делать не хочу
конецЕсли;
"
09.07.2004
18:03
#2
У вас получается следующее: когда вы после выполнения запроса делаете обход по группировке "Заказ", встаете на заказ, который имеет вид Документ.Заказ - для него СуммаВ всегд будет равна 0 (она берется из другого вида документа: Документ.ВыполнениеЗаказа) - вот она вам и суммирует все суммы по всем заказм. Да и по первому условию мне не совсем понятно, как запрос при условии СуммаВ > 0 выдает общую сумму СуммаЗ.
Вообще это все это дело (отслеживание выполнения заказа) лучше организовывать через регистр. Тогда и запрос будет проще построить и результат получить по выполнению заказа можно будет и по документу, и по контрагенту, и по заказанной конкретной продукции.
Вообще это все это дело (отслеживание выполнения заказа) лучше организовывать через регистр. Тогда и запрос будет проще построить и результат получить по выполнению заказа можно будет и по документу, и по контрагенту, и по заказанной конкретной продукции.
12.07.2004
10:55
#3
"А я бы сделала так:
Эти строки убрала:
|текДок = Документ.Заказ.текущийДокумент,
| Документ.выполнениеЗаказа.текущийДокумент;
...
|Итог = Документ.Сумма;
и добавить функцию с условием:
|Функция СуммаЗ = Сумма(Итог) когда (текДок= Документ.Заказ)
|Функция СуммаВ = Сумма(Итог) когда (текДок= Документ.выполнениеЗаказа)
Прошу прощения за синтаксис. Скорее всего написала с головы все неправильно, но хотела передать идею
"
Эти строки убрала:
|текДок = Документ.Заказ.текущийДокумент,
| Документ.выполнениеЗаказа.текущийДокумент;
...
|Итог = Документ.Сумма;
и добавить функцию с условием:
|Функция СуммаЗ = Сумма(Итог) когда (текДок= Документ.Заказ)
|Функция СуммаВ = Сумма(Итог) когда (текДок= Документ.выполнениеЗаказа)
Прошу прощения за синтаксис. Скорее всего написала с головы все неправильно, но хотела передать идею
"
12.07.2004
12:09
#4
Да девушки особой логикой никогда не оттличались.
Когда я делаю обход по заказу я делаю обход по не по документу, а по элементу, который имеет вид "справочник", а для этого элемента существуют значения суммаЗ и СуммаВ. Это объяснение принципа работы запроса. В общем сделал обработку условий после запроса.
На счет регистров хорошая идея, но нет компоненты оперативный учет, вот досада-то.
Да еще и у клиента релиз 15, сложные запросы глючат ой ой ой, надо бы обновить.
Ладно спасибо девченки, но запросом второе условие не сделать.
Когда я делаю обход по заказу я делаю обход по не по документу, а по элементу, который имеет вид "справочник", а для этого элемента существуют значения суммаЗ и СуммаВ. Это объяснение принципа работы запроса. В общем сделал обработку условий после запроса.
На счет регистров хорошая идея, но нет компоненты оперативный учет, вот досада-то.
Да еще и у клиента релиз 15, сложные запросы глючат ой ой ой, надо бы обновить.
Ладно спасибо девченки, но запросом второе условие не сделать.
Читают тему
(гостей: 1)