Структура таблиц для обмена Меркурий-150.3 и 1С

Раздел для обсуждения программного обеспечения КБ по ККМ Меркурий.
Ответить
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Возникла необходимость настроить дисконт-систему на базе 1С:Управление торговлей 10.3 (основная база) и сети Меркурий-150.3 (как РМК)
Данных для обмена в типовой конфигурации маловато, буду дорабатывать. Но возникли вопросы и я очень надеюсь на помощь разработчиков.

Сейчас работают 3 Меркурия-150.3 (в дальнейшем буду писать РМК).

Вообщем нашел на форуме файл "формат таблиц M150.3.doc", в принципе там все расписано по таблицам. Это выходные файлы, но работаем через драйвер "MercuryCOMOFFLINE" и стандартную обработку "IncotexMercuryECROffline_v2.23 (API 2.05).epf", а там передача идет в драйвер через формат XML и никак не могу найти такую же структуру как в файле "ВЗАИМОДЕЙСТВИЕ ДРАЙВЕРА И СТОРОННИХ ПРОГРАММ.doc"

Код: Выделить всё

<?xml version=""1.0"" encoding=""windows-1251""?>
<INCOTEX_MERCURY_ECR_OFFLINE_UPDATE VERSION=”” "MODE="">
//MODE =   [CLEAR_BEFORE|RENEW_ALL|COMULATIVE_REMAINS|COMULATIVE_REMAINS_ONLY]
      // CLEAR_BEFORE – очистить справочник перед обновлением
      // RENEW_ALL – обновлять все поля справочника
      // COMULATIVE_REMAINS - обновлять все поля, REMAINS суммируем 
      // COMULATIVE_REMAINS_ONLY – обновить только REMAINS суммированием
 <WARES>
  <WARE
   PLU=”D”          // уникальный код записи в справочнике номенклатуры
   TYPE=”D”         // вид номенклатуры: товар/услуга/набор/платеж (0 – товар, 1 – услуга, 2 – набор, 3 – платеж)
   NAME=”S”         // наименование  
   GROUP=”S”        // группа номенклатуры, пример – «спортивная обувь»
   GROUPID=”D”      // код группы номенклатуры, пример – «000027»
   ED=”S”           // единица измерения номенклатуры
   PRICE=”F(.ПДТ)”  // цена за единицу номенклатуры
   TAX=”S”          // налоговая ставка, пример «18%»
   WEIGHT=”D”       // флаг весового товара: 1-весовой
   REMAINS=”F(.3)”  // текущий остаток в единицах измерения
   DESCRIPTION=”S”     // характеристика номенклатуры, пример -  «38/белый/натур. кожа» 
   PRODUCER=”S”     // производитель, пример – «Малайзия» 
   CONSIGNMENT=”S”  // серия/партия поставки номенклатуры, пример – «С-555, 14.04.2003»
   {BARCODE=”D” |   // штрих-код |
   WEIGHTCODE=”D”}  // весовой код 
     >
        // дополнительные штрих-коды могут быть указаны списком
   <BARCODE COUNT=”D”>D</BARCODE>
   <BARCODE COUNT=”D”>D</BARCODE>
   <BARCODE COUNT=”D”>D</BARCODE>
  </WARE>
 </WARES>
</INCOTEX_MERCURY_ECR_OFFLINE_UPDATE>
// S - строка 
// D – целое число 
// F – число с дробной частью
Нужно в таком же виде для таблиц Discount.tbl и CustomerCard.tbl
И в какую папку записывать DATA.XML для этих таблиц относительно драйвера

2) В таблице Discount.tbl
  • Имя клиента (до 20 символов).
  • Код магнитной карты (до 48 символов).
  • Штрих-код.
  • Дополнительная информация (до 255 символов, для разделения строк используется значение '\001')
  • Флаг блокировки (1 - заблокирован, 0 - нет)
  • Баланс карты.
  • 64-битная маска разрешенных скидок/наценок.
ведущее поле "Имя клиента (до 20 символов)", "Код магнитной карты (до 48 символов)" или "Штрих-код"? Что указывается в таблице продаж?
"64-битная маска разрешенных скидок/наценок" это берется из таблицы "Discount.tbl" и указывается "Номер скидки"?




Или лучше не морочиться и полностью переписать обработку обслуживания на работу напрямую с текстовыми файлами и в обход драйвера?
Аватара пользователя
Palich53
Сообщения: 25
Зарегистрирован: 18 апр 2011, 16:04

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Palich53 »

Rinat писал(а): Или лучше не морочиться и полностью переписать обработку обслуживания на работу напрямую с текстовыми файлами и в обход драйвера?
Имею на обслуживании около 30 штук Меркурий 150.3, и везде действую только так! Файлы посылаю через утилиту Mercury_150_3.exe.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Palich53 писал(а): Имею на обслуживании около 30 штук Меркурий 150.3, и везде действую только так! Файлы посылаю через утилиту Mercury_150_3.exe.
Зачем тогда утилита? если я выгрузил текстовые файлы goods.tbl и barcode.tbl и на кассе они автоматически подхватились?
Аватара пользователя
Palich53
Сообщения: 25
Зарегистрирован: 18 апр 2011, 16:04

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Palich53 »

Если честно, не совсем я понял, куда можно выгрузить файлы, чтобы они автоматически подхватились на кассе. Ну, или может быть через флешку. Но я не думаю, что через флешку удобно.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Palich53 писал(а):Если честно, не совсем я понял, куда можно выгрузить файлы, чтобы они автоматически подхватились на кассе. Ну, или может быть через флешку. Но я не думаю, что через флешку удобно.
Например, на FTP. У РМК есть возможность забирать их. НА FTP кладутся именно текстовые файлы
Аватара пользователя
Shtirlic
Сообщения: 377
Зарегистрирован: 18 фев 2011, 11:21

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Shtirlic »

Rinat
драйвер "MercuryCOMOFFLINE" разрабатывался для взаимодействия ряда ККМ(ЧПМ) со стандартными механизмами 1С предназначенными для взаимодействия в оффлайн режиме, соответственно этот режим в 1С поддерживает только выгрузку товара и загрузку отчета продаж(в упрощенном виде). В этом режиме отдельная выгрузка правил дисконта 1С не предусмотрена, соответственно это и не было поддержано драйвером.
Для использования конкретной ККМ в полном объеме лучше использовать файлы в её родном формате(*.tbl) и при необходимости с соответствующей утилитой.
Теоретически может в драйвер и можно было бы попытаться втиснуть правила дисконта(есть проблемы с совместимостью на разных типах ККМ), но это все равно была бы только полумера, потому, что по остальным настройкам разность в типах ККМ сильно отличается и под один интерфейс взаимодействия без компромиссов не реализовать. В данном случае мы посчитали, что для упрощенного взаимодействия с ККМ можно использовать, что то общее(MercuryCOMOFFLINE), а если использовать возможности ККМ в полном объеме то лучше уже использовать механизмы предназначенные для конкретной ККМ.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Shtirlic писал(а):Rinat
драйвер "MercuryCOMOFFLINE" разрабатывался для взаимодействия ряда ККМ(ЧПМ) со стандартными механизмами 1С предназначенными для взаимодействия в оффлайн режиме, соответственно этот режим в 1С поддерживает только выгрузку товара и загрузку отчета продаж(в упрощенном виде). В этом режиме отдельная выгрузка правил дисконта 1С не предусмотрена, соответственно это и не было поддержано драйвером.
Для использования конкретной ККМ в полном объеме лучше использовать файлы в её родном формате(*.tbl) и при необходимости с соответствующей утилитой.
Теоретически может в драйвер и можно было бы попытаться втиснуть правила дисконта(есть проблемы с совместимостью на разных типах ККМ), но это все равно была бы только полумера, потому, что по остальным настройкам разность в типах ККМ сильно отличается и под один интерфейс взаимодействия без компромиссов не реализовать. В данном случае мы посчитали, что для упрощенного взаимодействия с ККМ можно использовать, что то общее(MercuryCOMOFFLINE), а если использовать возможности ККМ в полном объеме то лучше уже использовать механизмы предназначенные для конкретной ККМ.
Спасибо за ответ :) Я так и предполагал, но, как и все люди, надеялся на лучшее :)

Может у кого есть обработка, работающая в 1С со стандартными файлами? Хотя бы выгрузка товаров и загрузка отчетов продаж. А то с нуля писать как то долго выйдет :(
Аватара пользователя
Shtirlic
Сообщения: 377
Зарегистрирован: 18 фев 2011, 11:21

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Shtirlic »

Хотя бы выгрузка товаров и загрузка отчетов продаж.
может для этого как раз драйвер MercuryCOMOFFLINE и стандартную обработку использовать, что бы хотя бы это не писать и только для дисконта написать что то свое. Да и на сколько я знаю 1С в ККМ оффлайн выгружает товар с ценой которая может быть уже откорректирована некоторыми скидками, но в этом вопросе я не совсем в теме.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Shtirlic писал(а): может для этого как раз драйвер MercuryCOMOFFLINE и стандартную обработку использовать, что бы хотя бы это не писать и только для дисконта написать что то свое.
да уж толку не будет, что половину файлов будет формировать через драйвер, а вторую на прямую. Не удобно даже в плане настройки (в драйвере указываешь путь, для другой половины в настройке 1С)

Shtirlic писал(а): Да и на сколько я знаю 1С в ККМ оффлайн выгружает товар с ценой которая может быть уже откорректирована некоторыми скидками, но в этом вопросе я не совсем в теме.
Ошибаетесь. Перед выгрузкой в ККМ_Оффлайн 1С формирует таблицу по "чистым" ценам. Т.е. в случае розничного склада - по цене товаров в рознице, в случае оптового склада - по ценам номенклатуры. Это по опыту работы с данной POS-системой, так же и с другими конкурирующими системами (называть не буду модели и фирмы, вдруг запрещено) .
Аватара пользователя
Shtirlic
Сообщения: 377
Зарегистрирован: 18 фев 2011, 11:21

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Shtirlic »

да уж толку не будет,...
да конечно не удобно, просто как вариант предложил.

Ошибаетесь.
да вполне может быть, сразу предупредил, что в этом не совсем в теме.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Простите за глупый вопрос. Но что означает
64-битная маска разрешенных скидок/наценок
у скидки есть код. как преобразовать ее в нужный вид
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Господа разработчики, ответьте плиз.
Я даже понятие не имею, что это за маска такая
Аватара пользователя
ivan_kov
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 206
Зарегистрирован: 18 фев 2011, 10:08

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение ivan_kov »

Если вы хотите разрешить скидку номер "0" ставите в "1" нулевой бит в маске (маска = 2^0=1 ).
Если вы хотите разрешить скидку номер "1" ставите в "1" первый бит в маске (маска = 2^1=2 ).
Если вы хотите разрешить скидку номер "2" ставите в "1" второй бит в маске (маска = 2^2=4 ).
Если вы хотите разрешить скидку номер "3" ставите в "1" третий бит в маске (маска = 2^3=8 ).
и т.д.

Соответственно, если Вам нужны скидки "0","1","2" то устанавливаете три бита: 0,1,2 (маска = 1+2+4 = 7)

Хотите запретить все скидки - маска =0
Хотите разрешить все скидки - маска = 18 446 744 073 709 551 615
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Есть еще вопросы. Помогите пожалуйста.

1) при загрузке таблицы скидок выдает ошибку "Операция 'Импорт таблицы фикс. скидок' Закончилось ошибкой 'Bad file descriptor' Строка №-1, Поле №-1"
Скидки в таблицу "Скидки/наценки" попадают, но есть еще один справочник в РМК "Фикс. скидки/наценки". Я так понял, что система не может найти файл с фиксированными скидками, но и я не могу найти информацию об этом файле

2) Настроил обмен. Через "Обмен данными -> Загрузка товаров" данные о скидках и картах не загружаются. Ладно, есть "обмен прочими данными". Но там постоянно нужно вводить откуда брать эти файлы. А если через ФТП - то нужно ввести адрес,логин и пароль. Для этого нужна клавиатура. Нельзя сделать так, что бы место обмена брало из настроек?
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

Может приложить discount.tbl для ускорения? :)
Аватара пользователя
ivan_kov
Сотрудник Инкотекс
Сотрудник Инкотекс
Сообщения: 206
Зарегистрирован: 18 фев 2011, 10:08

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение ivan_kov »

Rinat писал(а):Есть еще вопросы. Помогите пожалуйста.

1) при загрузке таблицы скидок выдает ошибку "Операция 'Импорт таблицы фикс. скидок' Закончилось ошибкой 'Bad file descriptor' Строка №-1, Поле №-1"
Скидки в таблицу "Скидки/наценки" попадают, но есть еще один справочник в РМК "Фикс. скидки/наценки". Я так понял, что система не может найти файл с фиксированными скидками, но и я не могу найти информацию об этом файле

2) Настроил обмен. Через "Обмен данными -> Загрузка товаров" данные о скидках и картах не загружаются. Ладно, есть "обмен прочими данными". Но там постоянно нужно вводить откуда брать эти файлы. А если через ФТП - то нужно ввести адрес,логин и пароль. Для этого нужна клавиатура. Нельзя сделать так, что бы место обмена брало из настроек?
1) Описание форматов можно найти здесь. Чтобы эту ошибку убрать достаточно выложить пустой файл fixdiscount.tbl

2) Такой возможности нет. Последние указанные параметры ФТП (кроме пароля) запоминаются кассой и не требуют повторного ввода.
Аватара пользователя
Rinat
Сообщения: 10
Зарегистрирован: 01 дек 2013, 18:39

Re: Структура таблиц для обмена Меркурий-150.3 и 1С

Сообщение Rinat »

ivan_kov писал(а): 1) Описание форматов можно найти здесь. Чтобы эту ошибку убрать достаточно выложить пустой файл fixdiscount.tbl
Спасибо! То, что надо! То, что я скачал до этого информации о фикс. скидках не содержит :shock: хотя с этого же форума и качал
ivan_kov писал(а): 2) Такой возможности нет. Последние указанные параметры ФТП (кроме пароля) запоминаются кассой и не требуют повторного ввода.
хм. нужно проверить. Сложности сделать цифровой пароль сложности нет :)
Ответить