====== Расширенные отчеты ====== Для получения отчётов по базе данных "Кассир 5" предусмотрен механизм формирования расширенных отчетов. В стандартной поставке имеются [[кассир5:руководствопользователя:супервизор:расширенныеотчёты|расширенные отчёты]], список которых можно дополнить пользовательскими без изменения конфигурации. ===== Функциональность ===== Каждый расширенный отчёт может быть сформирован двуми способами: * Интерактивно * Автоматически, при снятии Z-отчета. Независимо от способа формирования, отчёт представляется пользователю на экран, печатается на принтере/ККМ или сохраняется в файл. Способ представления отчёта определяется самим отчётом, например его настройкой. ==== Интерактивное формирование отчёта ==== Инициатором формирования является пользователь. Действие производится из меню супервизора [[кассир5:руководствопользователя:супервизор#расширенные_отчёты|Расширенные отчёты]]. ==== При снятии Z-отчёта ==== Основное назначение данного способа формирования отчёта -- регулярное формирование или предоставление данных отчёта (как правило за текущую кассовую смену) вместе с Z-отчётом. Формирование отчёта производится непосредственно перед снятем Z-отчёта в ККМ. ===== Интеграция ===== Для интеграции пользовательского расширенного отчёта в систему необходимо выполнить ряд требований: * отчёт должен быть внешней обработкой, код которой не приводит к ошибкам в контексте конфигурации "Кассир 5" * синоним внешней обработки определяет имя расширенного отчёта в списке отчётов * внешняя обработка помещается в ExtFiles\Reports каталога базы данных * основная форма обработки реализует API расширенных отчётов. ===== API расширенных отчётов ===== Основная форма обработки экспортирует следующие функции: Функция ПолучитьВерсиюПротокола(СтруктураФункций) Экспорт Процедура ВывестиОтчет(Знач СтрокаНастроек, Знач ККМДляПечати) Экспорт Процедура НастройкаОтчета(СтрокаНастроек) Экспорт Процедура НастройкаПечатиПриZОтчете(СтрокаНастроек) Экспорт Процедура СформироватьОтчетПриСнятииZОтчета(Знач СтрокаНастроек, Знач ККМДляПечати) Экспорт ==== Функция ПолучитьВерсиюПротокола ==== Функция является обязательной к экспорту. Вызывается для проверки функциональных возможностей расширенного отчета.\\ Параметр **СтруктураФункций**.\\ Тип -- Структура. Имеет следующие свойства, определяющие наличие одноименных экспортных функций модуля:\\ ВывестиОтчет (булево)\\ НастройкаОтчета (булево)\\ НастройкаПечатиПриZОтчете (булево)\\ ПечататьПриZОтчете (булево)\\ Изменяя значения свойств передаваемой структуры, обработка сообщит кассовому ПО о поддержке функционала.\\ **Возвращаемое значение** (число) -- 1. ==== Функция ВывестиОтчет ==== Процедура является обязательной к экспорту, если параметр **ВывестиОтчет** (структуры СтруктураФункций) был установлен в значение Истина.\\ Вызов процедуры производится при интерактивном формировании отчёта.\\ Параметры:\\ **СтрокаНастроек** (строка) -- Строка сожержащая настройки отчёта, которая была сохранена в базе данных при вызове процедуры НастройкаОтчета().\\ **ККМДляПечати** -- Строка таблицы значений **СписокККМ**. Определяет ККМ на котором будет распечатан отчёт в случае его печати на ККМ.\\ ==== Функция НастройкаОтчета ==== Процедура является обязательной к экспорту, если параметр **НастройкаОтчета** (структуры СтруктураФункций) был установлен в значение Истина.\\ Вызов процедуры производится при [[кассир5:настройка:дополнительные:настройкарасширенныхотчетов|настройке расширенного отчёта]].\\ Параметры:\\ **СтрокаНастроек** (строка) -- Строка содержащая настройки отчёта. Обработка представляет свои настройки в виде строки, которая сохраняется кассовым ПО в базе данных после вызова процедуры. Параметром передаётся сохраненное ранее значение или пустая строка.\\ ==== Функция НастройкаПечатиПриZОтчете ==== Процедура является обязательной к экспорту, если параметр **НастройкаПечатиПриZОтчете** (структуры СтруктураФункций) был установлен в значение Истина.\\ Вызов процедуры производится при [[кассир5:настройка:дополнительные:настройкарасширенныхотчетов|настройке расширенного отчёта]].\\ Параметры:\\ **СтрокаНастроек** (строка) -- Строка сожержащая настройки отчёта. Обработка представляет свои настройки в виде строки, которая сохраняется кассовым ПО в базе данных после вызова процедуры. Парметром передаеётся сохраненное ранее значение или пустая строка.\\ ==== Функция СформироватьОтчетПриСнятииZОтчета ==== Процедура является обязательной к экспорту, если параметр **СформироватьОтчетПриСнятииZОтчета** (структуры СтруктураФункций) был установлен в значение Истина.\\ Вызов процедуры производится перед снятием Z-отчёта в ККМ.\\ Параметры:\\ **СтрокаНастроек** (строка) -- Строка сожержащая настройки отчёта, которая была сохранена в базе данных при вызове процедуры НастройкаПечатиПриZОтчете.\\ **ККМДляПечати** -- Строка таблицы значений **СписокККМ**. Определяет ККМ на котором будет распечатан отчёт в случае его печати на ККМ.\\