MSPOS FiscalCore
AIDL API фискального ядра
Загрузка...
Поиск...
Не найдено
IFiscalCore.idl
См. документацию.
1package com.multisoft.drivers.fiscalcore;
2
4import com.multisoft.drivers.fiscalcore.IExceptionCallback;
5import com.multisoft.drivers.fiscalcore.IOismResultCallback;
6import com.multisoft.drivers.fiscalcore.IScanner;
7import com.multisoft.drivers.fiscalcore.ISecondDisplay;
8import com.multisoft.drivers.fiscalcore.ITspiot;
9
10/*! \mainpage Интерфейс фискального ядра IFiscalCore
11 *
12 * \section intro_sec Введение
13 * Данная документация описывает интерфейс фискального ядра (ФЯ)
14 * предназначена для разработчиков, выполняющих интеграцию учётных программ с фискальным ядром.
15 * Необходимы базовые знания <a href="https://developers.google.com/training/courses/android-fundamentals">Android</a>,
16 * <a href="https://developer.android.com/reference/android/app/Activity.html">Activity</a>,
17 * <a href="https://developer.android.com/reference/android/app/Application.html">Application</a>,
18 * <a href="https://developer.android.com/reference/android/content/Intent.html">Intent</a>,
19 * <a href="https://developer.android.com/guide/components/services.html">services</a>,
20 * <a href="https://developer.android.com/guide/components/aidl">AIDL</a>
21 *
22 * \subsection b4start_sec Перед началом работы
23 * <para>Ознакомьтесь с <a href="../../examples.html">примерами</a> для Android- и VisualStudio</para>
24 * <para>Загрузите и добавьте в проект <a href="../aidl/mspos-fiscalcore-aidl.zip">файлы описания интерфейсов *.aidl</a></para>
25 * Вы можете модифицировать проекты с примерами, но не забудьте обновить файлы описания интерфейсов!
26 * <para>Изучите наш <a href="http://wiki.multisoft.ru:8881/redmine/projects/mspos-k/wiki/QA">QA</a>, там все ответы на самые частые вопросы.</para>
27 *
28 * \subsection models_sec Поддерживаемые модели
29 * <para>В настоящий момент Фискальное ядро установлено на следующие модели ККТ: <b>MSPOS-K, MSPOS-T-Ф, MSPOS-Е-Ф, MSPOS-D-Ф, MSPOS-kiosk-Ф, MSPOS-SE-Ф, MSPOS-E-РФ, MSPOS-N-Ф, MSPOS-F20-Ф</b>.</para>
30 * <para>Им соответствуют строковые константы моделей (<a href="https://developer.android.com/reference/android/os/Build.html#MODEL">Build.MODEL</a>) устройств:</para>
31 * <para><b>MSPOS-K: <code>"V1S-G", "V1S", "V2"</code></b></para>
32 * <para><b>MSPOS-T-Ф: <code>"T1MINI-G", "T1MINI", "T2MINI", "T2MINI_S", "D2MINI", "D3 MINI"</code></b></para>
33 * <para><b>MSPOS-Е-Ф: <code>"P1_4G", "P1_4G-G", "P1_4G-EU", "P1_4G-R"</code></b></para>
34 * <para><b>MSPOS-D-Ф: <code>"P2_PRO"</code></b></para>
35 * <para><b>MSPOS-kiosk-Ф: <code>"K1"</code></b></para>
36 * <para><b>MSPOS-SE-Ф: <code>"P2_SE", "V2_SE"</code></b></para>
37 * <para><b>MSPOS-E-РФ: <code>"P30"</code></b></para>
38 * <para><b>MSPOS-N-Ф: <code>"N850"</code></b></para>
39 * <para><b>MSPOS-F20-Ф: <code>"F20"</code></b></para>
40 *
41 * \subsection connection_sec Подключение к фискальному ядру
42 * <para>Подключение к интерфейсу фискального ядра IFiscalCore осуществляется при помощи <a href="https://developer.android.com/reference/android/content/Intent.html">Intent</a></para>
43 * <para>Имя пакета (packageName) для подключения: <b>"com.multisoft.drivers.fiscalcore"</b></para>
44 * <para>Имя компонента (componentName) для подключения: <b>"com.multisoft.fiscalcore"</b></para>
45 * <para>Наименование действия (action) для Intent: <b>"com.multisoft.drivers.fiscalcore.IFiscalCore"</b></para>
46 * <para>После получения интерфейса ФЯ необходимо дождаться его инициализации при помощи функции IFiscalCore.IsReady.</para>
47 * <para>После успешной инициализации можно начинать межпроцессное взаимодействие с ФЯ вызовом функций AIDL.</para>
48 *
49 * \subsection lcd_sec Подключение к дисплею покупателя ILCD
50 * <para>Интерфейс дисплея покупателя ILCD</para>
51 * <para>MSPOS-T-Ф имеет дисплей покупателя.</para>
52 * <para>Подключение производится аналогично IFiscalCore, за исключением:</para>
53 * <para>Наименование действия (action) для Intent: <b>"com.multisoft.drivers.fiscalcore.ILCD"</b></para>
54 *
55 * \subsection enums_sec Используемые перечисления
56 *
57 * com.multisoft.drivers.fiscalcore
58 *
59 * \subsection info_sec Общая информация
60 * Если в процессе выполнения функции произошло прерывание, вызывается переданный в неё коллбек IExceptionCallback (если объявлен и не null),
61 * В этом случае на на выход функции передаётся, по возможности, заведомо некорректное значение.
62 * Для целочисленных переменных это -1, для строк - пустая строка, для булевых - false.
63 *
64 * \section structure_sec Структура
65 *
66 * \subsection main_sec Основные команды ядра
67 * <para>В этом блоке находятся команды запроса версии, проверки готовности интерфейса фискального ядра и автотестирования</para>
68 * <para>IFiscalCore.IsReady</para>
69 * <para>IFiscalCore.GetAidlVersion</para>
70 * <para>IFiscalCore.SelfTest</para>
71 *
72 * \subsection service_sec Сервисные команды
73 * <para>IFiscalCore.SetSerial</para>
74 * <para>В том числе команды для внутреннего использования (на момент 1.5.24): </para>
75 * <para>IFiscalCore.GetUUID</para>
76 * <para>IFiscalCore.GetFiscalModuleVersion</para>
77 * <para>IFiscalCore.FNResetDebug</para>
78 * <para>IFiscalCore.LoggerControl</para>
79 * <para>IFiscalCore.DirectIO</para>
80 *
81 * \subsection local_sec Локализация
82 * <para>Опционально: установка локализации перед началом работы.</para>
83 * <para>По умолчанию: Ru-ru</para>
84 * <para>Поддерживаемые локализации: Ru-ru, в разработке En-en</para>
85 * <para>Запрос локализации осуществляется через IFiscalCore.GetLang</para>
86 * <para>Установка локализации осуществляется через Intent.PutExtras перед подключением к ядру</para>
87 *
88 * \subsection kktstat_sec Статус ККТ
89 * <para>IFiscalCore.GetRegNum</para>
90 * <para>IFiscalCore.GetSerial</para>
91 * <para>IFiscalCore.GetAppVersion</para>
92 * <para>IFiscalCore.GetTaxId</para>
93 * <para>IFiscalCore.GetKKTRegisteredName</para>
94 * <para>IFiscalCore.GetDayPayTotalByDocType</para>
95 * <para>IFiscalCore.GetFiscalMemoryFiscalized</para>
96 * <para>IFiscalCore.GetGrandTotalsSalesGross</para>
97 * <para>IFiscalCore.GetCurrentFfdVersion</para>
98 * <para>IFiscalCore.GetKktVersion</para>
99 * <para>IFiscalCore.GetKktFfdVersion</para>
100 * <para>IFiscalCore.GetDeviceSn</para>
101 *
102 * \subsection fnstat_sec Чтение статуса ФН
103 * <para>IFiscalCore.FNGetNumber</para>
104 * <para>IFiscalCore.FNGetState</para>
105 * <para>IFiscalCore.FNGetWarningFlags</para>
106 * <para>IFiscalCore.FNGetCurrentDocType</para>
107 * <para>IFiscalCore.FNGetDocDataStatus</para>
108 * <para>IFiscalCore.FNGetLastDocDateTime</para>
109 * <para>IFiscalCore.FNGetSoftwareVersion</para>
110 * <para>IFiscalCore.FNGetFirmwareType</para>
111 * <para>IFiscalCore.FNGetLastFDNumber</para>
112 * <para>IFiscalCore.FNGetLifetime</para>
113 * <para>IFiscalCore.FNGetRegistrationsMade</para>
114 * <para>IFiscalCore.FNGetRegistrationsLeft</para>
115 * <para>IFiscalCore.FNGetRegTimeFirst</para>
116 * <para>IFiscalCore.FNGetRegTimeByNum</para>
117 * <para>IFiscalCore.FNGetLastFDNum</para>
118 * <para>IFiscalCore.FNGetLastFiscalSign</para>
119 * <para>IFiscalCore.FNGetRegTaxSystemByNum</para>
120 * <para>IFiscalCore.FNGetOpModeByNum</para>
121 * <para>IFiscalCore.FNGetRegFDByNum</para>
122 * <para>IFiscalCore.GetAgentTag</para>
123 * <para>IFiscalCore.FNGetFnFfdVersion</para>
124 * <para>IFiscalCore.GetFnSupportedSkipOISMCheck</para>
125 * <para>IFiscalCore.GetFnSupportedNewBitsInTag1290</para>
126 *
127 * \subsection ofdstat_sec Состояние ОФД
128 * <para>IFiscalCore.OFDGetConnectionStatus</para>
129 * <para>IFiscalCore.OFDGetQueuedMessagesCount</para>
130 * <para>IFiscalCore.OFDGetMessageStatus</para>
131 * <para>IFiscalCore.OFDGetFirstQueuedDocNumber</para>
132 * <para>IFiscalCore.OFDGetLastNotSentDocTime</para>
133 *
134 * \subsection oismstat_sec Состояние ОИСМ
135 * <para>IFiscalCore.QueryNotificationStatus</para>
136 * <para>IFiscalCore.NotificationStatusOut_GetStatus</para>
137 * <para>IFiscalCore.NotificationStatusOut_GetCount</para>
138 * <para>IFiscalCore.NotificationStatusOut_GetCurrentNumber</para>
139 * <para>IFiscalCore.NotificationStatusOut_GetFillPercentage</para>
140 * <para>IFiscalCore.NotificationStatusOut_GetCurrentDateTime</para>
141 *
142 * \subsection shiftstat_sec Состояние смены
143 * <para>IFiscalCore.GetDayState</para>
144 * <para>IFiscalCore.GetDayNumber</para>
145 * <para>IFiscalCore.GetDayLastReceiptNumber</para>
146 *
147 * \subsection shiftstatreports_sec Состояние смены: отчёты
148 * <para>IFiscalCore.PrintXReport</para>
149 * <para>IFiscalCore.GetDayCanceledTotal</para>
150 * <para>IFiscalCore.GetDayPayCount</para>
151 * <para>IFiscalCore.GetDayOpenDateTime</para>
152 * <para>IFiscalCore.GetDayPayTotal</para>
153 * <para>IFiscalCore.GetPayTotal</para>
154 *
155 * \subsection reg_sec Регистрация
156 * <para>IFiscalCore.Register</para>
157 * <para>IFiscalCore.Register1_1</para>
158 * <para>IFiscalCore.Register1_2</para>
159 * <para>IFiscalCore.Register1_2_A</para>
160 * <para>IFiscalCore.CorrectRegistration</para>
161 * <para>IFiscalCore.CorrectRegistration1_1</para>
162 * <para>IFiscalCore.CorrectRegistration1_2</para>
163 * <para>IFiscalCore.CorrectRegistration1_2_A</para>
164 * <para>IFiscalCore.CloseFiscalMode</para>
165 * <para>IFiscalCore.CloseFiscalModeWithDateTime</para>
166 *
167 * \subsection shift_sec Смена
168 * <para>IFiscalCore.OpenDay</para>
169 * <para>IFiscalCore.CloseDay</para>
170 * <para>IFiscalCore.PrintCalculationsReport</para>
171 * <para>IFiscalCore.CloseDayWithDateTime</para>
172 *
173 * \subsection rec_sec Чек
174 * <para>IFiscalCore.OpenRec</para>
175 * <para>IFiscalCore.GetRecType</para>
176 * <para>IFiscalCore.GetRecState</para>
177 * <para>IFiscalCore.SetTaxationUsing</para>
178 * <para>IFiscalCore.GetTaxation</para>
179 * <para>IFiscalCore.CloseRec</para>
180 * <para>IFiscalCore.PrintRecItemPay</para>
181 * <para>IFiscalCore.PrintLine</para>
182 * <para>IFiscalCore.RecVoid</para>
183 * <para>IFiscalCore.SetQRParam</para>
184 * <para>IFiscalCore.PrintQRCode</para>
185 * <para>IFiscalCore.PrintBarCode</para>
186 * <para>IFiscalCore.Feed</para>
187 * <para>IFiscalCore.SetTagAttribute</para>
188 * <para>IFiscalCore.SetSTLVTagAttribute</para>
189 * <para>IFiscalCore.SetAgentTagUsing</para>
190 * <para>IFiscalCore.SetFont</para>
191 * <para>IFiscalCore.PrintRaster</para>
192 * <para>IFiscalCore.PrintLineAligned</para>
193 * <para>IFiscalCore.OpenDrawer</para>
194 * <para>IFiscalCore.SetPaperWidth</para>
195 * <para>IFiscalCore.SetTagByteAttribute</para>
196 * <para>IFiscalCore.SetItemTaxes</para>
197 * <para>IFiscalCore.SetShowTaxes</para>
198 * <para>IFiscalCore.PrintRecItem</para>
199 * <para>IFiscalCore.SetCompactMode</para>
200 * <para>IFiscalCore.GetCompactMode</para>
201 * <para>IFiscalCore.GetLastQRCodeValue</para>
202 * <para>IFiscalCore.PrintRecCopy</para>
203 *
204 * \subsection mc_sec Маркировка
205 * <para>IFiscalCore.SendMarkupCodeFnCheck</para>
206 * <para>IFiscalCore.SendMarkupCodeOismCheck</para>
207 * <para>IFiscalCore.SaveMarkupCodeCheckResult</para>
208 * <para>IFiscalCore.ClearAllMarkupCodeCheckResult</para>
209 * <para>IFiscalCore.GetMarkupCodeOismResult</para>
210 * <para>IFiscalCore.SendMarkupCodeVolumeVarietal</para>
211 * <para>IFiscalCore.ScanCode</para>
212 * <para>IFiscalCore.GetScanner</para>
213 *
214 * \subsection payhelp_sec Итог
215 * <para>IFiscalCore.GetRecTotal</para>
216 * <para>IFiscalCore.CheckDrawerCash</para>
217 * <para>IFiscalCore.PrintRecTotal</para>
218 * <para>IFiscalCore.GetRecPayTotal</para>
219 * <para>IFiscalCore.PrintRecTotalRound</para>
220 *
221 * \subsection corrrec_sec Чек коррекции
222 * <para>IFiscalCore.FNMakeCorrectionRec</para>
223 * <para>IFiscalCore.SetSumTaxes</para>
224 * <para>IFiscalCore.AddCorrectionRecItem1_1</para>
225 *
226 * \subsection ofqueryinfo_sec Запрос информации о подтверждении документа от ОФД
227 * <para>IFiscalCore.QueryOFDReceiptByNum</para>
228 * <para>IFiscalCore.OfdOut_GetTime</para>
229 * <para>IFiscalCore.OfdOut_GetFDNumber</para>
230 * <para>IFiscalCore.OfdOut_GetFiscalSign</para>
231 * <para>IFiscalCore.OfdOut_GetSize</para>
232 *
233 * \subsection archive_sec Работа с архивом ФН
234 * <para>IFiscalCore.QueryFiscalDocInfo</para>
235 * <para>IFiscalCore.FDI_GetDocType</para>
236 * <para>IFiscalCore.FDI_GetConfirmFromOFD</para>
237 * <para>IFiscalCore.FDI_GetDataArray</para>
238 * <para>IFiscalCore.FDI_GetFiscalSign</para>
239 * <para>IFiscalCore.FDI_GetDate</para>
240 * <para>IFiscalCore.FDI_GetDocJSON</para>
241 * <para>IFiscalCore.GetRegistrationParameter</para>
242 *
243 * \subsection archiveprint_sec Печать из архива
244 * <para>IFiscalCore.FNPrintDocFromArchive</para>
245
246 * \subsection setparams_sec Запрос и установка параметров
247 <para>Данный блок методов позволяет настраивать параметры ККТ в режиме реального времени.</para>
248 <para>Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions</para>
249 <para>Порядок изменения параметров, указанных при регистрации:
250 http://wiki.multisoft.ru:8881/redmine/projects/mspos-k/wiki/QA#Q11
251 </para>
252 * <para>В этом блоке находятся методы для настройки аппарата перед регистрацией.</para>
253 * <para>Под "пользователем" следует понимать организацию - пользователя ККТ</para>
254
255 * \subsection ofdsettings_sec Параметры ОФД
256 *
257 * <para><b>Установка параметров ОФД</b></para>
258 * <para>IFiscalCore.SetOfdHost</para>
259 * <para>IFiscalCore.SetOfdPort</para>
260 * <para>IFiscalCore.SetOfdName</para>
261 * <para>IFiscalCore.SetOfdTaxId</para>
262 *
263 * <para><b>Запрос параметров ОФД</b></para>
264 * <para>IFiscalCore.GetOfdHost</para>
265 * <para>IFiscalCore.GetOfdPort</para>
266 * <para>IFiscalCore.GetOfdName</para>
267 * <para>IFiscalCore.GetOfdTaxId</para>
268
269 * \subsection oismsettings_sec Параметры ОИСМ
270 *
271 * <para><b>Установка параметров ОИСМ</b></para>
272 * <para>IFiscalCore.SetOismHost</para>
273 * <para>IFiscalCore.SetOismPort</para>
274 *
275 * <para><b>Запрос параметров ОИСМ</b></para>
276 * <para>IFiscalCore.GetOismHost</para>
277 * <para>IFiscalCore.GetOismPort</para>
278
279 * \subsection keyserversettings_sec Параметры АС ОКП
280 *
281 * <para><b>Установка параметров АС ОКП</b></para>
282 * <para>IFiscalCore.SetKeyServerHost</para>
283 * <para>IFiscalCore.SetKeyServerPort</para>
284 *
285 * <para><b>Запрос параметров АС ОКП</b></para>
286 * <para>IFiscalCore.GetKeyServerHost</para>
287 * <para>IFiscalCore.GetKeyServerPort</para>
288
289 * \subsection mainsettings_sec Основные настройки
290 *
291 * <para><b>Установка основных настроек</b></para>
292 * <para>IFiscalCore.SetOrgName</para>
293 * <para>IFiscalCore.SetOrgAddress</para>
294 * <para>IFiscalCore.SetPhysicalAddress</para>
295 * <para>IFiscalCore.SetSenderEmail</para>
296 * <para>IFiscalCore.SetReceiptCheckURI</para>
297 * <para>IFiscalCore.SetFnsServerAddress</para>
298 * <para>IFiscalCore.SetFLC</para>
299 * <para>IFiscalCore.GetFLC</para>
300 *
301 * <para><b>Запрос основных настроек</b></para>
302 * <para>IFiscalCore.GetOrgName</para>
303 * <para>IFiscalCore.GetOrgAddress</para>
304 * <para>IFiscalCore.GetPhysicalAddress</para>
305 * <para>IFiscalCore.GetSenderEmail</para>
306 * <para>IFiscalCore.GetReceiptCheckURI</para>
307 * <para>IFiscalCore.GetFNSServerAddress</para>
308 * <para>IFiscalCore.GetCashierTaxId</para>
309 * <para>IFiscalCore.GetExtendedAutotest</para>
310 * <para>IFiscalCore.GetVendingSerial</para>
311
312 * \subsection addsettings_sec Дополнительные настройки
313 * <para>Нужны при регистрации ККТ только в некоторых режимах работы.</para>
314 * <para>Если испольльзуются, их необходимо указывать до вызова функции регистрации/перерегистрации.</para>
315 *
316 * <para><b>Установка дополнительных настроек</b></para>
317 * <para>IFiscalCore.SetCashierTaxId</para>
318 * <para>IFiscalCore.SetVendingSerial</para>
319 * <para>IFiscalCore.SetExtendedAutotest</para>
320 * <para>IFiscalCore.SetTransferOperatorName</para>
321 * <para>IFiscalCore.SetTransferOperatorTaxId</para>
322 * <para>IFiscalCore.SetTransferOperatorTelNum</para>
323 * <para>IFiscalCore.SetTransferOperatorAddress</para>
324 * <para>IFiscalCore.SetPaymentAgentTelNum</para>
325 * <para>IFiscalCore.SetPaymentAgentOperation</para>
326 * <para>IFiscalCore.SetCommissionAgentTelNum</para>
327 * <para>IFiscalCore.SetContractorTelNum</para>
328 * <para>IFiscalCore.SetCutType</para>
329 * <para>IFiscalCore.SetHeaderLines</para>
330 * <para>IFiscalCore.SetTrailerLines</para>
331 * <para>IFiscalCore.SetPrePrintHeaderLines</para>
332 * <para>IFiscalCore.SetDayCloseAutoPayOut</para>
333 * <para>IFiscalCore.SetPrintZReportWithoutInternalCounters</para>
334 * <para>IFiscalCore.SetMuteAutotest</para>
335 * <para>IFiscalCore.SetTimeZone</para>
336 * <para>IFiscalCore.SetGroupItems</para>
337 *
338 * <para><b>Запрос дополнительных настроек</b></para>
339 * <para>IFiscalCore.GetTransferOperatorName</para>
340 * <para>IFiscalCore.GetTransferOperatorTaxId</para>
341 * <para>IFiscalCore.GetTransferOperatorTelNum</para>
342 * <para>IFiscalCore.GetTransferOperatorAddress</para>
343 * <para>IFiscalCore.GetPaymentAgentTelNum</para>
344 * <para>IFiscalCore.GetPaymentAgentOperation</para>
345 * <para>IFiscalCore.GetCommissionAgentTelNum</para>
346 * <para>IFiscalCore.GetContractorTelNum</para>
347 * <para>IFiscalCore.GetPrintZReportWithoutInternalCounters</para>
348 * <para>IFiscalCore.GetMuteAutotest</para>
349 * <para>IFiscalCore.GetHeaderLines</para>
350 * <para>IFiscalCore.GetTrailerLines</para>
351 * <para>IFiscalCore.GetTimeZone</para>
352 * <para>IFiscalCore.GetGroupItems</para>
353
354 * \subsection applysettings_sec Применение настроек
355 * Используется для сохранения настроек в памяти ККТ.
356 * При удалении фискального ядра, а также сбросе к заводским настройкам сохранённые данные стираются.
357 * <para>IFiscalCore.SaveOptions</para>
358 * Основные настройки должны быть установлены и сохранены перед регистрацией ККТ.
359 *
360 * \subsection othersettings_sec Временные настройки
361 * Команды данной группы имеют ограниченное действие, например, только для текущего документа.
362 * Либо устанавливают одиночное значение, и не имеют действия при повторном вызове.
363 * <para>IFiscalCore.SetDateTime</para>
364 * <para>IFiscalCore.SetUserName</para>
365 * <para>IFiscalCore.SendClientAddress</para>
366 * <para>IFiscalCore.ForcePrintForm</para>
367 * <para>IFiscalCore.SetTagPrintForm</para>
368 * <para>IFiscalCore.FreezeDateTime</para>
369 * <para>IFiscalCore.ContinueDateTime</para>
370 * <para>IFiscalCore.GetUserName</para>
371 */
372
373interface IFiscalCore
374{
375 // **************************** Основные команды ядра **************************** //
376
377 /// <summary>
378 /// <para><b>основные команды ядра</b></para>
379 /// <para>запрос версии сервиса</para>
380 /// <para>формат версии: Major.Minor.Release.Build;</para>
381 /// <para>Major - старшая версия aidl, изменение версии указвает на изменение порядка функций / их сигнатур;</para>
382 /// <para>Minor - младшая версия aidl, изменение версии указвает на добавление функции, обратная совместимость;</para>
383 /// <para>Release - версия приложения, инкрементируется с релизом;</para>
384 /// <para>Build - версия сборки, выставляется автоматически в момент сборки;</para>
385 /// </summary>
386 /// <returns>строка, например, 1.4.18.18103</returns>
388
389 /// <summary>
390 /// <para>служебная функция для работы в режиме ЧПМ до 01.07.2018</para>
391 /// <para>Целочисленный результат выполнения передаётся в аргументе IAuth.Result. </para>
392 /// <para>Передаваймый в качестве параметра IAuth должен при вызове Exchange возвращать имя приложения(или пользователя)-инициатора смены режима работы.</para>
393 /// <para>Если код (cmd) не поддерживается, в HandleException возвращается com.multisoft.drivers.fiscalcore.ErrCode.WrongArgument и переданный в команду код в message и extErrCode.</para>
394 /// <para>Если в режиме ОФД ФП инициализирована, возвращает com.multisoft.drivers.fiscalcore.ErrCode.WrongStatus "Фискальная память инициализирована. Смена режима работы невозможна" com.multisoft.drivers.fiscalcore.ExtStatusErr.Common</para>
395 /// <para>Если в режиме ОФД обнаружен зарегистрированный ФН, возвращает com.multisoft.drivers.fiscalcore.ErrCode.WrongStatus "Неправильное состояние ФН" com.multisoft.drivers.fiscalcore.ExtStatusErr.Common</para>
396 /// </summary>
397 /// <param name="cmd">код команды. с 1.8.28 поддерживаются коды -1 и -2 (см. com.multisoft.drivers.fiscalcore.DirectIOCmd).</param>
398 /// <param name="argument">аргумент функции. Пустая строка, если для конкретного кода не указано иное.</param>
399 /// <param name="auth">служебный интерфейс.</param>
400 /// <param name="callback">функция обратного вызова для передачи информации об ошибке.</param>
401 /// <seealso cref="com.multisoft.drivers.fiscalcore.DirectIOCmd"/>
402 /// <seealso cref="IAuth"/>
403 void DirectIO(int cmd, String argument, IAuth auth, IExceptionCallback callback);
404
405 /// <summary>
406 /// <para><b>основные команды ядра</b></para>
407 /// запрос готовности сервиса. Выполняется каждый раз перед началом работы, как в примере
408 /// </summary>
409 /// <returns>true - сервис готов. false - не готов</returns>
410 /// <example>
411 /// пример использования, выполняется перед началом работы:
412 /// <code>
413 /// //команды подключения к сервису
414 /// while(!IFiscalCore.IsReady())
415 /// Thread.Sleep(50);
416 /// //начало работы
417 /// </code>
418 /// </example>
419 boolean IsReady();
420
421 // **************************** Автотестирование **************************** //
422
423 /// <summary>
424 /// <para><b>основные команды ядра</b></para>
425 /// <para>автотестирование</para>
426 /// выполняет функцию автотестирования и печатает чек автотеста.
427 /// </summary>
428 /// <seealso cref="SetExtendedAutotest"/>
429 /// <param name="callback"></param>
430 /// <example>
431 /// пример использования, выполняется перед началом работы:
432 /// <code>
433 /// //команды подключения к сервису
434 /// while(!IFiscalCore.IsReady())
435 /// Thread.Sleep(50);
436 /// //начало работы
437 /// </code>
438 /// </example>
440
441
442 // **************************** Сервисные команды **************************** //
443 /// <summary>
444 /// <para><b>plaftorm-specific</b></para>
445 /// <para><b>Для внутреннего использования</b></para>
446 /// Запрос GUUID
447 /// </summary>
448 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
449 /// <returns>строка c GUUID</returns>
450 String GetUUID(IExceptionCallback callback);
451
452 /// <summary>
453 /// <para><b>plaftorm-specific</b></para>
454 /// <para><b>Для внутреннего использования</b></para>
455 /// Запрос версии фискального модуля
456 /// </summary>
457 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
458 /// <returns>строка c версией.</returns>
460
461 // **************************** Локализация **************************** //
462 /// <summary>
463 /// <para><b>локализация</b></para>
464 /// Вернуть используемый язык || запрос текущей локализации. По умолчанию "Ru-ru".
465 /// задаётся при подключении к сервису через параметры intent-а
466 /// </summary>
467 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
468 /// <returns>"Ru-ru" или "En-en"</returns>
469 /// <example>
470 /// пример установки языка, выполняется при установке соединения с сервисом:
471 /// <code>
472 /// //...создание serviceIntent
473 /// Bundle bundle = new Bundle();
474 /// bundle.PutString("lang", "Ru-ru");
475 /// serviceIntent.PutExtras(bundle);
476 /// var connection = new FiscalCoreServiceConnection(this);
477 /// BindService(serviceIntent, connection, Bind.AutoCreate);
478 /// </code>
479 /// </example>
480 String GetLang(IExceptionCallback callback);
481
482 // **************************** Статус ККТ **************************** //
483 /// <summary>
484 /// <para><b>Статус ККТ</b></para>
485 /// <para>Возвращает регистрационный номер ККТ</para>
486 /// <para>Eсли ККТ не зарегистрирована или ФН не подключен, возвращается пустая строка</para>
487 /// <para>Формат определяется ФФД п.63: суммарно 20 символов, до установленой длины дополняется пробелами справа</para>
488 /// </summary>
489 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
490 /// <returns>строка, регистрационный номер ККТ</returns>
492
493 /// <summary>
494 /// <para><b>Статус ККТ</b></para>
495 /// <para>Возвращает заводской номер ККТ (ЗН). Если ФП не инициализирована, возвращается "XXXXXXXXXXXX".</para>
496 /// <para>На производстве устанавливается ЗН из 12 символов наподобие "199000111222"</para>
497 /// </summary>
498 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
499 /// <returns>строка с ЗН.</returns>
501
502 /// <summary>
503 /// <para><b>Статус ККТ</b></para>
504 /// Возвращает полную версию ПО ядра (для внутреннего использования)
505 /// </summary>
506 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
507 /// <returns>строка из 4 чисел формата: Major.Minor.Build.Revision</returns>
509
510 /// <summary>
511 /// <para><b>Статус ККТ</b></para>
512 /// Вернуть ИНН, указанный при регистрации
513 /// </summary>
514 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
515 /// <returns>строка - ИНН при последней (пере)регистрации.
516 /// Если ФН не подключен, возвращается пустая строка</returns>
517 String GetTaxId(IExceptionCallback callback);
518
519 // **************************** Чтение статуса ФН **************************** //
520 /// <summary>
521 /// <para><b>Чтение статуса ФН</b></para>
522 /// получить номер ФН
523 /// </summary>
524 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
525 /// <returns>строка c номером ФН</returns>
527
528 /// <summary>
529 /// <para><b>Чтение статуса ФН</b></para>
530 /// Запрос состояния ФН
531 /// </summary>
532 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
533 /// <returns>состояние ФН</returns>
534 /// <seealso cref="com.multisoft.drivers.fiscalcore.FNState"/>
535 /// <example>пример использования:
536 /// <code>
537 /// if(IFiscalCore.FNGetState(callback) == FNState.ReadyToFiscalization)
538 /// {
539 /// //установка и сохранение опций
540 /// //...
541 /// IFiscalCore.Register(...
542 /// }
543 /// </code>
544 /// </example>
546
547 /// <summary>
548 /// <para><b>Чтение статуса ФН</b></para>
549 /// Запрос флагов предупреждения ФН. Используется ККТ для запроса текущего состояния ФН.
550 /// </summary>
551 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
552 /// <returns> флаги предупреждения (если есть)</returns>
553 /// <seealso cref="com.multisoft.drivers.fiscalcore.WarningFlag"/>
554 /// <example>проверка состояния ФН перед печатью чеков:
555 /// <code>
556 /// var warning = (WarningFlag)IFiscalCore.FNGetWarningFlags(callback)
557 /// if(WarningFlag.OK == warning)
558 /// //предупреждений нет, можно работать
559 /// </code>
560 /// </example>
562
563 /// <summary>
564 /// <para><b>Чтение статуса ФН</b></para>
565 /// Запрос текущего документа из ФН. Используется ККТ для запроса текущего состояния ФН.
566 /// </summary>
567 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
568 /// <returns>число CurrentDoc - тип текущего документа</returns>
569 /// <seealso cref="com.multisoft.drivers.fiscalcore.CurrentDoc"/>
570 /// <example>пример использования: проверка, не открыт ли документ в ФН
571 /// <code>
572 /// if((CurrentDoc)IFiscalCore.FNGetCurrentDocType(callback) != CurrentDoc.NoDoc)
573 /// IFiscalCore.RecVoid(callback);//отменяем документ в ККТ и в ФН
574 /// callback.Complete();
575 /// </code>
576 /// </example>
578
579 /// <summary>
580 /// <para><b>Чтение статуса ФН</b></para>
581 /// Запрос ФН о статусе получения данных текущего документа. Используется ККТ для запроса текущего состояния ФН.
582 /// </summary>
583 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
584 /// <returns>DocData.DataAcquired или DocData.Nodata в зависимости от того, были ли данные о документе переданы в ФН</returns>
585 /// <seealso cref="com.multisoft.drivers.fiscalcore.DocData"/>
587
588 /// <summary>
589 /// <para><b>Чтение статуса ФН</b></para>
590 /// Запрос даты и времени последнего фискального документа
591 /// </summary>
592 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
593 /// <returns>строка, содержащая дату и время последнего фискального документа в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'". </returns>
595
596 /// <summary>
597 /// <para><b>Чтение статуса ФН</b></para>
598 /// Запрос версии ПО ФН
599 /// </summary>
600 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
601 /// <returns>строка - версия ПО ядра</returns>
603
604 /// <summary>
605 /// <para><b>Чтение статуса ФН</b></para>
606 /// Запрос типа ПО ФН
607 /// </summary>
608 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
609 /// <returns>тип ПО ФН: дебаг или релиз</returns>
610 /// <seealso cref="com.multisoft.drivers.fiscalcore.FirmwareTypes"/>
612
613 /// <summary>
614 /// <para><b>Чтение статуса ФН</b></para>
615 /// Запрос номера последнего фискального документа из ФН (выполняет запрос в ФН)
616 /// </summary>
617 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
618 /// <returns>номер последнего фискального документа</returns>
620
621 /// <summary>
622 /// <para><b>Чтение статуса ФН</b></para>
623 /// Запрос даты и времени окончания действия ФН, по истечении которого ФН становится недействительным
624 /// </summary>
625 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
626 /// <returns>строка - дата и время в формате: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</returns>
628
629 /// <summary>
630 /// <para><b>Чтение статуса ФН</b></para>
631 /// Запрос количества выполненных регистраций ФН
632 /// </summary>
633 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
634 /// <returns>число - количество выполненных регистраций</returns>
636
637 /// <summary>
638 /// <para><b>Чтение статуса ФН</b></para>
639 /// Запрос количества оставшихся регистраций ФН
640 /// </summary>
641 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
642 /// <returns>число - количество оставшихся регистраций</returns>
644
645 /// <summary>
646 /// <para><b>Чтение статуса ФН</b></para>
647 /// Запрос времени первой регистрации (фискализации) ФН.
648 /// </summary>
649 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
650 /// <returns>строка, содержащая дату и время последней регистрации ФН в формате: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"
651 /// если ККТ не зарегистрирована, возвращается "01.01.2000 0:00:00"</returns>
653
654 /// <summary>
655 /// <para><b>Чтение статуса ФН</b></para>
656 /// Запрос времени регистрации ФН.
657 /// </summary>
658 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
659 /// <param name="regNum"> номер регистрации, положительное число</param>
660 /// <returns>строка, содержащая дату и время последней регистрации ФН в формате: "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</returns>
661 String FNGetRegTimeByNum(int regNum, IExceptionCallback callback);
662
663
664 // **************************** Состояние ОФД ****************************
665
666 /// <summary>
667 /// <para><b>Состояние ОФД</b></para>
668 /// Запрос состояния соединения с ОФД
669 /// </summary>
670 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
671 /// <returns>статус соединения</returns>
672 /// <seealso cref="com.multisoft.drivers.fiscalcore.ConnectionState"/>
674
675 /// <summary>
676 /// <para><b>Состояние ОФД</b></para>
677 /// Запрос количества документов, ожидающих отправки в ОФД
678 /// </summary>
679 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
680 /// <returns>число - количество сообщений</returns>
682
683 /// <summary>
684 /// <para><b>Состояние ОФД</b></para>
685 /// Запрос состояния чтения ответа из ОФД на преданное сообщение
686 /// </summary>
687 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
688 /// <returns>true - чтение начато, false - чтение не начато</returns>
690
691 /// <summary>
692 /// <para><b>Состояние ОФД</b></para>
693 /// Запрос номера документа, находящегося первым в очереди на отправку в ОФД
694 /// </summary>
695 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
696 /// <returns>число - номер документа в очереди</returns>
698
699 /// <summary>
700 /// <para><b>Состояние ОФД</b></para>
701 /// дата последнего непереданного в ОФД документа
702 /// </summary>
703 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
704 /// <returns>строка - дата последнего непереданного документа</returns>
706
707
708 // **************************** Состояние смены ****************************
709
710 /// <summary>
711 /// <para><b>Cостояние смены</b></para>
712 /// Вернуть состояние смены в ККТ.
713 /// </summary>
714 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
715 /// <returns>состояние смены:</returns>
716 /// <seealso cref="com.multisoft.drivers.fiscalcore.DayState"/>
717 /// <example>пример использования:
718 /// <code>
719 /// dayState = (DayState)IFiscalCore.GetDayState(callback);
720 /// callack.Complete();
721 /// if(dayState == DayState.Closed)
722 /// {
723 /// IFiscalCore.OpenDay("Иванов И.И", callback);
724 /// callack.Complete();
725 /// }
726 /// </code>
727 /// </example>
729
730 /// <summary>
731 /// <para><b>Cостояние смены</b></para>
732 /// Вернуть номер смены.
733 /// </summary>
734 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
735 /// <returns>число - номер смены</returns>
737
738 /// <summary>
739 /// <para><b>Cостояние смены</b></para>
740 /// Вернуть номер последнего документа в смене.
741 /// </summary>
742 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
743 /// <returns>число - номер последнего документа в смене</returns>
745
746 // **************************** Состояние смены: отчёты ****************************
747 /// <summary>
748 /// <para><b>Состояние смены: отчёты</b></para>
749 /// печать х-отчёта
750 /// </summary>
751 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
753
754 /// <summary>
755 /// <para><b>Состояние смены: отчёты</b></para>
756 /// запрос суммы за смену по отменённым документам
757 /// </summary>
758 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
759 /// <returns>строка - сумма по отменённым документам</returns>
761
762 /// <summary>
763 /// <para><b>Состояние смены: отчёты</b></para>
764 /// запрос значения счётчика операций
765 /// </summary>
766 /// <param name="counterType">тип счётчика</param>
767 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
768 /// <returns>количество выполненных операций</returns>
769 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
770 int GetDayPayCount(int counterType, IExceptionCallback callback);
771
772 /// <summary>
773 /// <para><b>Состояние смены: отчёты</b></para>
774 /// запрос даты и времени открытия смены
775 /// </summary>
776 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
777 /// <returns>строка - дата и мремя открытия смены в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</returns>
779
780 /// <summary>
781 /// <para><b>Состояние смены: отчёты</b></para>
782 /// запрос суммы по типу счётчика
783 /// </summary>
784 /// <param name="counterType">тип счётчика</param>
785 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
786 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
787 /// <returns>сумма по счётчику</returns>
788 String GetDayPayTotal(int counterType, IExceptionCallback callback);
789
790 // **************************** Регистрация ****************************
791 /// <summary>
792 /// <para><b>Регистрация</b></para>
793 /// <para>Регистрация (первоначальная регистрация). Выполняется 1 раз за всё время жизни ФН. ФФД 1.05</para>
794 /// <para>В режиме ЧПМ в качестве параметров необходимо передать корректный ИНН, имя кассира и reg_num, остальные параметры не влияют на результат выполнения.</para>
795 /// </summary>
796 /// <param name="cashier">строка - имя и номер кассира</param>
797 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
798 /// <param name="reg_num">строка - регистрационный номер ККТ. В режиме ЧПМ - является паролем налогового инспектора: передавать "00000".</param>
799 /// <param name="tax">байт - код системы налогообложения - битовая маска TaxCode.
800 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
801 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
802 /// <param name="op_mode">байт - код режима работы - битовая маска OperatingMode.
803 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
804 /// Может принимать значение 0.</param>
805 /// <param name="gambling">true или false - признак проведения азартных игр</param>
806 /// <param name="lottery">true или false - признак проведения лотереи</param>
807 /// <param name="agent">байт - код платёжного агента - битовая маска AgentTag.
808 /// Поддеживаемый код платёжного агента устанавливает соответствующий бит в байте.
809 /// Может принимать значение 0.</param>
810 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
811 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
812 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
813 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
814 /// <example>
815 /// <code>
816 /// //команды настройки полей:
817 /// String regnum = RegNumTextBox.Text;
818 /// // ... Формирование РНМ ККТ происходит на стороне ФНС России:
819 /// // базовый РНМ дополняется лидирующими нулями до длины строки в 10 символов,
820 /// // затем вычисляется и добавляется контрольная сумма (6 символов).
821 /// //настройка системы налогообложения
822 /// int tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
823 /// //настройка режима работы:
824 /// int opmode = OperatingMode.Service + OperatingMode.Encryption;
825 /// //настройка агента:
826 /// int agent = AgentTag.BankPayAgent + AgentTag.BankPaySubAgent;//установлены 1й и 2й биты
827 /// //регистрация:
828 /// IFiscalCore.Register(cashierTextBox.Text, "1234567890", regnum, tax, opmode, false, false, agent, callback);
829 /// callback.Complete();
830 /// </code>
831 /// </example>
832 void Register(String cashier, String inn, String reg_num, int tax, int op_mode,
833boolean gambling, boolean lottery, int agent, IExceptionCallback callback);
834
835 /// <summary>
836 /// <para><b>Регистрация</b></para>
837 /// Исправление регистрации || Перерегистрация, ФФД 1.05
838 /// </summary>
839 /// <param name="corr_reason">причина перерегистрации CorrectionReason</param>
840 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
841 /// <param name="reg_num">строка - регистрационный номер ККТ</param>
842 /// <param name="tax_code">байт - код системы налогообложения - битовая маска TaxCode.
843 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
844 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
845 /// <param name="opmode">байт - код режима работы - битовая маска OperatingMode.
846 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
847 /// Может принимать значение 0.</param>
848 /// <param name="gambling">true или false - признак проведения азартных игр</param>
849 /// <param name="lottery">true или false - признак проведения лотереи</param>
850 /// <param name="agent">байт - код платёжного агента - битовая маска AgentTag.
851 /// Поддеживаемый код платёжного агента устанавливает соответствующий бит в байте.
852 /// Может принимать значение 0.</param>
853 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
854 /// <seealso cref="com.multisoft.drivers.fiscalcore.CorrectionReason"/>
855 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
856 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
857 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
858 /// <example>
859 /// <code>
860 /// reason = (int)CorrResason.ChangeKKTSettings;
861 /// kktRegNum = regNumTextBox.Text;
862 /// tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
863 /// opMode = OperatingMode.Service + OperatingMode.Encryption;
864 /// agentTag = AgentTag.BankPayAgent + AgentTag.BankPaySubAgent;
865 /// IFiscalCore.CorrectRegistration(reason, "Иванов И.И", "1234567890", kktRegNum, (int)opMode, tax, false, false, agentTag, callback);
866 /// callback.Complete();
867 /// </code>
868 /// </example>
869 void CorrectRegistration(int corr_reason, String cashier, String inn, String reg_num, int tax_code, int op_mode,
870 boolean gambling, boolean lottery, int agent, IExceptionCallback callback);
871
872 /// <summary>
873 /// <para><b>Регистрация</b></para>
874 /// <para>Закрытие архива ФН. Необратимая для пользователя операция.</para>
875 /// <para>После выполнения работа с ФН невозможна до следующей регистрации.</para>
876 /// </summary>
877 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
879
880
881 // **************************** Смена ****************************
882
883 /// <summary>
884 /// <para><b>Смена</b></para>
885 /// Открыть смену
886 /// </summary>
887 /// <param name="cashier">имя и номер кассира</param>
888 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
889 /// <example>пример использования:
890 /// <code>
891 /// try
892 /// {
893 /// //если клиентская реализация callback генерирует исключения,
894 /// // то все функции работы с чеками можно поместить в один блок try-catch
895 /// IFiscalCore.OpenDay(cashierTextBox.Text,callback);
896 /// callback.Complete();
897 /// //команды работы с чеками
898 /// }
899 /// catch(Exception e)
900 /// {
901 /// DisplayNotification(e.Message);
902 /// return;
903 /// }
904 ///
905 /// </code>
906 /// </example>
907 void OpenDay(String cashier, IExceptionCallback callback);
908
909 /// <summary>
910 /// <para><b>Смена</b></para>
911 /// Напечатать Z-отчёт и закрыть смену
912 /// </summary>
913 /// <param name="cashier">имя и номер кассира</param>
914 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
915 /// <example>пример использования:
916 /// <code>
917 /// IFiscalCore.OpenDay(cashierTextBox.Text,callback);
918 /// callback.Complete();
919 /// //команды работы с чеками
920 /// IFiscalCore.CloseDay(cashierTextBox.Text,callback);
921 /// callback.Complete();
922 /// </code>
923 /// </example>
924 void CloseDay(String cashier, IExceptionCallback callback);
925
926 /// <summary>
927 /// <para><b>Смена</b></para>
928 /// Напечатать отчёт о состоянии расчётов
929 /// </summary>
930 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
932
933
934 // **************************** Чек ****************************
935
936 /// <summary>
937 /// <para><b>Чек</b></para>
938 /// <para>Открыть чек. открывает документ одного из поддерживаемых типов.</para>
939 /// <para>Eсли код документа выходит за границу RecType, открывается нефискальный документ.</para>
940 /// </summary>
941 /// <param name="recType">код открываемого документа</param>
942 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
943 /// <seealso cref="com.multisoft.drivers.fiscalcore.RecType"/>
944 /// <example>открыть чек на продажу
945 /// <code>
946 /// IFiscalCore.SetUserName(Cashier.Text,callback);
947 /// callback.Complete();
948 /// recType = (int)RecType.Sell;//приход
949 /// IFiscalCore.OpenRec(recType,callback);
950 /// callback.Complete();
951 /// //... команды добавления позиций, итог, оплата, закрытие чека
952 /// </code>
953 /// </example>
954 void OpenRec(int recType, IExceptionCallback callback);
955
956 /// <summary>
957 /// <para><b>Чек</b></para>
958 /// <para>Получить тип открытого документа.</para>
959 /// <para>В случае, если документ закрыт, возвращает тип последнего открытого документа.</para>
960 /// </summary>
961 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
962 /// <returns>тип (последнего)открытого документа</returns>
963 /// <seealso cref="com.multisoft.drivers.fiscalcore.RecType"/>
965
966 /// <summary>
967 /// <para><b>Чек</b></para>
968 /// Возвращает состояние документа
969 /// </summary>
970 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
971 /// <returns>состояние документа</returns>
972 /// <seealso cref="com.multisoft.drivers.fiscalcore.RecState"/>
973 /// <example>
974 /// проверка, был ли документ уже открыт перед открытием нового документа
975 /// <code>
976 /// if((RecState)IFiscalCore.GetRecState(callback) == RecState.Opened)
977 /// IFiscalCore.RecVoid(callback);//отменяем документ
978 /// IFiscalCore.OpenRec((int)RecType.Sell, callback);
979 /// callback.Complete();
980 /// //команды работы с чеком: добавление позиций, оплата, и т.д.
981 /// </code>
982 /// </example>
984
985 /// <summary>
986 /// <para><b>Чек</b></para>
987 /// <para>Установить систему налогообложения (СНО).</para>
988 /// <para>Нужна при формировании чеков, если ККТ зарегистрирована с 2 и более СНО</para>
989 /// <para>Вызывается до открытия чека. Если ККТ зарегистрирована с 1 СНО, факультативна.</para>
990 /// </summary>
991 /// <param name="tax">используемая система налогообложения</param>
992 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
993 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
994 /// <example>пример использования:
995 /// <code>
996 /// IFiscalCore.SetUserName(Cashier.Text,callback);
997 /// callback.Complete();
998 /// recType = (int)RecType.Sell;//приход
999 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
1000 /// callback.Complete();
1001 /// IFiscalCore.OpenRec(recType,callback);
1002 /// callback.Complete();
1003 ///
1004 /// //добавление первой позиции:
1005 /// IFiscalCore.SetItemTaxes((int)TaxNum._NO,callback);//без ндс
1006 /// IFiscalCore.SetShowTaxes(true,callback);
1007 /// callback.Complete();
1008 /// IFiscalCore.PrintRecItem("1", "100", "товар", "артикул", callback1);
1009 /// callback1.Complete();
1010 ///
1011 /// // добавление остальных позиций
1012 /// // . . .
1013 /// //
1014 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1015 /// callback.Complete();
1016 /// IFiscalCore.PrintRecItemPay((int)PayType.Card, "200","ЭЛЕКТРОННЫМИ",callback);
1017 /// callback.Complete();
1018 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "200", "НАЛИЧНЫМИ",callback);
1019 /// callback.Complete();
1020 /// IFiscalCore.CloseRec(callback);//закрытие документа
1021 /// callback.Complete();
1022 /// </code>
1023 /// </example>
1024 void SetTaxationUsing(int tax, IExceptionCallback callback);
1025
1026 /// <summary>
1027 /// <para><b>Чек</b></para>
1028 /// <para>Запрос зарегистрированной системы налогообложения.</para>
1029 /// </summary>
1030 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1031 /// <returns>система налогообложения, указанная при регистрации</returns>
1032 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
1034
1035 /// <summary>
1036 /// <para><b>Чек</b></para>
1037 /// Производит закрытие документа
1038 /// </summary>
1039 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1040 /// <seealso cref="com.multisoft.drivers.fiscalcore.Tag"/>
1041 /// <example>пример чека:
1042 /// <code>
1043 /// IFiscalCore.SetUserName(Cashier.Text,callback);
1044 /// callback.Complete();
1045 /// recType = (int)RecType.Sell;//приход
1046 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
1047 /// callback.Complete();
1048 /// IFiscalCore.OpenRec(recType,callback);
1049 /// callback.Complete();
1050 /// // добавление позиций
1051 /// IFiscalCore.SetItemTaxes((int)TaxNum._18_118,callback);//НДС 18/118
1052 /// callback.Complete();
1053 /// IFiscalCore.SetShowTaxes(true,callback);
1054 /// callback.Complete();
1055 /// IFiscalCore.SetTagAttribute((int)Tag.ItemProperty, "1", callback); // Товар
1056 /// callback.Complete();
1057 /// IFiscalCore.SetTagAttribute((int)Tag.PaymentProperty, "1", callback); // Предоплата 100%
1058 /// callback.Complete();
1059 /// IFiscalCore.PrintRecItem("1.0", "12.34", "товар","",callback);
1060 /// callback.Complete();
1061 /// // оплата
1062 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1063 /// callback.Complete();
1064 /// IFiscalCore.PrintRecItemPay((int)PayType.Card, "200","ЭЛЕКТРОННЫМИ",callback);
1065 /// callback.Complete();
1066 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "200", "НАЛИЧНЫМИ",callback);
1067 /// callback.Complete();
1068 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "-0.50", "СДАЧА",callback);
1069 /// callback.Complete();
1070 /// IFiscalCore.CloseRec(callback);//закрытие документа
1071 /// callback.Complete();
1072 /// </code>
1073 /// </example>
1074 ///
1075 /// <example>пример чека с маркировкой:
1076 /// <code>
1077 /// IFiscalCore.SetUserName(Cashier.Text,callback);
1078 /// callback.Complete();
1079 /// recType = (int)RecType.Sell;//приход
1080 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
1081 /// callback.Complete();
1082 /// IFiscalCore.OpenRec(recType,callback);
1083 /// callback.Complete();
1084 /// // добавление позиций
1085 /// String markingCode = "010361422599702021_DgS'hd\u001d93yOpB";
1086 /// IFiscalCore.SendMarkupCodeFnCheck(markingCode, 0, 0, 0, callback)
1087 /// callback.Complete();
1088 /// IFiscalCore.SendMarkupCodeOismCheck(0, 1, 1, 0, "", "", callback)
1089 /// callback.Complete();
1090 /// IFiscalCore.GetMarkupCodeOismResult(callback, oismCallback)
1091 /// callback.Complete();
1092 /// IFiscalCore.SaveMarkupCodeCheckResult(true, callback)
1093 /// callback.Complete();
1094 /// IFiscalCore.SetItemTaxes((int)TaxNum._10,callback);//"НДС 10%"
1095 /// callback.Complete();
1096 /// IFiscalCore.SetShowTaxes(true,callback);
1097 /// callback.Complete();
1098 /// IFiscalCore.SetTagAttribute((int)Tag.ItemProperty, "1", callback); // Товар
1099 /// callback.Complete();
1100 /// IFiscalCore.SetTagAttribute((int)Tag.PaymentProperty, "1", callback); // Предоплата 100%
1101 /// callback.Complete();
1102 /// IFiscalCore.SetTagAttribute((int)Tag.MarkedCommodityCode, markingCode, callback); // КМ
1103 /// callback.Complete();
1104 /// IFiscalCore.PrintRecItem("1.0", "12.34", "товар", "", callback);
1105 /// callback.Complete();
1106 /// // оплата
1107 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1108 /// callback.Complete();
1109 /// IFiscalCore.PrintRecItemPay((int)PayType.Card, "200","ЭЛЕКТРОННЫМИ",callback);
1110 /// callback.Complete();
1111 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "200", "НАЛИЧНЫМИ",callback);
1112 /// callback.Complete();
1113 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "-0.50", "СДАЧА",callback);
1114 /// callback.Complete();
1115 /// IFiscalCore.CloseRec(callback);//закрытие документа
1116 /// callback.Complete();
1117 /// </code>
1119
1120 /// <summary>
1121 /// <para><b>Чек</b></para>
1122 /// Провести оплату по типу платежа
1123 /// </summary>
1124 /// <param name="type">байт тип оплаты. бит </param>
1125 /// <param name="total">строка - сумма оплаты</param>
1126 /// <param name="itemText">строка - сопутствующий текст, например, тип оплаты</param>
1127 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1128 /// <seealso cref="com.multisoft.drivers.fiscalcore.PayType"/>
1129 /// <example>несколько типов оплат:
1130 /// <code>
1131 /// //команды открытия документа и добавления позиций
1132 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1133 /// callback.Complete();
1134 /// IFiscalCore.PrintRecItemPay((int)PayType.Tare, "2.10", "В ОБМЕН",callback);
1135 /// callback.Complete();
1136 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "203.00", "НАЛИЧНЫМИ",callback);
1137 /// callback.Complete();
1138 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "-5.00", "СДАЧА",callback);
1139 /// callback.Complete();
1140 /// IFiscalCore.CloseRec(callback);//закрытие документа
1141 /// callback.Complete();
1142 /// </code>
1143 /// </example>
1144 void PrintRecItemPay(int type, String total, String itemText, IExceptionCallback callback);
1145
1146 /// <summary>
1147 /// <para><b>Чек</b></para>
1148 /// <para>Печать текста c переводом строки.</para>
1149 /// </summary>
1150 /// <param name="align">выравнивание.</param>
1151 /// <param name="line">строка текста для печати</param>
1152 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1153 /// <seealso cref="com.multisoft.drivers.fiscalcore.Align"/>
1154 void PrintLine(int align, String line, IExceptionCallback callback);
1155
1156 /// <summary>
1157 /// <para><b>Чек</b></para>
1158 /// Аннулировать чек
1159 /// </summary>
1160 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1161 /// <example>пример использования: проверка, не открыт ли документ в ФН
1162 /// <code>
1163 /// if(IFiscalCore.FNGetCurrentDocType(callback) != (int)CurrentDoc.NoDoc)
1164 /// IFiscalCore.RecVoid(callback);//отменяем документ в ККТ и в ФН
1165 /// </code>
1166 /// </example>
1168
1169 // **************************** Итог ****************************
1170
1171 /// <summary>
1172 /// <para><b>Итог</b></para>
1173 /// Вернуть сумму по чеку
1174 /// </summary>
1175 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1176 /// <returns>строка - сумма по чеку</returns>
1177 /// <example>пример использования:
1178 /// <code>
1179 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1180 /// callback.Complete();
1181 /// recTotal = IFiscalCore.GetRecTotal(callback);
1182 /// callback.Complete();
1183 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, recTotal, "НАЛИЧНЫМИ",callback);
1184 /// callback.Complete();
1185 /// IFiscalCore.CloseRec(callback);
1186 /// callback.Complete();
1187 /// </code>
1188 /// </example>
1190
1191 /// <summary>
1192 /// <para><b>Итог</b></para>
1193 /// <para>Проверить наличие денег в денежном ящике.</para>
1194 /// <para>Нужна для работы с документами "Расход" и "Возврат прихода", "Изъятие"</para>
1195 /// <param name="total">сумма для выдачи из кассы</param>
1196 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1197 /// </summary>
1198 /// <example>
1199 /// <code>
1200 /// //проверка, что в ДЯ есть 100р
1201 /// IFiscalCore.CheckDrawerCash("100",callback);
1202 /// callback.Complete();
1203 /// IFiscalCore.OpenRec((int)RecType.PayOut, callack);
1204 /// callback.Complete();
1205 /// IFiscalCore.PrintRecItem("1", "100", "изъятие наличных", "", callback);
1206 /// callback.Complete();
1207 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1208 /// callback.Complete();
1209 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "100", "НАЛИЧНЫМИ",callback);
1210 /// callback.Complete();
1211 /// IFiscalCore.CloseRec(callback);
1212 /// callback.Complete();
1213 /// </code>
1214 /// </example>
1215 void CheckDrawerCash(String total, IExceptionCallback callback);
1216
1217 /// <summary>
1218 /// <para><b>Итог</b></para>
1219 /// Печать итога.
1220 /// </summary>
1221 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1222 /// <example>производим оплату только когда сумма оплаты (payment) больше суммы по чеку
1223 /// <code>
1224 /// IFiscalCore.SetUserName(Cashier.Text,callback);
1225 /// callback.Complete();
1226 /// recType = (int)RecType.Sell;//приход
1227 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
1228 /// callback.Complete();
1229 /// IFiscalCore.OpenRec(recType,callback);
1230 /// callback.Complete();
1231 /// //добавление первой позиции:
1232 /// IFiscalCore.SetItemTaxes((int)TaxNum._18,callback);
1233 /// callback.Complete();
1234 /// IFiscalCore.SetShowTaxes(true,callback);
1235 /// callback.Complete();
1236 /// IFiscalCore.PrintRecItem("1.00", "1.11", "товар", "",callback);
1237 /// callback.Complete();
1238 /// // добавление остальных позиций (опционально)
1239 /// // . . .
1240 /// //
1241 /// //установка адреса клиента. выполняется до CloseRec()
1242 /// IFiscalCore.SendClientAddress("+79991112233",callback);
1243 /// callback.Complete();
1244 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1245 /// callback.Complete();
1246 /// IFiscalCore.PrintRecItemPay((byte)PayType.Cash, "1.11", "НАЛИЧНЫМИ",callback);
1247 /// callback.Complete();
1248 /// IFiscalCore.CloseRec(callback);//закрытие документа
1249 /// callback.Complete();
1250 /// </code>
1251 /// </example>
1253
1254 /// <summary>
1255 /// <para><b>Чек</b></para>
1256 /// <para>Устанавливает налог по его порядоковому номеру. </para>
1257 /// <para>Действует до следующего вызова PrintRecItem</para>
1258 /// <para>Необходимо выполнять в открытом документе перед каждым вызовом IFiscalCore.PrintRecItem.</para>
1259 /// </summary>
1260 /// <param name="taxNum">порядоковый номер используемого налога</param>
1261 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1262 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxNum"/>
1263 /// <example>пример использования:
1264 /// <code>
1265 /// IFiscalCore.SetUserName(Cashier.Text,callback);
1266 /// callback.Complete();
1267 /// recType = (int)RecType.Sell;//приход
1268 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
1269 /// callback.Complete();
1270 /// IFiscalCore.OpenRec(recType,callback);
1271 /// callback.Complete();
1272 /// IFiscalCore.SetItemTaxes((int)TaxNum._10,callback);//"НДС 10%"
1273 /// callback.Complete();
1274 /// IFiscalCore.SetShowTaxes(true,callback);
1275 /// callback.Complete();
1276 /// IFiscalCore.PrintRecItem("20", "10.00", "товар", "артикул",callback);
1277 /// callback.Complete();
1278 /// IFiscalCore.PrintRecTotal(callback);//печать итога
1279 /// callback.Complete();
1280 /// IFiscalCore.PrintRecItemPay((byte)PayType.Card, "19.50", "ЭЛЕКТРОННЫМИ",callback);
1281 /// callback.Complete();
1282 /// IFiscalCore.PrintRecItemPay((byte)PayType.Cash, "180.50", "НАЛИЧНЫМИ",callback);
1283 /// callback.Complete();
1284 /// IFiscalCore.CloseRec(callback);//закрытие документа
1285 /// callback.Complete();
1286 /// </code>
1287 /// </example>
1288 void SetItemTaxes(int taxNum, IExceptionCallback callback);
1289
1290 /// <summary>
1291 /// <para><b>Чек</b></para>
1292 /// <para>Управляет отрисовкой налога. По умолчанию отрисовка выключена.</para>
1293 /// <para>Если нужно включить для i-й позиции, то необходимо вызывать с параметром True перед печатью этой позиции (функция IFiscalCore.PrintRecItem).</para>
1294 /// </summary>
1295 /// <param name="val">true - показывать, false - не показывать</param>
1296 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1297 /// <example>пример использования:
1298 /// <code>
1299 /// // ... открытие документа, добавление позиций
1300 /// IFiscalCore.SetItemTaxes((int)TaxNum._10_110,callback);//НДС 10/110
1301 /// callback.Complete();
1302 /// IFiscalCore.SetShowTaxes(true,callback);
1303 /// IFiscalCore.PrintRecItem("1.0", "50", "товар","",callback);
1304 /// callback.Complete();
1305 /// // ... закрытие документа
1306 /// </code>
1307 /// </example>
1308 void SetShowTaxes(boolean val, IExceptionCallback callback);
1309
1310 /// <summary>
1311 /// <para><b>Чек</b></para>
1312 /// Добавление товарной позиции в открытом документе
1313 /// </summary>
1314 /// <param name="count">строка - количество. может принимать как целые, так и дробные значения</param>
1315 /// <param name="price">строка - цена за единицу (1) количества</param>
1316 /// <param name="itemname">строка - наименование товара</param>
1317 /// <param name="article">строка - артикул</param>
1318 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1319 /// <seealso cref="com.multisoft.drivers.fiscalcore.Tag"/>
1320 /// <example>правильная последовательность печати позиции с налогом
1321 /// <code>
1322 /// // ... открытие документа, добавление позиций
1323 /// IFiscalCore.SetItemTaxes((int)TaxNum._18_118,callback);//НДС 18/118
1324 /// callback.Complete();
1325 /// IFiscalCore.SetShowTaxes(true,callback);
1326 /// callback.Complete();
1327 /// IFiscalCore.SetTagAttribute((int)Tag.ItemProperty, "1", callback); // Товар
1328 /// callback.Complete();
1329 /// IFiscalCore.SetTagAttribute((int)Tag.PaymentProperty, "1", callback); // Предоплата 100%
1330 /// callback.Complete();
1331 /// IFiscalCore.PrintRecItem("1.0", "12.34", "товар","",callback);
1332 /// callback.Complete();
1333 /// // ... закрытие документа
1334 /// </code>
1335 /// </example>
1336 ///
1337 /// <example>добавление позиции с КМ
1338 /// <code>
1339 /// // ... открытие документа
1340 /// String markingCode = "010361422599702021_DgS'hd\u001d93yOpB";
1341 /// IFiscalCore.SendMarkupCodeFnCheck(markingCode, 0, 0, 0, callback)
1342 /// callback.Complete();
1343 /// IFiscalCore.SendMarkupCodeOismCheck(0, 1, 1, 0, "", "", callback)
1344 /// callback.Complete();
1345 /// IFiscalCore.GetMarkupCodeOismResult(callback, oismCallback)
1346 /// callback.Complete();
1347 /// IFiscalCore.SaveMarkupCodeCheckResult(true, callback)
1348 /// callback.Complete();
1349 /// IFiscalCore.SetItemTaxes((int)TaxNum._10,callback);//"НДС 10%"
1350 /// callback.Complete();
1351 /// IFiscalCore.SetShowTaxes(true,callback);
1352 /// callback.Complete();
1353 /// IFiscalCore.SetTagAttribute((int)Tag.ItemProperty, "1", callback); // Товар
1354 /// callback.Complete();
1355 /// IFiscalCore.SetTagAttribute((int)Tag.PaymentProperty, "1", callback); // Предоплата 100%
1356 /// callback.Complete();
1357 /// IFiscalCore.SetTagAttribute((int)Tag.MarkedCommodityCode, markingCode, callback); // КМ
1358 /// callback.Complete();
1359 /// IFiscalCore.PrintRecItem("1.0", "12.34", "товар", "", callback);
1360 /// callback.Complete();
1361 /// // ... закрытие документа
1362 /// </code>
1363 /// </example>
1364 void PrintRecItem(String count, String price, String itemname, String article, IExceptionCallback callback);
1365
1366 // **************************** Чек коррекции ****************************
1367
1368 /// <summary>
1369 /// <para><b>Чек коррекции</b></para>
1370 /// <para>Напечатать чек коррекции.</para>
1371 /// <para>Вызывается однократно для каждого чека коррекции, ФФД 1.05</para>
1372 /// </summary>
1373 /// <param name="operation">тип операции - com.multisoft.drivers.fiscalcore.OperationType, только для OperationType.Sell, OperationType.Buy (Приход, Расход)</param>
1374 /// <param name="cash">сумма наличными</param>
1375 /// <param name="emoney">сумма электронными</param>
1376 /// <param name="advance">сумма авансом</param>
1377 /// <param name="credit">сумма в кредит</param>
1378 /// <param name="other">сумма обменом</param>
1379 /// <param name= "taxNum">порядоковый номер используемого налога com.multisoft.drivers.fiscalcore.TaxNum. Если вызвана IFiscalCore.SetSumTaxes, значение не используется.</param>
1380 /// <param name="corrType">тип коррекци com.multisoft.drivers.fiscalcore.CorrectionRecType</param>
1381 /// <param name="docName">строка, наименование основания для коррекции</param>
1382 /// <param name="docDate">строка, дата документа основания документа в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</param>
1383 /// <param name="docNum">строка, номер документа основания</param>
1384 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1385 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperationType"/>
1386 /// <seealso cref="com.multisoft.drivers.fiscalcore.CorrectionRecType"/>
1387 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxNum"/>
1388 /// <seealso cref="IFiscalCore.SetSumTaxes"
1389 /// <example>
1390 /// работа с чеком коррекции:
1391 /// <code>
1392 /// IFiscalCore.SetUserName(cashier,callback);
1393 /// IFiscalCore.SetTaxationUsing(TaxCode.Common,callback);
1394 /// callback.Complete();
1395 /// IFiscalCore.OpenRec(RecType.CorrectionReceipt,callback);
1396 /// callback.Complete();
1397 /// string docName = "01.02.2017 не сформирован и не выдан кассовый чек";
1398 /// string docNum = "32";
1399 /// string docDate = "2017-02-28T19:12:03.000Z";
1400 /// IFiscalCore.FNMakeCorrectionRec((int)OperationType.Sell,"10","0","0.00","0.00","0.05",(int)TaxNum._18,(int)CorrectionRecType.Independent,docName,docDate,docNum,callback);
1401 /// callback.Complete();
1402 /// IFiscalCore.CloseRec(callback);
1403 /// callback.Complete();
1404 /// </code>
1405 /// </example>
1406 void FNMakeCorrectionRec(int operation, String cash, String emoney, String advance, String credit,
1407 String other, int taxNum, int corrType, String docName, String docDate, String docNum, IExceptionCallback callback);
1408
1409 // **************************** Запрос информации о подтверждении документа от ОФД ****************************
1410
1411 /// <summary>
1412 /// <para><b>Запрос информации о подтверждении документа от ОФД</b></para>
1413 /// <para>Запросить информацию о подтверждении от ОФД по номеру документа.</para>
1414 /// <para>Только при подключенном ФН!</para>
1415 /// <para>За 1 запрос сохраняется информация об 1 подтверждении фискального документа.</para>
1416 /// <para>При последующем запросе информация о предыдущем удаляется.</para>
1417 /// <para>Выполняется для каждого запрашиваемого подтверждения перед вызовом остальных функций, относящихся к разделу "<b>Запрос информации о подтверждении документа от ОФД</b>".</para>
1418 /// <para>Вызывается перед чтением информации о подтверждении.</para>
1419 /// <para>Для чтения информации о другом подтверждении необходимо выполнить эту команду снова, указав соответствующий номер.</para>
1420 /// <param name="docnum">номер переданного в ОФД фискального документа</param>
1421 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1422 /// </summary>
1423 /// <example> Запрос информации о подтверждении документов с номерами 1 и 2
1424 /// <code>
1425 /// //запросить информацию о чеке с номером 1
1426 /// IFiscalCore.QueryOFDReceiptByNum(1,callback);
1427 /// callback.Complete();
1428 /// //считать время из документа с номером 1
1429 /// var first = IFiscalCore.OfdOut_GetTime(callback);
1430 /// callback.Complete();
1431 /// //запросить информацию о чеке с номером 2
1432 /// IFiscalCore.QueryOFDReceiptByNum(2,callback);
1433 /// callback.Complete();
1434 /// //считать время из документа с номером 2
1435 /// var second = IFiscalCore.OfdOut_GetTime(callback);
1436 /// callback.Complete();
1437 /// </code>
1438 /// </example>
1439 void QueryOFDReceiptByNum(int docnum, IExceptionCallback callback);
1440
1441 /// <summary>
1442 /// <para><b>Запрос информации о подтверждении документа от ОФД</b></para>
1443 /// Показать время подтверждения документа
1444 /// </summary>
1445 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1446 /// <returns>строка - время</returns>
1447 /// <example>
1448 /// <code>
1449 /// IFiscalCore.QueryOFDReceiptByNum(1,callback);
1450 /// callback.Complete();
1451 /// var first = IFiscalCore.OfdOut_GetTime(callback);
1452 /// callback.Complete();
1453 /// </code>
1454 /// </example>
1456
1457 /// <summary>
1458 /// <para><b>Запрос информации о подтверждении документа от ОФД</b></para>
1459 /// Показать номер выбранного подтверждения документа
1460 /// </summary>
1461 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1462 /// <returns>число - номер фискального документа</returns>
1463 /// <example>
1464 /// <code>
1465 /// IFiscalCore.QueryOFDReceiptByNum(1,callback);
1466 /// callback.Complete();
1467 /// var first = IFiscalCore.OfdOut_GetFDNumber(callback);
1468 /// callback.Complete();
1469 /// </code>
1470 /// </example>
1472
1473 /// <summary>
1474 /// <para><b>Запрос информации о подтверждении документа от ОФД</b></para>
1475 /// Показать фискальный признак подтверждения документа
1476 /// </summary>
1477 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1478 /// <returns>строка - фискальный признак, полученный от ОФД</returns>
1479 /// <example>
1480 /// <code>
1481 /// IFiscalCore.QueryOFDReceiptByNum(1,callback);
1482 /// callback.Complete();
1483 /// var first = IFiscalCore.OfdOut_GetFiscalSign(callback);
1484 /// callback.Complete();
1485 /// </code>
1486 /// </example>
1488
1489 /// <summary>
1490 /// <para><b>Запрос информации о подтверждении документа от ОФД</b></para>
1491 /// Показать размер подтверждения документа
1492 /// </summary>
1493 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1494 /// <returns>число - размер документа</returns>
1495 /// <example>
1496 /// <code>
1497 /// IFiscalCore.QueryOFDReceiptByNum(1,callback);
1498 /// callback.Complete();
1499 /// var first = IFiscalCore.OfdOut_GetSize(callback);
1500 /// callback.Complete();
1501 /// </code>
1502 /// </example>
1504
1505
1506 // **************************** Работа с архивом ФН ****************************
1507
1508 /// <summary>
1509 /// <para><b>Работа с архивом ФН</b></para>
1510 /// <para>Запросить информацию о документе из архива ФН по номеру.</para>
1511 /// <para>Только при подключенном ФН!</para>
1512 /// <para>За 1 запрос сохраняется информация об 1 фискальном документе.</para>
1513 /// <para>При последующем запросе информация о предыдущем удаляется.</para>
1514 /// <para>Выполняется для каждого запрашиваемого документа перед вызовом остальных функций, относящихся к разделу "<b>Работа с архивом ФН</b>".</para>
1515 /// <para>После этого становятся доступными функции с префиксом FDI, </para>
1516 /// <para>которые отображают информацию из запрошенного документа.</para>
1517 /// <para>Для чтения информации о другом документе необходимо выполнить эту команду снова c указанием нужного номера документа. </para>
1518 /// </summary>
1519 /// <param name="docNum">число - номер документа</param>
1520 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1521 /// <example>
1522 /// <code>
1523 /// //запросить из архива ФД с номером 1
1524 /// IFiscalCore.QueryFiscalDocInfo(1,callback);
1525 /// callback.Complete();
1526 /// //считать время из документа с номером 1
1527 /// var doctype = IFiscalCore.FDI_GetDocType(callback);
1528 /// callback.Complete();
1529 /// //запросить из архива ФД с номером 2
1530 /// IFiscalCore.QueryFiscalDocInfo(2,callback);
1531 /// callback.Complete();
1532 /// //считать время из документа с номером 2
1533 /// var doctype = IFiscalCore.FDI_GetDocType(callback);
1534 /// callback.Complete();
1535 /// </code>
1536 /// </example>
1537 void QueryFiscalDocInfo(int docNum, IExceptionCallback callback);
1538
1539 /// <summary>
1540 /// <para><b>Работа с архивом ФН</b></para>
1541 /// Показать тип документа, выбранного с помощью IFiscalCore.QueryFiscalDocInfo
1542 /// </summary>
1543 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1544 /// <returns>тип документа</returns>
1545 /// <seealso cref="com.multisoft.drivers.fiscalcore.DocType"/>
1546 /// <example>
1547 /// <code>
1548 /// IFiscalCore.QueryFiscalDocInfo(1,callback);
1549 /// callback.Complete();
1550 /// var first = IFiscalCore.FDI_GetDocType(callback);
1551 /// callback.Complete();
1552 /// </code>
1553 /// </example>
1555
1556 /// <summary>
1557 /// <para><b>Работа с архивом ФН</b></para>
1558 /// Показать флаг о наличии подтверждения документа, выбранного с помощью IFiscalCore.QueryFiscalDocInfo, от ОФД
1559 /// </summary>
1560 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1561 /// <returns>true - документ был подтверждён, false - документ не был подтверждён</returns>
1562 /// <example>
1563 /// <code>
1564 /// IFiscalCore.QueryFiscalDocInfo(1,callback);
1565 /// callback.Complete();
1566 /// var first = IFiscalCore.FDI_GetConfirmFromOFD(callback);
1567 /// callback.Complete();
1568 /// </code>
1569 /// </example>
1571
1572 /// <summary>
1573 /// <para><b>Работа с архивом ФН</b></para>
1574 /// Показать байты документа, выбранного с помощью IFiscalCore.QueryFiscalDocInfo
1575 /// </summary>
1576 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1577 /// <returns>строка - байт-код документа в HEX-формате</returns>
1578 /// <example>
1579 /// <code>
1580 /// IFiscalCore.QueryFiscalDocInfo(1,callback);
1581 /// callback.Complete();
1582 /// var first = IFiscalCore.FDI_GetDataArray(callback);
1583 /// callback.Complete();
1584 /// </code>
1585 /// </example>
1587
1588 // **************************** Печать из архива ****************************
1589
1590 /// <summary>
1591 /// <para><b>Печать их архива</b></para>
1592 /// Вывести на печать документ из архива по номеру
1593 /// </summary>
1594 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1595 /// <param name="docNum">положительное целое число - номер документа</param>
1596 void FNPrintDocFromArchive(int docNum, IExceptionCallback callback);
1597
1598 // **************************** Запрос параметров ****************************
1599
1600 // В этом блоке находятся методы для настройки аппарата перед регистрацией.
1601 // Под "пользователем" следует понимать организацию - пользователя КТТ
1602
1603 // **************************** Параметры ОФД ****************************
1604
1605 /// <summary>
1606 /// <para><b>Запрос параметров ОФД</b></para>
1607 /// Запрос адреса сервера ОФД
1608 /// </summary>
1609 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1610 /// <returns>адрес сервера, например "test.server.ofd" или "11.2.222.11"</returns>
1612
1613 /// <summary>
1614 /// <para><b>Запрос параметров ОФД</b></para>
1615 /// Запрос порта ОФД
1616 /// </summary>
1617 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1618 /// <returns>порт сервера, например, 12345</returns>
1620
1621 /// <summary>
1622 /// <para><b>Запрос параметров ОФД</b></para>
1623 /// Запрос полного наименования оператора фискальных данных
1624 /// </summary>
1625 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1626 /// <returns>строка - наименование ОФД</returns>
1628
1629 /// <summary>
1630 /// <para><b>Запрос параметров ОФД</b></para>
1631 /// Запрос ИНН ОФД
1632 /// </summary>
1633 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1634 /// <returns>строка - ИНН ОФД</returns>
1636
1637
1638 // **************************** Основные настройки ****************************
1639
1640 /// <summary>
1641 /// <para><b>Запрос основных настроек</b></para>
1642 /// Запрос имени организации (пользователя)
1643 /// </summary>
1644 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1645 /// <returns>строка - имя организации</returns>
1647
1648 /// <summary>
1649 /// <para><b>Запрос основных настроек</b></para>
1650 /// Запрос адреса организации (пользователя)
1651 /// </summary>
1652 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1653 /// <returns>строка - адрес организации</returns>
1655
1656 /// <summary>
1657 /// <para><b>Запрос основных настроек</b></para>
1658 /// Запрос места расчётов.
1659 /// Место осуществления расчетов между пользователем и покупателем (клиентом)
1660 /// </summary>
1661 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1662 /// <returns>строка - физическое место расчётов</returns>
1664
1665 /// <summary>
1666 /// <para><b>Запрос основных настроек</b></para>
1667 /// Запрос email-а отправителя чеков
1668 /// </summary>
1669 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1670 /// <returns>строка - email отправителя чеков </returns>
1672
1673 /// <summary>
1674 /// <para><b>Запрос основных настроек</b></para>
1675 /// Запрос адреса сайта для проверки фискального признака
1676 /// </summary>
1677 /// <returns>строка - адрес сайта для проверки фискального признака</returns>
1679
1680 /// <summary>
1681 /// <para><b>Запрос основных настроек</b></para>
1682 /// Запрос сайта налогового органа
1683 /// </summary>
1684 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1685 /// <returns>строка - сайт налогового органа</returns>
1687
1688 /// <summary>
1689 /// <para><b>Запрос основных настроек</b></para>
1690 /// Запрос ИНН кассира
1691 /// </summary>
1692 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1693 /// <returns>строка - инн кассира</returns>
1695
1696 /// <summary>
1697 /// <para><b>Запрос основных настроек</b></para>
1698 /// <para>Запрос флага расширенного автотеста.</para>
1699 /// <para>Если true, печатается чек расширенного автотестирования.</para>
1700 /// <para>Если false, чек расширенного автотестирования не печатается</para>
1701 /// </summary>
1702 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1703 /// <returns>true или false</returns>
1705
1706 /// <summary>
1707 /// <para><b>Запрос основных настроек</b></para>
1708 /// Запрос номера автомата. Необходим только в автоматическом режиме.
1709 /// </summary>
1710 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1711 /// <returns>строка - номер автомата</returns>
1712 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
1714
1715
1716 // **************************** Дополнительные настройки ****************************
1717
1718 /// <summary>
1719 /// <para><b>Запрос дополнительных настроек</b></para>
1720 /// Запрос наименования оператора перевода, для банковских платежных агентов (субагентов)
1721 /// </summary>
1722 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1723 /// <returns>строка - наименование оператора перевода</returns>
1724 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1726
1727 /// <summary>
1728 /// <para><b>Запрос дополнительных настроек</b></para>
1729 /// Запрос ИНН оператора перевода, для банковских платежных агентов (субагентов)
1730 /// </summary>
1731 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1732 /// <returns>строка - ИНН оператор перевода</returns>
1733 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1735
1736 /// <summary>
1737 /// <para><b>Запрос дополнительных настроек</b></para>
1738 /// Запрос телефона оператора перевода
1739 /// </summary>
1740 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1741 /// <returns>строка - номера телефонов оператора по переводу денежных средств</returns>
1742 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1744
1745 /// <summary>
1746 /// <para><b>Запрос дополнительных настроек</b></para>
1747 /// Запрос адреса оператора перевода, для банковских платежных агентов (субагентов)
1748 /// </summary>
1749 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1750 /// <returns>строка - адрес оператора перевода</returns>
1751 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1753
1754 /// <summary>
1755 /// <para><b>Запрос дополнительных настроек</b></para>
1756 /// Запрос номера телефонов платёжного агента, платёжного субагента,
1757 /// банковского платёжного агента,банковского платёжного субагента
1758 /// </summary>
1759 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1760 /// <returns>строка - номера телефонов платёжного агента, платёжного субагента,
1761 /// банковского платёжного агента, банковского платёжного субагента</returns>
1762 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1764
1765 /// <summary>
1766 /// <para><b>Запрос дополнительных настроек</b></para>
1767 /// Запрос операции платёжного агента.
1768 /// </summary>
1769 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1770 /// <returns>строка - наименование операции банковского платёжного агента или банковского платёжного субагента </returns>
1771 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1773
1774 /// <summary>
1775 /// <para><b>Запрос дополнительных настроек</b></para>
1776 /// <para>Запрос телефона оператора по приёму платежей.</para>
1777 /// <para>При осуществлении деятельности платёжного агента и платёжного субагента.</para>
1778 /// </summary>
1779 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1780 /// <returns>строка - номер телефона оператора по приёму платежей</returns>
1781 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1783
1784 /// <summary>
1785 /// <para><b>Запрос дополнительных настроек</b></para>
1786 /// <para>Запрос номера телефона поставщика</para>
1787 /// <para>Для платёжного агента и платёжного субагента</para>
1788 /// </summary>
1789 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1790 /// <returns>строка - номер телефона поставщика </returns>
1791 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1793
1794
1795 // **************************** Применение настроек ****************************
1796
1797 /// <summary>
1798 /// <para><b>Применение настроек</b></para>
1799 /// <para>Инициировать сохранение текущих настроек в память ККТ, </para>
1800 /// <para>чтобы они были применены при следующей инициализации ядра.</para>
1801 /// </summary>
1802 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1804
1805 // **************************** Установка параметров ****************************
1806 // Данный блок методов позволяет настраивать параметры ККТ.
1807 // Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions()
1808 // Порядок изменения параметров, указанных при регистрации:
1809 // http://wiki.multisoft.ru:8881/redmine/projects/mspos-k/wiki/QA#Q11
1810
1811 // **************************** Параметры ОФД ****************************
1812 // Необходимо указывать до вызова функции регистрации.
1813
1814 /// <summary>
1815 /// <para><b>Установка параметров ОФД</b></para>
1816 /// Установка адреса сервера ОФД для подключения
1817 /// </summary>
1818 /// <param name="host">сервер ОФД, например, "test.server.ofd" или "11.2.222.11"</param>
1819 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1820 void SetOfdHost(String host, IExceptionCallback callback);
1821
1822 /// <summary>
1823 /// <para><b>Установка параметров ОФД</b></para>
1824 /// Установка порта сервера ОФД для подключения
1825 /// </summary>
1826 /// <param name="port">порт, например 9999</param>
1827 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1828 void SetOfdPort(int port, IExceptionCallback callback);
1829
1830 /// <summary>
1831 /// <para><b>Установка параметров ОФД</b></para>
1832 /// Установить наименование ОФД (1046)
1833 /// </summary>
1834 /// <param name="text">полное наименование оператора фискальных данных</param>
1835 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1836 void SetOfdName(String text, IExceptionCallback callback);
1837
1838 /// <summary>
1839 /// <para><b>Установка параметров ОФД</b></para>
1840 /// Установить ИНН ОФД (1017)
1841 /// </summary>
1842 /// <param name="text"> ИНН ОФД </param>
1843 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1844 void SetOfdTaxId(String text, IExceptionCallback callback);
1845
1846
1847 // **************************** Основные настройки ****************************
1848 // Необходимо указывать до вызова функции регистрации.
1849
1850 /// <summary>
1851 /// <para><b>Установка основных настроек</b></para>
1852 /// Установить наименование пользователя (пользователя) (1048)
1853 /// </summary>
1854 /// <param name="text">наименование организации-пользователя или фамилия, имя, отчество (при наличии) индивидуального предпринимателя - пользователя</param>
1855 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1856 void SetOrgName(String text, IExceptionCallback callback);
1857
1858 /// <summary>
1859 /// <para><b>Установка основных настроек</b></para>
1860 /// Установить адрес расчётов (1009)
1861 /// </summary>
1862 /// <param name="text">адрес осуществления расчетов между пользователем и покупателем (клиентом)</param>
1863 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1864 void SetOrgAddress(String text, IExceptionCallback callback);
1865
1866 /// <summary>
1867 /// <para><b>Установка основных настроек</b></para>
1868 /// Установить место расчётов
1869 /// </summary>
1870 /// <param name="text">(физическое) место расчётов,
1871 /// место осуществления расчетов между пользователем и покупателем (клиентом)</param>
1872 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1873 void SetPhysicalAddress(String text, IExceptionCallback callback);
1874
1875 /// <summary>
1876 /// <para><b>Установка основных настроек</b></para>
1877 /// <para>Установить адрес электронной почты отправителя чека (1117)</para>
1878 /// <para>Может быть указан не более 1 раза на чек</para>
1879 /// <para>Максимум 64 символа в формате "{С}@{C}" без кавычек и скобок.</para>
1880 /// <para>Скобки указывают на многократное повторение символа {C}.</para>
1881 /// </summary>
1882 /// <param name="text">адрес электронной почты отправителя кассового чека (БСО) в электронной форме, в том числе пользователя, если отправителем является пользователь, в случае передачи покупателю (клиенту) кассового чека или бланка строгой отчетности в электронной форме</param>
1883 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1884 /// <seealso cref="SendClientAddress"/>
1885 void SetSenderEmail(String text, IExceptionCallback callback);
1886
1887 /// <summary>
1888 /// <para><b>Установка основных настроек</b></para>
1889 /// Установить адрес сайта для проверки фискального признака. Не используется в ФФД 1.05 и 1.1
1890 /// </summary>
1891 /// <param name="text">адрес сайта для проверки фискального признака</param>
1892 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1893 void SetReceiptCheckURI(String text, IExceptionCallback callback);
1894
1895 /// <summary>
1896 /// <para><b>Установка основных настроек</b></para>
1897 /// Установить адрес сайта ФНС (1060), максимум 256 символов в представимом в CP866 виде.
1898 /// </summary>
1899 /// <param name="text">адрес сайта налогового органа</param>
1900 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1901 void SetFnsServerAddress(String text, IExceptionCallback callback);
1902
1903
1904 // **************************** Дополнительные настройки ****************************
1905 // Нужны при регистрации ККТ только в некоторых режимах работы.
1906 // Если испольльзуются, их необходимо указывать и применять до вызова функции регистрации/перерегистрации.
1907
1908 /// <summary>
1909 /// <para><b>Установка дополнительных настроек</b></para>
1910 /// Установить ИНН кассира (1203), ровно 12 цифр.
1911 /// </summary>
1912 /// <param name="text">ИНН кассира</param>
1913 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1914 void SetCashierTaxId(String text, IExceptionCallback callback);
1915
1916 /// <summary>
1917 /// <para><b>Установка дополнительных настроек</b></para>
1918 /// <para>Установить флаг расширенного автотеста.</para>
1919 /// <para>Если true, печатается чек расширенного автотестирования.</para>
1920 /// <para>Если false, чек расширенного автотестирования не печатается</para>
1921 /// </summary>
1922 /// <param name="newstate">новое состояние</param>
1923 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1924 void SetExtendedAutotest(boolean newstate, IExceptionCallback callback);
1925
1926 /// <summary>
1927 /// <para><b>Установка дополнительных настроек</b></para>
1928 /// Установить номер автомата (1036). Необходим только в автоматическом режиме.
1929 /// </summary>
1930 /// <param name="text">номер автомата, максимум 20 символов</param>
1931 /// <param name="callback">функция обратного вызова дял передачи параметров ошибки</param>
1932 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
1933 void SetVendingSerial(String text, IExceptionCallback callback);
1934
1935 /// <summary>
1936 /// <para><b>Установка дополнительных настроек</b></para>
1937 /// Установить наименование оператора перевода (1026) в кассовом чеке/БСО
1938 /// </summary>
1939 /// <param name="text">наименование оператора перевода, максимум 64 символа</param>
1940 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1941 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1942 void SetTransferOperatorName(String text, IExceptionCallback callback);
1943
1944 /// <summary>
1945 /// <para><b>Установка дополнительных настроек</b></para>
1946 /// Установить ИНН оператора перевода (1016) в кассовом чеке/БСО
1947 /// </summary>
1948 /// <param name="text">ИНН оператор перевода, ровно 12 цифр</param>
1949 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1950 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1952
1953 /// <summary>
1954 /// <para><b>Установка дополнительных настроек</b></para>
1955 /// <para>Установить телефон оператора перевода (1075) в кассовом чеке/БСО</para>
1956 /// <para>Формат: строка, начинающаяся на '+', далее цифры. Максимум 19 символов, включая "+" в начале</para>
1957 /// </summary>
1958 /// <param name="text">строка - номер телефона оператора перевода, например, +79991112233</param>
1959 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1961
1962 /// <summary>
1963 /// <para><b>Установка дополнительных настроек</b></para>
1964 /// <para>Установить адрес оператора перевода (1005) в кассовом чеке/БСО</para>
1965 /// </summary>
1966 /// <param name="text">адрес оператора перевода, максимум 256 символов</param>
1967 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1968 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1970
1971 /// <summary>
1972 /// <para><b>Установка дополнительных настроек</b></para>
1973 /// <para>Установить телефон платёжного агента (1073) в кассовом чеке/БСО</para>
1974 /// <para>Формат: строка, начинающаяся на '+', далее цифры. Максимум 19 символов, включая "+" в начале</para>
1975 /// </summary>
1976 /// <param name="text">строка - телефонный номер</param>
1977 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1978 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1979 void SetPaymentAgentTelNum(String text, IExceptionCallback callback);
1980
1981 /// <summary>
1982 /// <para><b>Установка дополнительных настроек</b></para>
1983 /// <para>Установить параметр "операция платёжного агента" (1044) в кассовом чеке/БСО</para>
1984 /// </summary>
1985 /// <param name="text">операция платёжного агента, максимум 24 символа</param>
1986 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1987 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1989
1990 /// <summary>
1991 /// <para><b>Установка дополнительных настроек</b></para>
1992 /// <para>Установить телефон оператора по приёму платежей (1074) в кассовом чеке/БСО</para>
1993 /// <para>Формат: строка, начинающаяся на '+', далее цифры. Максимум 19 символов, включая "+" в начале</para>
1994 /// </summary>
1995 /// <param name="text">номер телефона оператора по приёму платежей</param>
1996 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
1997 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
1999
2000 /// <summary>
2001 /// <para><b>Установка дополнительных настроек</b></para>
2002 /// <para>Установить телефон поставщика (1171) в кассовом чеке/БСО</para>
2003 /// <para>Формат: строка, начинающаяся на '+', далее цифры. Максимум 19 символов, включая "+" в начале</para>
2004 /// </summary>
2005 /// <param name="text">номер телефона поставщика</param>
2006 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2007 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
2008 void SetContractorTelNum(String text, IExceptionCallback callback);
2009
2010
2011 // **************************** Временные настройки ****************************
2012 /// <summary>
2013 /// <para><b>Временные настройки</b></para>
2014 /// Установить дату и время. Используется для начальной настройки ККТ и корретировки часов ККТ в процессе работы.
2015 /// </summary>
2016 /// <param name="datetime">дата и время в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</param>
2017 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2018 /// <example>установка даты и времени
2019 /// <code>
2020 /// var date = DateTime.Now.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'");
2021 /// IFiscalCore.SetDateTime(date,callback);//установка даты и времени
2022 /// </code>
2023 /// </example>
2024 void SetDateTime(String datetime, IExceptionCallback callback);
2025
2026 // **************************** Сервисные команды ****************************
2027 /// <summary>
2028 /// <para><b>Сервисные команды</b></para>
2029 /// <para>Установить заводской номер (ЗН) ККТ</para>
2030 /// <para>Выполняется 1 раз для каждой ккт перед началом регистрации при производстве.</para>
2031 /// <para>В процессе эксплуатации может возникнуть необходимость ввести ЗН ККТ заново, если память ккт была сброшена.</para>
2032 /// <para>Если ФН в ККТ был зарегистрирован, ввод некорректного ЗН приведёт к повторной блокировке.</para>
2033 /// <para>В этом случае нужно вводить именно тот ЗН, с которым ККТ была зарегистрирована.</para>
2034 /// <para>ЗН указан на наклейке на корпусе аппарата, например: Заводской номер №199036000000 Дата 13 октября 2017</para>
2035 /// </summary>
2036 /// <param name="serial">строка - заводской номер ККТ, состоящий из цифр, например, 199036000000</param>
2037 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2038 /// <example>установка заводского номера
2039 /// <code>
2040 /// IFiscalCore.SetSerial("0000000001",callback);
2041 /// callback.Complete();
2042 /// </code>
2043 /// </example>
2044 void SetSerial(String serial, IExceptionCallback callback);
2045
2046 // **************************** Временные настройки ****************************
2047 /// <summary>
2048 /// <para><b>Временные настройки</b></para>
2049 /// <para>Установить имя кассира.</para>
2050 /// <para>Используется для печати документов от чьего-либо имени.</para>
2051 /// <para>Не является опцией.</para>
2052 /// <para>Нужно задавать перед началом печати чеков либо при смене кассира, обслуживающего ККТ.</para>
2053 /// </summary>
2054 /// <param name="cashier">строка - имя и номер кассира</param>
2055 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2056 /// <example>открыть чек на продажу
2057 /// <code>
2058 /// IFiscalCore.SetUserName(Cashier.Text,callback);
2059 /// callback.Complete();
2060 /// recType = (int)RecType.Sell;//приход
2061 /// IFiscalCore.OpenRec(recType,callback);
2062 /// callback.Complete();
2063 /// </code>
2064 /// </example>
2065 void SetUserName(String cashier, IExceptionCallback callback);
2066
2067 /// <summary>
2068 /// <para><b>Временные настройки</b></para>
2069 /// <para>Опция - настройка флага отрезки.</para>
2070 /// <para>Устанавливать перед закрытием документа, если нужно сменить тип отрезки.</para>
2071 /// <para>Возможные значения, если отрезка поддерживается:</para>
2072 /// </summary>
2073 /// <param name="newvalue">новое значение флага отрезки</param>
2074 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2075 /// <seealso cref="com.multisoft.drivers.fiscalcore.CutType"/>
2076 void SetCutType(int newValue, IExceptionCallback callback);
2077
2078 /// <summary>
2079 /// <para><b>Временные настройки</b></para>
2080 /// <para>Установить телефон или электронный адрес покупателя (1008). Выполняется один раз на весь чек. Повторная передача ведёт к нарушению ФФД.</para>
2081 /// <para>Для успешной передачи необходимо, чтобы был установлен тег 1117 - IFiscalCore.SetSenderEmail, т.к. 1008 и 1117 применяются совместно.</para>
2082 /// <para>Для фискального режима, если открыт чек (com.multisoft.drivers.fiscalcore.RecState.Opened) на приход/возврат прихода/расход/возврат расхода. </para>
2083 /// <para>Если перед OpenRec была вызвана функция IFiscalCore.ForcePrintForm с параметром false, вызов IFiscalCore.SendClientAddress обязателен.</para>
2084 /// <para>Следует передавать в формате: "+{Ц}" или "{С}@{C}" без скобок и кавычек, скобки указывают на многократное повторение цифры (Ц) или символа (С) в представимом в CP866 виде.</para>
2085 /// <param name="addr">адрес и/или номер телефона клиента. Максимум 64 символа.</param>
2086 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2087 /// </summary>
2088 /// <returns>true в случае успеха, иначе false </returns>
2089 /// <seealso cref="IFiscalCore.ForcePrintForm"/>
2090 /// <example>
2091 /// <code>
2092 /// IFiscalCore.SetUserName(Cashier.Text,callback);
2093 /// callback.Complete();
2094 /// recType = (int)RecType.Sell;//приход
2095 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
2096 /// callback.Complete();
2097 /// IFiscalCore.OpenRec(recType,callback);
2098 /// callback.Complete();
2099 /// //добавление первой позиции:
2100 /// IFiscalCore.SetItemTaxes((int)TaxNum._0,callback);// НДС 0%
2101 /// callback.Complete();
2102 /// IFiscalCore.SetShowTaxes(true,callback);
2103 /// callback.Complete();
2104 /// IFiscalCore.PrintRecItem("24", "1.05", "товар", "",callback);
2105 /// callback.Complete();
2106 /// // добавление остальных позиций
2107 /// // . . .
2108 /// //
2109 /// //установка адреса клиента. выполняется до CloseRec()
2110 /// IFiscalCore.SendClientAddress("ivanov_889278@address.ru",callback);
2111 /// callback.Complete();
2112 /// IFiscalCore.PrintRecTotal(callback);//печать итога
2113 /// callback.Complete();
2114 /// total = IFiscalCore.GetRecTotal(callback);
2115 /// IFiscalCore.PrintRecItemPay((byte)PayType.Cash, total, "НАЛИЧНЫМИ",callback);
2116 /// callback.Complete();
2117 /// IFiscalCore.CloseRec(callback);//закрытие документа
2118 /// callback.Complete();
2119 /// </code>
2120 /// </example>
2121 void SendClientAddress(String addr, IExceptionCallback callback);
2122
2123
2124 // **************************** Дополнительные настройки ****************************
2125 /// <summary>
2126 /// <para><b>Установка дополнительных настроек</b></para>
2127 /// Установка заголовка чека - строк, печатающихся до чека. Параметры сохраняются при вызове. Не требует SaveOptions
2128 /// </summary>
2129 /// <param name="header">список строк для заговлока</param>
2130 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2131 void SetHeaderLines(in List<String> header, IExceptionCallback callback);
2132
2133 /// <summary>
2134 /// <para><b>Установка дополнительных настроек</b></para>
2135 /// Установка дополнительных строк, печатающихся после чека. Параметры сохраняются при вызове. Не требует SaveOptions
2136 /// </summary>
2137 /// <param name="trailer">список строк</param>
2138 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2139 void SetTrailerLines(in List<String> trailer, IExceptionCallback callback);
2140
2141 /// <summary>
2142 /// <para><b>Установка дополнительных настроек</b></para>
2143 /// Установка упреждающей печати заголовка.
2144 /// <para>если true, заголовок следующего чека печатается после окончания печати предыдущего</para>
2145 /// <para>если false, заголовок печатается перед печатью чека.</para>
2146 /// </summary>
2147 /// <param name="newState">true - печатать заголовок сразу после </param>
2148 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2149 void SetPrePrintHeaderLines(boolean newState, IExceptionCallback callback);
2150
2151 /// <summary>
2152 /// <para><b>Установка дополнительных настроек</b></para>
2153 /// <para>Автоинкассация при закрытии смены. Выполняется перед закрытием смены.</para>
2154 /// <para>Закрытие смены, выполненное после этой функции, произойдёт с автоматическим обнулением счётчика наличности в денежном ящике.</para>
2155 /// </summary>
2156 /// <param name="newState">true - автоинкассация включена, false - выключена</param>
2157 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2158 void SetDayCloseAutoPayOut(boolean newState, IExceptionCallback callback);
2159
2160
2161 // **************************** Чек ****************************
2162 /// <summary>
2163 /// <para><b>Чек</b></para>
2164 /// <para>Печать QR-кода.</para>
2165 /// </summary>
2166 /// <param name="value">строка - контент</param>
2167 /// <param name="align">выравнивание</param>
2168 /// <seealso cref="com.multisoft.drivers.fiscalcore.Align"/>
2169 void PrintQRCode(String value, int align, IExceptionCallback callback);
2170
2171
2172 // **************************** Чтение статуса ФН ****************************
2173 /// <summary>
2174 /// <para><b>Чтение статуса ФН</b></para>
2175 /// <para>Вернуть номер последнего фискального документа (кешируется).</para>
2176 /// <para>Функция аналогична FNGetLastFDNumber, но выполняется быстрее.</para>
2177 /// </summary>
2178 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2179 /// <returns>номер последнего фискального документа</returns>
2181
2182 /// <summary>
2183 /// <para><b>Чтение статуса ФН</b></para>
2184 /// <para>Вернуть ФП последнего фискального документа (кешируется)</para>
2185 /// </summary>
2186 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2187 /// <returns>фискальный признак</returns>
2189
2190 // **************************** Статус ККТ ****************************
2191 /// <summary>
2192 /// <para><b>Статус ККТ</b></para>
2193 /// <para>Название ККТ в реестре</para>
2194 /// </summary>
2195 /// <returns>название ККТ</returns>
2197
2198 // **************************** Временные настройки ****************************
2199 /// <summary>
2200 /// <para><b>Временные настройки</b></para>
2201 /// <para>Принудительно отключить печать следующего документа</para>
2202 /// </summary>
2203 /// <param name="printNextDocument">false - отключить печать следующего документа. true - ничего не предпринимать.</param>
2204 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2205 /// <example>
2206 /// <code>
2207 /// IFiscalCore.ForcePrintForm(false,callback);
2208 /// callback.Complete();
2209 /// recType = (int)RecType.Sell;//приход
2210 /// IFiscalCore.SetTaxationUsing(taxationSystem,callback);//установка системы налогообложения
2211 /// callback.Complete();
2212 /// IFiscalCore.OpenRec(recType,callback);
2213 /// callback.Complete();
2214 /// // добавление позиций
2215 /// // . . .
2216 /// //установка адреса клиента. Обязательна для Sell, SellRefund, Buy, BuyRefund
2217 /// IFiscalCore.SendClientAddress("+79991112233",callback);
2218 /// callback.Complete();
2219 /// IFiscalCore.PrintRecTotal(callback);//печать итога
2220 /// callback.Complete();
2221 /// IFiscalCore.PrintRecItemPay((byte)PayType.Cash, "99.90", "НАЛИЧНЫМИ",callback);
2222 /// callback.Complete();
2223 /// IFiscalCore.CloseRec(callback);//закрытие документа
2224 /// callback.Complete();
2225 /// </code>
2226 /// </example>
2227 void ForcePrintForm(boolean printNextDocument, IExceptionCallback callback);
2228
2229 // **************************** Чтение статуса ФН ****************************
2230 /// <summary>
2231 /// <para><b>Чтение статуса ФН</b></para>
2232 /// <para>Вернуть систему налогообложения, указанную при регистрации, по номеру</para>
2233 /// </summary>
2234 /// <param name="regNum">номер регистрации</param>
2235 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2236 /// <returns>код системы налогообложения, указанной при регистрации</returns>
2237 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
2239
2240 /// <summary>
2241 /// <para><b>Чтение статуса ФН</b></para>
2242 /// <para>Вернуть режим работы, указанный при регистрации, по номеру</para>
2243 /// </summary>
2244 /// <param name="regNum">номер регистрации</param>
2245 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2246 /// <returns>режим работы, указанный при регистрации</returns>
2247 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
2248 int FNGetOpModeByNum(int regNum, IExceptionCallback callback);
2249
2250 // **************************** Состояние смены ****************************
2251 /// <summary>
2252 /// <para><b>Состояние смены: отчёты</b></para>
2253 /// Запрос суммы оплат с учетом остатка на начало смены по типу счётчика
2254 /// </summary>
2255 /// <param name="counterType">тип счётчика</param>
2256 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2257 /// <returns>сумма по счётчику</returns>
2258 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
2259 String GetPayTotal(int counterType, IExceptionCallback callback);
2260
2261 // **************************** Чек ****************************
2262 /// <summary>
2263 /// <para><b>Чек</b></para>
2264 /// <para>Вывести на печать штрих-код.</para>
2265 /// <para>Ограничения на количество символов:</para>
2266 /// <para>Code39: до 13 символов</para>
2267 /// <para>Code93: до 16 символов</para>
2268 /// <para>Code128: до 15 символов</para>
2269 /// <para>Ean8: 8 цифр</para>
2270 /// <para>Ean13: 13 цифр</para>
2271 /// <para>ITF чётное, от 6 до 18 символов</para>
2272 /// <para>Codebar до 18 символов</para>
2273 /// </summary>
2274 /// <param name="type">тип штрих-кода BarCode</param>
2275 /// <param name="align">выравнивание Align, вне зависимости от передаваемого значения будет выполнено выравнивание по левому краю (1.7.27)</param>
2276 /// <param name="value">строка - контент</param>
2277 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2278 /// <seealso cref="com.multisoft.drivers.fiscalcore.BarCode"/>
2279 /// <seealso cref="com.multisoft.drivers.fiscalcore.Align"/>
2280 void PrintBarCode(int type, int align, String value, IExceptionCallback callback);
2281
2282 /// <summary>
2283 /// <para><b>Чек</b></para>
2284 /// Протяжка чековой ленты на count строк, если count > 0, иначе протяжка по умолчанию. Выполняется при открытом документе.
2285 /// </summary>
2286 /// <param name="count">количество строк для протяжки</param>
2287 /// <param name="callback"></param>
2288 void Feed(int count, IExceptionCallback callback);
2289
2290 /// <summary>
2291 /// <para><b>Чек</b></para>
2292 /// <para>Установка атрибутов тега по номеру.</para>
2293 /// <para>Значения по умолчанию см. com.multisoft.drivers.fiscalcore.Tag.</para>
2294 /// <para> Тег (tag) com.multisoft.drivers.fiscalcore.Tag.ExciseTag устанавливается до вызова IFiscalCore.Register / IFiscalCore.CorrectRegistration</para>
2295 /// <para> Остальные теги устанавливаются до вызова IFiscalCore.PrintRecItem</para>
2296 /// <para>Для каждой позиции чека функцию IFiscalCore.SetTagAttribute нужно вызывать снова до IFiscalCore.PrintRecItem, в составе которой необходимо передать соответствующий тег.</para>
2297 /// <para>Валидация тегов, относящихся к признаку агента, относительно их совместимости со значением тега 1222 отсутствует.</para>
2298 /// <para>Печатная форма тега 1162 зависит от действующих на данный момент форматов фискальных данных.</para>
2299 /// </summary>
2300 /// <param name="tag">номер тега com.multisoft.drivers.fiscalcore.Tag</param>
2301 /// <param name="value">строковое представление данных тега.</param>
2302 /// <seealso cref="com.multisoft.drivers.fiscalcore.Tag"/>
2303 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2304 void SetTagAttribute(int tag, String value, IExceptionCallback callback);
2305
2306 /// <summary>
2307 /// <para><b>Чтение статуса ФН</b></para>
2308 /// Запрос ФД документа о (пере)регистрации по её порядковому номеру
2309 /// </summary>
2310 /// <param name="regNum">порядковый номер (пере)регистрации</param>
2311 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2312 /// <returns>номер ФД (пере)регистрации</returns>
2313 int FNGetRegFDByNum(int regNum, IExceptionCallback callback);
2314
2315 /// <summary>
2316 /// <para><b>Статус ККТ</b></para>
2317 /// Запрос сменных счётчиков по типам документов и оплат
2318 /// </summary>
2319 /// <param name="docType">счётчик - тип документа. поддерживаются: Counter.SELL, Counter.SELL_REFUND, Counter.BUY, Counter.BUY_REFUND, Counter.PAID_IN, Counter.PAID_OUT</param>
2320 /// <param name="payType">счётчик - тип оплаты. поддерживаются Counter.CASH, Counter.CARD, Counter.BANK, Counter.TARE, Counter.VOUCHER</param>
2321 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2322 /// <returns>сумма за смену по указанным счётчикам</returns>
2323 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
2324 String GetDayPayTotalByDocType(int docType, int payType, IExceptionCallback callback);
2325
2326 /// <summary>
2327 /// <para><b>Итог</b></para>
2328 /// Возвращает сумму оплат (PrintRecItemPay) открытого чека по её типу. Для контроля PrintRecItemPay
2329 /// </summary>
2330 /// <param name="payType">тип оплаты. поддерживается Counter.CASH, Counter.CARD, Counter.BANK, Counter.TARE, Counter.VOUCHER</param>
2331 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2332 /// <returns>строка - сумма оплат</returns>
2333 /// <seealso cref="IFiscalCore.PrintRecItemPay"/>
2334 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
2335 String GetRecPayTotal(int payType, IExceptionCallback callback);
2336
2337 /// <summary>
2338 /// <para><b>Сервисные команды</b></para>
2339 /// <para>Выполняет сброс подключенного ФН, если он - отладочный.</para>
2340 /// <para>Если ФН не отладочный, возвращается ошибка com.multisoft.drivers.fiscalcore.ErrorCode.WrongStatus com.multisoft.drivers.fiscalcore.ExtStatusErr.Common</para>
2341 /// </summary>
2342 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2344
2345 /// <summary>
2346 /// <para><b>Работа с архивом ФН</b></para>
2347 /// <para>Запрос ФП документа, выбранного с помощью IFiscalCore.QueryFiscalDocInfo</para>
2348 /// </summary>
2349 /// <returns>ФП документа</returns>
2351
2352 /// <summary>
2353 /// <para><b>Работа с архивом ФН</b></para>
2354 /// <para>Запрос даты документа, выбранного ранее с помощью IFiscalCore.QueryFiscalDocInfo</para>
2355 /// </summary>
2356 /// <returns>дата в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</returns>
2357 String FDI_GetDate();
2358
2359 /// <summary>
2360 /// <para><b>Работа с архивом ФН</b></para>
2361 /// <para><b>deprecated</b> так как ФН в процессе работы удаляет данные о TLV.</para>
2362 /// <para><b>Для вычитывания значения тегов в документах регистрации необходимо использовать IFiscalCore.GetRegistrationParameter</b></para>
2363 /// <para>Запрос TLV документа, выбранного с помощью IFiscalCore.QueryFiscalDocInfo</para>
2364 /// <para>Возвращает строку массивом TLV документа в формате JSON.</para>
2365 /// <para><b>TLV</b> пеердаётся как <b>{"Tag":%номер%,"Val":"%значение%"}</b></para>
2366 /// <para>%<b>номер</b>% - целочисленный номер тега (без символов %);</para>
2367 /// <para>%<b>значение</b>% - значение тега(без символов %);</para>
2368 /// <para><b>Регистры битов (1055, 1057)</b> передаются числом (int);</para>
2369 /// <para><b>ФПД (1077)</b> передаётся в виде строки "ЦЦЦЦЦЦЦЦЦЦ", как в печатной форме;</para>
2370 /// <para><b>ФПО (1078)</b> - в виде строки с шестнадцатеричным представлением данных, как в печатной форме;</para>
2371 /// <para>Остальные <b>byte, UInt32, UInt16</b> передаются числом (int);</para>
2372 /// <para><b>UnixTime</b> - в формате "ДД.ММ.ГГ ЧЧ:ММ";</para>
2373 /// <para><b>суммовые (VLN, FVLN)</b> - в виде строки; строковые - без изменений;</para>
2374 /// <para><b>Код товарной номенклатуры (1162)</b> - в виде строки;</para>
2375 /// <para><b>STLV</b> передаются как TLV с тегом и массивом TLV вместо значения (Val).</para>
2376 /// <example>
2377 /// <code>
2378 /// //Предмет расчёта (1059) является STLV и передаётся следующим образом:
2379 /// {"Tag":1059,"Val":[{"Tag":1030,"Val":"Товар"},{"Tag":1079,"Val":"1.11"},{"Tag":1023,"Val":"1.00"},{"Tag":1199,"Val":1},{"Tag":1043,"Val":"1.11"}]}
2380 /// </code>
2381 /// </example>
2382 /// </summary>
2383 /// <returns>Массив TLV и STLV документа в JSON</returns>
2384 /// <seealso cref="IFiscalCore.QueryFiscalDocInfo"/>
2386
2387 /// <summary>
2388 /// <para><b>Сервисные команды</b></para>
2389 /// <para>Управление логгером</para>
2390 /// <para>Rotate - выполняет принудительную ротацию лога. Запускает фоновый процесс по архиввации логов.</para>
2391 /// <para>UploadToSD - выполняет копирование текущего лога на карту памяти, а также выгрузку всех ранее созданных архивов.</para>
2392 /// <para>Если после Rotate сразу вызвать UploadToSD, вторая команда будет выполнена после окончания работы первой.</para>
2393 /// <para>Самые ранние архивы удаляются, пока суммарный объём логов c архивом больше 200МБ и количество архивов больше 2.</para>
2394 /// </summary>
2395 /// <param name="loggerCommand">код команды</param>
2396 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2397 /// <seealso cref="com.multisoft.drivers.fiscalcore.LoggerCommand"/>
2398 void LoggerControl(int loggerCommand, IExceptionCallback callback);
2399
2400 /// <summary>
2401 /// <para><b>Чек</b></para>
2402 /// <para>Установить признак агента (1057).</para>
2403 /// <para>Для изменения признака агента в чеке вызывается до его (чека) открытия.</para>
2404 /// <para>Нужна при формировании чеков, если ККТ зарегистрирована с 1 и более признаками агента</para>
2405 /// <para>Не является опцией. Действует с момента первого вызова до переинициализации, либо до повторного вызова</para>
2406 /// </summary>
2407 /// <param name="agent">используемый признак агента</param>
2408 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2409 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
2410 void SetAgentTagUsing(int agent, IExceptionCallback callback);
2411
2412 /// <summary>
2413 /// <para><b>Чтение статуса ФН</b></para>
2414 /// <para>Запрос признака агента из ФН</para>
2415 /// <para>Нужна при формировании чеков, если ККТ зарегистрирована с 1 и более признаками агента</para>
2416 /// </summary>
2417 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2418 /// <returns>Признак агента, указанный при (пере)регистрации</returns>
2419 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
2420 /// <example>
2421 /// <code>
2422 /// //пример выбора признака агента перед открытием чека
2423 /// agent = IFiscalCore.GetAgentTag(callback);
2424 /// if(agentUsing & agent != 0)
2425 /// {
2426 /// IFiscalCore.SetAgentTagUsing(agentUsing, callback);
2427 /// callback.Complete();
2428 /// IFiscalCore.OpenRec((int)RecType.Sell, callback);
2429 /// callback.Complete();
2430 /// </code>
2431 /// </example>
2433
2434 /// <summary>
2435 /// <para><b>Чек</b></para>
2436 /// <para>Настройка шрифта, по умолчанию 0.</para>
2437 /// <para>К-во символов в строке настраивается автоматически.</para>
2438 /// <para>Значение сбрасывается в дефолт после переинициализации ФЯ, в т.ч. после выполнения IFiscalCore.SelfTest и IFiscalCore.SaveOptions.</para>
2439 /// <para>Использовать с осторожностью. При больших значениях РН ККТ и номер ФН не умещаются в 1 строку.</para>
2440 /// <para>Допускается менять текст перед любыми командами печати.</para>
2441 /// <para>После применения обязательно устанавливать значение по умолчанию (0).</para>
2442 /// </summary>
2443 /// <param name="fontSize">Размер шрифта. Стандартный размер - 0. Для P1, V1 разрешены значения от 0 до 22. Для T1mini80 - от 0 до 28.</param>
2444 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2445 void SetFont(int fontSize, IExceptionCallback callback);
2446
2447 /// <summary>
2448 /// <para><b>Чек</b></para>
2449 /// <para>Печать растровых изображений.</para>
2450 /// <para>для V1, P1: не более 384 пикселя в ширину</para>
2451 /// </summary>
2452 /// <param name="rawFileData">массив байт файла с изображением</param>
2453 void PrintRaster(in byte[] rawFileData, IExceptionCallback callback);
2454
2455 /// <summary>
2456 /// <para><b>Чек</b></para>
2457 /// <para>Печать текста с переводом строки.</para>
2458 /// </summary>
2459 /// <param name="left">строка текста для печати слева</param>
2460 /// <param name="right">строка текста для печати справа</param>
2461 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2462 /// <seealso cref="com.multisoft.drivers.fiscalcore.Align"/>
2463 void PrintLineAligned(String left, String right, IExceptionCallback callback);
2464
2465 /// <summary>
2466 /// <para><b>Чек коррекции</b></para>
2467 /// <para>Установить суммовые налоги в чеке коррекции.</para>
2468 /// <para>i-элементу в массиве номеров налогов соответствует i-элемент массива сумм налогов</para>
2469 /// </summary>
2470 /// <param name="taxNum">массив номеров налогов</param>
2471 /// <param name="taxSum">массив сумм налогов</param>
2472 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2473 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxNum"/>
2474 /// <example>
2475 /// <code>
2476 /// IFiscalCore.SetUserName(cashier,callback);
2477 /// IFiscalCore.SetTaxationUsing(TaxCode.Common,callback);
2478 /// callback.Complete();
2479 /// IFiscalCore.OpenRec(RecType.CorrectionReceipt,callback);
2480 /// callback.Complete();
2481 /// string docName = "01.02.2017 не сформирован и не выдан кассовый чек";
2482 /// string docNum = "32";
2483 /// string docDate = "2017-02-28T19:12:03.000Z";
2484 /// int[] taxNum = new[] {(int)TaxNum._10, (int)TaxNum._18_118};
2485 /// string[] taxSum = new[] {"1.23", "2.13"};
2486 /// IFiscalCore.SetSumTaxes(taxNum,taxSum,callback);
2487 /// callback.Complete();
2488 /// IFiscalCore.FNMakeCorrectionRec((int)OperationType.Sell,"10","0","0.00","0.00","0.05",(int)TaxNum._18,(int)CorrectionRecType.Independent,docName,docDate,docNum,callback);
2489 /// callback.Complete();
2490 /// IFiscalCore.CloseRec(callback);
2491 /// callback.Complete();
2492 /// </code>
2493 /// </example>
2494 void SetSumTaxes(in int[] taxNum, in String[] taxSum, IExceptionCallback callback);
2495
2496 /// <summary>
2497 /// <para><b>Временные настройки</b></para>
2498 /// <para>Настройка печатной формы тегов</para>
2499 /// <para>Необходимо выполнять после IFiscalCore.SetTagAttribute и перед вызовом IFiscalCore.PrintRecItem</para>
2500 /// <para>Не имеет смысла без IFiscalCore.SetTagAttribute с параметром, отличным от дефолтного.</para>
2501 /// <para>Значения по умолчанию см. com.multisoft.drivers.fiscalcore.Tag.</para>
2502 /// <para>После вызова IFiscalCore.PrintRecItem значение сбрасывается в дефолт.</para>
2503 /// </summary>
2504 /// <param name="tag">номер тега. в 1.12.37 поддерживается только 1212</param>
2505 /// <param name="printForm">Печатная форма тега. com.multisoft.drivers.fiscalcore.TagPrintForm</param>
2506 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2507 /// <seealso cref="com.multisoft.drivers.fiscalcore.Tag"/>
2508 /// <seealso cref="com.multisoft.drivers.fiscalcore.TagPrintForm"/>
2509 /// <seealso cref="IFiscalCore.SetTagAttribute"/>
2510 void SetTagPrintForm(int tag, int printForm, IExceptionCallback callback);
2511
2512 /// <summary>
2513 /// <para><b>Временные настройки</b></para>
2514 /// <para>Преобразует входную строку в дату и время методом DateTime.Parse()</para>
2515 /// <para>Устанавливает фиксированную дату и время в фискальном ядре.</para>
2516 /// <para>Только для нефискального режима, либо при подключенном МГМ ФН.</para>
2517 /// </summary>
2518 /// <param name="dateTime">строка с датой и временем</param>
2519 void FreezeDateTime(String dateTime, IExceptionCallback callback);
2520
2521 /// <summary>
2522 /// <para><b>Временные настройки</b></para>
2523 /// <para>Восстанавливает системные дату и время в фискальном ядре</para>
2524 /// </summary>
2526
2527 /// <summary>
2528 /// <para><b>Итог</b></para>
2529 /// <para>Печать итога с округлением до рубля.</para>
2530 /// <para>Используется вместо PrintRecTotal.</para>
2531 /// <para>Допускается округлять итог в меньшую сторону до целого значения итога рублях.</para>
2532 /// </summary>
2533 /// <param name="total">желаемая сумма итога</param>
2534 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2535 /// <seealso cref="PrintRecTotal"/>
2536 void PrintRecTotalRound(String total, IExceptionCallback callback);
2537
2538 /// <summary>
2539 /// <para><b>Статус ККТ</b></para>
2540 /// <para>Получение статуса фискализации ККТ в фискальной памяти (ФП).</para>
2541 /// <para>До регистрации ФП не фискализирована.</para>
2542 /// <para>После первой и последующей регистраций ФП фискализирована.</para>
2543 /// <para>При клонировании ФП не фискализирована.</para>
2544 /// </summary>
2545 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2546 /// <returns>true - фискальная память фискализирована, false - нет или ошибка</returns>
2547 /// <seealso cref="GetSerial"/>
2549
2550 /// <summary>
2551 /// <para><b>Чек</b></para>
2552 /// <para>Подать сигнал на открытие денежного ящика (ДЯ), если присутствует.</para>
2553 /// <para>Если ДЯ отсутствует, коллбек об ошибке не вызывается.</para>
2554 /// </summary>
2555 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2557
2558 /// <summary>
2559 /// <para><b>Чек</b></para>
2560 /// <para>Принудительная установка ширины ленты.</para>
2561 /// <para>Только для MSPOS-Т-Ф с 80й лентой. В процессе работы ФЯ переинициализируется.</para>
2562 /// </summary>
2563 /// <param name="narrowWide">true - узкая, false - широкая</param>
2564 /// <param name="callback">функция обратного вызова для передачи информации об ошибке.</param>
2565 void SetPaperWidth(boolean narrowWide, IExceptionCallback callback);
2566
2567 /// <summary>
2568 /// <para><b>Чек</b></para>
2569 /// <para>Установка атрибутов тега по номеру.</para>
2570 /// <para>Значения по умолчанию см. com.multisoft.drivers.fiscalcore.Tag.</para>
2571 /// <para>Поддерживается только Tag.CommodityCode - 1162.</para>
2572 /// <para>Печатная форма тега 1162 зависит от действующих на данный момент форматов фискальных данных.</para>
2573 /// <para>В этом случае невозможно сформировать печатную форму, идентичную электронной.</para>
2574 /// <para>1162 устанавливается только одной из функций SetTagByteAttribute или SetTagAttribute.</para>
2575 /// <para>Установка одного и того же тега одновременно SetTagAttribute и SetTagByteAttribute недопустимо.</para>
2576 /// </summary>
2577 /// <param name="tag">номер тега</param>
2578 /// <param name="value">значение в виде массива байт. null недопустим.</param>
2579 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2580 void SetTagByteAttribute(int tag, in byte[] value, IExceptionCallback callback);
2581
2582 /// <summary>
2583 /// <para><b>Статус ККТ</b></para>
2584 /// Запрос счётчиков накоплений на начало смены по типу счётчика
2585 /// </summary>
2586 /// <param name="counter">тип счётчика. Поддерживаются SELL, SELL_REFUND, BUY, BUY_REFUND </param>
2587 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2588 /// <returns>Строковое значение счётчика.</returns>
2589 /// <seealso cref="com.multisoft.drivers.fiscalcore.Counter"/>
2590 String GetGrandTotalsSalesGross(int counter, IExceptionCallback callback);
2591
2592 /// <summary>
2593 /// <para><b>Работа с архивом ФН</b></para>
2594 /// <para>Запрос значения тега по его номеру и номеру документа о (пере)регистрации</para>
2595 /// <para>Рекомендуется использовать вместо IFiscalCore.FDI_GetDocJSON</para>
2596 /// </summary>
2597 /// <param name="regNum">номер регистрации в ФН</param>
2598 /// <param name="tlvNum">номер тега</param>
2599 /// <param name="callback">функция обратного вызова для передачи информации об ошибке.</param>
2600 /// <returns>значение тега из TLV, приведённое к строке</returns>
2601 /// <seealso cref="IFiscalCore.FDI_GetDocJSON"/>
2602 String GetRegistrationParameter(int regNum, int tlvNum, IExceptionCallback callback);
2603
2604 /// <summary>
2605 /// <para><b>Установка основных настроек</b></para>
2606 /// <para>Установить настройку форматно-логического контроля (ФЛК) TLV</para>
2607 /// <para>Значение по умолчанию - false (выкл.)</para>
2608 /// </summary>
2609 /// <param name="newValue">true - контроль вкл, false - выкл.</param>
2610 void SetFLC(boolean newValue);
2611
2612 /// <summary>
2613 /// <para><b>Установка основных настроек</b></para>
2614 /// <para>Получить значение настройки форматно-логического контроля (ФЛК) TLV</para>
2615 /// <para>Значение по умолчанию - false (выкл.)</para>
2616 /// </summary>
2617 /// <returns>true - контроль вкл, false - выкл.</returns>
2618 boolean GetFLC();
2619
2620 /// <summary>
2621 /// <para><b>Чек</b></para>
2622 /// <para>Установка компактного режима печати</para>
2623 /// <para>Normal - (0) обычный режим. Построчная печать.</para>
2624 /// <para>Compact - (1) компактный режим. Печать QR, огибающего текст.</para>
2625 /// </summary>
2626 /// <param name="newValue">код режима</param>
2627 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2628 void SetCompactMode(int newValue, IExceptionCallback callback);
2629
2630 /// <summary>
2631 /// <para><b>Чек</b></para>
2632 /// <para>Получить режим компактной печати</para>
2633 /// </summary>
2634 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2635 /// <returns>Режим компактной печати</returns>
2637
2638 /// <summary>
2639 /// <para><b>Чек</b></para>
2640 /// <para>Печать копии последнего документа</para>
2641 /// </summary>
2642 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2643 /// <returns>true - копия напечалась, false - ошибка</returns>
2645
2646 /// <summary>
2647 /// <para><b>Чек</b></para>
2648 /// <para>Получить строку QR-кода из последнего фискального документа</para>
2649 /// </summary>
2650 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2651 /// <returns>Строка QR-кода</returns>
2653
2654 /// <summary>
2655 /// <para><b>Регистрация</b></para>
2656 /// <para>Регистрация (первоначальная регистрация) по ФФД 1.1. Выполняется 1 раз за всё время жизни ФН.</para>
2657 /// <para>В режиме ЧПМ в качестве параметров необходимо передать корректный ИНН, имя кассира и reg_num, остальные параметры не влияют на результат выполнения.</para>
2658 /// </summary>
2659 /// <param name="cashier">строка - имя и номер кассира</param>
2660 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
2661 /// <param name="reg_num">строка - регистрационный номер ККТ. В режиме ЧПМ - является паролем налогового инспектора: передавать "00000".</param>
2662 /// <param name="tax">байт - код системы налогообложения - битовая маска TaxCode.
2663 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
2664 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
2665 /// <param name="op_mode">байт - код режима работы - битовая маска OperatingMode.
2666 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
2667 /// Может принимать значение 0.</param>
2668 /// <param name="gambling">true или false - признак проведения азартных игр</param>
2669 /// <param name="lottery">true или false - признак проведения лотереи</param>
2670 /// <param name="agent">байт - код платёжного агента - битовая маска AgentTag.
2671 /// Поддеживаемый код платёжного агента устанавливает соответствующий бит в байте.
2672 /// Может принимать значение 0.</param>
2673 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2674 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
2675 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
2676 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
2677 /// <example>
2678 /// <code>
2679 /// //команды настройки полей:
2680 /// String regnum = RegNumTextBox.Text;
2681 /// // ... Формирование РНМ ККТ происходит на стороне ФНС России:
2682 /// // базовый РНМ дополняется лидирующими нулями до длины строки в 10 символов,
2683 /// // затем вычисляется и добавляется контрольная сумма (6 символов).
2684 /// //настройка системы налогообложения
2685 /// int tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
2686 /// //настройка режима работы:
2687 /// int opmode = OperatingMode.Service + OperatingMode.Encryption;
2688 /// //настройка агента:
2689 /// int agent = AgentTag.BankPayAgent + AgentTag.BankPaySubAgent;//установлены 1й и 2й биты
2690 /// //регистрация:
2691 /// IFiscalCore.Register1_1(cashierTextBox.Text, "1234567890", regnum, tax, opmode, false, false, agent, callback);
2692 /// callback.Complete();
2693 /// </code>
2694 /// </example>
2695 void Register1_1(String cashier, String inn, String reg_num, int tax, int op_mode, boolean gambling, boolean lottery, int agent, IExceptionCallback callback);
2696
2697 /// <summary>
2698 /// <para><b>Регистрация</b></para>
2699 /// Исправление регистрации || Перерегистрация, ФФД 1.1
2700 /// </summary>
2701 /// <param name="kktReRegCode">причина перерегистрации RegParamsChangeCode</param>
2702 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
2703 /// <param name="reg_num">строка - регистрационный номер ККТ</param>
2704 /// <param name="tax_code">байт - код системы налогообложения - битовая маска TaxCode.
2705 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
2706 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
2707 /// <param name="opmode">байт - код режима работы - битовая маска OperatingMode.
2708 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
2709 /// Может принимать значение 0.</param>
2710 /// <param name="gambling">true или false - признак проведения азартных игр</param>
2711 /// <param name="lottery">true или false - признак проведения лотереи</param>
2712 /// <param name="agent">байт - код платёжного агента - битовая маска AgentTag.
2713 /// Поддеживаемый код платёжного агента устанавливает соответствующий бит в байте.
2714 /// Может принимать значение 0.</param>
2715 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2716 /// <seealso cref="com.multisoft.drivers.fiscalcore.RegParamsChangeCode"/>
2717 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
2718 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
2719 /// <seealso cref="com.multisoft.drivers.fiscalcore.AgentTag"/>
2720 /// <example>
2721 /// <code>
2722 /// kktReRegCode = (int)RegParamsChangeCode.UsernameChanged;
2723 /// kktRegNum = regNumTextBox.Text;
2724 /// tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
2725 /// opMode = OperatingMode.Service + OperatingMode.Encryption;
2726 /// agentTag = AgentTag.BankPayAgent + AgentTag.BankPaySubAgent;
2727 /// IFiscalCore.CorrectRegistration1_1(kktReRegCode, "Иванов И.И", "1234567890", kktRegNum, (int)opMode, tax, false, false, agentTag, callback);
2728 /// callback.Complete();
2729 /// </code>
2730 /// </example>
2731 void CorrectRegistration1_1(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode,boolean gambling, boolean lottery, int agent, IExceptionCallback callback);
2732
2733 /// <summary>
2734 /// <para><b>Чек коррекции</b></para>
2735 /// <para>Добавление позиции коррекции, ффд 1.1, 1.2</para>
2736 /// </summary>
2737 /// <param name="correctionType">тип коррекци com.multisoft.drivers.fiscalcore.CorrectionRecType</param>
2738 /// <param name="docDate">строка, дата документа основания документа в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</param>
2739 /// <param name="docNum">строка, номер документа основания</param>
2740 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2741 /// <seealso cref="com.multisoft.drivers.fiscalcore.CorrectionRecType"/>
2742 /// <example>
2743 /// работа с чеком коррекции:
2744 /// <code>
2745 /// IFiscalCore.SetUserName(cashier,callback);
2746 /// IFiscalCore.SetTaxationUsing(TaxCode.Common,callback);
2747 /// callback.Complete();
2748 /// IFiscalCore.OpenRec(RecType.SellCorrection,callback);
2749 /// callback.Complete();
2750 /// IFiscalCore.SetItemTaxes((int)TaxNum._20,callback);//без ндс
2751 /// callback.Complete();
2752 /// IFiscalCore.SetShowTaxes(true,callback);
2753 /// callback.Complete();
2754 /// IFiscalCore.SetTagAttribute((int)Tag.ItemProperty, "1", callback); // Товар
2755 /// callback.Complete();
2756 /// IFiscalCore.SetTagAttribute((int)Tag.PaymentProperty, "1", callback); // Предоплата 100%
2757 /// callback.Complete();
2758 /// IFiscalCore.PrintRecItem("1", "100", "товар", "артикул", callback);
2759 /// callback.Complete();
2760 /// string docNum = "32";
2761 /// string docDate = "2020-02-28T19:12:03.000Z";
2762 /// IFiscalCore.AddCorrectionRecItem1_1((int)CorrectionRecType.Independent, docDate, docNum, IExceptionCallback callback);
2763 /// callback.Complete();
2764 /// IFiscalCore.PrintRecTotal(callback);//печать итога
2765 /// callback.Complete();
2766 /// IFiscalCore.PrintRecItemPay((int)PayType.Cash, "100", "НАЛИЧНЫМИ",callback);
2767 /// callback.Complete();
2768 /// IFiscalCore.CloseRec(callback);//закрытие документа
2769 /// callback.Complete();
2770 /// </code>
2771 /// </example>
2772 void AddCorrectionRecItem1_1(int correctionType, String docDate, String docNum, IExceptionCallback callback);
2773
2774 /// <summary>
2775 /// <para><b>Режим рассылки оповещений</b></para>
2776 /// <para>Включение режима рассылки широковещательных оповещений (по-умолчанию режим отключен)</para>
2777 /// </summary>
2778 /// <param name="broadcastOn">true/false - включить/отключить режим широковещательных оповещений</param>
2779 // Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions()
2780 void SetBroadcastMode(boolean broadcastOn, IExceptionCallback callback);
2781
2782 /// <summary>
2783 /// <para><b>Режим рассылки оповещений</b></para>
2784 /// <para>Возвращает состояние режима рассылки широковещательных оповещений</para>
2785 /// </summary>
2786 /// <returns>(true - включен, false - отключен)</returns>
2788
2789 /// <summary>
2790 /// <para><b>Временные настройки</b></para>
2791 /// <para>Получить текущее имя кассира.</para>
2792 /// <para>Не является опцией.</para>
2793 /// </summary>
2794 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2795 /// <returns>строка - имя и номер кассира</returns>
2796 /// <example>
2797 /// <code>
2798 /// String cashierName = IFiscalCore.GetUserName(callback);
2799 /// callback.Complete();
2800 /// </code>
2801 /// </example>
2803
2804 /// <summary>
2805 /// <para><b>Чтение статуса ФН</b></para>
2806 /// Запрос кода версии ФФД которую может поддерживать ФН
2807 /// </summary>
2808 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2809 /// <returns>код версии ФФД которую может поддерживать ФН</returns>
2810 /// <example>
2811 /// <code>
2812 /// int fnFfdVersion = core.FNGetFnFfdVersion(callback);
2813 /// callback.Complete();
2814 /// </code>
2815 /// </example>
2817
2818 /// <summary>
2819 /// <para><b>Регистрация</b></para>
2820 /// <para>Закрытие архива ФН с указанием даты и времени. Необратимая для пользователя операция.</para>
2821 /// <para>После выполнения работа с ФН невозможна до следующей регистрации.</para>
2822 /// </summary>
2823 /// <param name="datetime">дата и время в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</param>
2824 /// <param name="fnNum">номер фн</param>
2825 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2826 /// <example>
2827 /// <code>
2828 /// string docDate = "2020-02-28T19:12:03.000Z";
2829 /// IFiscalCore.CloseFiscalModeWithDateTime(docDate, "9999078900000001", callback);
2830 /// callback.Complete();
2831 /// </code>
2832 /// </example>
2833 void CloseFiscalModeWithDateTime(String datetime, String fnNum, IExceptionCallback callback);
2834
2835 /// <summary>
2836 /// <para><b>Смена</b></para>
2837 /// Напечатать Z-отчёт и закрыть смену с указанием даты и времени
2838 /// </summary>
2839 /// <param name="datetime">дата и время в формате "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'"</param>
2840 /// <param name="cashier">имя и номер кассира</param>
2841 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2842 /// <example>
2843 /// <code>
2844 /// string docDate = "2020-02-28T19:12:03.000Z";
2845 /// IFiscalCore.CloseDayWithDateTime("Иванов И.И", docDate, callback);
2846 /// callback.Complete();
2847 /// </code>
2848 /// </example>
2849 void CloseDayWithDateTime(String cashier, String datetime, IExceptionCallback callback);
2850
2851 /// <summary>
2852 /// <para><b>Регистрация</b></para>
2853 /// <para>Регистрация (первоначальная регистрация) по ФФД 1.2. Выполняется 1 раз за всё время жизни ФН.</para>
2854 /// </summary>
2855 /// <param name="cashier">строка - имя и номер кассира</param>
2856 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
2857 /// <param name="reg_num">строка - регистрационный номер ККТ. В режиме ЧПМ - является паролем налогового инспектора: передавать "00000".</param>
2858 /// <param name="tax">байт - код системы налогообложения - битовая маска TaxCode.
2859 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
2860 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
2861 /// <param name="op_mode">байт - код режима работы - битовая маска OperatingMode.
2862 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
2863 /// Может принимать значение 0.</param>
2864 /// <param name="gambling">true или false - признак проведения азартных игр</param>
2865 /// <param name="lottery">true или false - признак проведения лотереи</param>
2866 /// <param name="excise">true или false - признак продажи подакцизного товара<</param>
2867 /// <param name="marking">true или false - признак работы с маркированными товарами</param>
2868 /// <param name="lombard">true или false - признак осуществления ломбардной деятельности</param>
2869 /// <param name="insurance">true или false - признак осуществления страховой деятельности</param>
2870 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2871 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
2872 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
2873 /// <example>
2874 /// <code>
2875 /// //команды настройки полей:
2876 /// String regnum = RegNumTextBox.Text;
2877 /// // ... Формирование РНМ ККТ происходит на стороне ФНС России:
2878 /// // базовый РНМ дополняется лидирующими нулями до длины строки в 10 символов,
2879 /// // затем вычисляется и добавляется контрольная сумма (6 символов).
2880 /// //настройка системы налогообложения
2881 /// int tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
2882 /// //настройка режима работы:
2883 /// int opmode = OperatingMode.Service + OperatingMode.Encryption;
2884 /// //регистрация:
2885 /// IFiscalCore.Register1_2(cashierTextBox.Text, "1234567890", regnum, tax, opmode, false, false, false, true, false, false, callback);
2886 /// callback.Complete();
2887 /// </code>
2888 /// </example>
2889 void Register1_2(String cashier, String inn, String reg_num, int tax, int op_mode, boolean gambling, boolean lottery, boolean excise, boolean marking, boolean lombard, boolean insurance, IExceptionCallback callback);
2890
2891 /// <summary>
2892 /// <para><b>Регистрация</b></para>
2893 /// Исправление регистрации || Перерегистрация, ФФД 1.2
2894 /// </summary>
2895 /// <param name="kktReRegCode">причина перерегистрации RegParamsChangeCode</param>
2896 /// <param name="cashier">строка - имя и номер кассира</param>
2897 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
2898 /// <param name="reg_num">строка - регистрационный номер ККТ</param>
2899 /// <param name="tax_code">байт - код системы налогообложения - битовая маска TaxCode.
2900 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
2901 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
2902 /// <param name="opmode">байт - код режима работы - битовая маска OperatingMode.
2903 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
2904 /// Может принимать значение 0.</param>
2905 /// <param name="gambling">true или false - признак проведения азартных игр</param>
2906 /// <param name="lottery">true или false - признак проведения лотереи</param>
2907 /// <param name="excise">true или false - признак продажи подакцизного товара<</param>
2908 /// <param name="marking">true или false - признак работы с маркированными товарами</param>
2909 /// <param name="lombard">true или false - признак осуществления ломбардной деятельности</param>
2910 /// <param name="insurance">true или false - признак осуществления страховой деятельности</param>
2911 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2912 /// <seealso cref="com.multisoft.drivers.fiscalcore.RegParamsChangeCode"/>
2913 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
2914 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
2915 /// <example>
2916 /// <code>
2917 /// kktReRegCode = (int)RegParamsChangeCode.UsernameChanged;
2918 /// kktRegNum = regNumTextBox.Text;
2919 /// tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
2920 /// opMode = OperatingMode.Service + OperatingMode.Encryption;
2921 /// IFiscalCore.CorrectRegistration1_2(kktReRegCode, "Иванов И.И", "1234567890", kktRegNum, (int)opMode, tax, false, false, false, true, false, false, callback);
2922 /// callback.Complete();
2923 /// </code>
2924 /// </example>
2925 void CorrectRegistration1_2(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode, boolean gambling, boolean lottery, boolean excise, boolean marking, boolean lombard, boolean insurance, IExceptionCallback callback);
2926
2927 /// <summary>
2928 /// <para><b>Чек</b></para>
2929 /// <para>Установка атрибутов тега STLV по номеру.</para>
2930 /// <param name="tag">Номер STLV</param>
2931 /// <param name="tlv">Номер TLV</param>
2932 /// <param name="value">Данные TLV/param>
2933 /// <example>
2934 /// <code>
2935 /// stlv = 1270;
2936 /// tlv = new int[] { 1271, 1272, 1273 };
2937 /// value = new string[] { "0", "1234", "2021-06-08T12:00:00.000Z" };
2938 /// IFiscalCore.SetSTLVTagAttribute(stlv, tlv, value, callback);
2939 /// callback.Complete();
2940 /// </code>
2941 /// </example>
2942 void SetSTLVTagAttribute(int tag, in int[] tlv, in String[] value, IExceptionCallback callback);
2943
2944 // **************************** Параметры ОИСМ ****************************
2945
2946 /// <summary>
2947 /// <para><b>Установка параметров ОИСМ</b></para>
2948 /// Установка адреса сервера ОИСМ для подключения
2949 /// </summary>
2950 /// <param name="host">сервер ОИСМ, например, "test.server.oism" или "11.2.222.11"</param>
2951 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2952 void SetOismHost(String host, IExceptionCallback callback);
2953
2954 /// <summary>
2955 /// <para><b>Запрос параметров ОИСМ</b></para>
2956 /// Запрос адреса сервера ОИСМ
2957 /// </summary>
2958 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2959 /// <returns>адрес сервера, например "test.server.oism" или "11.2.222.11"</returns>
2961
2962 /// <summary>
2963 /// <para><b>Установка параметров ОИСМ</b></para>
2964 /// Установка порта сервера ОИСМ для подключения
2965 /// </summary>
2966 /// <param name="port">порт, например 9999</param>
2967 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2968 void SetOismPort(int port, IExceptionCallback callback);
2969
2970 /// <summary>
2971 /// <para><b>Запрос параметров ОИСМ</b></para>
2972 /// Запрос порта ОИСМ
2973 /// </summary>
2974 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2975 /// <returns>порт сервера, например, 12345</returns>
2977
2978 // **************************************************************************
2979
2980 // **************************** Параметры АС ОКП ****************************
2981
2982 /// <summary>
2983 /// <para><b>Установка параметров АС ОКП</b></para>
2984 /// Установка адреса сервера АС ОКП для подключения
2985 /// </summary>
2986 /// <param name="host">сервер АСОКП, например, "test.server.a" или "11.2.222.11"</param>
2987 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2988 void SetKeyServerHost(String host, IExceptionCallback callback);
2989
2990 /// <summary>
2991 /// <para><b>Запрос параметров АС ОКП</b></para>
2992 /// Запрос адреса сервера АС ОКП
2993 /// </summary>
2994 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
2995 /// <returns>адрес сервера, например "test.server.keyserver" или "11.2.222.11"</returns>
2997
2998 /// <summary>
2999 /// <para><b>Установка параметров АС ОКП</b></para>
3000 /// Установка порта сервера АС ОКП для подключения
3001 /// </summary>
3002 /// <param name="port">порт, например 9999</param>
3003 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3004 void SetKeyServerPort(int port, IExceptionCallback callback);
3005
3006 /// <summary>
3007 /// <para><b>Запрос параметров АС ОКП</b></para>
3008 /// Запрос порта АС ОКП
3009 /// </summary>
3010 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3011 /// <returns>порт сервера, например, 12345</returns>
3013
3014 // **************************************************************************
3015
3016 // ******************************* Маркировка *******************************
3017
3018 /// <summary>
3019 /// <para><b>Маркировка</b></para>
3020 /// Передача маркировки на проверку в ФН
3021 /// </summary>
3022 /// <param name="code">Полное значение КМ, включая код проверки, без терминирующего 0, если он есть.</param>
3023 /// <param name="codeType">Тип кода маркировки соответствует значению реквизита ФФД «тип кода маркировки» (тег 2100).</param>
3024 /// <param name="offset91">Смещение в байтах от начала КМ до первого байта («39h») идентификатора применения GS1 «91», содержащего идентификатор ключа проверки КМ.</param>
3025 /// <param name="offset92">Смещение в байтах от начала КМ до первого байта («39h») идентификатора применения GS1 «92», содержащего идентификатор ключа проверки КМ.</param>
3026 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3027 /// <returns>массив байт, [0] - Результат проверки КМ в ФН (тег 2004), [1] - Причина того, что КМ не был проверен в ФН</returns>
3028 byte[] SendMarkupCodeFnCheck(String code, int codeType, int offset91, int offset92, IExceptionCallback callback);
3029
3030 /// <summary>
3031 /// <para><b>Маркировка</b></para>
3032 /// Передача маркировки на проверку в ОИСМ
3033 /// </summary>
3034 /// <param name="processingMode">Режим обработки кода маркировки (тег 2102)</param>
3035 /// <param name="plannedStatus">Планируемый статус товара (тег 2003)</param>
3036 /// <param name="count">Количество предметов расчёта (тег 1023)</param>
3037 /// <param name="measureUnit">Мера количества предмета расчёта (тег 2108)</param>
3038 /// <param name="numeratorFraction">Числитель реквизита дробное количество маркированного товара (тег 1293)</param>
3039 /// <param name="denominatorFraction">Знаменатель реквизита дробное количество маркированного товара (тег 1294)</param>
3040 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3041 void SendMarkupCodeOismCheck(int processingMode, int plannedStatus, String count, String measureUnit, String numeratorFraction, String denominatorFraction, IExceptionCallback callback);
3042
3043 /// <summary>
3044 /// <para><b>Маркировка</b></para>
3045 /// Сохранение результатов проверки КМ в ФН
3046 /// </summary>
3047 /// <param name="save">Состояние результата проверки КМ</param>
3048 /// <param name="callback">Функция обратного вызова для передачи информации об ошибке</param>
3049 /// <returns>Результат проверки сведений о товаре (тег 2106)</returns>
3051
3052 /// <summary>
3053 /// <para><b>Маркировка</b></para>
3054 /// Очистка всех результатов проверки КМ в ФН
3055 /// </summary>
3057
3058 /// <summary>
3059 /// <para><b>Маркировка</b></para>
3060 /// Ответ от ОИСМ
3061 /// </summary>
3062 /// <param name="callback">Функция обратного вызова для передачи информации об ошибке</param>
3063 /// <param name="oismCallback">Функция обратного вызова для получения результата проверки в ОИСМ</param>
3065
3066 /// <summary>
3067 /// <para><b>Статус ККТ</b></para>
3068 /// Запрос используемой версии ФФД
3069 /// </summary>
3070 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3071 /// <returns>код используемой версии ФФД</returns>
3072 /// <seealso cref="com.multisoft.drivers.fiscalcore.FfdVersion"/>
3073 /// <example>
3074 /// <code>
3075 /// int ffdVersion = core.GetCurrentFfdVersion(callback);
3076 /// callback.Complete();
3077 /// </code>
3078 /// </example>
3080
3081 /// <summary>
3082 /// <para><b>Статус ККТ</b></para>
3083 /// Запрос версии модели
3084 /// </summary>
3085 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3086 /// <returns>код версии модели ККТ</returns>
3087 /// <example>
3088 /// <code>
3089 /// String kktVersion = core.GetKktVersion(callback);
3090 /// callback.Complete();
3091 /// </code>
3092 /// </example>
3094
3095 /// <summary>
3096 /// <para><b>Статус ККТ</b></para>
3097 /// Запрос максимальной версии ФФД поддерживаемой ККТ
3098 /// </summary>
3099 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3100 /// <returns>код максимальной версии ФФД поддерживаемой ККТ</returns>
3101 /// <seealso cref="com.multisoft.drivers.fiscalcore.FfdVersion"/>
3102 /// <example>
3103 /// <code>
3104 /// int ffdVersion = core.GetKktFfdVersion(callback);
3105 /// callback.Complete();
3106 /// </code>
3107 /// </example>
3109
3110 /// <summary>
3111 /// <para><b>Установка дополнительных настроек</b></para>
3112 /// <para>Включение режима печати Z отчёта без внутренних счётчиков (по-умолчанию режим отключен)</para>
3113 /// </summary>
3114 /// <param name="printZReportWithoutInternalСounters">true/false - включить/отключить режим печати Z отчёта без внутренних счётчиков</param>
3115 // Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions()
3116 void SetPrintZReportWithoutInternalCounters(boolean printZReportWithoutInternalCounters, IExceptionCallback callback);
3117
3118 /// <summary>
3119 /// <para><b>Запрос дополнительных настроек</b></para>
3120 /// <para>Возвращает состояние режима печати Z отчёта без внутренних счётчиков</para>
3121 /// </summary>
3122 /// <returns>(true - включен, false - отключен)</returns>
3124
3125 /// <summary>
3126 /// <para><b>Установка дополнительных настроек</b></para>
3127 /// <para>Включение режима отключения печати автотеста (по-умолчанию печать автотеста включена)</para>
3128 /// </summary>
3129 /// <param name="muteAutotest">true/false - включить/отключить режим отключения печати автотеста </param>
3130 // Чтобы при следующей загрузке ядра настройки были применены, их нужно сохранить функцией IFiscalCore.SaveOptions()
3131 void SetMuteAutotest(boolean muteAutotest, IExceptionCallback callback);
3132
3133 /// <summary>
3134 /// <para><b>Запрос дополнительных настроек</b></para>
3135 /// <para>Возвращает состояние режима отключения печати автотеста</para>
3136 /// </summary>
3137 /// <returns>(true - включен, false - отключен)</returns>
3139
3140 /// <summary>
3141 /// <para><b>Получить состояние по передачи уведомлений</b></para>
3142 /// </summary>
3144
3145 /// <summary>
3146 /// <para><b>Получить статус передачи уведомлений</b></para>
3147 /// </summary>
3149
3150 /// <summary>
3151 /// <para><b>Получить количество уведомлений в очереди</b></para>
3152 /// </summary>
3154
3155 /// <summary>
3156 /// <para><b>Получить номер текущего уведомления</b></para>
3157 /// </summary>
3159
3160 /// <summary>
3161 /// <para><b>Получить процент заполнения области хранения уведомлений</b></para>
3162 /// </summary>
3164
3165 /// <summary>
3166 /// <para><b>Получить дату и время текущего уведомления</b></para>
3167 /// </summary>
3169
3170 /// <summary>
3171 /// <para><b>Маркировка</b></para>
3172 /// Передача маркировки для объемно-сортового учета
3173 /// </summary>
3174 /// <param name="code">КМ для объемно-сортового учета</param>
3175 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3177
3178 /// <summary>
3179 /// <para><b>plaftorm-specific</b></para>
3180 /// <para><b>Для внутреннего использования</b></para>
3181 /// Запрос SN устройства
3182 /// </summary>
3183 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3184 /// <returns>строка c SN</returns>
3186
3187 /// <summary>
3188 /// <para><b>Чек</b></para>
3189 /// Установка параметров QR
3190 /// </summary>
3191 /// <param name="param">Параметр</param>
3192 /// <param name="value">Значение параметра</param>
3193 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3194 /// <seealso cref="com.multisoft.drivers.fiscalcore.QRParam"/>
3195 void SetQRParam(int param, int value, IExceptionCallback callback);
3196
3197 /// <summary>
3198 /// <para><b>Регистрация</b></para>
3199 /// <para>Регистрация (первоначальная регистрация) по ФФД 1.2. Выполняется 1 раз за всё время жизни ФН.</para>
3200 /// </summary>
3201 /// <param name="cashier">строка - имя и номер кассира</param>
3202 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
3203 /// <param name="reg_num">строка - регистрационный номер ККТ. В режиме ЧПМ - является паролем налогового инспектора: передавать "00000".</param>
3204 /// <param name="tax">байт - код системы налогообложения - битовая маска TaxCode.
3205 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
3206 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
3207 /// <param name="op_mode">байт - код режима работы - битовая маска OperatingMode.
3208 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
3209 /// Может принимать значение 0.</param>
3210 /// <param name="extended_op_mode">байт - расширенные признаки работы ККТ - битовая маска ExtendedOperatingMode.
3211 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
3212 /// Может принимать значение 0.</param>
3213 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3214 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
3215 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
3216 /// <seealso cref="com.multisoft.drivers.fiscalcore.ExtendedOperatingMode"/>
3217 /// <example>
3218 /// <code>
3219 /// //команды настройки полей:
3220 /// String regnum = RegNumTextBox.Text;
3221 /// // ... Формирование РНМ ККТ происходит на стороне ФНС России:
3222 /// // базовый РНМ дополняется лидирующими нулями до длины строки в 10 символов,
3223 /// // затем вычисляется и добавляется контрольная сумма (6 символов).
3224 /// //настройка системы налогообложения
3225 /// int tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
3226 /// //настройка режима работы:
3227 /// int opmode = OperatingMode.Service + OperatingMode.Encryption;
3228 /// //настройка расширенных признаков работы ККТ
3229 /// int extended_opmode = ExtendedOperatingMode.Marking + ExtendedOperatingMode.VendingMachine;
3230 /// //регистрация:
3231 /// IFiscalCore.Register1_2_A(cashierTextBox.Text, "1234567890", regnum, tax, opmode, extended_opmode, callback);
3232 /// callback.Complete();
3233 /// </code>
3234 /// </example>
3235 void Register1_2_A(String cashier, String inn, String reg_num, int tax, int op_mode, int extended_op_mode, IExceptionCallback callback);
3236
3237 /// <summary>
3238 /// <para><b>Регистрация</b></para>
3239 /// Исправление регистрации || Перерегистрация, ФФД 1.2
3240 /// </summary>
3241 /// <param name="kktReRegCode">причина перерегистрации RegParamsChangeCode</param>
3242 /// <param name="cashier">строка - имя и номер кассира</param>
3243 /// <param name="inn">строка - ИНН пользователя при регистрации</param>
3244 /// <param name="reg_num">строка - регистрационный номер ККТ</param>
3245 /// <param name="tax_code">байт - код системы налогообложения - битовая маска TaxCode.
3246 /// Поддеживаемый тип налогов устанавливает соответствующий бит в байте.
3247 /// Для корректной работы необходимо установить хотя бы один бит в 1.</param>
3248 /// <param name="opmode">байт - код режима работы - битовая маска OperatingMode.
3249 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
3250 /// Может принимать значение 0.</param>
3251 /// <param name="extended_op_mode">байт - расширенные признаки работы ККТ - битовая маска ExtendedOperatingMode.
3252 /// Поддеживаемый режим работы устанавливает соответствующий бит в байте.
3253 /// Может принимать значение 0.</param>
3254 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3255 /// <seealso cref="com.multisoft.drivers.fiscalcore.RegParamsChangeCode"/>
3256 /// <seealso cref="com.multisoft.drivers.fiscalcore.TaxCode"/>
3257 /// <seealso cref="com.multisoft.drivers.fiscalcore.OperatingMode"/>
3258 /// <seealso cref="com.multisoft.drivers.fiscalcore.ExtendedOperatingMode"/>
3259 /// <example>
3260 /// <code>
3261 /// kktReRegCode = (int)RegParamsChangeCode.UsernameChanged;
3262 /// kktRegNum = regNumTextBox.Text;
3263 /// tax = TaxCode.Common + TaxCode.SimplifiedWithExpense + TaxCode.ENVD;
3264 /// opMode = OperatingMode.Service + OperatingMode.Encryption;
3265 /// extended_opmode = ExtendedOperatingMode.Marking + ExtendedOperatingMode.VendingMachine;
3266 /// IFiscalCore.CorrectRegistration1_2_A(kktReRegCode, "Иванов И.И", "1234567890", kktRegNum, (int)opMode, (int)extended_opmode, callback);
3267 /// callback.Complete();
3268 /// </code>
3269 /// </example>
3270 void CorrectRegistration1_2_A(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode, int extended_op_mode, IExceptionCallback callback);
3271
3272 /// <summary>
3273 /// <para><b>Запрос статуса ФН по работе с кодами маркировки</b></para>
3274 /// <para>Возвращает статус ФН по разрешению не формировать запрос о коде маркировки</para>
3275 /// </summary>
3276 /// <returns>(true - есть разрешение, false - нет разрешения)</returns>
3278
3279 /// <summary>
3280 /// <para><b>Запрос статуса ФН по работе с кодами маркировки</b></para>
3281 /// <para>Возвращает статус ФН по поддержке битов 14, 15, 16 в теге 1290</para>
3282 /// </summary>
3283 /// <returns>(true - есть поддержка, false - нет поддержки)</returns>
3285
3286 /// <summary>
3287 /// <para>Возвращает заголовок чека - строки, печатающиеся до чека</para>
3288 /// </summary>
3289 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3291
3292 /// <summary>
3293 /// <para>Возвращает дополнительные строки, печатающиеся после чека</para>
3294 /// </summary>
3295 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3297
3298 /// <summary>
3299 /// <para>Устанавливает тег 1011 (Часовая зона)</para>
3300 /// </summary>
3301 /// <param name="timeZone">Часовоая зона</param>
3302 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3303 /// <seealso cref="com.multisoft.drivers.fiscalcore.TimeZoneNum"/>
3304 void SetTimeZone(int timeZone, IExceptionCallback callback);
3305
3306 /// <summary>
3307 /// <para>Возвращает установленное значение тега 1011 (Часовая зона)</para>
3308 /// </summary>
3309 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3310 /// <seealso cref="com.multisoft.drivers.fiscalcore.TimeZoneNum"/>
3312
3313 /// <summary>
3314 /// <para>Устанавливает режим группировки позиций в чеке при печати</para>
3315 /// </summary>
3316 /// <param name="groupItems">true или false - признак проведения лотереи</param>
3317 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3318 void SetGroupItems(boolean groupItems, IExceptionCallback callback);
3319
3320 /// <summary>
3321 /// <para>Возвращает статус режима группировки позиций в чеке при печати</para>
3322 /// </summary>
3323 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3325
3326 /// <summary>
3327 /// <para>Сканирует код</para>
3328 /// <para>Устаревший метод. Используйте GetScanner().</para>
3329 /// </summary>
3330 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3332
3333 /// <summary>
3334 /// <para>Возвращает интерфейс аппаратного сканера, или null, если устройство его не поддерживает</para>
3335 /// <para>Если устройство не готово, callback вернёт ErrCode.Hardware=4, ExtHardwareErr.Initialization=0</para>
3336 /// <para>Если устройство не поддерживает сканер, callback вернёт ErrCode.Hardware=4, ExtHardwareErr.Null=1</para>
3337 /// </summary>
3338 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3340
3341 /// <summary>
3342 /// <para>Возвращает интерфейс второго дисплея, или null, если устройство его не поддерживает</para>
3343 /// <para>Если устройство не готово, callback вернёт ErrCode.Hardware=4, ExtHardwareErr.Initialization=0</para>
3344 /// <para>Если устройство не поддерживает второй дисплей, callback вернёт ErrCode.Hardware=4, ExtHardwareErr.Null=1</para>
3345 /// </summary>
3346 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3348
3349 /// <summary>
3350 /// <para>Возвращает интерфейс ТСПИоТ</para>
3351 /// </summary>
3352 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3354
3355 /// <summary>
3356 /// <para>Устанавливает лицензию ТС ПИоТ</para>
3357 /// </summary>
3358 /// <param name="license">лицензия ТС ПИоТ</param>
3359 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3360 void SetLicenseTspiot(String license, IExceptionCallback callback);
3361
3362 /// <summary>
3363 /// <para>Возвращает лицензию ТС ПИоТ</para>
3364 /// </summary>
3365 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3367
3368 /// <summary>
3369 /// <para>Блокирована ли ККТ</para>
3370 /// </summary>
3371 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3373
3374 /// <summary>
3375 /// <para><b>Запрос дополнительных настроек</b></para>
3376 /// <para>Автоинкассация при закрытии смены.</para>
3377 /// </summary>
3378 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3380
3381 /// <summary>
3382 /// <para><b>Запрос дополнительных настроек</b></para>
3383 /// <para>Настройка флага отрезки.</para>
3384 /// <para>Возможные значения:</para>
3385 /// </summary>
3386 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3387 /// <seealso cref="com.multisoft.drivers.fiscalcore.CutType"/>
3389
3390 /// <summary>
3391 /// <para><b>Запрос дополнительных настроек</b></para>
3392 /// <para>упреждающая печати заголовка.</para>
3393 /// Запрос упреждающей печати заголовка.
3394 /// <para>если true, заголовок следующего чека печатается после окончания печати предыдущего</para>
3395 /// <para>если false, заголовок печатается перед печатью чека.</para>
3396 /// </summary>
3397 /// <param name="callback">функция обратного вызова для передачи информации об ошибке</param>
3399}
Коллбек авторизации.
Определения IAuth.idl:8
Коллбек об ошибке.
Определения IExceptionCallback.idl:7
Определения IFiscalCore.idl:374
String GetReceiptCheckURI(IExceptionCallback callback)
int FNGetFnFfdVersion(IExceptionCallback callback)
int GetDayNumber(IExceptionCallback callback)
void SelfTest(IExceptionCallback callback)
void OpenRec(int recType, IExceptionCallback callback)
String GetDeviceSn(IExceptionCallback callback)
int FNGetRegistrationsMade(IExceptionCallback callback)
String GetLang(IExceptionCallback callback)
void SetTimeZone(int timeZone, IExceptionCallback callback)
boolean GetExtendedAutotest(IExceptionCallback callback)
boolean GetFiscalMemoryFiscalized(IExceptionCallback callback)
int FNGetWarningFlags(IExceptionCallback callback)
String GetOrgName(IExceptionCallback callback)
byte[] SendMarkupCodeFnCheck(String code, int codeType, int offset91, int offset92, IExceptionCallback callback)
int GetRecType(IExceptionCallback callback)
int NotificationStatusOut_GetStatus(IExceptionCallback callback)
String GetKktVersion(IExceptionCallback callback)
int FDI_GetDocType(IExceptionCallback callback)
void SetOismHost(String host, IExceptionCallback callback)
void Register1_2(String cashier, String inn, String reg_num, int tax, int op_mode, boolean gambling, boolean lottery, boolean excise, boolean marking, boolean lombard, boolean insurance, IExceptionCallback callback)
String OfdOut_GetFiscalSign(IExceptionCallback callback)
int FNGetRegistrationsLeft(IExceptionCallback callback)
String FNGetRegTimeByNum(int regNum, IExceptionCallback callback)
String NotificationStatusOut_GetCurrentDateTime(IExceptionCallback callback)
String FDI_GetDocJSON()
void AddCorrectionRecItem1_1(int correctionType, String docDate, String docNum, IExceptionCallback callback)
String FNGetSoftwareVersion(IExceptionCallback callback)
int GetTimeZone(IExceptionCallback callback)
boolean GetFLC()
void CorrectRegistration(int corr_reason, String cashier, String inn, String reg_num, int tax_code, int op_mode, boolean gambling, boolean lottery, int agent, IExceptionCallback callback)
int OFDGetConnectionStatus(IExceptionCallback callback)
long FNGetLastFiscalSign(IExceptionCallback callback)
void Register(String cashier, String inn, String reg_num, int tax, int op_mode, boolean gambling, boolean lottery, int agent, IExceptionCallback callback)
void SetKeyServerHost(String host, IExceptionCallback callback)
String GetPayTotal(int counterType, IExceptionCallback callback)
long OfdOut_GetFDNumber(IExceptionCallback callback)
String FNGetLastDocDateTime(IExceptionCallback callback)
void SetReceiptCheckURI(String text, IExceptionCallback callback)
int NotificationStatusOut_GetFillPercentage(IExceptionCallback callback)
void SetMuteAutotest(boolean muteAutotest, IExceptionCallback callback)
void CloseDayWithDateTime(String cashier, String datetime, IExceptionCallback callback)
void SetOfdTaxId(String text, IExceptionCallback callback)
String GetOfdName(IExceptionCallback callback)
boolean FDI_GetConfirmFromOFD(IExceptionCallback callback)
int GetTaxation(IExceptionCallback callback)
void SetTagPrintForm(int tag, int printForm, IExceptionCallback callback)
String GetAidlVersion()
int FNGetRegFDByNum(int regNum, IExceptionCallback callback)
void ContinueDateTime()
String GetPhysicalAddress(IExceptionCallback callback)
boolean PrintRecCopy(IExceptionCallback callback)
void SetOfdPort(int port, IExceptionCallback callback)
void CorrectRegistration1_1(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode, boolean gambling, boolean lottery, int agent, IExceptionCallback callback)
void SetFont(int fontSize, IExceptionCallback callback)
int GetDayPayCount(int counterType, IExceptionCallback callback)
void SetTransferOperatorTaxId(String text, IExceptionCallback callback)
String GetPaymentAgentTelNum(IExceptionCallback callback)
String GetTransferOperatorTelNum(IExceptionCallback callback)
void CloseDay(String cashier, IExceptionCallback callback)
String GetDayCanceledTotal(IExceptionCallback callback)
void SetCompactMode(int newValue, IExceptionCallback callback)
int GetKeyServerPort(IExceptionCallback callback)
void PrintRecItem(String count, String price, String itemname, String article, IExceptionCallback callback)
void SetTransferOperatorTelNum(String text, IExceptionCallback callback)
void SetSenderEmail(String text, IExceptionCallback callback)
void CheckDrawerCash(String total, IExceptionCallback callback)
boolean GetMuteAutotest(IExceptionCallback callback)
void SetShowTaxes(boolean val, IExceptionCallback callback)
String GetTrailerLines(IExceptionCallback callback)
ISecondDisplay GetSecondDisplay(IExceptionCallback callback)
void GetMarkupCodeOismResult(IExceptionCallback callback, IOismResultCallback oismCallback)
boolean GetPrintZReportWithoutInternalCounters(IExceptionCallback callback)
int NotificationStatusOut_GetCount(IExceptionCallback callback)
String FDI_GetDataArray(IExceptionCallback callback)
String FDI_GetDate()
String GetOrgAddress(IExceptionCallback callback)
String GetUserName(IExceptionCallback callback)
void SetCommissionAgentTelNum(String text, IExceptionCallback callback)
String GetTaxId(IExceptionCallback callback)
IScanner GetScanner(IExceptionCallback callback)
void CloseFiscalModeWithDateTime(String datetime, String fnNum, IExceptionCallback callback)
void RecVoid(IExceptionCallback callback)
void SendClientAddress(String addr, IExceptionCallback callback)
void Register1_1(String cashier, String inn, String reg_num, int tax, int op_mode, boolean gambling, boolean lottery, int agent, IExceptionCallback callback)
String GetLicenseTspiot(IExceptionCallback callback)
void SetSumTaxes(in int[] taxNum, in String[] taxSum, IExceptionCallback callback)
void SetTagByteAttribute(int tag, in byte[] value, IExceptionCallback callback)
String GetTransferOperatorTaxId(IExceptionCallback callback)
int GetAgentTag(IExceptionCallback callback)
int GetRecState(IExceptionCallback callback)
boolean IsKktBlocked(IExceptionCallback callback)
String GetDayPayTotalByDocType(int docType, int payType, IExceptionCallback callback)
boolean OFDGetMessageStatus(IExceptionCallback callback)
int GetKktFfdVersion(IExceptionCallback callback)
void SetPrintZReportWithoutInternalCounters(boolean printZReportWithoutInternalCounters, IExceptionCallback callback)
String GetUUID(IExceptionCallback callback)
void SetCutType(int newValue, IExceptionCallback callback)
void SetPaperWidth(boolean narrowWide, IExceptionCallback callback)
String GetRegNum(IExceptionCallback callback)
void SetTransferOperatorAddress(String text, IExceptionCallback callback)
void SetOismPort(int port, IExceptionCallback callback)
void SetDayCloseAutoPayOut(boolean newState, IExceptionCallback callback)
String GetGrandTotalsSalesGross(int counter, IExceptionCallback callback)
int GetDayState(IExceptionCallback callback)
String OFDGetLastNotSentDocTime(IExceptionCallback callback)
void SetQRParam(int param, int value, IExceptionCallback callback)
String GetFiscalModuleVersion(IExceptionCallback callback)
void PrintRecItemPay(int type, String total, String itemText, IExceptionCallback callback)
String OfdOut_GetTime(IExceptionCallback callback)
String GetPaymentAgentOperation(IExceptionCallback callback)
String GetRegistrationParameter(int regNum, int tlvNum, IExceptionCallback callback)
void SetAgentTagUsing(int agent, IExceptionCallback callback)
int OFDGetQueuedMessagesCount(IExceptionCallback callback)
void FreezeDateTime(String dateTime, IExceptionCallback callback)
boolean GetPrePrintHeaderLines(IExceptionCallback callback)
long FDI_GetFiscalSign()
void ForcePrintForm(boolean printNextDocument, IExceptionCallback callback)
void SetTrailerLines(in List< String > trailer, IExceptionCallback callback)
int GetOfdPort(IExceptionCallback callback)
int GetCompactMode(IExceptionCallback callback)
void OpenDrawer(IExceptionCallback callback)
int GetCurrentFfdVersion(IExceptionCallback callback)
String ScanCode(IExceptionCallback callback)
String GetCommissionAgentTelNum(IExceptionCallback callback)
String FNGetNumber(IExceptionCallback callback)
void SetTagAttribute(int tag, String value, IExceptionCallback callback)
void SaveOptions(IExceptionCallback callback)
void SetSerial(String serial, IExceptionCallback callback)
void PrintQRCode(String value, int align, IExceptionCallback callback)
boolean GetFnSupportedNewBitsInTag1290(IExceptionCallback callback)
void SetLicenseTspiot(String license, IExceptionCallback callback)
String GetOismHost(IExceptionCallback callback)
void SetOfdName(String text, IExceptionCallback callback)
void SetExtendedAutotest(boolean newstate, IExceptionCallback callback)
long NotificationStatusOut_GetCurrentNumber(IExceptionCallback callback)
String GetCashierTaxId(IExceptionCallback callback)
int OFDGetFirstQueuedDocNumber(IExceptionCallback callback)
void FNMakeCorrectionRec(int operation, String cash, String emoney, String advance, String credit, String other, int taxNum, int corrType, String docName, String docDate, String docNum, IExceptionCallback callback)
void SetVendingSerial(String text, IExceptionCallback callback)
void SetKeyServerPort(int port, IExceptionCallback callback)
void PrintRecTotalRound(String total, IExceptionCallback callback)
String GetTransferOperatorAddress(IExceptionCallback callback)
String GetOfdTaxId(IExceptionCallback callback)
int FNGetFirmwareType(IExceptionCallback callback)
void QueryFiscalDocInfo(int docNum, IExceptionCallback callback)
int FNGetDocDataStatus(IExceptionCallback callback)
String FNGetRegTimeFirst(IExceptionCallback callback)
String GetVendingSerial(IExceptionCallback callback)
String GetOfdHost(IExceptionCallback callback)
int FNGetOpModeByNum(int regNum, IExceptionCallback callback)
void QueryNotificationStatus(IExceptionCallback callback)
void SetTaxationUsing(int tax, IExceptionCallback callback)
boolean GetDayCloseAutoPayOut(IExceptionCallback callback)
void SetCashierTaxId(String text, IExceptionCallback callback)
void SetOfdHost(String host, IExceptionCallback callback)
void CorrectRegistration1_2(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode, boolean gambling, boolean lottery, boolean excise, boolean marking, boolean lombard, boolean insurance, IExceptionCallback callback)
int OfdOut_GetSize(IExceptionCallback callback)
void SetContractorTelNum(String text, IExceptionCallback callback)
void Register1_2_A(String cashier, String inn, String reg_num, int tax, int op_mode, int extended_op_mode, IExceptionCallback callback)
void SetTransferOperatorName(String text, IExceptionCallback callback)
void PrintXReport(IExceptionCallback callback)
int GetCutType(IExceptionCallback callback)
ITspiot GetTspiot(IExceptionCallback callback)
void SetGroupItems(boolean groupItems, IExceptionCallback callback)
int SaveMarkupCodeCheckResult(boolean save, IExceptionCallback callback)
void SetFnsServerAddress(String text, IExceptionCallback callback)
void PrintRaster(in byte[] rawFileData, IExceptionCallback callback)
void SetItemTaxes(int taxNum, IExceptionCallback callback)
void SetUserName(String cashier, IExceptionCallback callback)
void FNResetDebug(IExceptionCallback callback)
void SetOrgAddress(String text, IExceptionCallback callback)
String GetContractorTelNum(IExceptionCallback callback)
int FNGetLastFDNumber(IExceptionCallback callback)
String GetTransferOperatorName(IExceptionCallback callback)
boolean GetBroadcastMode(IExceptionCallback callback)
void CorrectRegistration1_2_A(int kktReRegCode, String cashier, String inn, String reg_num, int tax_code, int op_mode, int extended_op_mode, IExceptionCallback callback)
String GetLastQRCodeValue(IExceptionCallback callback)
void QueryOFDReceiptByNum(int docnum, IExceptionCallback callback)
int FNGetState(IExceptionCallback callback)
boolean GetGroupItems(IExceptionCallback callback)
String GetSerial(IExceptionCallback callback)
boolean IsReady()
void SetFLC(boolean newValue)
void CloseRec(IExceptionCallback callback)
void DirectIO(int cmd, String argument, IAuth auth, IExceptionCallback callback)
void SetPaymentAgentOperation(String text, IExceptionCallback callback)
String GetDayOpenDateTime(IExceptionCallback callback)
void PrintCalculationsReport(IExceptionCallback callback)
String FNGetLifetime(IExceptionCallback callback)
void SetOrgName(String text, IExceptionCallback callback)
int GetDayLastReceiptNumber(IExceptionCallback callback)
void SetDateTime(String datetime, IExceptionCallback callback)
void SetPaymentAgentTelNum(String text, IExceptionCallback callback)
void Feed(int count, IExceptionCallback callback)
void PrintRecTotal(IExceptionCallback callback)
String GetSenderEmail(IExceptionCallback callback)
String GetRecPayTotal(int payType, IExceptionCallback callback)
void SetHeaderLines(in List< String > header, IExceptionCallback callback)
void SetPhysicalAddress(String text, IExceptionCallback callback)
void PrintBarCode(int type, int align, String value, IExceptionCallback callback)
String GetHeaderLines(IExceptionCallback callback)
String GetAppVersion(IExceptionCallback callback)
long FNGetLastFDNum(IExceptionCallback callback)
String GetKKTRegisteredName()
void SendMarkupCodeVolumeVarietal(String code, IExceptionCallback callback)
void SetBroadcastMode(boolean broadcastOn, IExceptionCallback callback)
int FNGetRegTaxSystemByNum(int regNum, IExceptionCallback callback)
void PrintLineAligned(String left, String right, IExceptionCallback callback)
void FNPrintDocFromArchive(int docNum, IExceptionCallback callback)
String GetRecTotal(IExceptionCallback callback)
void LoggerControl(int loggerCommand, IExceptionCallback callback)
void ClearAllMarkupCodeCheckResult(IExceptionCallback callback)
int FNGetCurrentDocType(IExceptionCallback callback)
void CloseFiscalMode(IExceptionCallback callback)
boolean GetFnSupportedSkipOISMCheck(IExceptionCallback callback)
void OpenDay(String cashier, IExceptionCallback callback)
void SendMarkupCodeOismCheck(int processingMode, int plannedStatus, String count, String measureUnit, String numeratorFraction, String denominatorFraction, IExceptionCallback callback)
String GetKeyServerHost(IExceptionCallback callback)
String GetFNSServerAddress(IExceptionCallback callback)
void SetSTLVTagAttribute(int tag, in int[] tlv, in String[] value, IExceptionCallback callback)
int GetOismPort(IExceptionCallback callback)
void SetPrePrintHeaderLines(boolean newState, IExceptionCallback callback)
String GetDayPayTotal(int counterType, IExceptionCallback callback)
void PrintLine(int align, String line, IExceptionCallback callback)
Коллбек проверки в ОИСМ
Определения IOismResultCallback.idl:7
Определения IScanner.idl:9
Определения ISecondDisplay.idl:7
Определения ITspiot.idl:12
Определения Enums.cs:8
Определения Enums.cs:8
Определения Enums.cs:8