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