Массовая загрузка из ККМ off-line + загрузка оплат Штрих-М


Работая над подключением ККМ, к сожалению, обнаружил, что штатный механизм (+ обработка Штрих-М) мягко скажем не до конца продуманы. Первые попытки это исправить

Работая над подключением ккм к сожалению обнаружил что штатный механизм(+ обработка Штрих-М) мягко скажем не до конца продуманы. Исходные данные: 20 киосков и КА. В итоге загружались отдельно пол каждому киоску отчеты, и занимало это порядком времени. В этой обработке можно сразу указать папочки в которых лежат файлы, при этом он их все загрузит и переместит файлы в архив.

Так же продуман механизм загрузки оплат с карточек, которого небыло в типовом решении, загружались «40» транзакции у которых значение <> «1.000»  на сколько я разобрался есть еще 2.000 и 4.000 — это как раз и есть безнал.

Так же были немного доработана сама конфигурация, задача была загружать кассиров а так же дату чека и номер:

Создал регистр Кассиры с физ лицами и кодом ккм.

Обработка не сложная — кому нужно разбирутся поправят.

Изменения в типовой конфигурации(опять же, можно всегда убрать этот функционал из обработки и нечего не изменять):

 В обработке тоСервер:

Функция ЗагрузитьОтчетОПродажах(Идентификатор, Отчет,ИмяФайла=Неопределено,Склад=Неопределено) Экспорт

 после 

Отчет.Колонки.Добавить(«Сумма»);

/// +добавляем по запросу фирмы
Отчет.Колонки.Добавить(«НомерЧека»);
Отчет.Колонки.Добавить(«НомерТранзакции»);
Отчет.Колонки.Добавить(«КодКассира»);
Отчет.Колонки.Добавить(«ДатаТранзакции»);
//- конец

НомерЧека = Неопределено;
НомерСмены = Неопределено;
ВремОтчет = Неопределено;
СтрокаОтчета = Неопределено;
//+передаем имя файла
если ИмяФайла <> Неопределено Тогда
Объект.Параметры.ФайлОтчета = ИмяФайла;
КонецЕсли;
//-
Результат = Обработка.ЗагрузитьОтчет(Объект, ВремОтчет,Склад);
Если НЕ ЗначениеЗаполнено(Результат) Тогда
Запрос = Новый Запрос(
«ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
| РегТО.КассаККМ
|ИЗ
| РегистрСведений.ТорговоеОборудование КАК РегТО
|ГДЕ
| РегТО.Идентификатор = &Идентификатор»);
Запрос.УстановитьПараметр(«Идентификатор», Идентификатор);
КассаККМ = Запрос.Выполнить().Выгрузить()[0].КассаККМ;
Позиция = Неопределено;
Для каждого Позиция Из ВремОтчет Цикл
ОписаниеПозиции = РаботаСТорговымОборудованием.ПолучитьОписаниеТовараККМ(КассаККМ, Позиция.ПЛУ);
//Если ОписаниеПозиции = Неопределено Тогда
// Отчет.Очистить();
// Результат = мОшибкаЗагрузкиОтчета;
// Прервать;
//КонецЕсли;
Сообщить(Позиция.ПЛУ);

СтрокаОтчета = Отчет.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОтчета, ОписаниеПозиции);
/// + было
//ЗаполнитьЗначенияСвойств(СтрокаОтчета, Позиция, «Количество, Цена, Сумма»);
// стало чтоб попали наши поля
ЗаполнитьЗначенияСвойств(СтрокаОтчета, Позиция);// «Количество, Цена, Сумма»);
//- конец
КонецЦикла;

Еще был добавлен механизм регистрации номеров транзакций, но это уже на ваше усмотрение, насколько вам нужно будет.

В архиве немного обработка + немного  доработанная стандартная обработка штрих-м

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *