Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
14 Дек 2017, 01:34
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Opencart + Echange 1C + Simple  (Прочитано 801 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн AIFrame

  • ****
  • Сообщений: 293
  • РЕПУТАЦИЯ: 40
  • КПД: 14%
  • Регистрация: 2015-07-22
  • Сайт: 
  • Профессия: Ученик 1С
Есть сайт, с которым настроена выгрузка номенклатуры и загрузка заказов.
Пользователи регистрируются через модуль simple, где им предлагается выбрать свой тип как "Физ.лицо" или как "Юр.лицо".
С Физ.лицами проблем нет, они создаются как контрагенты Физ.лица.
Проблема с юр.лицами. Для них поля Имя-Фамилия не являются основными, это просто контактная информация. При регистрации Юр.лицо указывает название компании (company), свой ИНН (tax_id) и КПП (fax).
При создании такого контрагента обработка ОбменССайтом все равно пихает его в группу физ.лиц и полностью игнорирует поля Юр.лица (Компания, ИНН, КПП).
В обработке есть
Функция ИдентифицироватьКонтрагентов(ДеревоДокументов)
   Для Каждого СтрокаДД Из ДеревоДокументов.Строки Цикл
Понимаю, что готовых решений не будет, посему вопрос издалека:
Как мне получить в лог список всех полей и их значения из ДеревоДокументов?


Оффлайн AIFrame

  • ****
  • Сообщений: 293
  • РЕПУТАЦИЯ: 40
  • КПД: 14%
  • Регистрация: 2015-07-22
  • Сайт: 
  • Профессия: Ученик 1С
Re: Opencart + Echange 1C + Simple
« Ответ #1: 11 Сен 2015, 08:41 »
Раскопал следующее:
Вывод CML:
Функция РазобратьCML(СтрокаCML)
		Сообщить("ТипУзла: " + ОбъектCML.ТипУзла + " ----- Имя: " + ОбъектCML.Имя + " ----- Значение: " + ОбъектCML.Значение);

Настройка полей для формирования xml:
/www/site.com/admin/model/tool/exchange1c.php
Сейчас попробую прописать туда нужные мне поля и обработать.
Добавлено: 11 Сен 2015, 09:07

Получилось.
	<Ид>7</Ид>
<Номер>7</Номер>
<Дата>2015-09-11</Дата>
<Время>06:52:47</Время>
<Валюта>RUR</Валюта>
<Курс>1</Курс>
<ХозОперация>Заказ товара</ХозОперация>
<Роль>Продавец</Роль>
<Сумма>5667.0000</Сумма>
<Комментарий></Комментарий>
<Контрагенты>
<Контрагент>
<Ид>9#admin@asd.com</Ид>
<Наименование>Name Lastname</Наименование>
<Роль>Покупатель</Роль>
<ПолноеНаименование>Name Lastname</ПолноеНаименование>
<Фамилия>Lastname</Фамилия>
<Имя>Name</Имя>
<Компания>ООО "Рога и Копыта"</Компания>
<ИНН>7723643863</ИНН>
<КПП>000000000</КПП>
<Тип>2</Тип>
<Адрес>
<Представление>УЛ МАЛЫШЕВА, Д 13, КОРП 2, Москва, 109263, Российская Федерация</Представление>
</Адрес>
<Контакты>
<Контакт>
<Тип>ТелефонРабочий</Тип>
<Значение>00022200</Значение>
</Контакт>
<Контакт>
<Тип>Почта</Тип>
<Значение>admin@asd.com</Значение>
</Контакт>
</Контакты>
</Контрагент>
</Контрагенты>
Соответствие полей:
				$document['Документ' . $document_counter]['Контрагенты']['Контрагент'] = array(
'Ид'                 => $order['customer_id'] . '#' . $order['email']
,'Наименование'     => $order['payment_lastname'] . ' ' . $order['payment_firstname']
,'Роль'               => 'Покупатель'
,'ПолноеНаименование' => $order['payment_lastname'] . ' ' . $order['payment_firstname']
,'Фамилия'            => $order['payment_lastname']
,'Имя'           => $order['payment_firstname']
,'Компания'           => $order['payment_company']
,'ИНН'           => $order['payment_tax_id']
,'КПП'           => $order['fax']
,'Тип'           => $order['customer_group_id']
,'Адрес' => array(
'Представление' => $order['shipping_address_1'].', '.$order['shipping_city'].', '.$order['shipping_postcode'].', '.$order['shipping_country']
)
,'Контакты' => array(
'Контакт1' => array(
'Тип' => 'ТелефонРабочий'
,'Значение' => $order['telephone']
)
,'Контакт2' => array(
'Тип' => 'Почта'
,'Значение' => $order['email']
)
)
);
Имена полей смотреть в таблице %prefix%_order через PhpMyAdmin.

Осталось в обработке настроить использование новых полей в нужном месте и можно пить кофе.
Добавлено: 11 Сен 2015, 11:39

В модуле обработки ОбменССайтом
Функция ОбработатьЗначениеЭлемента(Знач ИмяЭлемента, Знач ЗначениеЭлемента, ДеревоДокументов);
В ней указываем поля, которые были добавлены в выгрузку xml.
		ИначеЕсли ИмяЭлемента = "Документ.Контрагенты.Контрагент.Компания" Тогда
ТекущаяСтрокаДерева.СтруктураДанныхКонтрагента.Вставить("НаименованиеПолное", ЗначениеЭлемента);
ТекущаяСтрокаДерева.СтруктураДанныхКонтрагента.Вставить("Наименование", ЗначениеЭлемента);
ТекущаяСтрокаДерева.СтруктураДанныхКонтрагента.Вставить("ЮрФизЛицо", Перечисления.ЮрФизЛицо.ЮрЛицо);
Собственно, вот и все. Сам спросил, сам ответил.

Последний раз редактировалось: AIFrame; 11 Сен 2015, 11:39. Причина: Объединение сообщений


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* 1С:Интеграция с OpenCart 2.x

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 197
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal