|
ФЗ 54 ККМ с передачей данных в регламентном задании | ☑ | ||
---|---|---|---|---|
0
lamme
07.11.17
✎
22:07
|
Есть работающий (в ручном режиме) механизм
1 автоматическое формирование заказа покупателя 2 автоматическое формирование реализации 3 формировании чека ККМ - с передачей в сбис для налоговой. Собственно, 1 и 2 выполня.ются на ура в фоновом задании. На сервере соответственно. А вот как сюда прикрутить п3 - если оно тупо идет - в модуль обычного приложения для ПолучитьСерверТО() -а это клиентская работа .. Переписывать всю процедуру работы с ККТ на серверную часть ? |
|||
1
piter3
07.11.17
✎
22:09
|
На последний вопрос ответ да
|
|||
2
lamme
07.11.17
✎
22:09
|
и если брать типовую схему в УТ10, например, в документе ЧекККМ - то там вся работа с ККМ идет в модуле формы документа и все манипуляции делаются на клиенте ..
|
|||
3
Woldemar177
07.11.17
✎
22:11
|
(2) Сделай проборс портов на сервер и прикрути к нему онлайн ККМ через рс 232
|
|||
4
lamme
07.11.17
✎
22:13
|
(3)
дык все равно все на серверный вариант придется переделывать .. или кассу физически поставить на сервер .. да не- не поможет ... все равно регламентное задание - это серверное выполнение ... отсюда и все ноги |
|||
5
lamme
07.11.17
✎
22:35
|
может тупо сделать пользователя - который будет постоянно висеть ... и тупо мониторить раз в 60сек - документы определенного вида .. открывать их ... нажимать кнопочку для работы с ккм .. потом проводить документ
|
|||
6
lamme
07.11.17
✎
22:35
|
тупой метод ..
|
|||
7
Woldemar177
07.11.17
✎
22:47
|
(5) Написать AI на джаве? Он будет смотреть на экран и тыкать кнопочку. У меня знакомый написал такого для игры в сапера.
|
|||
8
lamme
07.11.17
✎
22:54
|
на УТ11 как это сделано?
там же как раз клиент-сервер должен быть реализован в области торгового оборудования. или не? |
|||
9
Woldemar177
07.11.17
✎
22:57
|
(8) Понятия не имею ;) я ставлю в основном вики микро и туда качаю с ут 11, скрипт дает разработчик.
|
|||
10
Sapiens_bru
08.11.17
✎
04:58
|
Механика работы с оборудованием такая
1) На клиенте - собирается информация с формы для печати чека, либо просто факт нажатия кнопки 2) На сервере - проверяется возможность пробития чека по бизнес логике, проводится документ Собирается информация о подключенном оборудовании, его параметрах из настроек программы Формируется XML файл для передачи в фискальный регистратор и передается на клиент 3) На клиенте - происходит вызов внешней компоненты и передача ему сформированного файла Первую часть вы без проблем перенесете на сервер в обработку, третью часть на сервер перенести невозможно. Внешняя компонента существует по ТОЛЬКО &НаКлиенте. Это тупо внешний файл dll с инструкциями драйвера. Если вы суметете декомпилировать ядро 1С , вставить в него дополнительный файл и компилировать обратно - вы получите функционал драйвера &НаСервере. Иначе - извращайтесь с эмуляцией действий пользователя, чтобы был доступен контекст &НаКлиенте. |
|||
11
Aleksey
08.11.17
✎
05:24
|
(10) А почему нельзя положить болт на БСО и убрать прокладку в виде драйвера от 1С? Почему нельзя напрямую общаться с драйверами ФР?
Ну или другой вариант, на инфостарте мне попадался exe файл который висит в треи и посылаает на ФР данные из текстового файла типа http://catalog.mista.ru/public/656068/ |
|||
12
Sapiens_bru
08.11.17
✎
06:12
|
(11)Напрямую это как? шестнадцатеричными командами в COM-порт? Уверены, что &НаСервере можно подать такую команду?
Разработка на инфостарте никоим образом не противоречит моему комменту. Человек реализовал контекст &НаКлиенте при помощи сторонней программы. От самого факта общения с драйвером посредством внешней компоненты он не ушел. |
|||
13
Aleksey
08.11.17
✎
06:24
|
(12) Есть драйвера от разработчиков ККМ
Фирма 1с реализовала свою прокладку, т.е. свои dll для работы со сторонними DLL и обернудо это все в БСО Напрямую это значит отказаться от dll от 1С в пользу драйверов от разработчиков (штрих, атол) |
|||
14
isa2net
08.11.17
✎
06:25
|
(10) почему это длл можно подключить только наклиенте? Другое дело что серверТО подключается традиционно к форме, так как к ней подвязываются события оборудования.
|
|||
15
Aleksey
08.11.17
✎
06:25
|
т.е. не через FprnM1C82_54FZ.dll,а через FprnM1C.dll
|
|||
16
isa2net
08.11.17
✎
06:30
|
(15) зачем длл трогать?
|
|||
17
Aleksey
08.11.17
✎
06:31
|
ЗагрузитьВнешнююКомпоненту("FPRNM1C.dll");
ECR = Новый("AddIn.FprnM45"); ECR.DeviceEnabled = 1; Если ECR.ResultCode <> 0 тогда Возврат; КонецЕсли; // получаем состояние ККМ Если ECR.GetStatus() <> 0 тогда Возврат; КонецЕсли; // если есть открытый чек, то отменяем его Если ECR.CheckState <> 0 тогда Если ECR.CancelCheck() <> 0 тогда Возврат; КонецЕсли; КонецЕсли; // если смена открыта снимаем Z-отчет Если ECR.SessionOpened = 1 тогда // устанавливаем пароль системного администратора ККМ ECR.Password = "30"; // входим в режим отчетов с гашением ECR.Mode = 3; Если ECR.SetMode() <> 0 тогда Возврат; КонецЕсли; // снимаем отчет ECR.ReportType = 1; Если ECR.Report() <> 0 тогда Возврат; КонецЕсли; КонецЕсли; // входим в режим регистрации // устанавливаем пароль кассира ECR.Password = "1"; // входим в режим регистрации ECR.Mode = 1; Если ECR.SetMode() <> 0 тогда Возврат; КонецЕсли; // продажа без сдачи // регистрация продажи ECR.Name = "Молоко"; ECR.Price = 10.45; ECR.Quantity = 1; ECR.Department = 2; Если ECR.Registration() <> 0 тогда Возврат; КонецЕсли; // скидка суммой на предыдущую позицию ECR.Percents = 10; ECR.Destination = 1; Если ECR.PercentsDiscount() <> 0 тогда Возврат; КонецЕсли; // регистрация продажи ECR.Name = "Фанта"; ECR.Price = 25; ECR.Quantity = 5; ECR.Department = 1; Если ECR.Registration() <> 0 тогда Возврат; КонецЕсли; // скидка суммой на весь чек ECR.Summ = 10.4; ECR.Destination = 0; Если ECR.SummDiscount() <> 0 тогда Возврат; КонецЕсли; // закрытие чека наличными без ввода полученной от клиента суммы ECR.TypeClose = 0; Если ECR.CloseCheck() <> 0 тогда Возврат; КонецЕсли; // X - отчет // устанавливаем пароль администратора ККМ ECR.Password = "29"; // входим в режим отчетов без гашения ECR.Mode = 2; Если ECR.SetMode() <> 0 тогда Возврат; КонецЕсли; // снимаем отчет ECR.ReportType = 2; Если ECR.Report() <> 0 тогда Возврат; КонецЕсли; // Z - отчет // устанавливаем пароль системного администратора ККМ ECR.Password = "30"; // входим в режим отчетов с гашением ECR.Mode = 3; Если ECR.SetMode() <> 0 тогда Возврат; КонецЕсли; // снимаем отчет ECR.ReportType = 1; Если ECR.Report() <> 0 тогда Возврат; КонецЕсли; // выходим в режим выбора, чтобы кто-то под введенными паролями не сделал что нибуть нехорошее Если ECR.ResetMode() <> 0 тогда Возврат; КонецЕсли; // освобождаем порт ECR.DeviceEnabled = 0; Если ECR.ResultCode <> 0 тогда Возврат; КонецЕсли; |
|||
18
Aleksey
08.11.17
✎
06:32
|
(16) Ну раз прокладка по какой то причине на сервере не работает (точнее подозреваю что речь всётаки о реализации в БСО), то основная dll должна работатьбез проблем
|
|||
19
isa2net
08.11.17
✎
06:40
|
(18) а налоговая не спросит за неправильный формат чекоа? Эта длл поддерживает тэги фн по 54 фз?
|
|||
20
Лодырь
08.11.17
✎
06:53
|
А сделать простейшее решение? на клиенте обработку ожидания и запустить на машине с ККМ клиентский сеанс 1ски, который с заданной периодичностью печатает чеки?
|
|||
21
Sapiens_bru
08.11.17
✎
09:52
|
(18) На сервере не работает только "прокладка" а сам вызов "ПодключитьВнешнююКомпоненту"
Вы никакую Dll не подключите &НаСервере, неважно была она написана под БПО или является основой поставки драйвера под Windows |
|||
22
Скай
08.11.17
✎
09:58
|
||||
23
Сияющий в темноте
08.11.17
✎
10:03
|
писать свою программу общения с фискальным регистратором
передавать ей файл команд,причем не обязательно хмл или из сервера открывать еще одну пустую базу с оборудовагием и на нем печатать |
|||
24
Сияющий в темноте
08.11.17
✎
10:03
|
только 1с скушает лицензию,а скрипт-бесплатно
|
|||
25
Aleksey
08.11.17
✎
11:08
|
(19) это длл от разработчиков. Естественно там все тэги. И прокладка потому и назвается прокладка, что в конечном итоги она её и вызывает
|
|||
26
isa2net
09.11.17
✎
03:15
|
(21) Что у вас на сервере не подключить?
ПодключитьВнешнююКомпоненту (AttachAddIn) Вариант синтаксиса: По имени и местоположению Синтаксис: ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>) Параметры: <Местоположение> (обязательный) Тип: Строка. Местоположение внешнего компонента. В качестве местоположения может использоваться: путь к файлу внешнего компонента в файловой системе (недоступно на веб-клиенте), не ZIP-архив; полное имя макета, хранящего двоичные данные или ZIP-архив; URL к внешнему компоненту, в виде двоичных данных или ZIP-архива, в формате, аналогичном ПолучитьНавигационнуюСсылку. <Имя> (обязательный) Тип: Строка. Символическое имя подключаемой внешнего компонента. Имя должно удовлетворять правилам именования встроенного языка. <Тип> (необязательный) Тип: ТипВнешнейКомпоненты. Тип подключаемого внешнего компонента. Не используется, если компонент упакован в ZIP-архив. Описание варианта метода: Подключает компоненты, выполненные по технологии Native API и COM. Компонент может храниться в информационной базе или макете конфигурации в виде двоичных данных или в ZIP-архиве. Для режимов запуска "Тонкий клиент" и "Веб-клиент", компонент должен быть предварительно установлен методом УстановитьВнешнююКомпоненту. Вариант синтаксиса: По идентификатору Синтаксис: ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>) Параметры: <ИдентификаторОбъекта> (обязательный) Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер). Примечание: Внешние компоненты могут быть выполнены по технологии Native API или COM. Компоненты, выполненные по технологии COM, совместимы с компонентами 1С:Предприятия 7.7. Веб-клиент может работать только с компонентами в информационной базе, упакованными в архив. Тонкий клиент может работать с компонентами в информационной базе, упакованными в архив, и компонентами, расположенными в файловой системе. Толстый клиент может работать со всеми вариантами хранения компонентов. При этом, если компонент установлен методом УстановитьВнешнююКомпоненту, то используется установленный компонент, а если не установлен, то компонент будет получен в момент подключения. Сервер может работать со всеми компонентами. Компонент кэшируется на сеанс работы сервера. Пример: Если ПодключитьВнешнююКомпоненту("AddinObject.Scanner") Тогда Сообщить("Компонента для сканера штрихкодов загружена"); Иначе Сообщить("Компонента для сканера штрихкодов не загружена"); КонецЕсли; |
|||
27
isa2net
09.11.17
✎
03:28
|
(25) Есть ФР, а есть ККТ с ОФД, у них разные требования к разработке драйверов https://its.1c.ru/db/metod8dev#content:4829:hdoc:_top:opencheck
|
|||
28
Aleksey
09.11.17
✎
05:08
|
(27) явно кто то не понимает
По ссылки это для прокладки от 1С. К примеру у меня 1С 7.7 вполне работает с типовыми драйверами от разработчиков без прокладок и БСО. 8-ка может работать аналогично (код в (17)). То что по ссылки это описания прокладки от 1С и реализация её в БСО. Т.е. грубо говоря это надстройка над драйверами, более высокий уровень абстракции я бы сказал. Т.е. можно или просто взять прокладку и сказать СформироватьЧек(Параметры), и тогда прокладка уже сама преобразует эту команду в команды драйевра, т.е. разложит параметры и передаст драйверу ECR.Name = "Молоко"; ECR.Price = 10.45; ECR.Quantity = 1; ECR.Department = 2; ECR.Registration(); ... Либо писать этот код самостоятельно. Для чего нужна прокладка - толи лишь для того чтобы поднятся на уровень абстракции выше. Т.е. тебе не нужно кодить и учитывать особенности оборудования (ну к примеру разные команды для разных моделей ФР), этим будет заниматься прокладка. И да ФР с ФН это и есть ККТ с ОФД |
|||
29
Сияющий в темноте
09.11.17
✎
09:07
|
если хочется абстракции
пишите из 1с файл с данными чека в общем виде,а потом отдельным процесмом мониторьте появление этого файла и обрабатывайте его в другой программе |
|||
30
Aleksey
09.11.17
✎
12:39
|
(29) Вот хоть убей не могу понять почему у разработчиков ФР нет такой программы. Т.е. есть dll для 1С, для екселя, делфи, шарпа ... а вот тупо готовой программы для печати чека (ну кроме "Тест драйвера ККМ") нет. Т.е. нельзя взять ФР и начать бить чеки, обязательно нужно искать отдельную программу которая будет через dll печатать чеки
|
|||
31
opus70
09.11.17
✎
12:44
|
(30) как хорошо сказано, еще бы так сказать по поводу ЕГАИС ну что за такая зара без нормальной программы от разработчиков а не уродства в виде команд и ихнего черного ящика
|
|||
32
piter3
09.11.17
✎
13:02
|
Эх,а еще бы как казахам повезло и нам бы тоже не помешало,без ккма
|
|||
33
isa2net
09.11.17
✎
14:32
|
(28) я понимаю что есть "прокладка" в виде апи, я о том, что есть ли у вас те тэги которые передаются в XML таблице ДанныеЧека(CheckPackage), как например: ECR.Tax = %ставкаНДС%;, Cash,CashLessType1. А без этого чек не соответствует требованиям ФЗ 54.
|
|||
34
Aleksey
09.11.17
✎
23:58
|
(33) конечно есть
|
|||
35
Сияющий в темноте
10.11.17
✎
09:14
|
(31) в последнем егаис можно запросы отправлять прям из вкладки исходящие,так что практически есть
у нас с фр предлагается программа чтобы просто пробить чек |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |