Имя: Пароль:
 
1C
1С v8
Работа с ККТ АТОЛ из 1С
0 AntonNo Professional
 
15.05.19
10:52
Здравствуйте! Прошу помощи: люди добрые подскажите, как из 1С (внешняя обработка, например) получить данные из фискальника (АТОЛ) о сумме денежных средств в кассе. Конфигурация Розница 2.2. Спасибо.
1 edem911
 
15.05.19
10:59
(0) распечатать Х отчет(из 1С), или посмотреть драйвером атола(не в 1с)
2 Garykom
 
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
3 AntonNo Professional
 
15.05.19
12:14
(1) Отчет как раз печатать не нужно
4 AntonNo Professional
 
15.05.19
12:14
(2) Подскажите, пожалуйста, как я могу перевести это в язык 1С?
5 AntonNo Professional
 
15.05.19
12:27
В тесте драйвера есть запрос: "сумма наличных в денежном ящике". Как из 1С по аналогии обратиться к ФН? Драйвер объект получить нужно или как?
6 AntonNo Professional
 
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);
Возврат СуммаВДЯ;
КонецФункции

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

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

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