Телеграм: @camouf_ru Почта: mihail@bazarow.ru
Лето Осень Зима Весна

Запретить изменения описаний товаров при выгрузке из 1С УТ на сайт

RSS
Запретить изменения описаний товаров при выгрузке из 1С УТ на сайт
 
Запретить изменения описаний товаров при выгрузке из 1С УТ на сайт

Достаточно часто, при разработке сайтов на Битрикс, с интеграцией с 1С Управление Тороговлей, нужно запретить изменения полей при обмен. В частности, детальное описание и картинку товара.
 
Добрый день! мне необходимо настроит обмен заказами между 1С и сайтом на битрикс. Есть xml файл с заказами из 1С. Из документации понял что его нужно загружать, но не понял куда. Подскажите в какой инфоблок нужно импортировать xml файлы с заказами? Заранее спасибо
 
Цитата
Санжарбек Азизов написал:
Добрый день! мне необходимо настроит обмен заказами между 1С и сайтом на битрикс. Есть xml файл с заказами из 1С. Из документации понял что его нужно загружать, но не понял куда. Подскажите в какой инфоблок нужно импортировать xml файлы с заказами? Заранее спасибо
Не надо его в инфоблок. Просто включите обмен заказами, предварительно выгрузив контрагентов- как пользователей. На стороне сайта проверьте настройки обмена



И запустите обмен заказами. Все, больше ни чего делать надо, 1С ка сама создаст заказы на сайте и сопоставит с полльзователями.
 
а можно запретить перезаписывать свойство привязка к товару?
 
Здравствуйте, Михаил.
Заметка очень помогла.
В данный момент например у нас такая ситуация, создали в 1С новый товар, добавили ему фотографию, выполнили выгрузку в режиме изменений, товар на сайте появился, но без фото. Можно в вашем коде условие поставить, если на сайте товар без фото то при обмене мы ему цепляем картинку из 1С, если таковая приходит при обмене, а то при вашем коде получается сейчас, что картинки из 1С не цепляются к товарам?
Надеюсь понятно объяснил. Спасибо.
 
Олег Колчугин, эм, закомментить? ;)
Код
///unset($arFields['PREVIEW_PICTURE']);  
//unset($arFields['DETAIL_PICTURE']);
 
а можно запретить перезаписывать свойство привязка к товару?
 
Цитата
UkRA написал:
а можно запретить перезаписывать свойство привязка к товару?
1C такое и не умеет передавать. Во всяком случае штатно
 
Цитата
Олег Колчугин написал:
Здравствуйте, Михаил.
Заметка очень помогла.
В данный момент например у нас такая ситуация, создали в 1С новый товар, добавили ему фотографию, выполнили выгрузку в режиме изменений, товар на сайте появился, но без фото. Можно в вашем коде условие поставить, если на сайте товар без фото то при обмене мы ему цепляем картинку из 1С, если таковая приходит при обмене, а то при вашем коде получается сейчас, что картинки из 1С не цепляются к товарам?
Надеюсь понятно объяснил. Спасибо.
Ну да, просто удалите строки. Получится
Код
<? 
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","DoNotUpdate"); 
function DoNotUpdate(&$arFields) 
{ 
    if ($_REQUEST['mode']=='import') 
    { 
        unset($arFields['PREVIEW_TEXT']); 
        unset($arFields['DETAIL_TEXT']); 
    } 
} 
AddEventHandler("iblock", "OnBeforeIBlockElementAdd","DoNotAdd"); 
function DoNotAdd(&$arFields) 
{ 
    if ($_REQUEST['mode']=='import') 
    { 
        unset($arFields['PREVIEW_TEXT']); 
        unset($arFields['DETAIL_TEXT']); 
    } 
} 
?>
 
Так это получается, если я правильно понял, можно запретить 1с перемещать весь товар под свою структуру каталога? Просто  пытаюсь реализовать на сайте каталог отличимый от 1с, в модуле обмена настроек нет, по этому решил попробовать выгрузить как есть, раскидать как нужно, но оно всё откатывается при обмене
 
Цитата
Виктор Роголев написал:
Так это получается, если я правильно понял, можно запретить 1с перемещать весь товар под свою структуру каталога? Просто  пытаюсь реализовать на сайте каталог отличимый от 1с, в модуле обмена настроек нет, по этому решил попробовать выгрузить как есть, раскидать как нужно, но оно всё откатывается при обмене
Тут сложнее. На одном из проектов, сделал так что бы структура каталогов вообще не выгружалась, а товары обновлялись по XML-ID.
Новые товара попадали в деактивированный раздел "Рассортировать"

Но это сложность. Лучше поставте модуль обмена от Битрикс, там можно пересортировывать структуру как угодно, чисто для обмена.
 
Интересно, а запретить обновлять названия и адреса складов можно таким методом?
 
Михаил добрый день,
Подскажите, а как сделать, чтобы не слетали свойства товара  при выгрузке из 1с? У  нас  есть свойство с типом список, постоянно слетает при обмене.
 
Цитата
denis86 написал:
Михаил добрый день,
Подскажите, а как сделать, чтобы не слетали свойства товара  при выгрузке из 1с? У  нас  есть свойство с типом список, постоянно слетает при обмене.
unset($arFields['PROPERTY_КОД_СВОЙСТВА']);
или
unset($arFields['PROPERTY_КОД_СВОЙСТВА_VALUE']);

Попробуйте и так и сяк и вместе.
Cкорее всего вместе, что бы не слетали на само свойство ни его значения

Чирканите сюда, как сработало.  :)  
 
Цитата
Михаил Базаров пишет:
Цитата
denis86 написал:
Михаил добрый день,
Подскажите, а как сделать, чтобы не слетали свойства товара при выгрузке из 1с? У нас есть свойство с типом список, постоянно слетает при обмене.
unset($arFields['PROPERTY_КОД_СВОЙСТВА']);
или
unset($arFields['PROPERTY_КОД_СВОЙСТВА_VALUE']);

Попробуйте и так и сяк и вместе.
Cкорее всего вместе, что бы не слетали на само свойство ни его значения

Чирканите сюда, как сработало.
К сожалению не сработало
 
Цитата
denis86 написал:
Цитата

Чирканите сюда, как сработало.
К сожалению не сработало
Тогда без PROPERTY_

Но это все, методы околонаучного тыка) Пока попробовать не где, что бы точно сказать
 
Можно совет? Эта доработка прекрасно работает, фото и описания теперь не удаляются. Но есть мелкая проблема -  описания товаров  переключаются в режим текст, а у меня они в визуальном режиме сделаны и получается мусор. Вот так.
вот такой мусор получается... не красиво
Можно ли как-то запретить в битриксе или в в инит добавить строчку переключение  с визуального режима редактирования? Да, я нуб.  
 
Спасибо. Нужно было запретить 1с менять признак активности товара. Чтобы была возможность скрыть определенные товары с сайта.

Прописал в function DoNotUpdate(&$arFields) значение  
Код
unset($arFields['ACTIVE']); 
 
и все заработало.
 
Цитата
Barmi пишет:
Можно совет? Эта доработка прекрасно работает, фото и описания теперь не удаляются. Но есть мелкая проблема - описания товаров переключаются в режим текст, а у меня они в визуальном режиме сделаны и получается мусор. Вот так.
вот такой мусор получается... не красиво
Можно ли как-то запретить в битриксе или в в инит добавить строчку переключение с визуального режима редактирования? Да, я нуб.
Нашел простейшее решение своей проблемы.
В поле текстового описания в 1С вставляется любой форматированный кусок текста, и описания из базы остаются нормально отформатированными :-) Например

<p>
    Самый современный игровой компьютер

этого достаточно чтобы не слетало на текстовый редактор.  
 
"Добрый день!

Не могу запретить удаление дополнительных картинок. Видимо потому, что это множественное поле. Всё отрабатывает, кроме доп. картинок.

<?
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","DoNotUpdate");
function DoNotUpdate(&$arFields)
{
   if ($_REQUEST['mode']=='import')
   {
       unset($arFields['PREVIEW_PICTURE']); // фото анонс
       unset($arFields['DETAIL_PICTURE']); // фото подробно
       unset($arFields['MORE_PHOTO']); // Картинки (дополнительные фото)
       unset($arFields['PREVIEW_TEXT']); // Описание для анонса
       unset($arFields['PREVIEW_TEXT_TYPE']); // Тип Описание для анонса
       unset($arFields['DETAIL_TEXT']); // Детальное описание
       unset($arFields['DETAIL_TEXT_TYPE']); // Тип Детальное описание
   }
}
 
Сергей, <br/>, <br/>

Добрый день!

Не могу запретить удаление дополнительных картинок. Видимо потому, что это множественное поле. Всё отрабатывает, кроме доп. картинок.

<?
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","DoNotUpdate");
function DoNotUpdate(&$arFields)
{
  if ($_REQUEST['mode']=='import')
  {
      unset($arFields['PREVIEW_PICTURE']); // фото анонс
      unset($arFields['DETAIL_PICTURE']); // фото подробно
      unset($arFields['MORE_PHOTO']); // Картинки (дополнительные фото)
      unset($arFields['PREVIEW_TEXT']); // Описание для анонса
      unset($arFields['PREVIEW_TEXT_TYPE']); // Тип Описание для анонса
      unset($arFields['DETAIL_TEXT']); // Детальное описание
      unset($arFields['DETAIL_TEXT_TYPE']); // Тип Детальное описание
  }
}
 
Цитата
logins.zavgsg@gmail.com написал:
Сергей, <br/>, <br/>

Добрый день!

Не могу запретить удаление дополнительных картинок. Видимо потому, что это множественное поле. Всё отрабатывает, кроме доп. картинок.

Наверное, раз уж вообще ни какие картинки не обновляете, проще отключить обмен картинками на стороне 1С. Просто снимите там галку "Выгружать картинки и файлы"  
 
Логично  ;)

Спасибо - помогло.
 
Цитата
Михаил Базаров пишет:
Цитата
logins.zavgsg@gmail.com написал:
Сергей, <br/>, <br/>

Добрый день!

Не могу запретить удаление дополнительных картинок. Видимо потому, что это множественное поле. Всё отрабатывает, кроме доп. картинок.
Наверное, раз уж вообще ни какие картинки не обновляете, проще отключить обмен картинками на стороне 1С. Просто снимите там галку "Выгружать картинки и файлы"
Все настройки облазил, но так и не нашел где этот пункт, с галкой на "выгружать картинки и файлы".  Ткните пальцем неумному :-)
 
Цитата

Все настройки облазил, но так и не нашел где этот пункт, с галкой на "выгружать картинки и файлы". Ткните пальцем неумному
Нашел. Видимо в старой УТ не нашел, после обновления галка есть :-)  
 
Цитата
Михаил Базаров пишет:
Цитата
denis86 написал:
Михаил добрый день,
Подскажите, а как сделать, чтобы не слетали свойства товара при выгрузке из 1с? У нас есть свойство с типом список, постоянно слетает при обмене.
unset($arFields['PROPERTY_КОД_СВОЙСТВА']  ;)  ;
или
unset($arFields['PROPERTY_КОД_СВОЙСТВА_VALUE']  ;)  ;

Попробуйте и так и сяк и вместе.
Cкорее всего вместе, что бы не слетали на само свойство ни его значения

Чирканите сюда, как сработало.
Если еще актуально, в $arFields передается массив PROPERTY_VALUES, и по ИД свойства его можно отвязать, например у меня св-во MORE_PHOTO имеет ИД 93, таким образом на выходы получаем: unset($arFields['PROPERTY_VALUES'][93] ;) ;
 
Спасибо огромное! Все работает, но возникла проблема с запретом на обновление поля "остатки", необходимо что бы обмен с 1С не обновлял его(т.е. все товары условно в 0, торгуем со склада партнера).
Попробовала сделать по аналогии         unset($arFields['QUANTITY'] ) ;  - все равно меняется.
 
Цитата
Настёна Лукашевич написал:
Спасибо огромное! Все работает, но возникла проблема с запретом на обновление поля "остатки", необходимо что бы обмен с 1С не обновлял его(т.е. все товары условно в 0, торгуем со склада партнера).
Попробовала сделать по аналогии         unset($arFields['QUANTITY'] ) ;  - все равно меняется.
По моему, поле называется CATALOG_ QUANTITY - сейчас не где посмотреть. Но там точно QUANTITY и что-то еще
Или вообще, на стороне 1С, отключите обмен остатками, а на стороне сайта отключите Количественный учет и включите разрешение "Продавать при отсутствии товара (включая разрешение на отрицательные остатки)"
 
Цитата
Михаил Базаров пишет:
Цитата
Настёна Лукашевич написал:
Спасибо огромное! Все работает, но возникла проблема с запретом на обновление поля "остатки", необходимо что бы обмен с 1С не обновлял его(т.е. все товары условно в 0, торгуем со склада партнера).
Попробовала сделать по аналогии unset($arFields['QUANTITY'] ) ; - все равно меняется.
По моему, поле называется CATALOG_ QUANTITY - сейчас не где посмотреть. Но там точно QUANTITY и что-то еще
Или вообще, на стороне 1С, отключите обмен остатками, а на стороне сайта отключите Количественный учет и включите разрешение "Продавать при отсутствии товара (включая разрешение на отрицательные остатки)"
Работает!!! Супер! К слову тех поддержка готового решения не смогла подсказать этот вариант.
 
Друзья, стоит задача УТ 11.
Битрикс последний.
Скрытый текст

Потому что не DETAIL_PICTURE_SRC и PROPERTY_DETAIL_PICTURE, а просто DETAIL_PICTURE
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Записная книжка разработчика

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

Создание PWA для сайта на 1С-Битрикс Просмотров: 669 Технология PWA позволяет создать приложение для любого сайта. Не обязательно работающего ... Автоматическая загрузка каталогов из csv файлов в Битрикс Просмотров: 9436 Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В... Вывести свойство отдельно ото всех или исключить из всех Просмотров: 6113 Иногда, на сайте, под управлением 1С-Битрикс, нужно вывести какое-то конкретное свойство о... Постраничная навигация в списке разделов Битрикс- catalog.section.list Просмотров: 7314 Если в магазине очень много разделов и хочется вывести их с постраничной навигацией: можно... Определить местоположение пользователя и показать магазины поблизости. Просмотров: 300 Задача: в мобильном приложении, которое открывает сайт на 1С-Битрикс внутри себя, нужно оп... Сортировать товары по названию, цене и дате поступления в каталоге Битрикс Просмотров: 36998 Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию... Композитный сайт на 1С-Битрикс Просмотров: 2441 Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Компози... Вывести компонент новостей на страницу в Битрикс Просмотров: 61417 Посмотрел Яндекс метрику на свой сайт, и решил что буду частенько писать сюда именно то, ч... Самодельная форма добавления элемента на API Битрикс Просмотров: 38478 Компонент iblock.element.add.form написан таким образом, что вы не сможете (не попотев изр... Вывести список всех пользователей с необходимой информацией Просмотров: 22221 Если нужно, на какой-либо странице сайта, вывести всех пользователей из группы "Зарегистир... Установить цену товара из свойства инфоблока Просмотров: 7183 На одном из проектов, нужно было единоразово заполнить цены товаров из свойства инфоблока... Вывести новости из конкретного раздела инфоблока Битрикс Просмотров: 50541 Бывает что требуется вывести конкретные новости или статьи из одного раздела инфоблока в Б... Вывести все разделы в которых находится элемент инфоблока Просмотров: 11085 Если нужно вывести все разделы, со всей доступной информацией о них, внутри элемента инфоб... Если предложение SKU в корзине, поменять кнопку добавления на "В корзине" Просмотров: 2486 Данная заметка является дополнением к ранее опубликованной: Есл... Получение местоположений через API Битрикс c поиском по select. Просмотров: 18545 Если нужно получить список городов из модуля "Местоположения" можно воспользоваться API Би... Добавление своих полей в почтовые шаблоны Битрикс Просмотров: 40772 Иногда нужно внести свои поля в почтовые шаблоны битрикс. Например: добавить имя и номе... Denwer c PHP 7.1.8 и MYSQL 5.7 оптимизированный для Битрикс Просмотров: 27658 В последнее время, все чаще приходиться работать на Windows, хотя и не люблю эту ОС- с точ... Массово: применить наценку ко всем товарам каталога с пересчетом от базовой. Просмотров: 4453 Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все това... Дать пользователю возможность быстро отредактировать материал Просмотров: 3744 На одном из разрабатываемых сайтов, пользователи формирую его контент. После регистрации, ... Добавить все свойства инфоблока в умный фильтр одним разом Просмотров: 8010 Если у вас достаточно много свойств, в инфоблоке с товарами, например: больше 1000-чи, пос...