====== Извличане на SQL код за създаване на нов анализ ======
В случай, че желаете да [[dopalnitelni_moduli:selmatic_plus_analizi:glaven_prozorec:nov_analiz|създадете нов анализ]] на базата на справка от SelMatic Plus, може да използвате SQL кода на справката и да го заложите в желания анализ.
Извличането на SQL кода на дадена справка се извършва по следния начин: Отворете произволна справка - например "Продажби по суми" и я обновете. След това натиснете клавишната комбинация Ctrl+Shift+F12, за да заредите прозорец **"SQL монитор"** и отново обновете справката. В SQL монитора се зарежда съответния **SQL код**.
{{:dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:prodazba_sas_sql_monitor.jpg|}}
Копирайте съдържанието от прозореца на SQL монитора и го поставете в произволен текстови редактор или IВЕxpert, за да го редактирате. Необходимо е премахнете всички черти, дати и излишни полета. Целта е да се получи SQL код във вида:
"select p.nomer,p.data,p.prikluchen, \\
case \\
when p.tip = 0 then 'Обикновена' \\
when p.tip = 1 then 'Отч.от Консигн.'\\
when p.tip = 2 then 'Производство' \\
when p.tip = 3 then 'По заявка' \\
end tip, \\
case \\
when p.nachin_plashtane = 0 then 'В брой'\\
when p.nachin_plashtane = 1 then 'По сметка' \\
when p.nachin_plashtane = 2 then 'С прихващане' \\
when p.nachin_plashtane = 3 then 'Бартер' \\
when p.nachin_plashtane = 4 then 'С дебитна/кредитна карта' \\
when p.nachin_plashtane = 5 then 'Смесен' \\ when p.nachin_plashtane = 6 then 'Наложен платеж' \\
end nachin_plashtane,\\
case \\
when p.status_prodazba is null then 'Изпратена' \\
when p.status_prodazba = 1 then 'Неизпратена' \\
when p.status_prodazba = 2 then 'Фиктивна' \\
end status_prodazba , \\
p.faktura_nomer, \\
case \\
when p.faktura_nomer is null then null\\
when p.faktura_nomer is not null then p.faktura_data \\
end faktura_data, \\
p.anuliran, p.obekt_nomer,o.obekt,p.KONTRAGENT_nomer, \\
k.KONTRAGENT,coalesce(ko.grad, k.sedalishte_grad) kontragent_grad,k.krime,ko.ime kontragent_obekt_ime,sum(stoinost_bez_to) stoinost_bez_to,
sum(stoinost_to) stoinost_to, sum(pd.stoinost_bez_dds) stoinost_bez_dds,
sum(pd.stoinost_dds) stoinost_dds, sum(pd.stoinost_s_dds) stoinost_s_dds,v.valuta, p.komentаr,p.METRO_VHSTOKOV_NOMER, p.data_poluchawane_faktura, p.srok_na_plashtane, op.osnovanie_prodazba, p.dilar_nomer1, p.dilar_nomer2, d1.dilar dilar1, d2.dilar dilar2, k.bulstat, k.dannomer, k.ddsnomer,sum(pd.originalna_stoinost) originalna_stoinost, \\
case\\
when p.faktura_nomer is null then null \\
when p.vid_faktura = 0 then 'Фактура' \\
when p.vid_faktura = 1 then 'Данъчна фактура' \\
when p.vid_faktura = 2 then 'Опростена фактура' \\
when p.vid_faktura = 3 then 'Кредитно известие' \\
when p.vid_faktura = 4 then 'Дебитно известие' \\
end vid_faktura, smiana_nomer, sd.nomer sdelka_nomer, sd.ime sdelka_ime,
d1.EGN EGN1,d2.EGN EGN2, p.OFERTA_NOMER,
p.DALG_OT_PREDISHNI_PRODAZBI, p.KREDITEN_LIMIT, p.KREDITEN_LIMIT_VALUTA_NOMER, kv.VALUTA, p.METRO_PORACHKA_NOMER,
p.KONTRAGENT_BARCODE, p.data_na_dostavka, p.data_na_izpalnenie, p.BROI_OPAKOVKI \\
from prodazbi p \\
left join prodazbi_de pd on pd.prodazba_nomer=p.nomer \\
join obekti o on p.obekt_nomer=o.nomer \\
join kontragenti k on p.kontragent_nomer=k.nomer \\
left join kontragenti_obekti ko on p.kontragent_obekt_nomer=ko.nomer \\
join valuti v on pd.valuta_nomer=v.nomer \\
left join osnovania_prodazbi op on op.nomer=p.osnovanie_prodazba_nomer \\
left join dilari d1 on d1.nomer=p.dilar_nomer1 \\
left join dilari d2 on d2.nomer=p.dilar_nomer2 \\
left join sdelki sd on p.sdelka_nomer = sd.nomer \\
left outer join valuti kv on p.KREDITEN_LIMIT_VALUTA_NOMER = kv.Nomer \\
left join grupikontr gpk on gpk.nomer = k.KONTR_GRUPA_NOMER \\
**where(p.anuliran=0) and ( ( ( (STATUS_PRODAZBA <> 2) or (STATUS_PRODAZBA is null) ) ) and (p.obekt_nomer not in (3,5)))** \\
group by p.nomer,p.data,p.prikluchen, p.faktura_nomer, p.faktura_data, p.anuliran, p.obekt_nomer,o.obekt,
p.kontragent_nomer,
k.KONTRAGENT, k.sedalishte_grad, k.krime, p.KONTRAGENT_obekt_nomer, ko.ime, ko.grad,p.komentar, v.valuta, p.tip, p.nachin_plashtane, p.METRO_VHSTOKOV_NOMER, p.data_poluchawane_faktura, p.srok_na_plashtane, op.osnovanie_prodazba, p.dilar_nomer1, p.dilar_nomer2, d1.dilar, d2.dilar, k.bulstat, k.dannomer, k.ddsnomer, p.vid_faktura,smiana_nomer,sd.nomer, sd.ime,p.status_prodazba,
d1.EGN,d2.EGN,p.OFERTA_NOMER, p.DALG_OT_PREDISHNI_PRODAZBI, p.KREDITEN_LIMIT, p.KREDITEN_LIMIT_VALUTA_NOMER, kv.VALUTA, p.METRO_PORACHKA_NOMER, p.KONTRAGENT_BARCODE, p.data_na_dostavka, p.data_na_izpalnenie, p.BROI_OPAKOVKI \\
order by p.data, p.nomer"
**"Where" клаузата** включва ограниченията по **обект**, **дата** или **групи позиции** от основните филтри. Данните в нея се подават според източника на данни. Не всеки източник може и има нужда да бъде филтриран по обект. За бази данни, съдържащи малък брой обекти или за анализи, които нямат общо с обекти, този филтър няма смисъл. \\
Аналогично, не всеки източник на данни може и има нужда да бъде филтриран по период или групи позиции.
Като цяло, за да работи филтрацията по обекти, период и/или групи позиции е необходимо съставящия SQL-а на източника на данните изрично да приложи (заложи) съответните [[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:makrosi|макроси]] за обект, период, групи позиции, според спецификата на анализа.
------------------------------------------------
[[dopalnitelni_moduli:selmatic_plus_analizi:advance nastrojki|Експертни настройки - въведение]]
[[dopalnitelni_moduli:selmatic_plus_analizi:glaven_prozorec:nov_analiz|Създаване на изцяло нов анализ]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:posledovatelnost_na_rabota|Основни стъпки при работа с анализите - създаване и редакция]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:osnovni_svojstva_analiz_diagrama_iztochnik|Свойства на Анализ, Източник на данни и Диаграма]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:makrosi|Експертни настройки - макроси за филтриране по обекти, период и групи позиции]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:nova_dimensia|Създаване на дименсии]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:dimensii s formuli|Създаване на дименсии, изчислени по формула от други дименсии]]
[[dopalnitelni_moduli:selmatic_plus_analizi:advance_nastrojki:osnovni_svojstva|Свойства на дименсиите]]
[[dopalnitelni_moduli:selmatic_plus_analizi:vavedenie|Съдържание]]