gifts2017

Обмен 1C УТ 8.x <-> VirtueMart 2 (Joomla) по протоколу CommerceML, с выгрузкой свойств, скидок, габаритов и производителя

Опубликовал Андрей Гуща (amatoravg) в раздел Обмен - Интеграция с WEB

Данная публикация являет собой дальнейшее развитие заброшенной автором бесплатной компоненты обмена 1С с интернет-магазином на базе VirtueMart 2. Исправлены выявленные ошибки, реализована поддержка последних версий VirtueMart, добавлен новый и расширен прежний функционал.

Исходная версия компоненты (набор PHP-скриптов) доступна на форуме:

http://joomlaforum.ru/index.php/topic,175325.0.html

и имеет следующие возможности:

Из 1С:

1) Выгрузка номенклатуры
2) Выгрузка изображений с последующим созданием tumbsnail
3) Выгрузка дополнительных картинок
4) Выгрузка всех ценовых групп и назначение по дефолту группы, указанной в настройке!
5) Выгрузка остатков на складе
6) Выгрузка цен на товары в соответствии с ценовой группой

В 1С:

1) Загрузка заказов со статусов P
2) Добавление новых клиентов (в том числе и Юр. лица)

Скрипт работает как на полную выгрузку, так и на выгрузку изменений!

Внимание! Для некоторых возможностей скрипта необходимо, чтобы было установлено дополнение к 1С, скачать можно на офф сайте!

Для работы со стороны 1С используется стандартный механизм обмена с WEB-сайтом, использующий планы обмена для отслеживания изменений, что приятно :)


НОВЫЕ ВОЗМОЖНОСТИ И ИЗМЕНЕНИЯ В ВЕРСИИ 2.1.1.Amator


1) Исправлена проблема с дробным весом - изначально вес загружался как целое число, отсекалась дробная часть.

2) Добавлен перенос свойств - свойства должны иметь простой тип (строка, число), так как для хранения сложных типов в VM нет отдельной таблицы. Поддерживается выгрузка неограниченного количества доп. свойств!

3) Нормальная выгрузка производителя - производитель заводится так же как доп. свойство, и должен иметь тип Справочник! (Контрагенты, Значения свойств объектов и т. п.). Свойство должно называться "производитель", если хотите по-другому, нужно запустить на вашем сайте vmshop_1c.php и отредактировать параметр VM_MANUFACTURE.

4) Выгрузка двойных картинок поправлена - не правильно подставлялись пути к каталогу.

5) Выгрузка цен поправлена - менялись названия реквизитов в таблицах VM, начиная с версии 2.0.14.

6) Добавлен перенос габаритов товара - для загрузки габаритов (Длина,Ширина,Высота) в стандартные реквизиты товара VM, а не как доп. свойства, нужно добавить эти реквизиты аналогично весу в справочник Единицы измерения, и внести дополнения в код модуля обработки ОбменССайтом: (функция РИ_ЗаполнитьСписокЗначенийРеквизитовТовара):

Если ЗначениеЗаполнено(ВыборкаНоменклатуры.Вес) Тогда

ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Вес", мКоэффициентПересчетаВесаТоваровВГраммыДляОбменаССайтом * ВыборкаНоменклатуры.Вес);
КонецЕсли; 
//+Аматор
Если ЗначениеЗаполнено(ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Длина) Тогда 
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Длина", ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Длина);
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Ширина) Тогда 
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Ширина", ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Ширина);
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Высота) Тогда 
ДобавитьЗначениеРеквизитаВСписок(СписокЗначенийCML, "Высота", ВыборкаНоменклатуры.ЕдиницаХраненияОстатков.Высота);
КонецЕсли;
//-Аматор

 

7) Реализована выгрузка скидок номенклатуры (установленных документом "Установка скидок номенклатуры"). Сам процент скидки не хранится, Цена со скидкой расчитывается при загрузке и записывается в поле product_override_price.

8) При загрузке заказов в 1с в номер теперь подставляется Номер, а не Ид заказа, как было раньше.

9) Реализована выгрузка описаний для категорий (поле Комментарий, его необходимо сделать доступным не только для элементов, но и для групп номенклатуры в 1С). В процедуру ВыгрузитьОсновныеРеквизитыГруппыДляКлассификатора необходимо добавить:

//+Аматор
ДобавитьУзелCML(БуферCML, "Комментарий", ФорматНаименованияДляCML(Группа.НоменклатураСсылка.Комментарий));
//-Аматор


 

ИЗМЕНЕНИЯ В ВЕРСИИ 2.1.2.Amator

 

 

1) Исправлена ошибка с полем slug в товарах, не дающая корректно обновлять базу в магазине (когда VM_DB = нет).

2) Исправлена ошибка с загрузкой производителей (когда VM_DB = нет).


ИЗМЕНЕНИЯ В ВЕРСИИ 2.1.4.Amator

1) Исправлена проблема с авторизацией (альтернативным скриптом checkauth_2_5.php замените оригинальный checkauth.php, если у вас не проходит авторизация и ругается на 180 строку).

2) Исправлены мелкие ошибки синхронизации товаров

