Добрый день! Организация занимается скупкой лома цветного и черного металла. Установлены фискальные регистраторы Штрих-ФР-К. Нужно пробивать чек на покупку, но типовая обработка обслуживания 1С может делать либо Продажу либо Возврат продажи. В обработке Тест драйвера FR регистрация операции Покупка предусмотрена, в руководстве программиста метод регистрации Buy Покупка описан. Попытка заменить Объект.ВозвратПродажи() на Объект.Покупка() при печати чека возвращает ошибку. Т.е. драйвер ККМ может регистрировать покупку, но как заставить его сделать это из 1С?
А разве чек не выдается только покупателю.Может я что-то не понимаю? Обычно чек дается покупателю, когда он либо покупает либо возвращает что-то. Чек фиксирует факт денежного оборота по касса или по платежной карте. А по таким процедурам всё есть базе.
(2) Natali_77, в том-то и дело, что "обычно" чек дается покупателю. Но в данном случае, к сожалению, нужно выдавать чек поставщику. Т.е. при покупке металлолома мы не продаем, а покупаем и должны отразить эту операцию по кассе. Если интересно, то на бухонлайн есть обсуждение темы применения ККМ при приёме металлолома http://www.buhonline.ru/forum/index?g=posts&t=34684
(5) and_sk, остаток в кассе есть, деньги выдаются из кассы РКО, но в чеке написано, что это возврат продажи, а надо чтобы было написано Покупка там где выделено желтым маркером в (6)
Если ЧекНаВозврат Тогда
Объект.ВозвратПродажи();
Иначе
Объект.Продажа();
КонецЕсли;
Где Объект это
Вид =
Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор;
ВнешняяКомпонента = "DrvFR.dll";
ПрограммныйИдентификатор = "DrvFR";
Модели = Новый СписокЗначений();
Модели.Добавить("05012", "Штрих-950-К");
Модели.Добавить("05013", "Штрих-КОМБО-ФР-К");
Модели.Добавить("05014", "Штрих-МИНИ-ФР-К");
Модели.Добавить("05016", "Штрих-ФР-К");
Модели.Добавить("05018", "Штрих-ФР-Ф (v.03)");
Модели.Добавить("05019", "Штрих-ФР-Ф (v.04)");
Модели.Добавить("05022", "Элвес-Мини-ФР-Ф (v.02)");
Модели.Добавить("05024", "Элвес-ФР-К");
Попытка
Объект = Новый ("AddIn." + Модель.ПрограммныйИдентификатор);
Исключение
Результат = "Не удалось создать объект внешней компоненты с программным идентификатором """
+ "AddIn." + Модель.ПрограммныйИдентификатор
+ """.";
КонецПопытки;
Показать
Попробовал в лоб заменить
Если ЧекНаВозврат Тогда
//Объект.ВозвратПродажи();
Объект.Покупка();
Иначе
Объект.Продажа();
КонецЕсли;
Но чек не пробивается, пишет "Некорректная операция".
В обработке Тест драйвера FR регистрация операции Покупка предусмотрена, в руководстве программиста метод регистрации Buy Покупка описан.
Вышеописанное прописано для какой библиотеки?
Не забываем что Штрих-М поставляет две DLL-ки, стандартную(свою) и нативную (под 1С)
Тестов драйверов то же два, под свою библиотеку и под 1С-ную.
И как показал опыт, многое из того что можно выполнять в Штрих-М овской библиотеке, невозможно в нативной(для 1С)
Уточните это.
Если это написано под "свою" библиотеку, то работайте через неё, а не через нативную. Естественно в самой 1С код придется немного подправить.
(9) bzmax, в последней версии драйвера ФР 4.11 действительно две DLL-ки и два теста драйвера. В более ранних версиях, например 4.6 одна DLL-ка и один драйвер. Судя по коду используется DrvFR.dll, а она вроде как бы "своя". Т.к. УТ версии 10.2, то она настроена для использования одной библиотеки (тогда, если не ошибаюсь, Штрих не делал для 1С отдельной DLL), причём обработки обслуживания торгового оборудования идут в составе конфигурации.
Все работает!
Проверяй режимы и статусы аппарата. (и впредь описывай код возврата ошибки, а не просто "выдает ошибку")
Вот точное описание формирования покупки. Картинка "покупка.png"
Как видно предварительно должны быть заполнены определенные реквизиты (красная рамка)
И Аппарат должен быть в режиме ECRMode = 8 (открытый документ) и в статусе ECRMode8Status = 1 (открыт чек покупки) (рыжая рамка)
Внимательно посмотри на параметры команды OpenCheck она же ОткрытьЧек параметр CheckType = 1 (покупка)
картинка "открыть документ.png"