Имя: Пароль:
1C
1С v8
Неправильно пересчитывает поле в отчете
0 Vladius
 
15.01.13
11:57
Сделал отчет через универсальный отчет. В запросе добавил поле для расчета процентов:
РеализацияТоваровУслугТовары.Количество / ЗаказПокупателяТовары.Количество * 100

В строке с номенклатурой все правильно рассчитывает а вот по другим полям, контрагент, группа и т.п выводится какой то бред.
http://i53.fastpic.ru/big/2013/0115/ca/dff44141d7cf9a57ec4a84aebe0ef0ca.jpg

Вот запрос, подскажите как правильно тогда итоги сделать?
ВЫБРАТЬ
               | РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
               | РеализацияТоваровУслугТовары.Количество КАК Количество,
               | РеализацияТоваровУслугТовары.Ссылка.Ссылка КАК Документ,
               | РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
               | РеализацияТоваровУслугТовары.Номенклатура.Родитель КАК Группа,
               | РеализацияТоваровУслугТовары.Ссылка.Агент КАК Агент,
               | ЗаказПокупателяТовары.Количество КАК Заказ,
               | РеализацияТоваровУслугТовары.Количество / ЗаказПокупателяТовары.Количество * 100 КАК Выполнение
               |{ВЫБРАТЬ
               | Выполнение,
               | Номенклатура.*,
               | Количество,
               | Заказ,
               | Документ.*,
               | Контрагент.*,
               | Группа.*,
               | Агент.*}
               |ИЗ
               | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
               |  ПОЛНОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
               |  ПО РеализацияТоваровУслугТовары.Ссылка.Сделка.Ссылка = ЗаказПокупателяТовары.Ссылка
               |   И РеализацияТоваровУслугТовары.Номенклатура = ЗаказПокупателяТовары.Номенклатура
               |ГДЕ
               | РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
               | И РеализацияТоваровУслугТовары.Ссылка.Проведен = ИСТИНА
               | И РеализацияТоваровУслугТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
               |{ГДЕ
               | РеализацияТоваровУслугТовары.Номенклатура.*,
               | РеализацияТоваровУслугТовары.Ссылка.Контрагент.*,
               | РеализацияТоваровУслугТовары.Номенклатура.Родитель.*,
               | РеализацияТоваровУслугТовары.Ссылка.Агент.*}
               |
               |УПОРЯДОЧИТЬ ПО
               | Номенклатура,
               | Группа
               |{УПОРЯДОЧИТЬ ПО
               | Номенклатура.*,
               | Группа.*}
               |ИТОГИ
               | СУММА(Количество),
               | СУММА(Заказ),
               | СУММА(Выполнение)
               |ПО
               | ОБЩИЕ
               |{ИТОГИ ПО
               | Номенклатура.*,
               | Документ.*,
               | Контрагент.*,
               | Группа.*,
               | Агент.*,
               | Заказ,
               | Выполнение}
1 cw014
 
15.01.13
11:59
СУММА(Выполнение) замени на СУММА(Количествр/Заказ*100)
2 DrShad
 
15.01.13
12:00
[В строке с номенклатурой все правильно рассчитывает а вот по другим полям, контрагент, группа и т.п выводится какой то бред.] выводит не бред, а итог
3 DrShad
 
15.01.13
12:01
(1) имхо в универсальном отчете не поможет, тут лучше СКД заюзать
4 Vladius
 
15.01.13
12:01
(3) Уже нет времени переписывать, все работает кроме расчета процентов.
5 DrShad
 
15.01.13
12:04
(4) все работает кроме расчета процентов. = ничего не работает
6 Vladius
 
15.01.13
12:27
(1) Так не получается :(
7 Vladius
 
15.01.13
12:34
(1) Блин, все таки получилось так как вы посоветовали )))
Только переделал вот так:
СУММА(0) КАК Выполнение

затем
СУММА(Количество) / СУММА(Заказ) * 100 КАК Выполнение

Уряя! Меня сегодня не съедят бухи!
8 Vladius
 
18.01.13
11:54
Блин, появилась новая проблема, в отчет выводятся товары которые есть в заказе, а то что в реализации не выводится. Это понятно потому что я полным соединением по номенклатуре тяну количество с реализации. А как мне тогда выбрать все товары с реализации и заказа? Подскажите а то не могу разобраться. Вот код:
"ВЫБРАТЬ
                  |    СУММА(0) КАК Выполнение,
                  |    ЗаказПокупателяТовары.Номенклатура КАК Номенклатура,
                  |    СУММА(ЗаказПокупателяТовары.Количество) КАК Заказ,
                  |    ЗаказПокупателяТовары.Ссылка.Ссылка КАК Документ,
                  |    ЗаказПокупателяТовары.Ссылка.Контрагент КАК Контрагент,
                  |    ЗаказПокупателяТовары.Номенклатура.Родитель КАК Группа,
                  |    ЗаказПокупателяТовары.Ссылка.Агент КАК Агент,
                  |    СУММА(ВложенныйЗапрос.Количество) КАК Количество
                  |{ВЫБРАТЬ
                  |    Выполнение,
                  |    Номенклатура.*,
                  |    Заказ,
                  |    Документ.*,
                  |    Контрагент.*,
                  |    Группа.*,
                  |    Агент.*,
                  |    Количество}
                  |ИЗ
                  |    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
                  |        ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                  |            РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
                  |            РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
                  |            РеализацияТоваровУслугТовары.Количество КАК Количество
                  |        ИЗ
                  |            Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары) КАК ВложенныйЗапрос
                  |        ПО ЗаказПокупателяТовары.Ссылка = ВложенныйЗапрос.Ссылка.Сделка
                  |            И ЗаказПокупателяТовары.Номенклатура = ВложенныйЗапрос.Номенклатура
                  |ГДЕ
                  |    ЗаказПокупателяТовары.Ссылка.Проведен = ИСТИНА
                  |    И ЗаказПокупателяТовары.Ссылка.ПометкаУдаления = ЛОЖЬ
                  |    И ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
                  |{ГДЕ
                  |    ЗаказПокупателяТовары.Номенклатура.*,
                  |    ЗаказПокупателяТовары.Ссылка.Контрагент.*,
                  |    ЗаказПокупателяТовары.Номенклатура.Родитель.*,
                  |    ЗаказПокупателяТовары.Ссылка.Агент.*,
                  |    ЗаказПокупателяТовары.Ссылка.Подразделение.*}
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ЗаказПокупателяТовары.Номенклатура,
                  |    ЗаказПокупателяТовары.Ссылка.Ссылка,
                  |    ЗаказПокупателяТовары.Ссылка.Контрагент,
                  |    ЗаказПокупателяТовары.Номенклатура.Родитель,
                  |    ЗаказПокупателяТовары.Ссылка.Агент
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    Номенклатура
                  |{УПОРЯДОЧИТЬ ПО
                  |    Номенклатура.*,
                  |    Группа.*}
                  |ИТОГИ
                  |    СУММА(Количество) / СУММА(Заказ) * 100 КАК Выполнение,
                  |    СУММА(Заказ),
                  |    СУММА(Количество)
                  |ПО
                  |    ОБЩИЕ
                  |{ИТОГИ ПО
                  |    Выполнение,
                  |    Номенклатура.*,
                  |    Документ.*,
                  |    Контрагент.*,
                  |    Группа.*,
                  |    Агент.*,
                  |    Заказ,
                  |    Количество}"
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший