У нас каждый второй клиент спрашивает: "почему я не могу выгрузить только те товары, которые есть на складе?"
Сейчас выгрузка изменений работает так:
- добавление нового товара - реализовано
- изменение товара - реализовано
- удаление товара с сайта -
не сделаноПри выгрузке изменений возможны ситуации, когда неактуальные в 1С товары не удаляются, а остаются на сайте.
Наши клиенты покупают Битрикс для обмена с 1С. К сожалению, более 5 лет в обмене есть ошибки, о которых постоянно спрашивают на форуме, но их не стремятся исправлять.
Ошибка с выгрузкой изменений портит жизнь многим работающим проектам, и заставляет партнеров придумывать костыли.
Пример: фирма покупает одежду из Китая. Продает. Покупает новую номенклатуру. Продает....
Товары, остаток которых 0, на сайте больше не нужен. Поэтому логично в 1С поставить условие отбора "Остаток >0". Это позволяет не выгружать лишние старые товары с десятками гигабайт картинок.
1С при выгрузке изменений не выгружает товары которые не попали в отбор. При выгрузке изменений если товара в 1С стало 0, то в обмен он не попадает и товар остается на сайте. Потом магазин исключают из Яндекс-маркета.
|
Как исправить? Очень просто. Давайте постучим по голове программистам 1C, чтобы в новой версии дополнения была опция "При выгрузке измений учитывать всю номенклатуру".
В плане обмена есть измения о всех товарах. Почему-то обмен с 1С выбирает только те, которые попали в отбор.
Пусть 1С передает все товары из плана обмена:
- товары, которые попали в отбор выгружаются целиком,
- товары, которые не попали в отбор - передать только гуид. Например: так:
<?xml version="1.0" encoding="UTF-8"?>
<КоммерческаяИнформация ВерсияСхемы="2.04" ДатаФормирования="2013-09-03T13:05:11">
...
<Каталог СодержитТолькоИзменения="true">
...
<Товары>
<Товар>
<Ид>d0e820f4-2b68-4d7f-ba39-9d3683fcb0e7</Ид>
<Наименование> Нитки Ирис 25г. 150м</Наименование>
...
</Товар>
// товары, которые есть в плане обмена, но не попали в отбор по фильтру тоже должны выгружаться.
// Хотя бы так.
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000001</Ид>
</Товар>
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000002</Ид>
</Товар>
<Товар Удален="true">
<Ид>d0e820f4-2b68-4d7f-ba39-000000003</Ид>
</Товар>
</Товары>
</Каталог>
</КоммерческаяИнформация>
|
Программисты 1С могут возразить: можем ли мы передавать ГУИД номенклатуры, которой на сайте не было нет и не будет?
Да можем. Мы не знаем был ГУИД d0e820f4-2b68-4d7f-ba39-000000001 раньше на сайте или нет, но мы можем сообщить сайту, что этот товар изменился и если он на сайте есть, пусть удалится или деактивируется в зависимости от настроек сайта.
Используйте полную выгрузку, что мешает? Она удалит все старые товары с сайта (или деактивирует, в зависимости от настройки).
То есть вместо полной выгрузки на 1000 товаров, вы предлагаете выгрузить изменения + еще 5-10 тыс, позиций. Согласитесь, что это не всегда разумно.
Я понимаю прекрасно о какой проблеме вы говорите. Но пока для этого лучшее решение - это полная выгрузка. Она изначально так и замышлялась, как корректирующая, приводящая весь каталог в целостное состояние.
Ведь удалиться (деактивироваться) могут не только товары, но и разделы /подразделы, и даже отдельные инфоблоки (если выгрузка идет в несколько каталогов). В вашем предложении этого не предусмотрено, а полная выгрузка это решает.
Есть план обмена. В нем фиксируются изменения всех товаров. План обмена очищается каждый раз после успешной выгрузки изменений на сайт .
Почему-то обмен с 1С берет из плана обмена не все товары, а только те, которые попали в отбор. Я прошу, чтобы он сообщал на сайт еще те гуиды, которые не попали в отбор.
Это очень незначительная информация. И это нужно реализовать на стороне 1С, чтобы сайт мог корректно убрать те товары, которые в отбор не попадают и больше не нужны.
- неудаление товаров с сайта при выгрузке изменений,
- связь цен по названию, а не по ID. 5 лет прошло. Только что-то начали делать,
- отсутствие лога обмена,
- отсутствие
- как оказалось, обмен прерывается если в 1С есть битые картинки. Почему бы не выводить предупреждение и не продолжать загрузку без этих картинок,
- отсутствие какой-либо информации что идет обмен и что он делает в УТ 11. Запускаешь обмен и не знаешь, когда он остановится. Для клиента это не ограничение платформы 8.2, а наша недоработка,
- не выгружается с сайта НДС за доставку в заказе (недоработки с НДС больше к модулю магазина относятся)
- обмен с заказами
----------
Были ошибки, которые исправлены. Но их исправление заняло непозволительно много времени:
- остатки по складам (если стало 0) не выгружались. Вы представляете. Пол-года не могли решить, что с этим делать. Нам клиенты мозг делают почему цифры не совпадают.
- выгрузка складов удаляла адреса и телефоны с сайта.
- альтернативное меню разделов строилось по 8 часов.
Если отбор не включать, приходится выгружать на сайт всё и деактивировать ненужное. Но на некоторых проектах это лишние десятки гигабайт и много часов.
Два обмена одновременно не работают. Если клиент запустил обмен вручную, а одновременно началась выгрузка изменений - всё сломается.
В результате - все ссылки на товар изменились и получим проблему на рабочем сейте, хорошо, что проблема пока на тестовом.
Но вот где вписать GUID не понятно.
UPD GUID есть, оказывается, просто он скрыт по умолчанию.
Причем это возможно сделать без внесения изменений в типовые конфигурации - в настройках обмена указывать доп.свойство номенклатуры, которое отвечает за актуальность.
Заполнение этого свойства в 1с будет крайне прозрачно для пользователей и никто больше не поднимет этот вопрос.
Другое дело, что функционал нужен не всем и он должен быть опциональным.
Не пора ли уже решить, когда эта проблема будет устранена?
"Элемент с таким символьным кодом существует"
"Обновлено 100 товаров. Ошибок: 5"
"Неверный тип файла"