Выгрузка из 1С информации по складам — различия между версиями
Материал из Umicms
Kublan (обсуждение | вклад) |
Aposio (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 4 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально | + | '''Актуально для версии 20.''' |
− | + | == Задача == | |
+ | Импортировать из 1С в карточки товара информацию о количестве на складах из тегов: | ||
<source lang='xml'> | <source lang='xml'> | ||
<Склад ИдСклада="6257b501-c90c-11e2-bd93-001e67494c74" КоличествоНаСкладе="84"/> | <Склад ИдСклада="6257b501-c90c-11e2-bd93-001e67494c74" КоличествоНаСкладе="84"/> | ||
Строка 7: | Строка 8: | ||
</source> | </source> | ||
− | + | == Решение == | |
+ | ===Добавляем шаблон в файл /xsl/import/custom/commerceML2.xsl=== | ||
<source lang='xml'> | <source lang='xml'> | ||
<xsl:template match="ПакетПредложений"> | <xsl:template match="ПакетПредложений"> | ||
<objects> | <objects> | ||
<xsl:for-each select="Склады/Склад"> | <xsl:for-each select="Склады/Склад"> | ||
− | <object id="{Ид}" type-id="81" name="{Наименование}" /> | + | <object id="{Ид}" type-id="81" name="{Наименование}" /> <!-- type-id - идентификатор справочника "Склад" --> |
</xsl:for-each> | </xsl:for-each> | ||
</objects> | </objects> | ||
Строка 19: | Строка 21: | ||
</pages> | </pages> | ||
<options> | <options> | ||
− | <xsl: | + | <xsl:apply-templates select="Предложения/Предложение" mode="stores_state" /> |
− | + | </options> | |
− | + | </xsl:template> | |
− | + | ||
− | + | <xsl:template match="Предложения/Предложение" mode="stores_state"> | |
− | + | <entity page-id="{Ид}" field-name="stores_state"> | |
+ | <xsl:for-each select="Склад"> | ||
+ | <option int="{@КоличествоНаСкладе}" float="0" object-id="{@ИдСклада}" /> | ||
</xsl:for-each> | </xsl:for-each> | ||
− | + | </entity> | |
</xsl:template> | </xsl:template> | ||
</source> | </source> | ||
− | + | ||
+ | ===Добавляем в базу данных запись в таблицу cms3_import_types:=== | ||
+ | <source lang='sql'> | ||
+ | INSERT INTO `cms3_import_types` (`source_id`, `old_id`, `new_id`) | ||
+ | VALUES ('5', '71', '71'); | ||
+ | </source> | ||
+ | |||
+ | Для source_id нужно указать id записи из таблицы cms3_import_sources, где source_name имеет значение 'commerceML2'. Получить это значение можно запросом: | ||
+ | <source lang='sql'> | ||
+ | SELECT id FROM cms3_import_sources WHERE source_name = 'commerceML2'; | ||
+ | </source> | ||
+ | |||
+ | Для `old_id` и `new_id` нужно указать идентификатор справочника "Склад". | ||
+ | |||
+ | [[category:Интеграция с 1С]] |
Текущая версия на 08:59, 20 декабря 2019
Актуально для версии 20.
Содержание
Задача
Импортировать из 1С в карточки товара информацию о количестве на складах из тегов:
<Склад ИдСклада="6257b501-c90c-11e2-bd93-001e67494c74" КоличествоНаСкладе="84"/>
<Склад ИдСклада="885f414e-4d67-11e5-ac2e-001e67494c75" КоличествоНаСкладе="20"/>
Решение
Добавляем шаблон в файл /xsl/import/custom/commerceML2.xsl
<xsl:template match="ПакетПредложений">
<objects>
<xsl:for-each select="Склады/Склад">
<object id="{Ид}" type-id="81" name="{Наименование}" /> <!-- type-id - идентификатор справочника "Склад" -->
</xsl:for-each>
</objects>
<pages>
<xsl:apply-templates select="Предложения/Предложение" />
</pages>
<options>
<xsl:apply-templates select="Предложения/Предложение" mode="stores_state" />
</options>
</xsl:template>
<xsl:template match="Предложения/Предложение" mode="stores_state">
<entity page-id="{Ид}" field-name="stores_state">
<xsl:for-each select="Склад">
<option int="{@КоличествоНаСкладе}" float="0" object-id="{@ИдСклада}" />
</xsl:for-each>
</entity>
</xsl:template>
Добавляем в базу данных запись в таблицу cms3_import_types:
INSERT INTO `cms3_import_types` (`source_id`, `old_id`, `new_id`)
VALUES ('5', '71', '71');
Для source_id нужно указать id записи из таблицы cms3_import_sources, где source_name имеет значение 'commerceML2'. Получить это значение можно запросом:
SELECT id FROM cms3_import_sources WHERE source_name = 'commerceML2';
Для `old_id` и `new_id` нужно указать идентификатор справочника "Склад".