Исправить выгрузку изменений из 1С, когда неактуалные товары остаются на сайте

Рейтинг: 23.0253  
На голосовании
Предложил Зайцев Артемий 10.09.2013 10:47:54

Исправить выгрузку изменений из 1С, когда неактуалные товары остаются на сайте

У нас каждый второй клиент спрашивает: "почему я не могу выгрузить только те товары, которые есть на складе?"

Сейчас выгрузка изменений работает так:

- добавление нового товара - реализовано
- изменение товара - реализовано
- удаление товара с сайта - не сделано

При выгрузке изменений возможны ситуации, когда неактуальные в 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 раньше на сайте или нет, но мы можем сообщить сайту, что этот товар изменился и если он на сайте есть, пусть удалится или деактивируется в зависимости от настроек сайта.

Рейтинг: 4.9262  
Рябинков Артем 10.09.2013 14:08:57
К сожалению, более 5 лет в обмене есть ошибки, о которых постоянно спрашивают на форуме, но их не стремятся исправлять.
Напишите пожалуйста список этих ошибок.
При выгрузке измений учитывать всю номенклатуру
Это уже будет называться не список изменений а полная выгрузка. Товары, которые 100 лет не продавались и не менялись - почему должны попадать в выгрузку ИЗМЕНЕНИЙ?
Используйте полную выгрузку, что мешает? Она удалит все старые товары с сайта (или деактивирует, в зависимости от настройки).

- товары, которые не попали в отбор - передать только гуид. Например: так
По сути это передать всю номенклатуру, кроме той, что выгружается на сайт. На каталоге в 1000 позиций активных, это может быть 10 000 товаров, которые сто лет не продаются.
То есть вместо полной выгрузки на 1000 товаров, вы предлагаете выгрузить изменения + еще 5-10 тыс, позиций.  Согласитесь, что это не всегда разумно.

Я понимаю прекрасно о какой проблеме вы говорите. Но пока для этого лучшее решение - это полная выгрузка. Она изначально так и замышлялась, как корректирующая, приводящая весь каталог в целостное состояние.

Ведь удалиться (деактивироваться) могут не только товары, но и разделы /подразделы, и даже отдельные инфоблоки (если выгрузка идет в несколько каталогов). В вашем предложении этого не предусмотрено, а полная выгрузка это решает.
Рейтинг: -4.573  
Зайцев Артемий 10.09.2013 14:53:42
Вы не поняли.

Есть план обмена. В нем фиксируются изменения всех товаров. План обмена очищается каждый раз после успешной выгрузки изменений на сайт .

Почему-то обмен с 1С берет из плана обмена не все товары, а только те, которые попали в отбор. Я прошу, чтобы он сообщал на сайт еще те гуиды, которые не попали в отбор.

может быть 10 000 товаров, которые сто лет не продаются
Это не полная выгрузка. Это только гуиды, которые не попали в отбор при выгрузке изменений. Товары которое сто лет не продаются не изменяются, значит не выгрузятся. А если изменятся, то только гуиды выгрузятся.

Это очень незначительная информация. И это нужно реализовать на стороне 1С, чтобы сайт мог корректно убрать те товары, которые в отбор не попадают и больше не нужны.
Рейтинг: 6.635  
Зайцев Артемий 10.09.2013 15:16:26
Об ошибках обмена:
- неудаление товаров с сайта при выгрузке изменений,
- связь цен по названию, а не по ID. 5 лет прошло. Только что-то начали делать,
- отсутствие лога обмена,
- отсутствие нормальных сообщений об ошибках, я всю неделю разбираюсь, почему у того или другого клиента прервался обмен,
- как оказалось, обмен прерывается если в 1С есть битые картинки. Почему бы не выводить предупреждение и не продолжать загрузку без этих картинок,
- отсутствие какой-либо информации что идет обмен и что он делает в УТ 11. Запускаешь обмен и не знаешь, когда он остановится. Для клиента это не ограничение платформы 8.2, а наша недоработка,
- не выгружается с сайта НДС за доставку в заказе (недоработки с НДС больше к модулю магазина относятся)
- обмен с заказами не полностью двусторонний.

----------

Были ошибки, которые исправлены. Но их исправление заняло непозволительно много времени:

- остатки по складам (если стало 0) не выгружались. Вы представляете. Пол-года не могли решить, что с этим делать. Нам клиенты мозг делают почему цифры не совпадают.
- выгрузка складов удаляла адреса и телефоны с сайта.
- альтернативное меню разделов строилось по 8 часов.
Рейтинг: 5.0095  
Левковский Денис 11.09.2013 14:54:09
Почему-то обмен с 1С берет из плана обмена не все товары, а только те, которые попали в отбор. Я прошу, чтобы он сообщал на сайт еще те гуиды, которые не попали в отбор.
А зачем тогда нужен отбор, чтобы с ним потом бороться? Просто отключите его и получите на сайте все товары, по которым зарегистрированы изменения.

Товары которое сто лет не продаются не изменяются, значит не выгрузятся.
Вот, именно.
Рейтинг: 0.1478  
Зайцев Артемий 11.09.2013 15:01:41
А зачем тогда нужен отбор, чтобы с ним потом бороться? Просто отключите его и получите на сайте все товары, по которым зарегистрированы изменения. 

Если отбор не включать, приходится выгружать на сайт всё и деактивировать ненужное. Но на некоторых проектах это лишние десятки гигабайт и много часов.
Рейтинг: 0.3252  
Зайцев Артемий 18.09.2013 08:48:28
Вспомнил еще старую-старую ошибку:

Два обмена одновременно не работают. Если клиент запустил обмен вручную, а одновременно началась выгрузка изменений - всё сломается.
Рейтинг: 0  
Петрович 11.01.2014 19:40:53
А в последней версии обмена в 1с (2.9.23.3) вообще не нашел, где указывать GUID
В результате - все ссылки на товар изменились и получим проблему на рабочем сейте, хорошо, что проблема пока на тестовом.
Но вот где вписать GUID не понятно.
UPD GUID есть, оказывается, просто он скрыт по умолчанию.
Рейтинг: 0.6006  
Бабаев Евгений 30.03.2015 16:46:06
Я понимаю прекрасно о какой проблеме вы говорите. Но пока для этого лучшее решение - это полная выгрузка. Она изначально так и замышлялась, как корректирующая, приводящая весь каталог в целостное состояние.
Лучшее решение для этой проблемы в данном случае - дать возможность в 1с вести "актуальность" товаров.

Причем это возможно сделать без внесения изменений в типовые конфигурации - в настройках обмена указывать доп.свойство номенклатуры, которое отвечает за актуальность.

Заполнение этого свойства в 1с будет крайне прозрачно для пользователей и никто больше не поднимет этот вопрос.
Другое дело, что функционал нужен не всем и он должен быть опциональным.
Рейтинг: 0.5212  
Махонин Павел 14.01.2016 13:24:18
Просто обращу внимание. Идея на голосовании с 2013 года.
Не пора ли уже решить, когда эта проблема будет устранена?
Рейтинг: 0  
Денис Савельев 23.03.2016 12:13:59
Присоединяюсь, при большом интернет магазине не всегда есть возможность выполнять полную выгрузку. Пора бы уже начать действовать, интеграция с 1с и без того кривая, так хоть здравые идеи неплохо было-бы реализовывать.
Рейтинг: 0  
П Руслан 05.03.2017 21:31:48
воз и ныне там ) сообщения в стиле

"Элемент с таким символьным кодом существует"
"Обновлено 100 товаров. Ошибок: 5"
"Неверный тип файла"