Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Обробка для МІНІ-ФП54.01 (Бухгалтерия для Украины 1.2.) , помилка при виклику команди get_report          
Cordelia Подменю пользователя
сообщение 12.10.21, 9:07
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго дня!
Згідно документації та стандартної обробки для 1С вдалось реалізувати роботу КА МІНІ-ФП54.01 по стандартним командам. Але є задача виводити на форму обробки дані по руху грошових коштів.
В КА Мария є команда GetCashInfoXML(), за допомогою якої раніше виводили необхідні дані:

НачОстаток     = "rest";
СлужВнесение = "income";
СлужИзъятие   = "outcome";
Получено        = "sales";
Выдано           = "return";
КонОстаток     = "total";


В МІНІ-ФП подібної команди не знайшли. Можливо хтось зможе підказати як краще реалізувати даний функціонал?

Вичитали в документації про команду get_report, за допомогою якої можна зберегти в BIN-файл звіт. Викликаємо її ПриОткрытии() форми.

Приклад коду:
КассовыйАппаратОбъект.T400me("get_report;0;"); // має зберігати Х1 звіт.


Тут вилітає помилка (і не завжди її можна зловити):
"308,"Ошибки DLL-библиотеки №308 'касса не доступна '" і "Cash Register is busy and can not run a command".

Не розуміємо, чи це може бути проблеми з DLL-библиотекою чи ще з чим. Чи може хтось порадити/допомогти з цим питанням?

Сообщение отредактировал Vofka - 12.10.21, 9:50

Gazulo Подменю пользователя
сообщение 12.10.21, 13:41
Сообщение #2

Оратор
*****
Группа: Пользователи
Сообщений: 273
Спасибо сказали: 46 раз
Рейтинг: 46

Cordelia @ Сегодня, 10:07 * ,
Добрий день, спробуйте утилітою TstT400Server виконати команду...

Спасибо сказали: Cordelia,

volodya1122 Подменю пользователя
сообщение 12.10.21, 13:47
Сообщение #3

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Cordelia @ Сегодня, 10:07 * ,

Я працюю з MINI-T400, але драйвер використовується той самий що і для фіскального реєстратора. Зараз якраз була Кампанія по перепрошивках Касових апаратів і реєстраторів під нові вимоги законодавства для друку штрихкодів акцизних марок.
Тому насамперед питаненя:
1. Ви перепрошивали свій реєстратор? і помилка виникла після перепрошивки?
2. Попередній драйвер видалили?
3. після цього новий драйвер зареєстрували (від імені адміністратора) (І згідно інструкціі повинен ще лежати в папці C:\olesrv)

Спасибо сказали: Cordelia,

Gazulo Подменю пользователя
сообщение 12.10.21, 14:41
Сообщение #4

Оратор
*****
Группа: Пользователи
Сообщений: 273
Спасибо сказали: 46 раз
Рейтинг: 46

volodya1122 @ Сегодня, 14:47 * ,
Я так розумію, що все працює, відбувається друк і т.д., тобто всі вказані вами дії вже зроблені, проблема при виконанні конкретної команди.

Цитата(Cordelia @ 12.10.21, 10:07) *
Викликаємо її ПриОткрытии() форми

Може спочатку треба відкрити порт......

volodya1122 Подменю пользователя
сообщение 12.10.21, 14:42
Сообщение #5

Оратор
Иконка группы
Группа: Местный
Сообщений: 336
Из: Тернопіль
Спасибо сказали: 133 раз
Рейтинг: 135.7

Gazulo, Це не до мене.

Cordelia Подменю пользователя
сообщение 12.10.21, 18:02
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Все працює, друкує всі необхідні чеки і звіти, але саме ця команда не виконується.

Так, спочатку відкриваю порт:

Функция Инит() Экспорт
    
    НомерПорта = ПолучитьКомПортКА();
    
    КассовыйАппаратОбъект = Новый COMОбъект("ecrmini.t400");
    
    КассовыйАппаратОбъект.T400me("open_port;"+НомерПорта+";115200");
    КодОшибки=КассовыйАппаратОбъект.get_last_error;
    
    Если  КодОшибки = 0 Тогда
        
        КассовыйАппаратОбъект.T400me("open_port;"+НомерПорта+";115200");
        КассовыйАппаратОбъект.T400me("cashier_registration;1;0;");
        КассовыйАппаратОбъект.T400me("set_error_log;0");
        
    Иначе
        Сообщить(" Ошибка открытия порта= "+КодОшибки+", "+КассовыйАппаратОбъект.get_error_info);
    КонецЕсли;
    
    Возврат КассовыйАппаратОбъект;
    
КонецФункции



volodya1122 @ Сегодня, 14:47 * ,

1. Ви перепрошивали свій реєстратор? і помилка виникла після перепрошивки?
- Сказали, що підакцизний товар не продають, тому не перепрошивали КА.
2. Попередній драйвер видалили?
- якщо не перепрошивали, значить це також не робили.
3. Після цього новий драйвер зареєстрували (від імені адміністратора) (І згідно інструкціі повинен ще лежати в папці C:\olesrv)
- зможу уточнити завтра, хтось із спеціалістів підключався і налаштовував КА (можу зателефонувати і запитати це).

Ситуація така, що поки що працюють в старій програмі, але будуть найближчим часом переходити на 1С. А в 1С була обробка під Марію, тому потрібно зараз переробити під МІНІ, але зі збереженням функціоналу.

Цитата(Gazulo @ 12.10.21, 14:41) *
спробуйте утилітою TstT400Server виконати команду...

Дякую, спробую. Ще через утиліту не пробувала викликати команди.

Sharzem Подменю пользователя
сообщение 13.10.21, 15:55
Сообщение #7

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(Cordelia @ 12.10.21, 10:07) *
Cash Register is busy and can not run a command

Що тут не зрозуміло ?

get_report 44000000.gif
такого немає....
Є execute_report....


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Cordelia Подменю пользователя
сообщение 18.10.21, 12:15
Сообщение #8

Молчаливый
*
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Sharzem @ 13.10.21, 16:55) *
Що тут не зрозуміло ?

get_report 44000000.gif
такого немає....
Є execute_report....


в документації є, і потрібно зберегти файл, а не друкувати звіт

ValeryZ Подменю пользователя
сообщение 05.11.21, 16:01
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 46
Спасибо сказали: 12 раз
Рейтинг: 0

Cordelia @ 12.10.21, 9:07 * ,
Доброго дня.
Може запізно і проблема вирішилася, але вставлю свої 17 копійок.

Я так розумію, що ви проводите ініціювання послідовного порту один раз?

Як показала багаторічна практика 54 апарати полюбляють, щоб їм постійно нагадували про те, до якого порту вони підключені. Окрім того, можливо, що КА не знає, куди записати файл.

Тому, я б вчинив наступним чином:
1. Повідомив би ЕККА, куди писати файл (точніше OLE-серверу):
1.1. Підключаю порт: "open_port;3;115200;"
1.2. Налаштовую каталог: "set_dir;D:\OLE\Exemple;"
1.3. Закриваю порт: "close_port;"
2. Виконав би звіт:
2.1. Відкриваю порт
2.2. Виконую звіт: "get_report;0;"
2.3. Закриваю порт;

По Вашому коду я бачу, що ви у обов’язковому порядку при ініціалізації порту проводите реєстрацію касира. Не знаю, наскільки це виправдано для кожного випадку зверенення до порту. Наприклад при внесенні товарної позиції до чека це не обов’язково. А от при оплаті - так.
Можливо цей звіт не вимагає реєстрації касира. Я сам не користуюся get_report (немає необхідності).

І ще одне. Якщо КА перепрошитий на 5401F3, то йому потрібно поставити останній драйвер (там є зміни, які OLE-сервер попередніх версій не розуміє). Якщо не перепрошитий - ситуація дзеркально подібна, тож оновлювати драйвер не потрібно, або, якщо це відбулося - поставити попередню версію.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 9:32
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!