• Ласкаво просимо на Спільнота для обміну досвідом між користувачами програм УкрБланк, УкрСклад, УкрЗарплата.
 

Допоможіть настроїти звіт!

Автор zener, Березень 09, 2011, 21:41:25

Попередня тема - Наступна тема

0 Користувачі і 4 Гостей дивляться цю тему.

zener

Доброго дня! Нам потрібен звіт, аналогічний "Руху по клієнтам:деталізація по товару" але додатково мають бути дані з полів: ціна №3, додаткове поле 1, додаткове поле 2

в режимі редагування, далі sql запит, далі під SELECT вписував t.dopoln1 але помилку видає помилку 

sql error code - 206
сolumn unknown t.dopoln1

допоможіть будьласка реалізувати звіт з описаними вище полями

admin

По аналогии как здесь:
http://www.softbalance.com.ua/forum/index.php?topic=408.0

только ваши поля это
tn.cena3
tn.dopoln1
tn.dopoln2

zener

Дуже дякую, з цим розібрався!!

Питання наступне...
Якшо для різних товарів ціна вказана в різній валюті, напр:
Товар №1 Роздрібна ціна 10 грн
Товар №2 Роздрібна ціна 10 $

як в дизайнері зробити так, щоб колонка з обома цінами була вказана в національній валюті, а саме
Товар №1 Роздрібна ціна 10 грн
Товар №2 Роздрібна ціна 80 грн (це при умові що курс 8)

якшо я правильно зрозумів це за допомогою функції ToNacValuta, але не можу розібратись як це записати

admin

Посмотрите как это сделано в отчете Прайс-листы, а ToNacValuta используется в приходной накладной при печати ценников.

gvvdoze

Добрый день. Ув. администрация сайта с кем можно обсудить разработку ПО.

zener

SELECT
  tz.kolvo,
  t.*,
  CASE
    WHEN (t.cena_curr_id = par.param) THEN t.cena 
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 1) THEN t.cena/c.kurs/ct_in.kurs 
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 1) THEN t.cena*c.kurs/ct_in.kurs   
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 0) THEN t.cena/c.kurs*ct_in.kurs 
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 0) THEN t.cena*c.kurs*ct_in.kurs   
  END AS cena_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_r 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_r/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_r*c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_r/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_r*c.kurs*ct_out.kurs 
  END AS cena_r_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_o 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_o/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_o*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_o/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_o*c.kurs*ct_out.kurs   
  END AS cena_o_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_1 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_1/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_1*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_1/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_1*c.kurs*ct_out.kurs   
  END AS cena_1_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_2 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_2/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_2*c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_2/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_2*c.kurs*ct_out.kurs 
  END AS cena_2_national_valuta,
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_3
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_3/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_3*c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_3/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_3*c.kurs*ct_out.kurs
  END AS cena_3_national_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena 
    WHEN (ct_in.how_to_calc = 1) THEN t.cena/ct_in.kurs 
    WHEN (ct_in.how_to_calc = 0) THEN t.cena*ct_in.kurs 
  END AS cena_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_r 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_r/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_r*ct_out.kurs 
  END AS cena_r_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_o 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_o/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_o*ct_out.kurs 
  END AS cena_o_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_1 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_1/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_1*ct_out.kurs 
  END AS cena_1_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_2 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_2/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_2*ct_out.kurs 
  END AS cena_2_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_3
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_3/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_3*ct_out.kurs
  END AS cena_3_main_valuta,
  gr.group_name,
  c.fio, 
  vn.date_dok,   
  vn.nu,   
  vn_.tov_name,   
  vn_.tov_ed,   
  vn_.tov_cena,   
  vn_.tov_kolvo,   
  vn_.tov_suma,   
  vn.sklad_id,   
  vn.cena,   
  vn.cena_znig,
  vn.znig_type,
  vn.num
FROM   
tovar_name t 
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num 
    LEFT JOIN currency ct_out ON t.cena_out_curr_id = ct_out.num, 
  print_view_sklad(#товар_группа_№#,#склад_№#) gr, 
  tovar_zal tz,   
  currency c,   
  params par,
  vnakl vn, 
  client c,   
  vnakl_ vn_
WHERE   
  vn.is_move = 1 AND
  vn.date_dok >= '#дата_с#' AND 
  vn.date_dok <= '#дата_по#' AND 
  vn.client_id = c.num AND   
  vn.num = vn_.pid AND 
  vn_.sklad_id = #склад_№#   
  par.name = 'NationalValutaId' AND   
  c.num = par.param AND   
  t.tip = gr.num AND   
  t.visible = 1 AND   
  t.is_price_invisible = 0 AND 
  t.num=tz.tovar_id AND   
  tz.sklad_id=#склад_№# 
ORDER BY   
  vn.client,   
  vn.date_dok,   
  vn.num,
  gr.group_name,   
  t.name



Помилка:
DataM. QueryRep. SelectQuery:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown -line 108, char 3.
Par.

admin

Цитата: gvvdoze від Березень 14, 2011, 12:10:10
Добрый день. Ув. администрация сайта с кем можно обсудить разработку ПО.

С поддержкой программы. Т.е. на емаил.

admin


zener

SELECT
  tz.kolvo,
  t.*,
  CASE
    WHEN (t.cena_curr_id = par.param) THEN t.cena
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 1) THEN t.cena/c.kurs/ct_in.kurs
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 1) THEN t.cena*c.kurs/ct_in.kurs   
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 0) THEN t.cena/c.kurs*ct_in.kurs
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 0) THEN t.cena*c.kurs*ct_in.kurs   
  END AS cena_national_valuta,
  CASE
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_r
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_r/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_r*c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_r/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_r*c.kurs*ct_out.kurs
  END AS cena_r_national_valuta,
  CASE
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_o
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_o/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_o*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_o/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_o*c.kurs*ct_out.kurs   
  END AS cena_o_national_valuta,
  CASE
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_1
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_1/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_1*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_1/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_1*c.kurs*ct_out.kurs   
  END AS cena_1_national_valuta,
  CASE
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_2
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_2/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_2*c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_2/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_2*c.kurs*ct_out.kurs
  END AS cena_2_national_valuta,
  CASE
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_3
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_3/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_3*c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_3/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_3*c.kurs*ct_out.kurs
  END AS cena_3_national_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena
    WHEN (ct_in.how_to_calc = 1) THEN t.cena/ct_in.kurs
    WHEN (ct_in.how_to_calc = 0) THEN t.cena*ct_in.kurs
  END AS cena_main_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_r
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_r/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_r*ct_out.kurs
  END AS cena_r_main_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_o
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_o/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_o*ct_out.kurs
  END AS cena_o_main_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_1
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_1/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_1*ct_out.kurs
  END AS cena_1_main_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_2
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_2/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_2*ct_out.kurs
  END AS cena_2_main_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_3
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_3/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_3*ct_out.kurs
  END AS cena_3_main_valuta,
  gr.group_name,
  c.fio,
  vn.date_dok,   
  vn.nu,   
  vn_.tov_name,   
  vn_.tov_ed,   
  vn_.tov_cena,   
  vn_.tov_kolvo,   
  vn_.tov_suma,   
  vn.sklad_id,   
  vn.cena,   
  vn.cena_znig,
  vn.znig_type,
  vn.num
FROM   
tovar_name t
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num
    LEFT JOIN currency ct_out ON t.cena_out_curr_id = ct_out.num,
  print_view_sklad(#товар_группа_№#,#склад_№#) gr,
  tovar_zal tz,   
  currency c,   
  params par,
  vnakl vn,
  client c,   
  vnakl_ vn_
WHERE   
  vn.is_move = 1 AND
  vn.date_dok >= '#дата_с#' AND
  vn.date_dok <= '#дата_по#' AND
  vn.client_id = c.num AND   
  vn.num = vn_.pid AND
  vn_.sklad_id = #склад_№#   AND
  par.name = 'NationalValutaId' AND   
  c.num = par.param AND   
  t.tip = gr.num AND   
  t.visible = 1 AND   
  t.is_price_invisible = 0 AND
  t.num=tz.tovar_id AND   
  tz.sklad_id=#склад_№#
ORDER BY   
  vn.client,   
  vn.date_dok,   
  vn.num,
  gr.group_name,   
  t.name

DataM. QueryRep. SelectQuery:
Underfined name.
Dynamic SQL Error.
SQL error code = -204.
Token unknown -line 108, char 3.
Alias C conflict with an alias in the same statement.

Шановний, Дмитро! Вибачте за мою необізнаність в цій справі.

zener

DataM. QueryRep. SelectQuery:
Underfined name.
Dynamic SQL Error.
SQL error code = -204.
Alias C conflict with an alias in the same statement.

admin

Цитата: zener від Березень 15, 2011, 22:16:03
DataM. QueryRep. SelectQuery:
Underfined name.
Dynamic SQL Error.
SQL error code = -204.
Alias C conflict with an alias in the same statement.

2 одинкаовых альяса в куске кода:

  currency c,   
  params par,
  vnakl vn,
  client c, 

нельзя две "c" надо например так

  currency c,   
  params par,
  vnakl vn,
  client cln, 

соответственно тогда надо менять

c.fio, на cln.fio,
vn.client_id = c.num AND на vn.client_id = cln.num AND

zener

SELECT
  tz.kolvo,
  t.*,
  CASE
    WHEN (t.cena_curr_id = par.param) THEN t.cena 
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 1) THEN t.cena/c.kurs/ct_in.kurs 
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 1) THEN t.cena*c.kurs/ct_in.kurs   
    WHEN (c.how_to_calc = 0 AND ct_in.how_to_calc = 0) THEN t.cena/c.kurs*ct_in.kurs 
    WHEN (c.how_to_calc = 1 AND ct_in.how_to_calc = 0) THEN t.cena*c.kurs*ct_in.kurs   
  END AS cena_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_r 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_r/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_r*c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_r/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_r*c.kurs*ct_out.kurs 
  END AS cena_r_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_o 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_o/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_o*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_o/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_o*c.kurs*ct_out.kurs   
  END AS cena_o_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_1 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_1/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_1*c.kurs/ct_out.kurs   
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_1/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_1*c.kurs*ct_out.kurs   
  END AS cena_1_national_valuta, 
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_2 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_2/c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_2*c.kurs/ct_out.kurs 
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_2/c.kurs*ct_out.kurs 
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_2*c.kurs*ct_out.kurs 
  END AS cena_2_national_valuta,
  CASE 
    WHEN (t.cena_out_curr_id = par.param) THEN t.cena_3
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 1) THEN t.cena_3/c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 1) THEN t.cena_3*c.kurs/ct_out.kurs
    WHEN (c.how_to_calc = 0 AND ct_out.how_to_calc = 0) THEN t.cena_3/c.kurs*ct_out.kurs
    WHEN (c.how_to_calc = 1 AND ct_out.how_to_calc = 0) THEN t.cena_3*c.kurs*ct_out.kurs
  END AS cena_3_national_valuta,
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena 
    WHEN (ct_in.how_to_calc = 1) THEN t.cena/ct_in.kurs 
    WHEN (ct_in.how_to_calc = 0) THEN t.cena*ct_in.kurs 
  END AS cena_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_r 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_r/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_r*ct_out.kurs 
  END AS cena_r_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_o 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_o/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_o*ct_out.kurs 
  END AS cena_o_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_1 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_1/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_1*ct_out.kurs 
  END AS cena_1_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_2 
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_2/ct_out.kurs 
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_2*ct_out.kurs 
  END AS cena_2_main_valuta, 
  CASE     
    WHEN (t.cena_curr_id = 0) THEN t.cena_3
    WHEN (ct_out.how_to_calc = 1) THEN t.cena_3/ct_out.kurs
    WHEN (ct_out.how_to_calc = 0) THEN t.cena_3*ct_out.kurs
  END AS cena_3_main_valuta,
  gr.group_name,
  cln.fio, 
  vn.date_dok,   
  vn.nu,   
  vn_.tov_name,   
  vn_.tov_ed,   
  vn_.tov_cena,   
  vn_.tov_kolvo,   
  vn_.tov_suma,   
  vn.sklad_id,   
  vn.cena,   
  vn.cena_znig,
  vn.znig_type,
  vn.num
FROM   
tovar_name t 
    LEFT JOIN currency ct_in ON t.cena_curr_id = ct_in.num 
    LEFT JOIN currency ct_out ON t.cena_out_curr_id = ct_out.num, 
  print_view_sklad(#товар_группа_№#,#склад_№#) gr, 
  tovar_zal tz,   
  currency c,   
  params par,
  vnakl vn, 
  client cln,   
  vnakl_ vn_
WHERE   
  vn.is_move = 1 AND
  vn.date_dok >= '#дата_с#' AND 
  vn.date_dok <= '#дата_по#' AND 
  vn.client_id = cln.num AND   
  vn.num = vn_.pid AND 
  vn_.sklad_id = #склад_№#    AND   
  par.name = 'NationalValutaId' AND   
  c.num = par.param AND   
  t.tip = gr.num AND   
  t.visible = 1 AND   
  t.is_price_invisible = 0 AND 
  t.num=tz.tovar_id AND   
  tz.sklad_id=#склад_№# 
ORDER BY   
  vn.client,   
  vn.date_dok,   
  vn.num,
  gr.group_name,   
  t.name

Вже все добре звіт формується, всі дані які мене цікавлять там є, лише кожну позицію воно повторює ту кількість разів скільки існує позицій товару на складі, або в групі якщо поставити фільтр по групі

admin

не проверял скрипт но на первый взгляд нет привязки накладной к товарам, т.е. надо в условие WHERE добавить
vn.tovar_id = t.num AND