3) Расширенная информация о заказе в поле комментарий



Данная версия скрипта будет работать только с VM2, последних версий (думаю, начиная с 14й). VM1 - не поддерживается. VM3 - не проверял, и пока не планирую. Так же скорее всего не будет работать выгрузка характеристик номенклатуры. Тестировал обмен с УТ 10.3.24 - VM 2.0.24 (JM 2.5). Так же внедрял эту обработку для УНФ 1.4 и КА 1.1. Не исключено, что будет работать и с УПП, и УТ 11, но не проверял.

В разделе файлов вы можете скачать архив со скриптами, который нужно разместить на вашем сайте, и модифицированную обработку ОбменССайтом.



Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Архив со скриптами 2.1.4_Amator
.rar 63,22Kb
12.05.15
33
.rar 2.1.4_A 63,22Kb 33 Скачать
Модифицированная версия обработки ОбменССайтом 1.2
.epf 57,37Kb
12.05.15
38
.epf 1.2 57,37Kb 38 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Уточкин (EdmundoAlvares) 09.11.13 12:46
А чем данная разработка в принципе отличается от "типового" обмена с интернет магазинами который в УТ11 например есть? Формат вроде тот-же, объекты тоже, ну у вас чуть больше данных участвует в обмене, но это и в "типовом" обмене можно допилить.
2. Андрей Гуща (amatoravg) 09.11.13 13:12
Эта разработка и так использует типовой обмен, заложенный в 1С :) Но вот на стороне интернет-магазина, если у вас сайт не на Битриксе, а на Joomle, по умолчанию никакого обмена с 1С не предусмотрено :) Тем более бесплатного.
3. Дмитрий Уточкин (EdmundoAlvares) 09.11.13 13:45
4. Александр МАН (1977) 09.11.13 16:39
Попытался запустить в КА Ругается
{ВнешняяОбработка.ОбменССайтом.МодульОбъекта(2951,20)}: Переменная не определена (РИ_ПроцедурыОбменаССайтомБитрикс)
СтруктураДанных = <<?>>РИ_ПроцедурыОбменаССайтомБитрикс.ПолучитьЗаказыСОплатойИОтгрузкойПоКатегориям(МассивИзменений, мМассивЗагруженныхДокументов);
{ВнешняяОбработка.ОбменССайтом.МодульОбъекта(3133,2)}: Переменная не определена (РИ_ПроцедурыОбменаССайтомБитрикс)
<<?>>РИ_ПроцедурыОбменаССайтомБитрикс.ПроверитьВыполнитьОбновлениеДанныхМодуляОбменаССайтом();
{ВнешняяОбработка.ОбменССайтом.МодульОбъекта(3385,2)}: Переменная не определена (РИ_ПроцедурыОбменаССайтомБитрикс)
<<?>>РИ_ПроцедурыОбменаССайтомБитрикс.НастроитьПостроитель(ПостроительЗапроса, КлассифицироватьПоЦеновымГруппам, ВыгружатьСкидки, ВыгружатьОстаткиПоСкладам, ВыгружатьВсеХарактеристики, мУчетнаяПолитика);

Если в УТ10 идёт то в КА должно..

5. Андрей Гуща (amatoravg) 09.11.13 19:25
Внимание! Для некоторых возможностей скрипта необходимо, чтобы было установлено дополнение к 1С, скачать можно на офф сайте! Попробуйте прикрутить к КА дополнение:
http://1c.1c-bitrix.ru/ecommerce/v2.php
6. nikser Serov (nikser) 27.11.13 18:34
7. Андрей Гуща (amatoravg) 28.11.13 06:01
Безвозмездно, т.е. даром :) весь код открыт, можно допиливать по себя сколько душе угодно
8. Ivan SusaninIvan (IvankoSusanin) 05.12.13 17:45
Добрый день!
Подскажите пожалуйста!
НЕ могу подключить сайт через Узлы обмена с сайтом! При проверка соединения появляется сообщение:
Не удалось установить соединение.
Авторизация не выполнена.
Не удалось установить соединение с сервером. Проверите имя пользователя и пароля.

Использую:
Демонстрационная версия типового решения 1С:Предприятие 8.2 Управление торговлей (редакция 11.1)
Joomla 2.5
Спасибо!

(*логин/ пароль введены правильно)
10. Андрей Гуща (amatoravg) 06.12.13 11:28
Такая ошибка возникает, если что-то не так в файле vmshop_1c.php
11. Ivan SusaninIvan (IvankoSusanin) 06.12.13 14:30
Но авторизация не проходит и когда я указываю просто адрес сайта: www.site.ru (без vmshop_1c.php )

Такая же ошибка:
Не удалось установить соединение.
Авторизация не выполнена.
Не удалось установить соединение с сервером. Проверите имя пользователя и пароля.
Может быть проблема в http аутентификации?
12. Андрей Гуща (amatoravg) 06.12.13 15:31
Указываете все верно. Ваш сайт при обработке скрипта vmshop_1c.php где то спотывается. Какая версия VM?
13. Ivan SusaninIvan (IvankoSusanin) 06.12.13 19:42
14. Андрей Гуща (amatoravg) 07.12.13 07:16
Начиная с версии 2.0.14 у ВМ поменялся формат цен немного. Но эта ошибка у вас вылезет позже. А пока, если не проходит авторизация, значит затык где то в файле vmshop_1c.php. Попробуйте этот файл посмотреть и потестить, на каком месте ошибка возникает.
15. Ivan SusaninIvan (IvankoSusanin) 12.12.13 17:47
Начиная с версии 2.0.14

