Такая же проблема при обмене заказами. Поделитесь решением кто знает как это исправить!? 1С:Предприятие 8.2 ( 8.2.19.68 ) Конфигурация: Управление торговым предприятием для Казахстана, редакция 2.0, разработка для Казахстана (2.0.5.4)
Ошибка в 1С, Ошибка компиляции: модуль "ОбщийМодуль.ПроцедурыОбменаССайтом.Модуль" Исходный текст модуля недоступен и скомпилированный образ отсутствует
Странно, уже второй раз получилось решить проблему, но на Битриксе 12.5.6, а на новой 14-ой с демо данными цены не появляются. Может настройка какая-нибудь?
Не импортируются цены, При импорте из 1С на сайт не импортируются цены
Мой Стоит указать внешний код для базового типа цен такой же как в offers.xml, как битрикс сам подставляет название «Розничная» в поле «Код». Настройки типа цен:
Не импортируются цены, При импорте из 1С на сайт не импортируются цены
Сейчас удалось сделать так что (во вкладке «Торговый каталог») галочка «НДС включен в цену» сама при импорте выставляется и нужная валюта в списке «Валюта базовой цены» выбирается, но поле «Базовая цена (Тип цены "Розничная цена")» по прежнему остается пустым.
Не импортируются цены, При импорте из 1С на сайт не импортируются цены
Импортируется все кроме цен. В файле offers.xml цены присутствуют. В настройках типов цен название выставлено такое же как передает 1С (и внешний код тоже). Для инфоблока «Каталог товаров» (куда передается все при импорте) есть инфоблок торговых предложений. Цены по-прежнему не передаются. Версия Битрикс: 14.0.8 1С: Предприятие 8.2. Управление торговым предприятием для Казахстана, редакция 1.0
Поделюсь, как я решил проблему с импортом картинок. Пользуясь событием OnSuccessCatalogImport1C, которое вызывается по окончании импорта в компоненте catalog.import.1c, перед отдачей сообщения 1С об успешном окончании обмена.
AddEventHandler('catalog', 'OnSuccessCatalogImport1C', 'importPicturesFrom1C');
//Фильтр картинок (пользовательская функция, к которой мы будем передавать значения для проверки на предмет картинка ли это?)
function filterOfPictures($val = false){
if($val == false) return false;
else{
settype($val, 'string');
$length = strlen($val);
$jpg = stripos($val, '.jpg');
if(($jpg !== false) && (($length - $jpg) == 4)) return true;
$jpeg = stripos($val, '.jpeg');
if(($jpeg !== false) && (($length - $jpeg) == 5)) return true;
$png = stripos($val, '.png');
if(($png !== false) && (($length - $png) == 4)) return true;
$gif = stripos($val, '.gif');
if(($gif !== false) && (($length - $gif) == 4)) return true;
$bmp = stripos($val, '.bmp');
if(($bmp !== false) && (($length - $bmp) == 4)) return true;
}
return false;
}
function importPicturesFrom1C(){
global $APPLICATION;
CModule::IncludeModule('iblock');
//Иницилизация
$CIBlockXMLFile = new CIBlockXMLFile();
$CIBlockElement = new CIBlockElement();
$ID = false;
$currentID = false;
$morePhotos = array();
$properties = array();
$MORE_PHOTO = array();
$counter = 0;
$firstGood = 0;
//Выборка всех элементов из таблицы b_xml_tree
$arFields = $CIBlockXMLFile->GetList(array());
while($arField = $arFields->Fetch()){
++$counter;
//Получение идентификатора текущего элемента
if($arField['NAME'] == 'Ид'){
$EXTERNAL_ID = $arField['VALUE'];
//Так как элемент уже полностью импортировался и создался в инфоблоке мы его находим по внешнему ключу и узнаем ID-шник
$arItems = CIBlockElement::GetList(array('ID' => 'ASC'), array("IBLOCK_TYPE" => "1c_catalog", "IBLOCK_ID" => 37, 'EXTERNAL_ID' => $EXTERNAL_ID), false, false, array('ID'));
$arItem = $arItems->GetNext();
if(is_numeric($arItem['ID']))
$ID = $arItem['ID'];
else
$ID = false;
}
//Фильтрация картинок
if(($arField['NAME'] == 'Значение') and (filterOfPictures($arField['VALUE']))){
$morePhotos[] = CFile::MakeFileArray($_SERVER['DOCUMENT_ROOT'] . '/upload/1c_catalog/' . $arField['VALUE']);
$properties = array("PROPERTY_VALUES"=> $morePhotos);
}
if($currentID != $ID)
$firstGood++;
if($firstGood == 1)
$currentID = $ID; //1 и все
//Обновление элемента (добавление картинок)
if(is_numeric($ID) && ($currentID != $ID) and (!empty($properties)) and ($firstGood > 1)){
//$result = $CIBlockElement->Update($currentID, $properties);
CIBlockElement::SetPropertyValues($currentID, 37, $morePhotos, 'MORE_PHOTO');
$morePhotos = array();
$properties = array();
$currentID = $ID;
}
//file_put_contents('logimport.txt', "\n" . serialize($arField) . "\n", FILE_APPEND);
}
//Обновление последнего элемента (добавление картинок)
if(is_numeric($currentID) and (!empty($properties))){
//$result = $CIBlockElement->Update($currentID, $properties);
CIBlockElement::SetPropertyValues($currentID, 37, $morePhotos, 'MORE_PHOTO');
}
}
Так как все данные идут в общем потоке, я подстроился под ту последовательность, по которой выводятся картинки: ============================ ... внешний код первого элемента ... картинки первого элемента ... внешний код второго элемента ... картинки второго элемента ... =========================== Добавление картинок происходит при смене ID.
Цитата
Людмила Черныщук пишет: У нас тоже проблема с картинками, хоть и несколько другая: на сайте настроен автоматический обмен с 1С, весь каталог грузился отлично, вместе с картинками. В какой-то момент стали "пропадать" картинки в товарах.
Проверили выгрузку, оказалось, что выгрузка на стороне 1С происходит без ошибок, картинки выгружаются, мы видим процесс передачи архивных файлов (архивы весят много, видимо, все-таки содержат картинки), процесс выгрузки успешно завершается - ошибок нет, но на сайте в папке /upload/1c_catalog появляются только xml файлы, ни папки import_files, ни, соответственно, картинок, ни архивов, передачу которых мы видели в процессе выгрузки (только архив с xml-ками). Получается, что если даже у товара была раньше картинка, то при обновлении после выгрузки картинка пропадает.
Подскажите, пожалуйста, может кто сталкивался, куда копать и где искать проблему?
14-ю версию пока не устанавливали.
Видимо на каком-то шаге Ваш архив затирается и ко всем картинкам соответственно тоже обрываются пути. Попробуйте воспользоваться данным способом, потомучто, на шаге когда вызывается событие, нам еще доступна вся таблица b_xml_tree, в которой хранится весь XML. ============================= Заметил одну особенность Проблемы возникают только с теми свойствами, у которых (при их создании), значение отмечено как «Множественное». Я думаю что это из-за такой сложности, которая связана с тем, что если свойство простое — то это просто «Название = значение», а в случае с множественным значением — формируется двумерный массив! Пример: У меня свойство «Характеристики» отмечено как множественное. В результате при импорте у меня названия и значения поменялись местами.
Файл import.xml тот же, что и в первом посте ====================================== Я вот думаю , может получится получить эти картинки в событии catalog.OnSuccessCatalogImport1C и самому (средствами API) добавить? Но тогда вопрос... Вот зарегистрирую я обработчик на это событие, а какой параметр(аргумент) передать моей функции, чтобы получить эти картинки?
Николай Семенцов пишет: Добрый день судя по файлу фотографии у вас есть, попробуйте отключить оптимизацию отгрузки каталога в настройках интернет-магазин-> 1с интеграция, так же сделать полную отгрузку. А свойства у вас создано в системе ? Соответствует ли внешний код свойства отгружаемому?
Отключил опцию « оптимизацию отгрузки каталога в настройках интернет-магазин-> 1с интеграция» Полная выгрузка Настройка свойства инфоблока Свойство импортированного товара с символьным кодом «MORE_PHOTO»
При обмене 1С с сайтом выгружаются все картинки (в папке import_files они также присутствуют), но в результате товары имеют только детальную картинку (из которой (исходя из настроек инфоблока) делается картинка анонса), а вот дополнительных картинок (те что в MORE_PHOTO) нет. Где можно изменить файл import.xml (где он формируется) чтобы добавить дополнительные теги с картинками или в каком файле (компоненте) происходит обработка xml. Потомучто все картинки в структуре import.xml они там есть. Вот мой import.xml
Станислав Шашалевич, Юлия Бедросова, У метода ExportElements объекта CIBlockCMLExport (т.е. ) в виде шестого параметра можно передать "all" (строка "all" ). В результате в выдачу попадут активные и неактивные.
electroid пишет: Все действительно очень просто. Битрикс пишет дополнительные картинки в свойство MORE_PHOTO.
Простите за некомпетентность, но как записывать (производить изменения в шаблоне xml) import.xml. Дело в том что у меня тоже картинки хоть и выгружаются из 1С но в MORE_PHOTO не попадают. Спасибо
Экспорт активных и неактивных товаров с Битрикса в 1С
При экспорте товаров с сайта в 1С, экспортируются только активные товары, а нужно чтобы и те и другие. Изменения файла component.php компонента catalog.export.1c ни к чему не привело, а изменения были следующими: • Как работает компонент — я до конца не понял, понятно только что происходит экспорт в несколько шагов. Сначала формируются свойства и разделы (CIBlockCMLExport::ExportProperties, CIBlockCMLExport::ExportSections). Во втором шаге элементы (CIBlockCMLExport::ExportElements), в третьем разделы и элементы. Там в переменную сессии $_SESSION["BX_CML2_EXPORT"]["total"] возвращается результат метода GetList объекта CIBlockElement, где в параметре фильтра указан ACTIVE => "Y". Изменял его как только можно, даже убирал все равно выдаются только активных товары; • Метод CIBlockCMLExport::ExportElements($PROPERTY_MAP, $SECTION_MAP, $start_time, $INTERVAL, $counter_limit = 0, $arElementFilter = false) шестым параметром передавал массив фильтра. При экспорте программа 1С зависает затем выдается ошибка что XML не был получен. ============================================================================================================== Подскажите, пожалуйста, в чем тут дело? Может не с того инфоблока идет экспорт или где-то мои модификации над компонентом были неправильны... я незнаю, но уверен, что причина банальна