Обмен между R-Keeper и 1С:Рарус-Общепит

Описана пошаговая настройка выгрузки данных из R-Keeper в 1С:Рарус-Общепит

Для тех, кто впервые настраивает обмен между R-Keeper и 1С:Рарус-Общепит есть информация на сайтах:
Форум: «1С: Общепит 8 // 1C-Рарус: Общепит»
http://www.1c-menu.ru/forum/index.php?PAGE_NAME=read&FID=5&TID=535
Особенности применения обработки «Загрузка данных о реализации из программы R-Keeper v.6»
http://club-1c.com/page/index.html/_/1-8-2-1373872279/%D0%BE%D0%B1%D1%89%D0%B5%D0%BF%D0%B8%D1%82-%D0%BF%D0%BE%D0%B4%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0/%D0%BE%D1%81%D0%BE%D0%B1%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0-%D0%B4%D0%B0%D0%BD%D0-r11287

Но данные изложены немного непоследовательно, хотя дают определенную информацию к успешному разрешению проблемы обмена. Попробуем изложить процедуру обмена по шагам, которая состоит из двух этапов:

1. Выгрузка данных в промежуточный файл из R-Keeper 6

В рабочем каталоге RK6 есть программа Transp32.exe, которая осуществляет выгрузку из файлов данных R-Keeper с расширением DB в файлы DBF.

Настройки хранятся в RKEEPER.INI, обычно менять их не надо.
В разделе [Transport] задается параметр — путь к папке выгрузки StockPath=С:
k6STOCK
Для выгрузки запускаем Transp32.exe (при регулярном использовании лучше сделать ярлык), пароль по умолчанию — «1».
Далее Меню «Файл» — «Выгрузка Склад», задается период.
После выгрузки в папке, заданной в RKEEPER.INI появляются следующие файлы:
Acheck.dbf — список чеков — TOTAL — 4 знака после запятой
ADcheck.dbf
Apcheck.dbf — оплата чеков BASESUMEQW, ORIGSUM — 4 знака после запятой
Archeck.dbf — блюда в чеках PAYSUM — 6 знаков после запятой
AVcheck.dbf
Categ.dbf — категории товаров
Charges.dbf — скидки
Control.dbf — служебная количество записей в других таблицах по точкам
Menu.dbf — перечень блюд
Modify.dbf — замены блюд
Money.dbf — оплаты по видам (нал, безнал, неплательщики, банкет)
Personal.dbf — персонал
Reasons.dbf

У R-Keeper есть особенность — суммы хранятся с точностью не до копеек а больше (4-6 знаков после запятой), поэтому иногда цифры могут «гулять» и не сходиться с Z-отчетом.
R-Keeper 7 использует для хранения данных SQL-сервер, для выгрузки служит отдельная программа kr7_dbf.exe.
Она раздаётся на партнерском сайте UCS, необходимо указать строку подключения к базе, классификацию блюд для экспорта и путь для экспорта DBF. Поля совпадают с выгрузкой r-keeper 6, только добавлены дополнительные поля в таблицы ARcheck (COMPLEX, CONTENT, VATNUM — номер НДС, VATPERCENT размер НДС в %) и Menu (COMPLEX).
Загрузка из R-Keeper 7 не проверялась, но скорее всего тоже будет работать.

2. Загрузка из файлов обмена в 1С:Общепит

В конфигурации используется обработка ОбщепитЗагрузкаRKeeper.epf, внешний вид приведен на рисунке
Путь «Соответствие» указываем такой же, как и при выгрузке (С:
k6STOCK). Выбираем организацию, подразделение, склад. Выбираем нужные параметры.

Сначала нажимаем «Заполнить соответствия».
При этом можно выбрать критерии: по полному совпадению наименований; по частичному совпадению наименований; по совпадению шифра R-keeper и кода 1C; по совпадению кода R-keeper и кода 1C. Если не все заполнено, можно заполнить соответствие руками.
Нажимаем «Получить номенклатуру», номенклатура из R-Keeper, которой нет в общепите, будет создана при выборе «Создавать товары».

По кнопке «Создать документы» можно создать следующие документы:
— Закрытие кассовой смены, с хоз. операцией Акт о реализации;
— Выпуск продукции, с хоз. операцией Выпуск с розничной реализацией;
— Установка цен номенклатуры.

При аккуратном использовании данной обработке обычно получается предсказуемый результат.

Проблемы при обновлении платформы на 8.3

В версии 8.3 во временное хранилище можно помещать только сериализуемые значения
После обновления конфигурации 1С:Рарус Общепит на версию 3.0.28 изменились требования к платформе, теперь необходимо работать в версии 1с 8.3.
Но возникла неожиданная проблема:
при выполнении кода

БД_ТС = ПолучитьИзВременногоХранилища(Объект.АдресВХДБФБД_ТС);
ПоместитьВоВременноеХранилище(БД_ТС, АдресВХДБФБД_ТС);

Объект xBase не сериализуется, поэтому не может быть помещен во временное хранилище.

Подробнее написано в ИТС: http://its.1c.ru/db/metod81#content:5293:1
Но от объяснения не становится легче.
Варианты решения:
1. Обновиться до конфигурации 3.0.29.7 (обращение в службу поддержки позволило исправить ошибку в новом релизе)
2. Исправить выгрузку:

&НаСервере
Перем БД_ТС; // Храним её пока на сервере
&НаСервере
Процедура УстановитьСоответствиеСервер(ОбъектСсылка, Соответствие)

Если БД_ТС = Неопределено Тогда // Возможно, выпрыгивали с сервера и переменная пропала
ИдентификаторКонфигурации = ЗначениеВСтрокуВнутр(Метаданные);
ИдентификаторКонфигурации = Сред(УбратьСимволы(ИдентификаторКонфигурации, "{}#"","),1,8);
ФайлТС = Объект.ПутьСоответствий + "" +ИдентификаторКонфигурации + ".dbf";
ФайлИндексовТС = Объект.ПутьСоответствий + "" + ИдентификаторКонфигурации + ".cdx";
//Надо открыть БД_ТС заново
БД_ТС = Новый XBase;
БД_ТС.ОткрытьФайл(ФайлТС, ФайлИндексовТС, Ложь);
БД_ТС.ТекущийИндекс = БД_ТС.индексы.Найти("IndSource");
КонецЕсли;
&НаСервере
Процедура ЗаполнитьНоменклатуруСервер(ЗаполнитьИзПродаж, ЗаполнитьБлюда, ЗаполнитьМодификаторы)

Объект.ТаблицаСоответствия.Очистить();
Если БД_ТС = Неопределено Тогда
//Надо открыть БД_ТС заново
ИдентификаторКонфигурации = ЗначениеВСтрокуВнутр(Метаданные);
ИдентификаторКонфигурации = Сред(УбратьСимволы(ИдентификаторКонфигурации, "{}#"","),1,8);
ФайлТС = Объект.ПутьСоответствий + "" +ИдентификаторКонфигурации + ".dbf";
ФайлИндексовТС = Объект.ПутьСоответствий + "" + ИдентификаторКонфигурации + ".cdx";

БД_ТС = Новый XBase;
БД_ТС.ОткрытьФайл(ФайлТС, ФайлИндексовТС, Ложь);
БД_ТС.ТекущийИндекс = БД_ТС.индексы.Найти("IndSource");
КонецЕсли;
&НаСервере
Функция ПроверитьТаблицуСоответствияСервер()

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
ОбработкаОбъект.БД_ТС = БД_ТС;
Возврат ОбработкаОбъект.ПроверитьТаблицуСоответствия();

КонецФункции

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Объект.ПолныйРежимЗагрузкиДокументов = 1;
Объект.КоличествоЭлементовКипера = 0;
Объект.КоличествоЭлементов1С = 0;
Объект.СоздаватьНоменклатуру = 0;
Элементы.СтраницаДерево.Видимость = Ложь;
Элементы.СтраницаСоответствие.Видимость = Истина;
Элементы.ТаблицаСоответствияКоманднаяПанельТаблицыСоответствияИерархия.Доступность = Ложь;
Элементы.ТаблицаСоответствияКоманднаяПанельТаблицыСоответствияИерархияД.Пометка = Истина;
Объект.ВыгружатьДокументыНаДату = НачалоДня(ТекущаяДата());
Элементы.ГруппаСоздатьДокументы.Доступность = Ложь;
Объект.СтруктураПоискаСоответствия = Новый Структура("ШифрКипер,БлюдоМодификатор");
КонецПроцедуры
&НаСервере
Процедура ЗакрытьТС()
Попытка БД_ТС.ЗакрытьФайл();
Исключение КонецПопытки;
КонецПроцедуры

В модуле обработке, функции «ПроверитьТаблицуСоответствия()» убрать строки (так как БД_ТС передана перед вызовом метода):

БД_ТС = ПолучитьИзВременногоХранилища(АдресВХДБФБД_ТС);
ПоместитьВоВременноеХранилище(БД_ТС, АдресВХДБФБД_ТС);
 

9 Comments

  1. ignor

    Рарус Общепит имеет штатную загрузку из R-keeper 6 кажется. Во всяком случае допиливать её для клиента не приходилось. А вот для R-keeper 7 го писал http://infostart.ru/public/194961/ .

    Reply
  2. CratosX

    (1) ignor, да, действительно есть встроенная рабочая загрузка из RKeeper6, а вот из RK7 нет

    Reply
  3. ignor

    (2) CratosX, У RK7 Только через формирование отчетов и вывод их в формате CSV

    Reply
  4. Strucka

    А в обратную сторону есть обмен? Выгрузить номенклатуру из 1С в GameKeeper нужно?

    Reply
  5. androgin

    Чем отличаются обработки приложенные с публикации?

    Reply
  6. CratosX

    Мануал по загрузке в связи с реконструкцией сайта переехал с 1c-menu на https://rarus.ru/forum/forum58/topic8813/

    Reply
  7. user919964

    У меня вопрос общепит файл загрузка r-keeper

    .epf 51,53Kb 16.02.14 подойдет для загрузки данных из версии r-keeper 6 в общепит рарус 1.6

    Reply
  8. kserdyukov

    Не знаю, не пробовал, можно доработать по месту.

    Reply
  9. user824443

    Подскажите пожалуйста, обработка не подходит на текущие релизы общепита? У меня 3.0.68.68. Нужен обмен с r-keeper 7. К кому можно обратиться за доработкой?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *