|
Открытие денежного ящика ( Штрих ФР К ) из 1С | ☑ | ||
---|---|---|---|---|
0
antgrom
25.09.12
✎
12:53
|
Добрый день
Программа 1С Розница 1.0 ( не обновляемая ) Платформа 8.2 ККМ Штрих-ФР-К После подключения ФР и к ФР денежного ящика выяснилось , что денежный ящик не открывается после пробития чека. И из программы "Тест драйвера ФР 4.9 " ден ящик тоже не открывался. Посмотрев таблицы свойств ФР , мы поменяли "логический уровень датчика денежного ящика" с 0 на 1. Из программы "Тест драйвера ФР 4.9 " ден ящик стал открываться. Из 1С не открывается. Подскажите способ , чтоб из 1С ящик открывался. Поиском искал по темам - решения не нашел. Если знаете тему , где есть решение - запостите ссылку на тему. Спасибо. |
|||
1
antgrom
25.09.12
✎
12:53
|
код :
Функция ПоддерживаетсяВидТО(Вид) Экспорт Результат = Ложь; Если Вид = Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор Тогда Результат = Истина; КонецЕсли; Возврат Результат; КонецФункции // ПоддерживаетсяВидТО() //Допустим на форме есть кнопка ОткрытьДЯ Процедура ОсновныеДействияФормыОткрытьДЯ(Кнопка) //эта строчка также не нужна для форм уже работающих с ФР // ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма); //ищем ФР, текст взят из модуля документа ЧекККМ ФР = глЗначениеПеременной("мФР"); Если ФР = Неопределено Тогда //В справочнике КассаККМ должна быть касса, прописанная в торговом оборудовании на закладке "фискальные регистраторы", допустим у нее код 000000001 Если ФР <> Неопределено ИЛИ РаботаСТорговымОборудованием.ПолучитьПроверитьПараметрыДляПробитияЧека(ФР) Тогда КассаККМ = ПолучитьСерверТО().ПолучитьКассуККМ(ФР); Магазин = КассаККМ.Магазин; Иначе Магазин = ПараметрыСеанса.ТекущийМагазин; КонецЕсли; ///КассаККМ = Справочники.Кассы.НайтиПоКоду("000000001",,,); МассивФР = ПолучитьСерверТО().ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, КассаККМ); КоличествоФР = МассивФР.Количество(); Если КоличествоФР = 0 Тогда Возврат; ИначеЕсли КоличествоФР = 1 Тогда ФР = МассивФР[0]; Иначе СписокФР = РаботаСТорговымОборудованием.ПолучитьСписокУстройствТОДляВыбора(МассивФР); ФР = СписокФР.ВыбратьЭлемент("Необходимо выбрать фискальный регистратор"); Если ФР = Неопределено Тогда Ответ = "Операция отменена пользователем."; Отказ = Истина; Результат = Ложь; Возврат; Иначе ФР = ФР.Значение; КонецЕсли; КонецЕсли; КонецЕсли; //в общем и целом эти 4ре строчки открывают Обработка = Неопределено; Объект = Неопределено; Результат = ПолучитьСерверТО().ПолучитьОбъектДрайвера(ФР, Обработка, Объект); //0 - это CashDrawerID, или номер денежного ящика, смотрим в настройках драйвера штрих-фр-ф Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0); //для форм уже работающих с ТО, удалить. ПолучитьСерверТО().ОтключитьКлиента(ЭтаФорма); КонецПроцедуры на некоторых кассах работает , а на данной - не работает |
|||
2
TigerPXN
25.09.12
✎
12:58
|
Я бы поковырял внешнюю обработку для обслуживания фискальника.
|
|||
3
antgrom
25.09.12
✎
13:12
|
(2) Можно , но она одинаковая , для > 60 касс данной розничной сети. И не открывается ящик примерно на 8 кассах.
Обработка одна и та же. Драйвера те же. Фиг знает. В обработке нет команды "ОткрытьДенежныйЯщик" В обработках есть стандартные команды типа пробития чека. Я думал - мало ли кто сталкивался именно с темой "логический уровень датчика денежного ящика" ... |
|||
4
antgrom
25.09.12
✎
13:48
|
Ну , хорошо. Кто сталкивался с кодом принудительного открытия ДЯ ( как в (1) ) и с тем что такой код не работал.
И кто знает : команда ОткрытьДенежныйЯщик возвращает Истину или Ложь по результатам - можно ли получить описание ошибки в случае возврата Ложь ? |
|||
5
antgrom
25.09.12
✎
14:01
|
Ну , хорошо. Кто сталкивался просто с кодом принудительного открытия ДЯ ?
|
|||
6
Torquader
26.09.12
✎
01:05
|
Команда возвращает код ошибки (если вы о методе драйвера).
|
|||
7
antgrom
26.09.12
✎
02:21
|
(6) А как она возвращает , можно пример ?
Т.к. если я пишу , например : Ответ = Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0); то Ответ равен Истина или Ложь. |
|||
8
big
26.09.12
✎
06:53
|
Погляди в таблицах настройки ККМ.
Таблица 1, Ряд 1, Поле 7. 0 – при оплате наличными денежный ящик не открывается 1 – при оплате наличными денежный ящик открывается |
|||
9
2S
26.09.12
✎
07:05
|
может распиновка разная?
|
|||
10
antgrom
26.09.12
✎
09:08
|
(8) Что значит "Таблица 1, Ряд 1, Поле 7. " ?
Есть "настройка свойств" , которая открывает таблицы. Первая таблица "Тип и режим кассы" там строка 6 "Работа с денежным ящиком". Стоит "1" |
|||
11
BuHu
26.09.12
✎
09:13
|
(9) сталкивался с таким , ДЯ не подходил под фискальник , но если через драйвер открывается ,то значит причина не в этом
|
|||
12
big
26.09.12
✎
09:24
|
(10) 1. Это по документации так.
Как вариант ещё - проверить версии драйверов на "неработающих" местах. Причем поискать надо все файлы драйвера на это компутере, ибо может получиться, что тест драйвера работает на одной версии, а 1С на другом |
|||
13
antgrom
26.09.12
✎
09:25
|
(11) Именно это и настораживает - то что в программе "Тест драйвера" ДЯ открывается.
Нарыл вот ещё что : http://forum.shtrih-m.ru/viewtopic.php?t=15509&start=0&postdays=0&postorder=asc&highlight= Wrols писал(а): Ответьте, пожалуйста, где можно найти документацию по данной библиотеки? DrvFR1C - это не библиотека, а компонента входящая в состав библиотеки. Описание данной компаненты Вы можете найти на нашем сайте или воспользовавшись ссылкой. Wrols писал(а): Новая библиотека не содержит методов ПолучитьСостояниеККМ, ОткрытьДенежныйЯщик (УстановитьДату, ПодтвердитьДату ?) Данная компонента написана согласно требований компании 1С, в котором нет требований по наличию указанных Вами методов. |
|||
14
antgrom
26.09.12
✎
09:28
|
(12) "все файлы" долго искать. И проще просто переустановить + проверить папки bin
Может только DrvFR1C.dll виновата ? |
|||
15
antgrom
02.10.12
✎
10:22
|
Подниму тему.
Есть ещё "вести с полей" : при внесении ДС , выплате ДС - ящик открывается при пробитии чека - ящик не открывается. Может такая ситуация у кого-то была ? |
|||
16
antgrom
02.10.12
✎
11:04
|
Мне вот мысль пришла - может ящик не срабатывал из-за того что Основной режим запуска - выбирать автоматически ?
Может надо Толстого клиента выставить ? |
|||
17
antgrom
09.10.12
✎
16:53
|
Тема всё ещё актуальна.
Готов поговорить ) В качестве тем : драйвер DrvFR.dll единственный или бывают варианты и модификации ? Обращение : Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0); это команда драйверу. есть ли ещё команды , которые открывают денежный ящик ? например ЗакрытьЧек и т.п. |
|||
18
antgrom
12.10.12
✎
18:01
|
Этот код заработал :
//Допустим на форме есть кнопка ОткрытьДЯ Процедура ОсновныеДействияФормыОткрытьДЯ(Кнопка) //эта строчка также не нужна для форм уже работающих с ФР ФР = глЗначениеПеременной("мФР"); Если ФР = Неопределено Тогда //В справочнике КассаККМ должна быть касса, прописанная в торговом оборудовании на закладке "фискальные регистраторы", допустим у нее код 000000001 Если ФР <> Неопределено ИЛИ РаботаСТорговымОборудованием.ПолучитьПроверитьПараметрыДляПробитияЧека(ФР) Тогда КассаККМ = ПолучитьСерверТО().ПолучитьКассуККМ(ФР); Магазин = КассаККМ.Магазин; Иначе Магазин = ПараметрыСеанса.ТекущийМагазин; КонецЕсли; МассивФР = ПолучитьСерверТО().ПолучитьСписокУстройств( Перечисления.ВидыТорговогоОборудования.ФискальныйРегистратор, КассаККМ); КоличествоФР = МассивФР.Количество(); Если КоличествоФР = 0 Тогда Возврат; ИначеЕсли КоличествоФР = 1 Тогда ФР = МассивФР[0]; Иначе СписокФР = РаботаСТорговымОборудованием.ПолучитьСписокУстройствТОДляВыбора(МассивФР); ФР = СписокФР.ВыбратьЭлемент("Необходимо выбрать фискальный регистратор"); Если ФР = Неопределено Тогда Ответ = "Операция отменена пользователем."; Отказ = Истина; Результат = Ложь; Возврат; Иначе ФР = ФР.Значение; КонецЕсли; КонецЕсли; КонецЕсли; Обработка = Неопределено; Объект = Неопределено; Результат = ПолучитьСерверТО().ПолучитьОбъектДрайвера(ФР, Обработка, Объект); //0 - это CashDrawerID, или номер денежного ящика, смотрим в настройках драйвера штрих-фр-ф Если Результат = Перечисления.ТООшибкиОбщие.ПустаяСсылка() Тогда врОтвет = Объект.Драйвер.ОткрытьДенежныйЯщик(Объект.ИДУстройства,0); // НомерДенежногоЯщика) КодОшибки = Объект.Драйвер.ПолучитьОшибку(Объект.ОписаниеОшибки); КонецЕсли; КонецПроцедуры |
|||
19
antgrom
12.10.12
✎
18:02
|
При условии что есть :
//////////////////////////////////////////////////////////////////////////////// // ПЕРЕМЕННЫЕ МОДУЛЯ Перем мКассаККМ; Перем мМагазин; Перем мФР; Перем мНастройкаРМК; Перем мВысотаКнопки; Перем мШиринаКнопки; Перем мВерхКнопок; Перем мМассивНазванийВсехКнопок; Процедура ПриОткрытии() ПолучитьСерверТО().ПодключитьКлиента(ЭтаФорма); Если мФР <> Неопределено ИЛИ РаботаСТорговымОборудованием.ПолучитьПроверитьПараметрыДляПробитияЧека(мФР) Тогда мКассаККМ = ПолучитьСерверТО().ПолучитьКассуККМ(мФР); мМагазин = мКассаККМ.Магазин; Иначе мМагазин = ПараметрыСеанса.ТекущийМагазин; КонецЕсли; КонецПроцедуры |
|||
20
ЕстьОтвет
12.10.12
✎
18:25
|
извращение ......
всю жизнь в фискале настраивал и ни чего не писал правильный ответ в (8) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |