Выгрузка из 1С информации по складам — различия между версиями
Материал из Umicms
Vitaliks (обсуждение | вклад) (Проверено, обновлено) |
Aposio (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
'''Актуально для версии 20.''' | '''Актуально для версии 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> | ||
Строка 31: | Строка 33: | ||
</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:44, 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` нужно указать идентификатор справочника "Склад".