ВведениеLink to Введение

Команды записи поддерживаются только на сервере справочников.

Ниже приводятся минимально допустимые наборы атрибутов объектов. Для получения списка всех атрибутов объекта — выполните чтение соответствующего справочника.

Логика записи — вставка или обновление.
Ключевым атрибутом считается GUIDString.
Связи с родительскими объектами — по атрибуту MainParentGUID.
Если какие-то атрибуты не заполнены — они игнорируются.
Если атрибуту надо определить пустое значение — укажите «».
Удаление записей — выполняется установкой статуса rsDeleted, при этом фактически записи в базе данных не удаляются.

При обработке запроса права проверяются от имени пользователя XML-Editing. Если система возвращает ошибку, передайте UserGUID, UserID и UserPass в теге RK7Query.

Чтобы избежать дублирования идентификаторов при создании элемента через XML-API, в таблице GENERATORS используйте значение SIFR=1. Генератор будет использоваться для сквозной идентификации в таблицах:

  • MENUITEMS
  • MODIFIERS
  • DISCOUNTS
  • DISCOUNTDETAILS
  • MODISCHEMEDETAILS.

Получение меню

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
    <RK7CMD CMD="GetRefData" RefName="MenuItems"/>
</RK7Query>
XML

Вставка товара

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
    <RK7Command CMD="SetRefData" RefName="MenuItems">
        <Items>
            <Item GUIDString="{5B3537CE-ECF0-4D6A-B0AE-F095FC4F0522}" MainParentIdent="{a70ab9c0-934b-49e4-91a8-cb2e85f1cbf2}" Code="3" Name="Чай другой" AltName="" Status="rsActive" TaxDishType="1" ExtCode="3" PRICETYPES-0="1000"/>
<Item GUIDString="{5a76323c-3a58-4bd8-8a91-478ca2568ecc}" MainParentIdent="{85A6B558-D59B-44F2-A103-031E473D6843}" Code="33" Name="Рыба" AltName="" Status="rsActive" TaxDishType="1" ExtCode="33" PRICETYPES-0="5000" CLASSIFICATORGROUPS-2560="27"/>
<Item GUIDString="{5e787f73-da50-438c-96f9-70926422ef45}" MainParentIdent="{85A6B558-D59B-44F2-A103-031E473D6843}" Code="32" Name="Котлета" AltName="" Status="rsActive" TaxDishType="1" ExtCode="32" PRICETYPES-0="19040" CLASSIFICATORGROUPS-2560="27"/>
<Item GUIDString="{d9fd4966-478a-48ef-b6af-1f5f9d998d43}" MainParentIdent="{d85701de-d4c2-4843-9d49-55228e506738}" Code="31" Name="Плюшка" AltName="" Status="rsActive" TaxDishType="1" ExtCode="31" PRICETYPES-0="8000" CLASSIFICATORGROUPS-2560="27"/>
<Item GUIDString="{feeabc44-673c-4898-aa08-c199fc1174c5}" MainParentIdent="{5e5d99e1-3c3a-49f3-8036-85c15f15ca0d}" Code="30" Name="Чай с молоком" AltName="" Status="rsActive" TaxDishType="1" ExtCode="30" PRICETYPES-0="9000" CLASSIFICATORGROUPS-2560="27"/>
        </Items>
    </RK7Command>
</RK7Query>
XML
Атрибут
Тип значения

GUIDStringGUIDУникальный идентификатор объекта
MainParentIdentGUID/IdentСсылка на родителя. Родитель должен существовать или быть в xml ранее
CodeIntegerКод объекта (уникальный, для быстрого доступа)
ExtCodeIntegerВнешний код объекта (уникальный, для внешних систем)
NamestringНазвание товара
StatusrsActive, rsInactive, rsDeletedСтатус объекта (активен (доступен), недоступен, удален)
PRICETYPES-0integerЦена (в копейках) для типа цены (0 - по умолчанию)
TaxDishTypeintegerТип налога
CLASSIFICATORGROUPS-2560GUID/IdentСсылка на категорию, где 2560 - ID классификации

Сразу можно перечислить несколько цен и принадлежность блюда к нескольким категориям.

Результат:

<?xml version="1.0" encoding="utf-8"?>
<RK7QueryResult ServerVersion="7.5.3.1" XmlVersion="88" Status="Ok" Processed="1">
    <CommandResult CMD="SetRefData" Status="Ok" ErrorText="" DateTime="2013-05-16T18:16:18" WorkTime="16"/>
</RK7QueryResult>
XML

Вставка расширенных свойствLink to Вставка расширенных свойств

<RK7Query>
        <RK7Command CMD="SetRefData" RefName="MenuItems">
                <Items>
                        <Item GUIDString="{DA3434A6-AEC3-4D4B-B982-9AE2BD9BA83F}" genBGU="test" Status="rsActive"/>
                </Items>
        </RK7Command>
</RK7Query>
XML

Где расширенное свойство называется BGU, но указывать нужно genBGU.
В версии 7.5.4, для внесения изменений в расширенное свойство по XML интерфейсу к расширенному свойству кроме основного типа, нужно добавить еще 1 тип, с идентификатором 2560. В списке типов без названия, ярлык — белый листок.

Создание товарных группLink to Создание товарных групп

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
    <RK7Command CMD="SetRefData" RefName="CATEGLIST">
        <Items>
  <Item GUIDString="{85A6B558-D59B-44F2-A103-031E473D6843}" Code="20" Name="Кухня" AltName="" Status="rsActive" ExtCode="12" />
  <Item GUIDString="{a70ab9c0-934b-49e4-91a8-cb2e85f1cbf2}" MainParentIdent="{85A6B558-D59B-44F2-A103-031E473D6843}"  Code="13" Name="Вторые блюда" AltName="" Status="rsActive" ExtCode="14" />
  <Item GUIDString="{5e5d99e1-3c3a-49f3-8036-85c15f15ca0d}" Code="21" Name="Бар" AltName="" Status="rsActive" ExtCode="16" />
  <Item GUIDString="{d85701de-d4c2-4843-9d49-55228e506738}" Code="22" Name="Другое" AltName="" Status="rsActive" ExtCode="19" /> 
        </Items>
    </RK7Command>
</RK7Query>
XML

Если возвращает ошибку, пропишите в тег RK7Query UserGUID, UserID и UserPass:

<?xml version="1.0" encoding="utf-8"?>
<RK7Query UserGUID="{39537C9D-E05D-401F-A50E-87EDBED475D7}" UserID="1000233" UserPass="123">
    <RK7Command CMD="SetRefData" RefName="CATEGLIST">
        <Items>
  <Item GUIDString="{85A6B558-D59B-44F2-A103-031E473D6843}" Code="20" Name="Кухня" AltName="" Status="rsActive" ExtCode="12" />
  <Item GUIDString="{a70ab9c0-934b-49e4-91a8-cb2e85f1cbf2}" MainParentIdent="{85A6B558-D59B-44F2-A103-031E473D6843}"  Code="13" Name="Вторые блюда" AltName="" Status="rsActive" ExtCode="14" />
  <Item GUIDString="{5e5d99e1-3c3a-49f3-8036-85c15f15ca0d}" Code="21" Name="Бар" AltName="" Status="rsActive" ExtCode="16" />
  <Item GUIDString="{d85701de-d4c2-4843-9d49-55228e506738}" Code="22" Name="Другое" AltName="" Status="rsActive" ExtCode="19" /> 
        </Items>
    </RK7Command>
</RK7Query>
XML

Обязательные поля:

Атрибут
Тип значения

GUIDStringGUIDУникальный идентификатор объекта
MainParentIdentGUIDСсылка на родителя. Родитель должен существовать или быть в xml ранее
NamestringНазвание товара

Дополнительные поля:

Атрибут
Тип значения

CodeIntegerКод объекта (уникальный, для быстрого доступа)
AltNamestringАльтернативное имя
ExtCodeIntegerВнешний код объекта (уникальный, для внешних систем)
StatusrsActive, rsInactive, rsDeletedСтатус объекта (активен (доступен), недоступен, удален)

Результат успешного выполнения:

<?xml version="1.0" encoding="utf-8"?>
<RK7QueryResult ServerVersion="7.5.3.1" XmlVersion="88" Status="Ok" Processed="1">
    <CommandResult CMD="SetRefData" Status="Ok" ErrorText="" DateTime="2013-05-16T18:49:12" WorkTime="0"/>
</RK7QueryResult>
XML

Создание классификацийLink to Создание классификаций

 Есть ограничение на количество классификаций. При достижении ограничения сервер вернет ошибку.

<?xml version="1.0" encoding="utf-8" ?>  
  <RK7Query UserGUID="{39537C9D-E05D-401F-A50E-87EDBED475D7}" UserID="1000233" UserPass="123">
     <RK7Command CMD="SetRefData" RefName="classificatorgroups">
      <Items>
      	<Item Status="3" Name="Новая классификация" AltName="New Classification" Ident="1024" GUIDString="{72DEC7B5-C57E-4A96-ACEB-881ABB35F06A}" /> 
      </Items>
    </RK7Command>
  </RK7Query>
XML

Ident при генерации новой классификации нужно задавать вручную, он должен быть кратен 256. Все что не кратно 256 будет считаться категорией.

Обязательные поля:

Атрибут
Тип значения

UserGUIDGUIDУникальный идентификатор пользователя
UserIDIntegerИдентификатор пользователя
UserPassIntegerПароль пользователя
GUIDStringGUIDУникальный идентификатор объекта
IdentIntegerУникальный идентификатор объекта
NamestringНазвание товара

Создание категорийLink to Создание категорий

<?xml version="1.0" encoding="utf-8" ?> 
<RK7Query>
  <RK7Command CMD="SetRefData" RefName="classificatorgroups">
    <Items>
      <Item Status="3" Name="новая категория" AltName="new category" MainParentIdent="768" Ident="773" GUIDString="{5C6C9489-9B22-4248-ABB4-85498686E4CE}" /> 
    </Items>
  </RK7Command>
</RK7Query>
XML

Ident при генерации также необходимо задавать вручную, он должен быть по значению больше MainParentIdent и меньше MainParentIdent + 256.

Обязательные поля:

Атрибут
Тип значения

GUIDStringGUIDУникальный идентификатор объекта
MainParentIdentGUIDСсылка на родительскую классификацию. Родитель должен существовать или быть в xml ранее
IdentIntegerУникальный идентификатор объекта
NamestringНазвание товара

Создание модификаторовLink to Создание модификаторов

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
  <RK7Command CMD="SetRefData" RefName="modifiers">
    <Items>
      <Item GUIDString="{6E998743-E7FD-47F8-B501-B7B97F20EA83}" 
            Code="31" 
            Name="Кетчуп" 
            AltName="ketchup" 
            MainParentIdent="1000070" 
            Status="rsActive" 
            SalesTerms_StartSale="3625400821882" 
            SalesTerms_StopSale="3625400821882" 
            UseStartSale="0" 
            UseStopSale="0" 
            ExtCode="7" 
            ShortName="" 
            AltShortName="" 
            MaxOneDish="1" 
            Comment="это кетчуп" 
            Weight="1" 
            Kurs="0" 
            SaveInCheck="1" 
            AddToName="0" 
            ReplaceName="0" 
            InputName="0" 
            AddMenuItemPrice="0" 
            UseLimitedQnt="1" 
            UseFormatInput="0" 
            UseKurs="0" 
            PRICETYPES-1000231="4500" 
            PRICETYPES-3="5000" 
            PRICETYPES-4="9223372036854775807"
            TRADEGROUPS-1000132="3" 
            TRADEGROUPS-1000271="3" 
            TRADEGROUPS-7="3" />
    </Items>
  </RK7Command>
</RK7Query>
XML

Обязательные поля:

Атрибут
Тип значения

GUIDStringGUIDУникальный идентификатор объекта
MainParentIdentGUIDСсылка на родительскую классификацию. Родитель должен существовать или быть в xml ранее
NamestringНазвание товара

Где:

  • SalesTerms_StartSale — дата начала продаж
  • SalesTerms_StopSale — дата конца продаж
  • PRICETYPES-1000231 — указание цены в копейках для типа цены с Ident = 1000231
  • TRADEGROUPS-1000132=«3» — указание значения для торговой группы с Ident = 1000132

Создание схем модификаторовLink to Создание схем модификаторов

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
  <RK7Command CMD="SetRefData" RefName="modischemes">
    <Items>
      <Item GUIDString="{644BDCC5-9211-4B45-B114-3C73722E9117}" 
            Code="3" 
            Name="Схема для соусов" 
            AltName="Scheme sauce" 
            MainParentIdent="0" 
            Status="3" 
            ModiSchemeType="1" 
            AutoOpen="0" 
            IgnoreDefaultForKitchen="0"  
            />
    </Items>
  </RK7Command>
</RK7Query>
XML

Где:

  • MainParentIdent — родительский сет
  • Если есть ModiSchemeType — тип схемы
  • AutoOpen — флаг автооткрытия
  • IgnoreDefaultForKitchen — флаг игнорировать «по умолчанию»

Назначение схемы модификатора на блюдоLink to Назначение схемы модификатора на блюдо

<?xml version="1.0" encoding="utf-8"?>
<RK7Query>
  <RK7Command CMD="SetRefData" RefName="menuitems">
    <Items>
      <Item GUIDString="{A94581EE-E6F7-4063-8275-0E35E4E9726F}" 
            ModiScheme="100013" />
    </Items>
  </RK7Command>
</RK7Query>
XML

Где ModiScheme — это Ident схемы модификаторов.