Проверьте что выдает функция check_email на "плохих" и "хороших" адресах. Если выяснится, что есть адреса, где эта функция уверена, что адрес правильный, а у Вас с ним проблема - смотрите настройки хостинга.
Если идет работа с создаваемым заказом, то в этот момент свойства еще не сохранены в БД. Об этом упоминалось месяца за три до Вашего вопроса.
Похоже, и сейчас это актуально, т.е. за год не изменилось ничего. Сейчас смотрю bitrix:sale.order.ajax - в событие добавления значений свойства заказа влезать смысла нет - не анализируется ответ от CSaleOrderPropsValue::Add. Так что искать событие самой компоненты, где можно с этим вмешаться.
Нигде, комментарии, введенные пользователем в 1С не идут. А то, что Вы видите в выгрузке и затем в однострочном комментарии в 1С - это определенным образом сформированная строка, показывающая где на сайте найти этот заказ (в 1С своя нумерация и без этого на сайте ничего не найдешь).
Юлия, у меня в настройках на вкладке Заказы ничего похожего нет.
Там только:
Сайт, заказы которого выгружать в "1С:Предприятие"
Префикс номера заказа при выгрузке
Выгружать только оплаченные заказы
Выгружать только заказы c разрешенной доставкой
Выгружать заказы начиная со статуса
Статус, в который переводить заказ при получении отгрузки от "1С:Предприятие"
Заменять валюту при выгрузке в "1С:Предприятие" на
Группы, пользователям которых разрешена выгрузка
Использовать сжатие zip, если доступно
Зато на закладке "Профили обмена" есть возможность добавить в выгрузку свои параметры. Судя по Вашему ответу, они должны попасть в 1С на закладку Дополнительные сведения.
Смотрим Дополнительные параметры (передаются в реквизиты заказа в 1С). Там в поле Название параметра, видимо, я могу указать название параметра, которое будет использовать 1С для его отображения на этой закладке. Проблема в том, что я не могу выбрать источник для этого поля.
В типе я могу указать:
Другое значение
Параметр пользователя
Параметр заказа
Свойство заказа
Что такое другое значение я не совсем понимаю. Видимо, это вариант для ввода некоей константы, которая будет зависеть в итоге только от типа плательщика (и только потому, что профиль обмена привязан к типу).
Параметры пользователя здесь явно не подходят.
Параметры заказа - это то, что нужно, но там не видно комментария к заказу. Есть только:
Код заказа (ID)
Дата заказа
Дата заказа (без времени)
Сумма счета
Валюта
Стоимость заказа
Сайт
Стоимость доставки
Величина скидки
Код покупателя
Код платежной системы
Название платежной системы
Код службы доставки
Название службы доставки
Величина налогов
Идентификатор отправления (Доставка)
Номер платежного документа
Дата платежного документа
Оплачено с внутреннего счета
Номер документа отгрузки
Дата документа отгрузки
В итоге создавать искусственное свойство заказа? Искусственное потому, что есть такое стандартное поле в заказе, да выбрать его нельзя.
<Комментарий>№ 100 www.example.com [s1] Самый лучший магазин</Комментарий>
В 1С под это выделена одна строка (я не знаю реально ли это изменить). Решил, что кастомизацией выгрузки этого тега заниматься смысла нет. Тогда должны помочь реквизиты документа (и соответствующая доработка 1С).
Хорошо, лезу в настройки профиля обмена. Как всегда, документация на высоте.
В пользовательской документации написано в стиле "Название параметра - это название параметра, чтобы ввести название параметра введите название". Можете сами посмотреть, это отписка. Ничего этот тест не проясняет.
В учебном курсе тоже практически ничего (а по теме - вообще ничего). Уточнения ничего не уточняют.
В форуме, как ни странно об этом не спрашивали (или глаза не протер - не нашел).
Я готов настроить профиль, но что мне вбивать в название и значение параметра (это о разделе Дополнительные параметры (передаются в реквизиты заказа в 1С))?
Кстати, в параметрах заказа я не усмотрел ничего, чтобы соответствовало полю USER_DESCRIPTION.
Митрошин Владислав пишет: Дело в том, что при загрузке аяксом у вас нет ни $_SERVER, ни всяких там SITE_TEMPLATE_PATH
Быть такого не может, чтобы серверных переменных не было (ну, конечно, если правильно настроен сервер, болячки могут быть в nginx).
SITE_TEMPLATE_PATH определяется ядром Битрикс вполне успешно. Ядро никто не отменял и сброс буфера вывода на определение сайта не влияет.
Да, скрипты приходится подключать заново, при вызове AJAX. Дело, скорее всего в хитро закрученной BX.ajax.submitComponentForm (вызывается из известной в шаблоне этой компоненты функции submitForm(). Там создается iframe и в нем все уже подключенные библиотеки не видны.
Вот что получилось у меня (в моем случае не мультипликация, а стилизация с помощью jQuery Form Styler):
Код
if($_REQUEST["AJAX_CALL"] == "Y" || $_REQUEST["is_ajax_post"] == "Y")
{
// это работать не будет, шаблона не выдается!
//CJSCore::Init(array('jquery'));
$jqInfo = CJSCore::getExtInfo('jquery');
?>
<script type="text/javascript" src="<?=$jqInfo['js']?>"></script>
<script type="text/javascript" src="<?=SITE_TEMPLATE_PATH?>/js/jquery.formstyler.min.js"></script>
<script type="text/javascript" language="javascript">
$("input[type='checkbox'], input[type='radio'], select").styler();
<?
?>
</script>
<?
}
?>
Добавлено:
Приведенное выше решение будет работать не всегда. Надежнее все это сделать в обработчике события onAjaxSuccess
Денис Диденко пишет: Добрый день коллеги, хотелось бы снизить нагрузку при обработке OnSuccessCatalogImport1C, и возник вопрос, а как в этом событии узнать ID инфоблока куда проходила выгрузка?
Я выкрутился переносом скрипта обмена в прубличную часть (компоненты не кастомизировал). В этом случае становится известен ИД сайта. Если к сайту привязан ОДИН каталог, проблема решаема в один вызов API.
Нужно проверить настройки каталога. Должны быть настроено использование отдельного инфоблока для предложений. В инфоблоке должны быть правильно настроены принципиальные для этого свойства (те, что хранят связи между товарами и предложениями). Встречался с попорченными инфоблоками.
Не могу найти, а ориентироваться на существующую реализацию обмена в конкретном экземпляре 1С не могу (никогда не слышал о чистой конфигурации, часто люди доводят имеющуюся до "последней").
Знаю что давно можно указать какая группа номенклатуры пойдет в какой каталог на сайте.
Меня же интересует возможность настроить соответствие групп на сайте и групп в 1С. Да так, чтобы одна группа на сайте могла соответствовать двум и более группам в 1С. Толи у меня дежавю, толи и правда такая возможность есть, а я не могу найти о ней ничего.
В коде вижу, что Битрикс работает с дополнительными картинками, когда тегов в <Картинка> в выгрузке много. В этом случае он заполняет картинки анонса и деталей первой картинкой (это всегда) и ищет свойство с XML_ID равным CML2_PICTURES (в админке это внешний код, отображение внешних кодов включается в настройках модуля Инфоблоки).
В Вашем случае не нужно было в выгрузке оформлять картинки дополнительным свойством.
Правда, и в моем случае картинки все равно не загрузились, веду раскопки. Версия инфоблоков 14.0.4 (02.12.2013)
Добавлено: У меня все просто. Было два свойства с этим XML_ID. В форме редактирования элемента (она перенастроена) было одно, а картинки принимались в другое.
Выгрузка заказов из 1С в промежуточных статусах, Возможно ли изменение заказа на сайте при изменении статуса заказа в 1С и при изменении его содержания?
Екатерина Раздорова пишет: Тема еще актуальна. Возможно ли стандартным механизмом интеграции переводить заказ на сайте в промежуточный статус, пришедший из 1С? Или для этой цели необходимо кастомизировать компонент sale.export.1c ?
Нет, я это делал кастомизацией на 12-й. Стандартная компонента знает только две ситуации - заказ отменен, заказ оплачен. Только в последнем случае можно вмешаться в статус через параметры компоненты.
Выгрузка заказов из 1С в промежуточных статусах, Возможно ли изменение заказа на сайте при изменении статуса заказа в 1С и при изменении его содержания?
В настройках интеграции со стороны Битрикс вижу только что делать, когда сайт получает информацию по отгрузке товаров по заказу.
А что происходит когда статус заказа меняется в 1С?
Например, когда заказ отменен, оплачен, произведена отгрузка (с этим вроде как понятно, но на всякий случай). А что если по результатам разговора с покупателем менеджер изменил содержание заказа в 1С? Он изменится га сайте после обмена заказами?
Не менее важен вопрос об изменении заказа на сайте уже после первичной выгрузки. Или при наличии 1С такие вещи не нужно делать, а оставлять за сайтом только первичное создание заказа?
А причем тут asved.ru:2048? Это всего-лишь часть имени пространства имен. Туда можно что угодно написать. А сервис, скорее всего, отзывается на http://192.168.10.200/tradems/ws/aog.1cws (обычно wsdl файл и сам сервис на одном адресе делают).
Очевидно, что при таком раскладе компонента должна быть подключена до визуального пролога. Так такие вещи не делаются.
Посмотрите шаблон любой комплексной компоненты. Там нормально подключается фильтр, к примеру, из section.php. Можно заглянуть с этой целью в шаблон каталога демо-магазина.
VKuser4005500 пишет: Но там нет нигде параметра, который бы указывал на то, что раздел активен
Его быть не может, т.к. API не может знать об этом. Это Вы решаете какой раздел считать активным.
Понятно откуда ноги растут. Вы используете комплексную компоненту, переходите на страницу раздела и хотите получить программно его ИД. Так он уже получен компонентой и лежит в $arResult. Нужно только отладкой показать содержимое этого массива и найти правильный индекс. Какой он - зависит от используемой компоненты (новости, каталог ...).
virus555 пишет: сначала загружается файл import.xml и стирает
Это очень странно. Я наблюдал за работатой 12-й версии (не 10-й). Заводил свои обработчики событий OnBeforeIBlockElementUpdate и OnBeforeProductAdd (речь ведь об обновлении ..). Сначала идут все обновления элементов инфоблока, потом обновления продукта. Первое никак не трогает второе (т.е. цены не могут никуда уходить). У вас что-то доделано на сайте.
С учетом ситуации, может быть выгоднее обновиться, чем дорабатывать (искать причину). В данном случае, либо залезали в ядро, либо есть свой обработчик указанных событий, который меняет активность элемента или сбрасывает цену.
В поддержке мне ответили, что обработка на всех версиях одна (по крайней мере та, что выгружает и загружает, про настройки не знаю) - ОбменССайтом.
Коллеги, прошу помочь. Мне нужна полная ясность, другими способами я не проясню вопрос. Нужен фрагмент кода обработки 1С по наличию/отсутствию которого можно понять, что выгрузка свойств в виде справочника возможна/не возможна.
Добавлено:
Нужно было поискать в модуле обработки новые элементы CML. Например, ТипЗначенийТип. Такой строки в коде нет.
Контрольный выстрел в мозг - поиск заведомо существующей строки ПакетПредложений. Она нашлась, вот с таким кодом: