В данной ПФ внесены следующие изменения: - выведена информация о фирме, ИНН и ЗН фирмы (хардтекст) - выведена дата операции - в заголовке отображается, приход это или возврат прихода {{:кассовый_чек1.jpg?600|}} begin /* DOR_ID = 1001314; CHARS_IN_LINE_BIG = 24; CHARS_IN_LINE_MEDIUM = 48; CHARS_IN_LINE_SMALL = 57; LOCAL_KASS_ID = 56;+ PAY_SUM = 100.00; PAY_TYPE = 1; --0Нал/1безнал */ /* SIZE_LINE: 1 - маленький шрифт (small); 2 - стандартный (medium); 3 - большой (big) - для каждого шрифта нужно свою ширину ставить ALIGNMENT: 0 – по левому краю; 1 – по центру; 2 – по правому краю */ /* [1], [2], [3] - признак в начале строки от размере символов [C] (английская) - признак, что тут нужно отрезать (RES_STR = '[C] '; suspend;) [B] (английская) - признак, что тут нужно печатать ШК (RES_STR = '[B]270000000001'; suspend;) [S][Размер шрифта][текст под чертой 1][текст под чертой 2][текст под чертой 3] ([S][14][подпись клиента][][]) тут будет сама подпись ___________________ текст под чертой 1 текст под чертой 2 текст под чертой 3 */ ------------------------------------------------------------------------------------------------ --раздел настройки печати. Выставить 0 возле того, что НЕ надо печатать, и 1 - что НАДО печатать ------------------------------------------------------------------------------------------------- select d.doc_date, d.doc_num, cast(dor.date_out as date), dor.sclad_kredit_id, dor.kredit, dor.debet, dor.kredit - dor.debet, dor.barcode, c.name, u.description from docs_order dor left join docs d on d.doc_id = dor.doc_id --left join users u on u.user_id = dor.creater_id --left join sclads s on s.id = dor.sclad_kredit_id left join contragents c on c.contr_id = d.contragent_id left join users u on u.user_id = dor.creater_id where dor.id = :DOR_ID into :DOC_DATE, :DOC_NUM, :DATE_OUT, :SCLAD_KREDIT_ID, :DOR_KREDIT, :DOR_DEBET, :DOLG, :BARCODE, :contr_name, :kassir; RES_STR = ' '; suspend; -- отступаем строку RES_STR = ' '; suspend; -- отступаем строку if(:pay_sum > 0) then for select RES from SP_FISC_PRINT_STRING('КАССОВЫЙ ЧЕК/ПРИХОД', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; else begin for select RES from SP_FISC_PRINT_STRING('КАССОВЫЙ ЧЕК/', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('ВОЗВРАТ ПРИХОДА', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; end RES_STR = ' '; suspend; -- отступаем строку for select RES from SP_FISC_PRINT_STRING('Заказ №' || :DOC_NUM, :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('от ' || :doc_date, :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; RES_STR = ' '; suspend; -- отступаем строку RES_STR = '[B]' || :BARCODE; suspend; RES_STR = ' '; suspend; -- отступаем строку for select RES from SP_FISC_PRINT_STRING(:contr_name, :CHARS_IN_LINE_MEDIUM, 2,1) into RES_STR do suspend; RES_STR = ' '; suspend; -- отступаем строку for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Дата приема', :doc_date, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Дата выдачи', :DATE_OUT, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; RES_STR = ' '; suspend; -- отступаем строку if (LOCAL_KASS_ID is null) then begin kassa_id = null; select first 1 ks.kassa_id from kassa_sclads ks where ks.sclad_id = :SCLAD_KREDIT_ID and ks.is_default = 1 into :kassa_id; end else begin kassa_id = LOCAL_KASS_ID; end --услуги for select t.name as t_name, dos.qty_kredit, dos.kredit, dos.discount, dos.tovar_id, dos.barcode_read from doc_order_services dos left join tovars_tbl t on t.tovar_id = dos.tovar_id --left join tree f on f.folder_id = t.folder_id where dos.doc_order_id = :DOR_ID and dos.status_id <> 7 into :t_name, :qty_kredit, :kredit, :discount, :tovar_id, :barcode_read do begin if (kassa_id is not null) then select result from sp_get_fisc_tovar_name(:tovar_id, :kassa_id, 0, :t_name, :barcode_read) into :MOD_T_NAME; else MOD_T_NAME = t_name; for select RES from SP_FISC_PRINT_STRING_AND_VALUE(:MOD_T_NAME, '1.000 * ' || :kredit || ' =' || :kredit, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; end --товары for select t.name as t_name, dol.qty_kredit, dol.kredit, dol.discount, dol.tovar_id, dol.barcode from doc_order_lines dol left join tovars_tbl t on t.tovar_id = dol.tovar_id --left join tree f on f.folder_id = t.folder_id where dol.doc_order_id = :DOR_ID into :t_name, :qty_kredit, :kredit, :discount, :tovar_id, :barcode_read do begin if (kassa_id is not null) then select result from sp_get_fisc_tovar_name(:tovar_id, :kassa_id, 0, :t_name, :barcode_read) into :MOD_T_NAME; else MOD_T_NAME = t_name; for select RES from SP_FISC_PRINT_STRING_AND_VALUE(:MOD_T_NAME, '1.000 * ' || :kredit || ' =' || :kredit, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; end --Итоги чека if (:PAY_SUM>0) then for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого по чеку:', cast(:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; else for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого возврат по чеку:', cast(-:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Итого по заказу:', :DOR_KREDIT, :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; if (:PAY_TYPE=0) then for select RES from SP_FISC_PRINT_STRING_AND_VALUE('НАЛИЧНЫМИ:', cast(abs(:PAY_SUM) as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; if (:PAY_TYPE=1) then for select RES from SP_FISC_PRINT_STRING_AND_VALUE('ЭЛЕКТРОННЫМИ:', cast(abs(:PAY_SUM) as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING_AND_VALUE('Долг по оплате:', cast(:DOLG-:PAY_SUM as D_NUM_15_2), :CHARS_IN_LINE_MEDIUM, 2) into RES_STR do suspend; RES_STR = ' '; suspend; -- отступаем строку for select RES from SP_FISC_PRINT_STRING('___________________________', :CHARS_IN_LINE_MEDIUM, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('ИП Громова Раиса Викторовна', :CHARS_IN_LINE_MEDIUM, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('г.Москва, ул. Маршала Савицкого д.32', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend; for select RES from sp_fisc_print_string_and_value('Кассир:', :kassir, :CHARS_IN_LINE_BIG, 1) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('ИНН: 772029947472', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('ЗН: DM07224V40827', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('Сайт ФНС: www.nalog.ru', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING('СНО: Патент', :CHARS_IN_LINE_BIG, 1, 0) into RES_STR do suspend; for select RES from SP_FISC_PRINT_STRING_AND_VALUE('', lpad(extract(day from current_timestamp),2,'0') ||'.'|| lpad(extract(month from current_timestamp),2,'0') ||'.'|| extract(year from current_timestamp) ||' '|| lpad(extract(hour from current_timestamp),2,'0') ||':'|| lpad(extract(minute from current_timestamp),2,'0') , :CHARS_IN_LINE_MEDIUM, 1) into RES_STR do suspend; --for select RES from SP_FISC_PRINT_STRING('СПАСИБО', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; --for select RES from SP_FISC_PRINT_STRING('ЗА ПОКУПКУ!', :CHARS_IN_LINE_BIG, 3, 1) into RES_STR do suspend; RES_STR = ' '; suspend; -- отступаем строку RES_STR = ' '; suspend; -- отступаем строку RES_STR = ' '; suspend; -- отступаем строку end