У меня же версия VirtueMart 2.0.10

я не силен в php
Вот код, vmshop_1c.php пожалуйста помогите разобраться

//Системные параметры
define ( 'VM_VERSION', '2.1.0.beta' ); 	// Версия скрипта. Будет обновляться!

define ( 'VM_HTTP_VERS', 1 ); 	// Использовать модуль http (через браузер) 1- да, 0- нет (в случае 0 - настройте config.php)
								// Можно сначало включить, настроить, а потом выключить!
//-------------------------------Далее редактировать на свой страх и риск!!!!--------------------------------------
set_time_limit (0);

define ( 'VM_1CEXPORT', true );
ini_set ( 'display_errors', '1' );
error_reporting ( E_ALL );
define ( '_JEXEC', 1 );
define ( 'DS', DIRECTORY_SEPARATOR );
define ( 'JPATH_BASE', dirname ( __FILE__ ) . '' );
define ( 'JPATH_BASE_1C', JPATH_BASE . DS .'components'.DS.'com_virtuemart'.DS.'1cexport' );

require (JPATH_BASE_1C . DS . 'system' .DS . 'config.php');

define ( 'VM_CODING', $config['VM_CODING'] ); 	// Кодировка выгрузки заказов (пока не применяется)
define ( 'VM_DB', $config['VM_DB'] ); 			// Обнулять таблицы перед выгрузкой?
define ( 'VM_ZIP', $config['VM_ZIP'] ); 		// Использование zip архивов
define ( 'VM_ZIPSIZE', $config['VM_ZIPSIZE'] ); 	// максимальный размер архива в байтах
define ( 'VM_LOG', $config['VM_LOG'] ); 		// вести логи по времени (time), по дате (date), один лог (one)
define ( 'VM_LANG', $config['VM_LANG'] ); 		// Язык 1С - требуется для характеристик (см adapt.php)
//Параметры изображения категории
define ( 'VM_CAT_IMG', $config['VM_CAT_IMG'] ); 	// Применять картинку к категории
define ( 'VM_CAT_RAND', $config['VM_CAT_RAND'] ); 		// Выбор картинки ( r - рандомом, p - первая )
//Параметры отвечающие за налог
define ( 'VM_NDS', $config['VM_NDS'] ); 		// Учитывать в цене из 1С налог НДС? 
define ( 'VM_NDS_COUNTRY', $config['VM_NDS_COUNTRY'] ); // Страна учета НДС?
//Параметры отвечающие за поставки товара
define ( 'VM_POSTAVKA_E', $config['VM_POSTAVKA_E'] ); 	// Использовать модуль поставки (заменяет картинку в случае отсутствия товара)
define ( 'VM_POSTAVKA', $config['VM_POSTAVKA'] ); 	// Вставляет текст или картинку (например: on-order.gif или в наличии)
define ( 'VM_POSTAVKA_TIME', $config['VM_POSTAVKA_TIME'] ); 	// Ориентировачное время поставки в секундах, т.е. 5д*24ч*60м*60с = 432000
//Параметры thumbnails изображения
define ( 'VM_TBN_H', $config['VM_TBN_H'] ); 		// Высота thumbnails изображения
define ( 'VM_TBN_W', $config['VM_TBN_W'] ); 		// Ширина thumbnails изображения
define ( 'VM_TBN_RED', $config['VM_TBN_RED'] ); 	// Подложка thumbnails изображения (Красный - 255)	-	>			
define ( 'VM_TBN_GREEN', $config['VM_TBN_GREEN'] ); 	// Подложка thumbnails изображения (Зеленый - 255)	-		>	Все вместе - белый
define ( 'VM_TBN_BLUE', $config['VM_TBN_BLUE'] ); 	// Подложка thumbnails изображения (Синий - 255)	-	>
define ( 'VM_TBN_QTY', $config['VM_TBN_QTY'] ); 		// Качество thumbnails изображения (максимум 100)
define ( 'VM_JPG', $config['VM_JPG'] ); 			// Заменять ли JPEG на JPG
//Параметры отвечающие за каталог
define ( 'VM_LIST_CAT', $config['VM_LIST_CAT'] ); 		// Сколько отображать товаров в каталоге 
define ( 'VM_DEF_CASHGR', $config['VM_DEF_CASHGR'] ); 		// название основной категории цен (у меня это Розничная)
define ( 'VM_MANUFACTURE', $config['VM_MANUFACTURE'] ); 	// Обозначение свойства производителя
//Параметры отвечающие за выгрузку заказов
define ( 'VM_USER_SHOP', $config['VM_USER_SHOP'] );	// Создать поля для регистрации новых клиентов (Банковские реквизиты: ИНН, КПП и т.д.)
define ( 'VM_CLIENT', $config['VM_CLIENT'] ); 		// 0 - Выгружать всех клиентов в 1С на контрагента "Физ лицо"  1- Выгружать всех клиентов в 1С как есть
define ( 'VM_NDS_SHIP', $config['VM_NDS_SHIP'] );		// Ставка НДС для услуги доставки

require_once (JPATH_BASE . DS . 'includes' . DS . 'defines.php');
require_once (JPATH_BASE . DS . 'includes' . DS . 'framework.php');
require ( 'libraries' .DS. 'joomla' .DS. 'factory.php');
$mainframe = & JFactory::getApplication ( 'site' );
$mainframe->initialise ();
$db = & JFactory::getDBO ();
jimport ( 'joomla.error.log' );
jimport ( 'joomla.user.helper' );
if (VM_LOG == 'time')
{
	$log = &JLog::getInstance ( 'vmshop_1c_'.date('y_m_d_H_i').'.log.php' );
}
elseif (VM_LOG == 'date')
{
	$log = &JLog::getInstance ( 'vmshop_1c_'.date('y_m_d').'.log.php' );
}
elseif (VM_LOG == 'one')
{
	$log = &JLog::getInstance ( 'vmshop_1c.log.php' );
}
else
{
	$log = &JLog::getInstance ( 'vmshop_1c.log.php' );
}

$template = "";

require (JPATH_BASE_1C . DS . 'checkver.php');

if (VM_JPG == 'yes')
{
	define ( 'VM_JPG_S', 'jpg' );
}
else
{
	define ( 'VM_JPG_S', 'jpeg' );
}

if (VM_VERVM == '2')
{
	define ( 'JPATH_BASE_PICTURE', JPATH_BASE .DS.'images'.DS.'stories'.DS.'virtuemart'.DS.'product' );
	define ( 'JPATH_PICTURE', 'images'.DS.'stories'.DS.'virtuemart'.DS.'product' );
}
else
{
	define ( 'JPATH_BASE_PICTURE', JPATH_BASE .DS.'components'.DS.'com_virtuemart'.DS.'shop_image'.DS.'product' );
	define ( 'JPATH_CAT_PICTURE', JPATH_BASE .DS.'components'.DS.'com_virtuemart'.DS.'shop_image'.DS.'category' );
}
define ( 'JPATH_BASE_PICTURE_SMALL', JPATH_BASE_PICTURE .DS.'resized' );

if (VM_VERVM == '2')
{
	define ( 'DBBASE', 'virtuemart' );
	require_once(JPATH_BASE_1C .DS.'translit.php');
}
else
{
	define ( 'DBBASE', 'vm' );
}

if (file_exists(JPATH_BASE_1C .DS.'login.tmp'))
{
	$handle = fopen(JPATH_BASE_1C .DS.'login.tmp', "r");
}
else
{
	$handle = fopen(JPATH_BASE_1C .DS.'login.tmp', "w+");
}
$id = 0;

while (!feof($handle)) 
{
    $buffer[$id] = fgets($handle, 4096);
	$id++;
}

if (!empty($buffer[0]) and !empty($buffer[1]))
{
	$id_admin = $buffer[0];
	$username = $buffer[1];
}
else
{
	$id_admin = 0;
}

require_once(JPATH_BASE_1C .DS.'adapt.php');

$sql = "SEL ECT registration FR OM #__".$dba['userfield_db']." WHERE name ='vm_fullname'";
$db->setQuery($sql);
$adapt = $db->loadResult ();

if (empty($adapt) and VM_USER_SHOP == 'yes')
{
	require_once(JPATH_BASE_1C .DS.'adaptvm.php');
}

require_once(JPATH_BASE_1C .DS.'http.php');
		
$template = $templ;

if (isset($_REQUEST['mode'])) 
{
	//?mode=checkauth
	if( $_REQUEST['mode'] == 'checkauth') 
	{
		$log->addEntry ( array ('comment' => 'Скрипт адптации 1С и магазина Virtuemart версии: '.$version. ' Релиз: ' .$version_status.', версия скрипта: '.VM_VERSION.', обнуление базы перед выгрузкой: '.VM_DB.', выгрузка архивом: '.VM_ZIP) );
		$log->addEntry ( array ('comment' => 'Этап 1) Авторизация на сервере') );
		
		if(defined( 'VM_SITE' ))
		{
			$logs_http[] = 'Скрипт адптации 1С и магазина Virtuemart версии: <strong>'.$version. '</strong> Релиз: <strong>' .$version_status.'</strong>, версия скрипта: <strong>'.VM_VERSION.'</strong>, обнуление базы перед выгрузкой: <strong>'.VM_DB.'</strong>, выгрузка архивом: <strong>'.VM_ZIP.'</strong>';
			$logs_http[] = '<strong>Авторизация на сервере</strong>';
		}
		
		require_once(JPATH_BASE_1C .DS.'checkauth.php');
		fwrite($handle, $somecontent);
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	} 
	//?mode=init
	elseif( $_REQUEST['mode'] == 'init') 
	{
		$log->addEntry ( array ('comment' => 'Этап 2) Инициализация выгрузки: Выгружать в архиве - '.VM_ZIP.', размер - '.VM_ZIPSIZE) );
		require_once(JPATH_BASE_1C .DS.'init.php');
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	} 
	elseif( $_REQUEST['mode'] == 'file') 
	{
		$log->addEntry ( array ('comment' => 'Этап 3) Выгрузка файлов или архива и его распаковка') );
		$logs_http[] = '<strong>Выгрузка файлов или архива и его распаковка</strong>';
		require_once(JPATH_BASE_1C .DS.'file.php');
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	} 
	elseif( $_REQUEST['mode'] == 'import') 
	{
		$log->addEntry ( array ('comment' => 'Этап 4) Импорт содержимого файлов') );
		require_once(JPATH_BASE_1C .DS.'import.php');
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	} 
	elseif( $_REQUEST ['mode'] == 'success') 
	{
		$log->addEntry ( array ('comment' => '1С закончила загрузку заказов') );
		print 'success\n';
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	}
	elseif( $_REQUEST ['mode'] == 'query') 
	{
		$log->addEntry ( array ('comment' => 'Этап 2) Построение заказов') );
		require_once(JPATH_BASE_1C .DS.'createzakaz.php');
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	}
	elseif( $_REQUEST ['mode'] == 'settings') 
	{
		$log->addEntry ( array ('comment' => 'Этап 1) Настройки сохранены') );
		require_once(JPATH_BASE_1C .DS.'change_settings.php');
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
	}
	else 
	{
		$log->addEntry ( array ('comment' => 'Операция выгрузки завершена') );
		print 'success\n';
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
		exit;
	}
} 
else 
{
	if ($template == "")
	{
		$log->addEntry ( array ('comment' => 'Операция выгрузки завершена') );
		print 'success\n';
		if (isset($handle)) 
		{
			fclose($handle);
			unset($handle);
		}
		exit;
	}
}

if(isset($http_content) and $http_content != '')
{
	$template = str_replace('[content]', $http_content, $template);
}

echo $template;

?>
...Показать Скрыть
16. Андрей Гуща (amatoravg) 13.12.13 06:11
у вас версия:
define ( 'VM_VERSION', '2.1.0.beta' );
Вы ее с форума стянули?

А моя -
define ( 'VM_VERSION', '2.1.2.Amator' );
17. Alex Berc (bercut0077) 26.02.14 17:00
Доброго дня VM2026d,joomla 2.5,'VM_VERSION', '2.1.2.Amator', + 6 часов пыток = нет подключения (Проверьте имя пользователя и пароль - хотя все правильно распаковал и прикрутил), куда копать? или это продается нерабочая разработка судя по отзывам в тч на форуме джумлы?
18. Андрей Гуща (amatoravg) 27.02.14 16:21
Ну, во первых, эта штука не продается, а дарится :) Во вторых, с некоторых пор форма аутентификации действительно перестала работать. Проблема в файле checkauth.php.


Как мне сказали знающие люди, файл был написан под 1.5
в нем $testcrypt = JUserHelper::getCryptedPassword($password, $salt); - не будет корректно работать.

Хотя не понимаю, как раньше то все работало на 2.5 :)

В общем, решение нашли, обновленный файл выкладываю, качайте!
Если и дальше не будет получаться, или нужно будет заточить обмен под вас индивидуально - обращайтесь!
20. Dmitriy Makarenko (DlMOH) 04.04.14 10:56
Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
Warning: XMLReader::read() [xmlreader.read]: An Error Occured while reading in Z:\home\********.ru\www\components\com_virtuemart\1cexport\import_xml.php on line 143

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript><!--error-->

Warning: XMLReader::XML() [xmlreader.xml]: Empty string supplied as input in Z:\home\********.ru\www\components\com_virtuemart\1cexport\system\product.php on line 24

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript><!--error-->

Warning: XMLReader::read() [xmlreader.read]: Load Data before trying to read in Z:\home\********.ru\www\components\com_virtuemart\1cexport\system\product.php on line 58

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript><!--error-->

Warning: XMLReader::read() [xmlreader.read]: An Error Occured while reading in Z:\home\********.ru\www\components\com_virtuemart\1cexport\import_xml.php on line 188

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript>success
21. Dmitriy Makarenko (DlMOH) 04.04.14 11:21
Изменил параметр VM_DB == yes

Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
Warning: XMLReader::read() [xmlreader.read]: An Error Occured while reading in Z:\home\#####.ru\www\components\com_virtuemart\1cexport\import_xml.php on line 143

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript><!--error-->

Fatal error: Call to undefined function makecustoms() in Z:\home\#####.ru\www\components\com_virtuemart\1cexport\system\product.php on line 1750

<sc ript language=JavaScript src='/denwer/errors/phperror_js.php'></sc ript>
22. Dmitriy Makarenko (DlMOH) 11.04.14 20:06
Скрипт таки запустился... но производитель не выгружается.
Создается только список самих производителей, а именно заполняется данными только две таблицы
shop_virtuemart_manufacturers
shop_virtuemart_manufacturers_ru_ru

В карточке всех товаров производитель не указан.

