Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Работа с ККТ АТОЛ из 1С

Работа с ККТ АТОЛ из 1С
Я
   AntonNoProfessional
 
15.05.19 - 10:52
Здравствуйте! Прошу помощи: люди добрые подскажите, как из 1С (внешняя обработка, например) получить данные из фискальника (АТОЛ) о сумме денежных средств в кассе. Конфигурация Розница 2.2. Спасибо.
 
 
   edem911
 
1 - 15.05.19 - 10:59
(0) распечатать Х отчет(из 1С), или посмотреть драйвером атола(не в 1с)
   Garykom
 
2 - 15.05.19 - 11:50
(0)
var
    cashSum: Double;
begin
    fptr.setParam(fptr.LIBFPTR_PARAM_DATA_TYPE, fptr.LIBFPTR_DT_CASH_SUM);
    fptr.queryData;

    cashSum := fptr.getParamDouble(fptr.LIBFPTR_PARAM_SUM);
end;

На язык 1С сам переведешь http://integration.atol.ru/?pascal#57496bb738
   AntonNoProfessional
 
3 - 15.05.19 - 12:14
(1) Отчет как раз печатать не нужно
   AntonNoProfessional
 
4 - 15.05.19 - 12:14
(2) Подскажите, пожалуйста, как я могу перевести это в язык 1С?
   AntonNoProfessional
 
5 - 15.05.19 - 12:27
В тесте драйвера есть запрос: "сумма наличных в денежном ящике". Как из 1С по аналогии обратиться к ФН? Драйвер объект получить нужно или как?
   AntonNoProfessional
 
6 - 15.05.19 - 12:32
Функция ПолучитьСуммуВДЯ()
 fptr.setParam(fptr.LIBFPTR_PARAM_DATA_TYPE, fptr.LIBFPTR_DT_CASH_SUM);
 fptr.queryData;
 СуммаВДЯ = fptr.getParamDouble(fptr.LIBFPTR_PARAM_SUM);
 Возврат СуммаВДЯ;
КонецФункции

Так что ли?
   Garykom
 
7 - 15.05.19 - 14:26
(6) Почти но сначала надо кое что еще и чуть исправить.

fptr = Новый COMобъект("AddIn.Fptr10");
fptr.setSingleSetting(fptr.LIBFPTR_SETTING_PORT, Строка(fptr.LIBFPTR_PORT_USB));
fptr.applySingleSettings();
fptr.open();

fptr.setParam(fptr.LIBFPTR_PARAM_DATA_TYPE, fptr.LIBFPTR_DT_CASH_SUM);
fptr.queryData();
СуммаВДЯ = fptr.getParamDouble(fptr.LIBFPTR_PARAM_SUM);

fptr.close();
fptr = Неопределено;
   AntonNoProfessional
 
8 - 15.05.19 - 15:06
(7) Извините, конечно, но: {ВнешняяОбработка.КонтрольДС.Форма.Форма.Форма(78)}: Ошибка при вызове конструктора (COMОбъект)
    fptr = Новый COMОбъект("AddIn.Fptr10");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса 

Может клиент-серверный режим виноват?
   AntonNoProfessional
 
9 - 15.05.19 - 15:15
(7) точнее на сервере зарегистрировать addin_fptr10_x64.dll ???
   Garykom
 
10 - 15.05.19 - 15:23
(8) (9) "Драйвер контрольно-кассовой техники v.10 (дККТ10)" поставить, регистрировать dll оно само должно при установке нового драйвера.

Но учти штатный драйвер в 1С (типовой Розница 2) может порт блокировать и не давать работать через другое подключение.
 
 Рекламное место пустует
   Garykom
 
11 - 15.05.19 - 15:23
(10)+ Они ВК сделали начиная с какой то версии 10-го драйвера, сча уже не помню
   Garykom
 
12 - 15.05.19 - 15:24
(11) Т.е. COM обертку для своего драйвера
   Garykom
 
13 - 15.05.19 - 15:25
COM-объект
Для подключения драйвера как COM-объект необходимо зарегистрировать в системе библиотеку addin_fptr10_x86.dll (addin_fptr10_x64.dll в случае 64-битного приложения) с помощью команды regsvr32.exe. Библиотека может сама обнаружить установленный через инсталлятор драйвер. Также инсталлятор автоматически регистрирует компонент заданной архитектуры в процессе установки. В проекте необходимо создать объект типа ActiveX (или OLE) класса AddIn.Fptr10. В данной документации описаны примеры работы с драйвером в виде OLE-объекта на языке Delphi.
   AntonNoProfessional
 
14 - 15.05.19 - 15:28
(13) драйвер установил, dll зарегистрировал... хм
   NorthWind
 
15 - 15.05.19 - 15:28
(7) Кстати, вот случайно не знаешь - в восьмерке можно было перечислить все кассы, которые были зарегистрированы на текущей машине, и обратиться к любой по номеру. На тот случай, если было несколько касс. А как такое же провернуть в десятке? Я чет пока не нашел.
   NorthWind
 
16 - 15.05.19 - 15:29
подозреваю, что как-то через сеттинги эти надо делать, но вот как...
   AntonNoProfessional
 
17 - 15.05.19 - 15:30
"В проекте необходимо создать объект типа ActiveX (или OLE) класса AddIn.Fptr10" -- это не тоже самое, что и "fptr = Новый COMобъект("AddIn.Fptr10")"?
   NorthWind
 
18 - 15.05.19 - 15:42
(17) да
   AntonNoProfessional
 
19 - 15.05.19 - 15:47
(18) Подскажи, как создать? Чтобы строка "fptr = Новый COMобъект("AddIn.Fptr10")" не выдавала ошибку как в (8)
   NorthWind
 
20 - 15.05.19 - 16:01
regsvr32 addin_fptr10_x86.dll под администратором из папки \ATOL\Drivers10\KKT\Langs\com делали?
   NorthWind
 
21 - 15.05.19 - 16:02
платформа 32 или 64 бит? Все правильно сделано, битность платформы совпадает с битностью компоненты?
   AntonNoProfessional
 
22 - 15.05.19 - 16:03
(20) Да, делал так: После установки драйвера Атол версии ДТО10 нужно взять из папки Program Files\ATOL\Drivers10\KKT\langs\com и скопировать в системный каталог операционной системы Windows\System32 (Windows\SysWOW64 в случае 64-битного приложения) файл:

            addin_fptr10_x86.dll (addin_fptr10_x64.dll в случае 64-битного приложения)
            После этого для подключения драйвера как COM-объект необходимо зарегистрировать в системе библиотеку addin_fptr10_x86.dll (addin_fptr10_x64.dll в случае 64-битного приложения) с помощью команды regsvr32.exe (файлы можно не копировать системный каталог Windows, а регистрировать их по месту первоначального расположения).
   AntonNoProfessional
 
23 - 15.05.19 - 16:04
(21) совпадает
   NorthWind
 
24 - 15.05.19 - 16:09
(23) Тогда могу только посочувствовать, у меня работает. Но - у меня 32-битная версия.
   Garykom
 
25 - 15.05.19 - 16:10
(14) А теперь комп перезагрузи ))
   Garykom
 
26 - 15.05.19 - 16:11
(15) По портам
Подключение по COM порту, для Window "COM5" или просто "5", для Linux "/dev/ttyS5" или "/dev/ttyACM0"

ОбъектДрайвера.setSingleSetting(ОбъектДрайвера.LIBFPTR_SETTING_MODEL, Строка(ОбъектДрайвера.LIBFPTR_MODEL_ATOL_AUTO));
ОбъектДрайвера.setSingleSetting(ОбъектДрайвера.LIBFPTR_SETTING_PORT, Строка(ОбъектДрайвера.LIBFPTR_PORT_COM));
ОбъектДрайвера.setSingleSetting(ОбъектДрайвера.LIBFPTR_SETTING_COM_FILE, "COM23");
ОбъектДрайвера.setSingleSetting(ОбъектДрайвера.LIBFPTR_SETTING_BAUDRATE, Строка(ОбъектДрайвера.LIBFPTR_PORT_BR_115200));
ОбъектДрайвера.applySingleSettings();
   NorthWind
 
27 - 15.05.19 - 16:12
(26) в принципе, вполне себе вариант...
   NorthWind
 
28 - 15.05.19 - 16:12
спасибо!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует