среда, 18 марта 2015 г.

Как вешать профиль импорта/экспорта Битрикс на крон

Оболочкой для выполнения по расписанию битриксовских импортов/экспортов на cron является файл

путь_от_корня_сервера_до_корня_сайта/bitrix/php_interface/include/catalog_export/cron_frame.php 

Этот файл нужно отредактировать специальным образом, а затем добавить  команду в расписание crona

1) Узнайте у хостера путь к интерпретатору php
К примеру, на серверах без забот Русоникс это   /usr/bin/php Тогда в первой строке файла cron_frame.php дожно быть записано: #!/usr/bin/php ‐q

Путь к интерпретатору php на некоторых хостингах можно узнать вот как:



2) Узнайте значение константы $_SERVER["DOCUMENT_ROOT"]  для сайта
К примеру, на Русониксе это: var/www/vhosts/название_сайта/httpdocs

Пропишите это значение в файле cron_frame.php

 5.3 Для каждого профиля импорта/экспорта добавьте в таблицу cron (в расписание) в панели  управления хостингом следующую команду (пример - для Русоникса):

/usr/bin/php ‐f /var/www/vhosts/имя_сайта/httpdocs/bitrix/php_interface/include/catalog_export/cron_f rame.php 7 >/var/www/vhosts/имя_сайта/httpdocs/bitrix/php_interface/include/catalog_export/logs/ 7.txt 

Где   /usr/bin/php – путь к интерпретатору php
7 – идентификатор профиля импорта/экспорта

А вот в панели управления хостинга timeweb.ru так удобно повесить импорты/экспорты на крон не получится, так как там не поддерживается передача скрипту аргументов. На таймвебе придется создать по отдельному файлу cron_frame.php для каждого профиля, который нужно повесить на крон, и внутри этих файлов зашить нужный ID профиля импорта или работать с кроном через ssh.

четверг, 5 марта 2015 г.

Программное создание реализации на основе заказа в 1С УТ

Не забывать, что данная операция не может быть выполнена на клиенте, а может быть выполнена только на сервере, то есть перед процедурой пишем директиву &НаСервере

ПараметрыОснования = Новый Структура();
ПараметрыОснования.Вставить("ДокументОснование", СсылкаНаДокумент);
ПараметрыОснования.Вставить("СкладОтгрузки",     СсылкаНаДокумент.Склад);
ПараметрыОснования.Вставить("ДатаОтгрузки",      СсылкаНаДокумент.ДатаОтгрузки);

НовРеализация = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовРеализация.Заполнить(ПараметрыОснования);

Попытка
НовРеализация.Записать(РежимЗаписиДокумента.Проведение);
Исключение
НовРеализация.Записать(РежимЗаписиДокумента.Запись);
КонецПопытки;