Все остальные таблицы
shop_virtuemart_manufacturercategories
shop_virtuemart_manufacturercategories_ru_ru
shop_virtuemart_manufacturer_medias
shop_virtuemart_manufacturer_to_1c

пустые :(
Причем перепробовал все возможные варианты выгрузки...
23. Андрей Гуща (amatoravg) 12.04.14 23:09
(22) DlMOH, Какой тип значения у производителя у вас в базе 1с?
24. Dmitriy Makarenko (DlMOH) 14.04.14 10:30
В 1С тип значений указан как: Значения свойств объектов (Классификатор)
В 1С не силен... но я так понимаю, что это "справочник".
25. Dmitriy Makarenko (DlMOH) 14.04.14 10:41
(23) amatoravg, в XML-файле это выглядит так:

<Справочник>
<ИдЗначения>7315ff4e-b34f-11e3-b06d-32065ca1c55d</ИдЗначения>
<Значение>ЗЗЦМ</Значение>
</Справочник>
<Справочник>
<ИдЗначения>6607d576-b35a-11e3-b06d-32065ca1c55d</ИдЗначения>
<Значение>Е.Некст</Значение>
</Справочник>
...Показать Скрыть
26. Dmitriy Makarenko (DlMOH) 14.04.14 10:45
У товара данное свойство в списке свойств значений тоже присутствует.
<Товар>
...
<ЗначенияСвойства>
<Ид>fcbf2a00-af5e-11e3-8a71-32065ca1c55d</Ид>
<Значение>6607d576-b35a-11e3-b06d-32065ca1c55d
</Значение>
</ЗначенияСвойства>
</ЗначенияСвойств>
...Показать Скрыть
27. ILYA REZNIKOV (forrin) 25.04.14 23:34
решил присоединиться к магазинам на этой обработке
ISPConfig 3, j2.5, vm2.6.0, 2.1.2_Amator,"Управление торговлей" (10.3.29.1)
28. ILYA REZNIKOV (forrin) 04.05.14 18:49
цены не хочет закачивать.
Планирует ли автор написание мини FAQ ?
29. Dmitriy Makarenko (DlMOH) 16.05.14 12:58
В дополнение к первому посту...
с УПП (Управление производственным предприятием) работает.
30. Dmitriy Makarenko (DlMOH) 16.05.14 12:59
Однако мои танцы с бубном пока продолжаются...
Сейчас заткнулся на этапе "Обмена заказами с 1С"
1С затыкается на ошибке:
{Обработка.ОбменССайтом.МодульОбъекта(6492)}: Поле объекта не обнаружено (Ид)
Если НЕ ПустаяСтрока(СтруктураДанныхКонтрагента.Ид) Тогда

т.е. ИД Контрагента не выгружается.

<Контрагенты>
<Контрагент>
<Наименование>Макаренко Дмитрий </Наименование>
<Роль>Покупатель</Роль>
<ПолноеНаименование> Макаренко Дмитрий </ПолноеНаименование>
<Имя>Дмитрий</Имя>
<Фамилия>Макаренко</Фамилия>
<Отчество/><Коментарий>Контрагент с сайта Макаренко Дмитрий </Коментарий>
</Контрагент>
</Контрагенты>
...Показать Скрыть
31. Dmitriy Makarenko (DlMOH) 16.05.14 15:39
С Ид Контрагента типа справился... (вопрос снимается)

Дальше еще страшнее! Затрял на ошибке 1С
Не указан расчетный счет !
{Обработка.ОбменССайтом.МодульОбъекта(5943)}: Ошибка при вызове метода контекста (Записать): Не удалось записать: "Заказ покупателя"!
Произошла ошибка: . По причине:

Не удалось создать/обновить документы.
Не удалось обработать документы, загруженные с сервера.
Обмен не выполнен

В Virtuemart вообще не вижу, где можно расчетный счет указать!
Help please!!!
32. Dmitriy Makarenko (DlMOH) 19.05.14 14:57
Развернул Управление торговлей для Украины, редакция 3.0
Все заработало отлично!
Буду ковырять, в чем грабли под УПП были...
33. Konstantin top (kt6123) 29.11.14 08:00
прошу связаться со мной kt612@mail.ru
34. Никита Голубев (Samhein) 23.02.15 22:39
(18) amatoravg,
Андрей, а куда вы выложили обновленный файл? Я скачал ваш скрипт он по прежнему не работает. Очень сложно оценить его функционал, который вы описали, если он даже авторизацию не проходит. Ошибка здесь:
$parts = explode( ':', $result->password );
$crypt = $parts[0]; сюда попала странная строка символа на 4;
$salt = @$parts[1];
$testcrypt = JUserHelper::getCryptedPassword($password, $salt); - этот метод для версии 1.5 (но тут есть хеш какой-то)
if( $crypt == $testcrypt ) ........ - в результате это условие ни когда не выполняется!!!

Я не силен в joomla api, и зарегистрировался только ради этого скрипта, помогите пожалуйста.
35. Андрей Гуща (amatoravg) 03.03.15 11:59
Увы, не получилось выложить обновленный файл...почему то инфостарт его никак не принимал... думаю, скоро выложу просто кусок кода, как заменить авторизацию, а может, и полностью обновленный весь скрипт, он далеко уже ушел от оригинала (в плане исправления багов, хотя и функционал немного нарастил)
36. Антон Косяков (kosyakov_anton) 30.03.15 15:42
Добрый день!
Вы писали выше что выложите кусок кода, либо файл обновленный.
Вопрос: что вы выложили?) Или может на форуме есть обновленное что-то?
Хочу сайт создать, нужен обмен с 1С.
37. Антон Косяков (kosyakov_anton) 30.03.15 15:43
(35) amatoravg, Добрый день!
Вы писали выше что выложите кусок кода, либо файл обновленный.
Вопрос: что вы выложили?) Или может на форуме есть обновленное что-то?
Хочу сайт создать, нужен обмен с 1С.
38. Влад Скляр (vladsklyar) 27.04.15 18:58
Уважаемый amatoravg а как быть если есть дочерние товары например
144 Унитазы, биде, писсуары/Унитазы 23010300 Общий Дочерний вид product_sku withParent="0"|parentOrderable="0"| Унитазы Лобненский Стройфарфор 0 0
23010301 23010300 Унитаз "Дачный" Лобня в упак. 0 1402
23010302 23010300 Унитаз "Дебют" (УнВКЦФ) в упак. 0 966
23010303 23010300 Унитаз "Ермак" (УнТПФ) в упак. 0 1377
23010304 23010300 Унитаз "Комфорт" (УнТКФ) в упак. 0 728
23010305 23010300 Унитаз "Нарцисс" (УнВКЦФ) новый в упак. 0 1247,5
23010306 23010300 Унитаз "Оптима" (УнВКЦФ) в упак. 0 996
23010307 23010300 Унитаз "Универсал" (УнВКЦФ) в упак. 0 996
23010308 23010300 Унитаз "Универсал" NEW (УнВКЦФ) в упак. 0 996
23010309 23010300 Унитаз "Фаворит" (УнВГЦФ) в упак. 0 1245

есть родитель 23010300 и дочерние, как при такой ситуации должны обновляться цены на сайте???
39. Кирилл Бондаренко (karapuzzzz) 03.05.15 23:12
Не планируете переделывать под VM 3.x?
40. Сергей Безуглов (BezuglowS) 05.05.15 16:47
Добрый день!
Уважаемый amatoravg!

Огромное спасибо за работающий скрипт обмена, хоть бубен и требуется.
Я со своей стороны собираюсь допиливать его под свою конфигурацию.
На данный момент у меня УТ 10.3.30.2 и VM 2.6.17

Не будет ли возражений, если я выложу скрипт на github.com ?

41. Андрей Лео (Leo_A) 07.05.15 10:28
(39) karapuzzzz, поддерживаю, может кто-то уже занимался адаптацией скрипта под 3-й VM?
42. Андрей Гуща (amatoravg) 12.05.15 12:48
Выложил обновление с исправленной авторизацией. На счет github.com не возражаю, только ссылку на мое мыло укажите плиз.
43. Андрей Гуща (amatoravg) 12.05.15 13:08
Ребята, если кому то нужна помощь конкретно с вашими данными и вашей ситуацией поразбираться, обращайтесь, но уже за отдельную плату.
44. Влад Скляр (vladsklyar) 28.05.15 16:57
Уважаемы amatoravg подскажите есть ли альтернативные варианты получения Вашего скрипта, нужно для VirtueMart 2.6.12.2
45. Андрей Гуща (amatoravg) 28.05.15 20:29
(44) vladsklyar, Есть. Если нужна будет моя личная помощь при установке, я к вам подключусь и сам все закачаю на ваш хостинг. А так - только качая отсюда. За огромную суммe в 1$m.
46. Влад Скляр (vladsklyar) 29.05.15 15:06
Народ помогите трабла с группами
Скрипты выставляет две группы покупателей, из за этого не зарегистрированные пользователи не видят цен

Прикрепленные файлы:
47. Dima (dimadima) 10.06.15 10:32
(43) amatoravg,
Уважаемы amatoravg подскажите пожалуйста, как получить вашу личную, оплачиваемую помощь, по установке, настройке скрипта?
Моя почта: tdkitg@gmail.com
48. Андрей Гуща (amatoravg) 11.06.15 15:55
(47) dimadima, Ответил вам на почту.
49. Павел (aka74u) 06.08.15 17:31
привет! это будет работать на virtuemart 3?
50. Павел (aka74u) 06.08.15 20:31
51. Андрей Лео (Leo_A) 04.10.15 20:31
(50) aka74u, пробовал, работает на virtuemart 3 без проблем, но только под joomla 2.5...
а вот на joomla 3 уже не пашет, начал переписывать немного, но чем дальше, тем больше спотыкается.
Может кто-то уже заморачивался переделкой под 3-ю джумлу?
52. Евгений Колпиков (Flashsong) 30.11.15 15:05
Добрый день. Я новенький в данном вопросе попросите подскажите пожалуйста установил Joomla!, 2.5.28. и VirtueMart 2.6.6 1с 8.3 УТ 11.1 Пробу подключиться для обмена данных к скрипту через 1с пишет нет соединения. через веб заходит и там написана только 1 строчка [content]. Что делаю не так подскажите. Права на папку полные все есть уже и пользователя заново создал. Хостин Hostinger.ru.
53. Евгений Колпиков (Flashsong) 30.11.15 16:02
Авторизацию настроил обмен с сайтом делаю запускаю а в итоге пусто. Как правильно VM настроить?
54. Андрей Гуща (amatoravg) 30.11.15 21:20
Проблема типа Only variables should be assigned by reference на некоторых хостингах - легко лечится, в главном файле уберите в ругающихся строчках символ &:

