Номенклатура равно Инструменты
05.07.2010 12:01:10
Спасибо Иван, за вашу теорию!
Можно узнать почему вы так решили? Большое количество товара? Или тоже имели некий опыт? Полистав логи я нашел, что действительно "Maximum execution time of 60 seconds exceeded", поставив значение , как на локальном сервере и запустив обмен заново. Он в первый раз выдал ошибку полученную от MySQL. При второй попытке с увеличенным "max_execution" выдал прежнюю ошибку Не удалось получить текущее состояние процесса обмена. Данные обмена отправлены, но не загружены. Еще я заметил, что он не копирует изображения на VPS сервер в "upload", а архив с xml файлами формирует. Хотя на локальном сервере при корректном обмене в этом каталоге ("upload"), создается папка "import_files" и внутри нее множество других каталогов. Куда "копать" дальше, что то пока не знаю. |
|
|
30.06.2010 17:42:58
Жаль что никто не может подсказать. Но любые теории могли бы быть к стати, буду только рад.
Может ли это быть вызвано тем, что сессия, в которой хранится информация об обмене данных, кончается либо обрывается? Делал тестовую выгрузку товаров без изображений, и она успешно выполнилась. А вот когда выгрузка с изображениями, то процесс копирования картинок товаров занимает очень много времени, и возможно в этот момент и умирает сессия. Что скажите? Есть еще теории? Или факты? |
|
|
30.06.2010 10:23:26
Доброго времени суток!
Разработали сайт. Начали делать интеграцию с 1С. Локально все работает, т.е. обмен данными с сайтом который располагается у нас на сервере выполняется без каких либо проблем. Начали делать выгрузку на сайт который находиться на VPS сервере. Возникла такая проблема. При обмене данными 1С пишет следующие сообщения Выгружено товаров: 2 436 Выгружено картинок: 831 Выгружено предложений: 2 405 Не удалось получить текущее состояние процесса обмена. Данные обмена отправлены, но не загружены. Обмен не выполнен Выгрузка товаров завершена с ошибками!!! Не удалось получить данные с сервера.Проверьте правильность адреса сервера, порт, имя пользователя и пароль, а также настройки подключения к Интернет. Успешно получено и обработано документов: 1 Список обработанных документов: Заказ покупателя 00000000001 от 21.06.2010 15:50:47 В том числе: обновлено: 1 Выгружено заказов: 8 Обмен заказами успешно завершен Настройки интеграции сайта на локальном сервере и VPS, полностью идентичны. Подскажите, пожалуйста, что значит Не удалось получить текущее состояние процесса обмена. Данные обмена отправлены, но не загружены. И как можно исправить эту проблему? Искал на форуме темы с подобными сообщениями, нашел 3. Из которых на 2 вопроса никто не ответил. 1 написал что ему помогло обновление до новой версии "1С-Битрикс: Управление сайтом 8.0.6", у нас сайт на версии 8.5.3 |
|
|
21.05.2010 14:45:26
Итак, в результате выборка, где требуется применить блок "LOGIC", работает не корректно.
Вот код фильтра, где он возвращает только те элементы, где DATE_BEGIN <= ТЕКУЩЕЙ ДАТЫ && DATE_END = false, а условие OR игнорирует. $dd = date("d.m.Y H.i.s",mktime(23,59,59,date("m"),date("d"),date("Y"))); $arFilter = Array( "ACTIVE" => "Y", "IBLOCK_ID" => "7", "<=PROPERTY_DATE_BEGIN" => $DB->FormatDate($dd,"DD.MM.YYYY HH:MI:SS", "YYYY-MM-DD HH:MI:SS"), array( "LOGIC" => "OR", array("PROPERTY_DATE_END" => false), array(">=PROPERTY_DATE_END" => $DB->FormatDate($dd,"DD.MM.YYYY HH:MI:SS", "YYYY-MM-DD HH:MI:SS")) ) ); Жаль! Отказался от этого фильтра и теперь фильтрую все элементы с необходимыми условиями в PHP коде:) |
|
|
19.05.2010 15:07:11
Большое Спасибо Дмитрий!
Воспользовался вашим советом и вот что получилось: $dd = date("d.m.Y H.i.s",mktime(23,59,59,date("m"),date("d"),date("Y"))); $arFilter = Array( "ACTIVE" => "Y", "IBLOCK_ID" => "7", "<=PROPERTY_DATE_BEGIN" => $DB->FormatDate($dd,"DD.MM.YYYY HH:MI:SS", "YYYY-MM-DD HH:MI:SS"), array( "LOGIC" => "OR", array("PROPERTY_DATE_END" => false), array(">=PROPERTY_DATE_END" => $DB->FormatDate($dd,"DD.MM.YYYY HH:MI:SS", "YYYY-MM-DD HH:MI:SS")) ) ); Да в действительности, формат важен, а также если необходимо чтобы текущий день был включен необходимо указать часы, минуты и секунды с максимальным значением, mktime(23,59,59,date("m"),date("d"),date("Y")). Запрос стал работать почти корректно, не выполняется только условие OR. Никак не могу понять в чем проблема, он проверяет только одно условие "PROPERTY_DATE_END" => false и если оно не выполняется второе не проверяет ">=PROPERTY_DATE_END" => ТЕКУЩАЯ ДАТА. Подскажите, пожалуйста, в чем проблема? |
|
|
19.05.2010 12:57:31
Доброго времени суток!
Доступно: Инфоблок Z у которого есть 2 свойства: 1 - DATE_BEGIN (Дата/Время) 2 - DATE_END (Дата/Время) Необходимо: Выбрать все элементы этого инфоблока, где DATE_BEGIN <= ТЕКУЩЕЙ ДАТЫ и ( DATE_END является пустым ИЛИ DATE_END >= ТЕКУЩЕЙ ДАТЫ) КОД: $arFilter = Array( "ACTIVE" => "Y", "IBLOCK_ID" => "7", "<=PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT"))), array( "LOGIC" => "OR", array(">=PROPERTY_DATE_END" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")))), array("PROPERTY_DATE_END" => "") ) ); $dbAllElements = CIBlockElement::GetList(Array("SORT"=>"ASC"),$arFilter,false,false,array('ID','NAME')); Результат: Ничего не находит по этому условию. Дополнительная информация: После того, как эта, немного сложная, конструкция не дала ожидаемых результатов, попробовал все упростить и сделать просто выборку элементов DATE_BEGIN у которых меньше текущий, и результат тоже был не верный. $arFilter = Array( "ACTIVE" => "Y", "IBLOCK_ID" => "7", "<PROPERTY_DATE_BEGIN" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT"))) ); Попробовал такую же выборку со стандартным полем элемента DATE_ACTIVE_FROM, тогда запрос отработал корректно. $arFilter = Array( "ACTIVE" => "Y", "IBLOCK_ID" => "7", "<DATE_ACTIVE_FROM" => date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT"))) ); Вывод: Пока пришел к тому, что выборка по дополнительному свойству которое является ДАТА/ВРЕМЯ работает не корректно. Призыв: Подскажите, как правильно решить мою задачу, возможно, я что то не верно делаю или не верно понимаю? Решали ли кто-нибудь подобные задачи, поделитесь, как вы поступали? |
|
|
11.05.2010 12:57:36
Приветствую Вас, коллеги разработчики!
Вопрос по следующей ситуации: Разрабатываю закрытый сайт (социальная сеть), пользоваться им может только зарегистрированный и авторизованный пользователь. Права ограничил в файле .access.php Возникла такая загвоздка. На форме регистрации есть список стран и город. При смене страны отправляется стандартный ajax запрос по следующему адресу (/bitrix/components/bitrix/sale.ajax.locations/templates/.default/ajax.php). На его исполнение у посетителя прав доступа нет нет. Как ПРАВИЛЬНО предоставить доступ для этого ajax запроса? Просто добавить его в файл .access.php или для этого есть какие-либо другие варианты? |
|
|
27.04.2010 11:43:54
Спасибо Дмитрий за ваш ответ!
Действие которое вы описали вызовет деактивацию инфоблоков, которые относятся к этому типу. Мне необходимо чтобы деактивировались все его инфоблоки и чтобы сам этот тип стал как несуществующий(неактивный, удаленный) и чтобы он не участвовал в навигации. |
|
|
27.04.2010 10:53:39
Приветствую!
Вопрос такой. Можно ли ОТКЛЮЧИТЬ тип информационного блока, например, каталог или фотогалерею. Чтобы его потом можно было включить:) Задаю этот вопрос потому, что не нашел этой возможности в системе управления. Там можно его только удалить. В свойствах отсутствует такое поле, как "Активный", поэтому думаю, что нельзя, но хочу уточнить. Большое Спасибо! |
|
|
27.04.2010 09:28:40
Здравствуйте!
Такая ситуация. Есть сайт он состоит из нескольких разделов: магазин, социальная сеть и еще пара. Необходимо чтобы не авторизованный пользователь не мог никуда зайти, и его всегда направляло (редирект) на страницу /login.php На этой странице должны выводится стандартные компоненты system.auth.authorize, system.auth.form, system.auth.forgotpasswd, system.auth.registration Как правильно это сделать? Как пока сделано, но не очень устраивает. В корне проекта, в файле .access.php, стоят настройки с ограничением на все файлы для не авторизованных пользователей. Сейчас пользователь никуда зайти не может, но всегда видит стандартный шаблон страницы с меню и некоторыми другими компонентами, в зависимости от раздела в который он хочет попасть. Что ни есть верно. Можно ли в .access.php прописать редирект или еще где то, что бы всегда вело на страницу необходимую страницу например /login.php если пользователь не авторизован? Правильная ли это схема работы? Как правильно это реализовать с точки зрения 1С-Битрикс? Всем большое спасибо! |
|
|