Расширенные отчеты

Для получения отчётов по базе данных «Штрих-М: Кассир 5» предусмотрен механизм формирования расширенных отчетов. В стандартной поставке имеются расширенные отчёты, список которых можно дополнить пользовательскими без изменения конфигурации.

Функциональность

Каждый расширенный отчёт может быть сформирован двуми способами:

Интерактивно

Автоматически, при снятии Z-отчета.

Независимо от способа формирования, отчёт представляется пользователю на экран, печатается на принтере/ККМ или сохраняется в файл. Способ представления отчёта определяется самим отчётом, например его настройкой.

Интерактивное формирование отчёта

Инициатором формирования является пользователь. Действие производится из меню супервизора Расширенные отчёты.

При снятии Z-отчёта

Основное назначение данного способа формирования отчёта -- регулярное формирование или предоставление данных отчёта (как правило за текущую кассовую смену) вместе с Z-отчётом. Формирование отчёта производится непосредственно перед снятем Z-отчёта в ККМ.

Интеграция

Для интеграции пользовательского расширенного отчёта в систему необходимо выполнить ряд требований:

отчёт должен быть внешней обработкой, код которой не приводит к ошибкам в контексте конфигурации «Штрих-М: Кассир 5»

синоним внешней обработки определяет имя расширенного отчёта в списке отчётов

внешняя обработка помещается в ExtFiles\Reports каталога базы данных

основная форма обработки реализует API расширенных отчётов.

API расширенных отчётов

Основная форма обработки экспортирует следующие функции:

Функция ПолучитьВерсиюПротокола(СтруктураФункций) Экспорт
Процедура ВывестиОтчет(Знач СтрокаНастроек, Знач ККМДляПечати) Экспорт
Процедура НастройкаОтчета(СтрокаНастроек) Экспорт
Процедура НастройкаПечатиПриZОтчете(СтрокаНастроек) Экспорт
Процедура СформироватьОтчетПриСнятииZОтчета(Знач СтрокаНастроек, Знач ККМДляПечати) Экспорт

Вызов экспортных функций

Получить версию протокола - служебная функция, вызывается для проверки функциональных возможностей расширенного отчета: в форме настройки расширенных отчетов и в супервизоре при нажатии кнопки «Расширенные отчеты».
ВывестиОтчет - вызывается при нажатии кнопки в меню «Расширенные отчеты».
НастройкаОтчета - вызывается при нажатии кнопки настройки отчета в форме «Настройка расширенных отчетов».
НастройкаПечатиПриZОтчете - вызывается при нажатии кнопки настройки печати при снятии Z отчета в форме «Настройка расширенных отчетов».
СформироватьОтчетПриСнятииZОтчета - вызывается при снятии Z отчета (если для отчета установлена настройка «Печатать при Z отчете»).

Параметры экспортных функций

Функция ПолучитьВерсиюПротокола(СтруктураФункций)
СтруктураФункций - Структура - содержит набор строго определенных ключей. Данную структуру можно получить функцией глобального общего модуля - ПолучитьСтруктуруФункцийОтчета()

Процедура ВывестиОтчет(СтрокаНастроек, лККМДляПечати)
СтрокаНастроек - Строка - значение типа Соответствие, преобразованное в строку функцией ЗначениеВСтрокуВнутр(). Берётся из сохраненных настроек, установленных процедурой НастройкаОтчета().
лККМДляПечати - СтрокаТаблицыЗначений - ККМ для печати. Можно получить функцией Кассир5_DataAccess.ПолучитьККМ()

Процедура НастройкаОтчета(СтрокаНастроек)
СтрокаНастроек - Строка - значение типа Соответствие, преобразованное в строку функцией ЗначениеВСтрокуВнутр().

Процедура НастройкаПечатиПриZОтчете(СтрокаНастроек)
СтрокаНастроек - Строка - значение типа Соответствие, преобразованное в строку функцией ЗначениеВСтрокуВнутр().

Функция СформироватьОтчетПриСнятииZОтчета(СтрокаНастроек, лККМДляПечати)
СтрокаНастроек - Строка - значение типа Соответствие, преобразованное в строку функцией ЗначениеВСтрокуВнутр(). Берётся из сохраненных настроек, установленных процедурой НастройкаПечатиПриZОтчете().
лККМДляПечати - СтрокаТаблицыЗначений - ККМ для печати. Можно получить функцией Кассир5_DataAccess.

Описание функций

Функция ПолучитьВерсиюПротокола(СтруктураФункций)
В данную функцию передаётся структура с элементами, определяющими функциональные возможности отчета. По умолчанию значения всех элементов структуры установлен в ложь. Ниже перечислены доступные ключи структуры и их описание.

ВывестиОтчет - если значение данного элемента структуры установить в истину, то отчет будет отображаться в меню «Расширенные отчеты».

НастройкаОтчета - если значение данного элемента структуры установить в истину, то для отчета можно установить настройки в форме настроек расширенных отчетов, иначе кнопка для настройки будет недоступна.

НастройкаПечатиПриZОтчете - если значение данного элемента структуры установить в истину, то для отчета можно установить настройки при печати Z отчета в форме настроек расширенных отчетов, иначе кнопка для настройки будет недоступна.

ПечататьПриZОтчете - если значение данного элемента структуры установить в истину, то отчет будет иметь возможность формироваться при снятии Z отчета.

Функция должна возвращать число, отличное от нуля.

Процедура ВывестиОтчет(СтрокаНастроек, лККМДляПечати)
Данная процедура предназначена для интерактивного формирования отчета. Могут использоваться хранимые в базе данных настройки, заданные в форме настроек расширенных отчетов.

Процедура НастройкаОтчета(СтрокаНастроек)
Данная процедура предназначена для установки настроек, используемых при интерактивном формировании отчета. Процедура должна открывать форму с настройками. При закрытии формы с настройками заданные параметры должны быть записаны в соответствие и возвращены во входящий параметр СтрокаНастроек в виде строки, сформированной функцией ЗначениеВСтрокуВнутр().

Процедура НастройкаПечатиПриZОтчете(СтрокаНастроек)
Данная процедура предназначена для установки настроек, используемых при формировании отчета при снятии Z отчета. Процедура должна открывать форму с настройками. При закрытии формы с настройками заданные параметры должны быть записаны в соответствие и возвращены во входящий параметр СтрокаНастроек в виде строки, сформированной функцией ЗначениеВСтрокуВнутр().

Функция СформироватьОтчетПриСнятииZОтчета(СтрокаНастроек, лККМДляПечати)
Данная процедура предназначена для формирования отчета при снятии Z отчета. Могут использоваться хранимые в базе данных настройки, заданные в форме настроек расширенных отчетов. Функция должна возвращать значение «Истина».