http://joomlaforum.ru/index.php?topic=216469.0
55. Евгений Колпиков (Flashsong) 01.12.15 00:04
Да это уже исправил спасибо. Только почему то теперь. Соединение есть настраиваю узел обмен нажимаю начать обмен он начинается и заканчивается через 5 секунд и ничего не пишет. На сайт захожу а там как было пусто так и есть. Как это исправить? Помогите пожалуйста.
56. Евгений Колпиков (Flashsong) 08.12.15 09:27
Может кому пригодиться. Внедрял этот скрипт на 1с 8.3 УТ 11.1 Успешно.
Первая проблема был с названием файлов при выгрузке с 1с поменял в обработке название файлов как в скрипте или на оборот кому как нравиться. Выгрузка пошла товаров не грузились категории т.к. была допущена ошибка при первой выгрузке. Я выгрузил все категории и удалил их, но с таблицы MySQL они не удалились. Таким образом нужно зайти в скрипт и поменять настройки чтобы при выгрузке удалялись старые таблицы.
Вопрос с товаром решен. Остатки и цена все подтягивается корректно после того, как создал Соглашение с клиентом для обмена с сайтом. Почитать про это можно в любом источнике как правильно делать обмен с сайтом.
3 этап моей работы были ошибки в скрипте т.е. стоял зна & в начале строки заходил удалил и все заработало.
4е заказы товаров с сайта в 1С.
Тут уже пришлось исправлять обработку 1С ну это уже какждому как хочется. Можно исправить или скрипт выгрузки заказов createzakaz.php или Основной модуль - Обмен с сайтом в 1С. Что исправлял вот пример: в скрипте написано так $t1_4 = $t1_3->addChild ( "Наименование", "ВидНоменклатуры" ); а в 1С Наименование = ТипНоменклатуры, таким образом выскакивает ошибка исправил в скрипте на Тип и все заработало и так полностью пересобрал модуль 1С и все работает.
Надеюсь кому-то поможет. Моя проделанная работа. ^-^
57. 1 1 (kubansteklotara) 29.01.16 09:39
Добрый день. Скажите пожалуйста проблема с вашим скриптом. Много ошибок исправил, но эту не могу. Выгрузка заказа. Если 1 товар в Заказе то выгружается нормально, а если несколько то скрипт не выгружает поля номенклатуры вообще пустые строчки. Как исправить эту проблему??? Очень срочно помогите плз.
58. 1 1 (kubansteklotara) 29.01.16 11:39
Бред какой- то пробел в 1й строчке поставил и все заработало
59. 1 1 (kubansteklotara) 02.02.16 12:26
Помогите пытаюсь добавить к скрипту еще 1 файл прикрепить добавляю в файле vm_shop elseif( $_REQUEST ['mode'] == 'query')
{
$log->addEntry ( array ('comment' => 'Изменение статус заказа') );
require_once(JPATH_BASE_1C .DS.'status.php');
if (isset($handle))
{
fclose($handle);
unset($handle);
}
}


в файле status.php
вот этот запросик

<?php
if ( !defined( 'VM_1CEXPORT' ) )
{
echo "<h1>Несанкционированный доступ</h1>Ваш IP уже отправлен администратору.";
die();
}
$db->setQuery("UPDATE hrbtc_virtuemart_orders SET order_status = 'C' WHERE order_status = 'U'")->loadObjectList();
?>

но он его как будто не видит. Пропускает строчки в скрипте VM_Shop в главном модуле и все. А без замены статуса идет задвоение заказов. что сделать?
60. Пользователь (user595269_dwib) 29.07.16 14:11
Добрый день!
Выдает ошибки:
Strict Standards: Only variables should be assigned by reference in /home/site.ru/public_html/vmshop_1c.php on line 65 Strict Standards: Only variables should be assigned by reference in /home/site.ru/cvetochka.ru/public_html/vmshop_1c.php on line 67 Fatal error: Call to undefined method JLog::getInstance() in /home/site.ru/public_html/vmshop_1c.php on line 72
-
Подскажите. пожалуйста, как можно поправить?
61. NetFix 111 (NetFix) 04.08.16 17:47
Поделитесь скриптом пожалуйста, нету 1sm)) mymail.com(at)mail ru
62. Сергей Безуглов (BezuglowS) 09.09.16 10:58
С разрешения уважаемого Amator выложил скрипт на github
https://github.com/SirPiter/vmshop_1c

Свои изменения тоже кидаю туда.(branch: 7sound)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа