| 
    
        
     
     | 
    
  | 
Открытие денежного ящика ( Штрих ФР К ) из 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)  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |