- посмотреть идентификатор можно из интерфейса списка настроек обмена (ссылка "идентификаторы объектов из интернет-магазинов"); - оказывается, переносить ничего не надо - все перенесено при обновлении. Таким образом, с загрузкой товаров с сайта в 1С проблемы нет. Посмотрим, что с выгрузкой цен и остатков...
Хранилище прежним не осталось - теперь идентификаторы должны храниться в общем реквизите Б_Идентификатор. Отсюда два вопроса: - как посмотреть в 1С идентификатор конкретной номенклатуры или характеристики? - нет ли готовой обработки по переносу идентификаторов из регистра в реквизит?
Алексей Сипаев,спасибо! Как я понимаю, хранилище осталось прежним - регистры сведений "Идентификаторы номенклатуры CMS 1С-Битрикс" и "Идентификаторы характеристик номенклатуры CMS 1С-Битрикс". По первой проблеме я наврал - дело было до последних обновлений. Сейчас ситуация следующая: новый "Помощник импорта товаров с сайта" товары не дублирует все ОК, но для вновь создаваемых товаров идентификаторы в вышеупомянутые регистры сведений не пишет. Получается, товары остаются без идентификаторов и при выгрузке на сайт одинэска сама присваивает им левые идентификаторы, никак не кореллирующие с XML_ID товаров на сайте.
Здравствуйте, коллеги! Имею на поддержке магазин, который много лет успешно работал и обменивался товарами с 1С, до конвертации магазина. После конвертации обмен работать перестал, ТП сказала делать обмен на новых модулях (до этого модуль обмена был версии 2.х). Обновил 1С (УТ) до 10.3.40.1, модуль обмена до 6.5.0.0, запустил обмен. Грабли начались сразу же, поэтому прошу здесь помощи тех, кто прошел эту процедуру. Общая схема работы сайта и 1С: - изначально товары создаются на сайте и выгружаются в 1С; - после приходования в 1С нужно выгрузить на сайт только актуальную цену и остатки. Никакие свойства и проч. не интересует. - выполненные заказы должны выгрузиться в 1С для отчетности. Обратно заказы загружать не надо, они выполнены.
Текущие проблемы: 1. Загрузка товаров с сайта. Новый "Помощник импорта товаров с сайта" создает все товары в 1С заново. Как заставить его понимать, что он здесь не первый? Старая версия обработки пока работает нормально (вроде бы), но хотелось бы перейти на новую, чтобы не влипнуть еще в какую-нибудь несовместимость. 2. Выгрузка остатков и цен на сайт. Обнаружилось, что новая выгрузка по-новому формирует идентификаторы объектов. Например, ранее загруженные товары имеют в выгрузке идентификатор вида <Ид>53</Ид>, а загруженные после обновления - <Ид>2cc7551b-1b9a-11e7-9b2a-f079595bc40a</Ид>. Соответственно, новым товарам соответствия на сайте не находится и они создаются заново. При этом значения в регистре "Идентификаторы номенклатуры CMS 1С-Битрикс" у новых товаров нормальные, короткие, такие же, как на сайте. Как заставить выгрузку брать корректные идентификаторы?
Здравствуйте, коллеги. Хочу поделиться опытом интеграции магазина с УТ (10.3) с использованием импорта каталога в УТ из магазина (недавний функционал, описанный в статье http://1c.1c-bitrix.ru/blog/blog1c/catalog_import.php). Это не подробный мануал, а только лишь попытка указать на принципиальные проблемы, с которыми пришлось столкнуться.
Итак, имеем интернет-магазин белья с заполненным каталогом. Товары имеют SKU, достаточно много SKU (штук по 60 на товар). Решаем в 1С иметь дело только с учетной информацией (названия, артикулы, цены, остатки, ну и основные картинки товаров, для красоты), свойства оставляем только на сайте.
Итак, делаем новую базу УТ, ставим дополнение от Битрикса. Находим обработку "Помощник импорта товаров с сайта...", запускаем. В настройках снимаем флаг "Создавать свойства товаров" (остальные флаги ставим), стартуем импорт, и...
Проблема первая. При загрузке товаров в базу сразу получаем от 1С синтаксическую ошибку:
Код
{Обработка.РИ_ПомощникИмпортаТоваровБитрикс.МодульОбъекта(1483)}: Ошибка при вызове метода контекста (Записать)
Зап.Записать();
по причине:
Запись не верна! Значение поля "Объект" не может быть пустым!: ЗначенияСвойствОбъектов: , (Регистр сведений: Значения свойств объектов)
Хм. Лезем в конфигуратор, выясняем, что перед "Зап.Записать()" вызывается метод "Зап.Прочитать()", который и очищает все, что можно было записать. В дебри не лезем, ремим этот "Зап.Прочитать()", обновляем базу, снова запускаем процесс. Ура! Все выгрузилось! Каталог товаров на месте, SKU на месте, цены есть. Соответствия кодов товаров и SKU проставлены - красота. Конечно, неправильно просто заремить строчку, не разобравшись в логике, но поскольку результат нас устраивает, закрываем на это глаза.
Имеем право думать, что теперь стандартный обмен с 1С взлетит по щелчку пальцев - нам ведь ничего хитрого не надо - цены и остатки. Соответствия у товаров есть, чего еще желать? К делу: приходуем тестовый товар на склад, меняем цену, заодно корректируем название, запускаем обмен. Смотрим результат...
Проблема вторая. Создались новые инфоблоки для товаров и SKU, и все выгружено в них. Ёксель. Вот тебе и соответствия. Ок, прописываем внешние коды в нужные инфоблоки вручную — несложно, но как-то неприятно в контексте того, что каталог был выгружен с сайта. Следующий запуск обмена. Ага, наименование товара поменялось, хорошо, а что это в "торговых предложениях"?..
Проблема третья. Торговые предложения создались заново, что категорически неприемлемо, поскольку в созданных ранее предложениях есть важные для работы магазина свойства. Кроме того, названия этих новых SKU не такие, как должны быть, а составные - имя товара, а в скобочках имя SKU. Полная самодеятельность, короче. Разбираемся, почему SKU создались заново. В 1С, в регистре сведений "Идентификаторы характеристик номенклатуры CMS 1С-Битрикс", значения внешних кодов стоят правильные, такие же, как у старых SKU. Ну-ка, а у созданнных после обмена SKU? А У ЭТИХ ДРУГИЕ ВНЕШНИЕ КОДЫ! Составные: код товара#код предложения... И эти коды есть в xml-файле выгрузки, т.е. они сгенерированы в 1С. Идем в 1С, открываем модуль обработки "ОбменССайтом", и в процедуре РИ_ЗаполнитьСписокЗначенийПредложения меняем строчку
Код
Наименование = Наименование + " (" + Выборка.ХарактеристикаНаименование + "";
на
Код
Наименование = Выборка.ХарактеристикаНаименование;
Проблема с названиями решена. Теперь кажется логичным в этой же процедуре подкорректировать строку
Код
Ид = Ид + "#" + ИдХарактеристики;
Кажется ведь, что если так сделать, то внешние коды у выгруженных SKU будут правильными, и выгрузка пройдет нормально.. Но нет, внешние коды в xml-файле будут правильными, но на сайт изменения не загрузятся - такой составной код используется при поиске нужного SKU в коде импорта. Так что единственный выход - корректировать внешние коды SKU на сайте. Дела-то: написать скрипт, который заменит текущие XML_ID SKU на составные. И тут, случайно, взгляд падает на
Четвертую проблему. XML_ID не уникальны. Т.е. по умолчанию при создании, например, SKU, оно получает XML_ID, равный ID. Но если вы копируете SKU (а я думаю, многие так делают, это удобно), то XML_ID тоже копируется. Соответственно, это рубит на корню всю идею такого обмена. Значит ПЕРЕД ВЫГРУЗКОЙ КАТАЛОГА В 1С необходимо пробежаться скриптом, поменять XML_ID элементов на ID (и предусмотреть такую замену в обработчике события добавления элемента).
Дальше рассказывать нечего, все выгрузилось, все загружается (тьфу-тьфу)).
Резюме. Схема, при которой каталог с SKU велся на сайте, вы его выгружаете в 1С и имеете корректно действующий обмен, работать без доработки НЕ БУДЕТ. Необходимо: 1. Перед выгрузкой каталога в УТ, убедиться, что XML_ID товаров и SKU уникальны и будут оставаться уникальными. 2. После выгрузки каталога в УТ необходимо поменять XML_ID торговых предложений на сайте (на составные "кодТовара#кодПредложения" ;) , чтобы при дальнейшем обмене срабатывало соответствие. 3. Если вас не устраивает, что названия SKU после загрузки из 1С изменятся, то нужно поправить строчку в процедуре РИ_ЗаполнитьСписокЗначенийПредложения. 4. Вручную указать внешние коды инфоблоков
Здравствуйте, коллеги! Несколько месяцев назад, при начале разработки магазина, услушал о возможности выгрузки каталога с сайта в УТ, обрадовался легкому способу запустить обмен, стали спокойно набивать каталог на сайте (каталог с торговыми предложениями). Дошло до интеграции. Поставил дополнение к УТ, выгрузил каталог с сайта - все хорошо, ура! Для теста меняю наименование одного товара, запускаю обратную выгрузку (на сайт), и... На сайте создаются новые инфоблоки товаров и торговых предложений. Как так??? Я был уверен, что при такой схеме каталог будет знать, из какого инфоблока он подтянут, и выгрузится туда же... Подскажите, пожалуйста, как решить эту проблему..
Спасибо, Артем. На всякий случай опишу свое решение проблемы (для 10й-то УТ дополнения нету..) Создаем новое свойство заказа для физлиц, например ФИО, и после записи заказа заполняем его, например именем и фамилией (можно заполнить фамилией, именем и мылом, для гарантии уникальности). В init.php:
Здравствуйте, коллеги! Помогите, пожалуйста, прояснить ситуацию. Есть интернет-магазин в связке с 1С:УТ. Заказы синхронизируются по наименованию, в роли которого выступает фамилия. Но, естественно, это влечет за собой проблемы, ибо однофамильцы - явление частое. Соответственно, на стороне 1С получается нехорошо (заказы Васи Иванова присваиваются заказам Пети Иванова)...
Руки конечно же тянутся "дописывать", но поскольку ляп достаточно выпирающий (ну как можно синхронизировать записи по явно неуникальному полю), то может быть все решается проще? Подскажите, пожалуйста, как вы решали эту проблему? Если дописывать, то куда правильнее вклиниться?
Здравствуйте! Мне нужно, чтобы товары, у которых не указана цена, либо не выгружались на сайт, либо выгружались неактивными (предпочтительнее). На стороне 1С возможности отфильтровать товары таким образом не нашел. На стороне Битрикса, если использую обработчики событий инфоблоков (добавление/апдейт элементов), то наличие цены во входящем массиве не вижу. Подходящих обработчиков в справке по модулю "Торговый каталог" не нашел. Подскажите, пожалуйста, путь решения проблемы.
Добрый день! Стоит задача обмена сайта с 1С (не типовая конфигурация) произвольной информацией. Структура информации может быть как нерегулярной (выгрузка из 1С некой статистической информации, которая должна отображаться на сайте), так и регулярной (выгрузка из 1С документов в инфоблок на сайте). Кроме того, необходимо экспортировать в 1С результаты заполнения веб-форм (создавать документы). Понятно, что многое придется писать самому, но хотелось бы по максимуму использовать возможности БУС. Подскажите пожалуйста, какие могут быть пути создания подобных механизмов обмена. Спасибо!