В данной заметке будет описан алгоритм действий подключения нового объекта (например документа) в типовой конфигурации 1С к подсистеме «Дополнительные отчеты и обработки».
Пример будет рассмотрен на конфигурации «1С: Управление торговлей 11.2», но все действия, рассмотренные в статье, можно применять и к другим конфигурациям (ЗУП 3, БУ 3, ERP 2 и т.д.).
1. Чтобы добавить новый документ необходимо включить возможность редактирования нашей конфигурации.
2. Добавим новый документ с произвольной структурой
3. В формы документа (списка и объекта) необходимо добавить следующий код (не забываем при этом для форм определить процедуру «ПриСозданииНаСервере»)
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ДополнительныеОтчетыИОбработки.ПриСозданииНаСервере(ЭтотОбъект);
КонецПроцедуры
#Область ОбработчикиКомандФормы
// СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки
&НаКлиенте
Процедура Подключаемый_ВыполнитьНазначаемуюКоманду(Команда)
Если Не ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьНазначаемуюКомандуНаКлиенте(ЭтотОбъект, Команда.Имя) Тогда
ДополнительныеОтчетыИОбработкиВыполнитьНазначаемуюКомандуНаСервере(Команда.Имя);
КонецЕсли;
КонецПроцедуры
// Конец СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки
&НаСервере
Процедура ДополнительныеОтчетыИОбработкиВыполнитьНазначаемуюКомандуНаСервере(ИмяЭлемента)
ДополнительныеОтчетыИОбработки.ВыполнитьНазначаемуюКомандуНаСервере(ЭтотОбъект, ИмяЭлемента);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки
#КонецОбласти
4. Для определяемого типа «ОбъектСДополнительнымиКомандами» необходимо добавить наш новый документ, но для этого надо сначала дать возможность его редактировать.
На этом работы в конфигураторе завершены.
5. Запускаем режим «1С:Предприятие» и с помощью обработки из набора внешних обработок библиотеки стандартных подсистем «ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf» обновляем наши новые данные.
В данной заметке я хочу рассказать как создать свой тестовый 64-х разрядный сервер 1С на Ubuntu server 14.04 LTS. Фишка данного сервера в том, что до 12 подключений к серверу не требуются лицензия на сервер, необходима лицензия только для клиентского компьютера. На данный сервер также будет установлен сервер СУБД Postgresql 9.4.5 адаптированный к работе с 1С сторонней командой, будет понижена версия сервера Apache с 2.4 до 2.2, чтобы можно было публиковать http-сервисы или web-сервисы.
Скачать и установить WinSCPS. Данная программа понадобиться для работу с файлами (Копирование, создание папок и т.д.) нашего виртуального сервера.
Скачать и установить PuTTY. Прелесть данной программы в том, что можно копировать команды в терминал из локального компьютера.
Для сервера 1С будет использоваться версия 8.3.7.1759
Кратко об установке Ubuntu.
В самом начале выбираем язык установки. В моем случае — это русский
Затем выбираем что хотим установить сервер Ubuntu
Выбираем язык системы, я выбрал русский
Установим способ переключения раскладки клавиатуры
Зададим имя нашего сервера. В моем случае — это ‘Ubuntu1C2’
Укажем имя нового пользователя (это не логин сервера)
Затем надо указать логин, под которым будем заходить на сервер. Я указал admin1C
После надо задать пароль для входа на сервер
Далее указываем следующие настройки
В настройках обновления системы я указал «Без автоматического обновления»
При выборе программного обеспечения выбрал только «OpenSSH Server»
После завершения установки перезагружаем сервер. Для входа вводим логин (admin1C) и пароль, которые задали при установке
Чтобы виртуальный сервер получил адрес общей сети необходимо в VirtualBox установить настройку «Сетевой мост».
Чтобы подключиться к нашему серверу с помощью программы «PuTTY», необходимо узнать IP адрес сервера с помощью команды ifconfig.
Подключаемся к серверу с помощью программы «PuTTY«.
Далее необходимо обновить сервер, установить текстовый редактор и менеджер файлов. Для этого надо выполнить последовательно следующие команды: sudo apt-get update — обновление списка программ, доступных из репозитария sudo apt-get upgrade — обновление данных программ sudo apt-get install nano — установка текстового редактора sudo apt-get install mc — установка файлового менеджера
Теперь сервер готов и дальше можно устанавливать сервер 1С и сервер СУБД Postgresql.
Далее необходимо скачать «Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем», скачать можно с сайта обновлений, либо поискать на просторах интернета.
Чтобы перенести установочные файлы на наш сервер, воcпользуемся программой WinSCP:
Подключимся к серверу. Необходимо указать IP адрес, который был получен командой ifconfig
В рабочей папке пользователя создадим папку Distr1C и перенесем туда установочные файлы
Закрываем WinSCP
Переходим или подключаемся к терминалу сервера с помощью программы «PuTTY».
Далее необходимо выполнить следующие команды: sudo dpkg -i /home/admin1c/Distr1C/1c*common_8*.deb sudo dpkg -i /home/admin1c/Distr1C/1c*ws*.deb sudo dpkg -i /home/admin1c/Distr1C/1c*common-nls*.deb sudo dpkg -i /home/admin1c/Distr1C/1c*server*.deb sudo apt-get install -f
Чтобы была возможность делать отладку на сервере, необходимо включить параметр SRV1CV8_DEBUG=1 в конфигурационным файле «srv1cv83». Данный файл находится «/etc/init.d»
Данный файл можно отредактировать из файлового менеджера «mc» по кнопке «F4», но перед этим менеджер должен быть запущен командой sudo mc
После установки, сервер надо перегрузить командой sudo reboot
Для корректной работы сервера 1с необходимо установить дополнительные пакеты: sudo apt-get install imagemagick sudo apt-get install unixodbc sudo apt-get install libgsf-bin sudo apt-get install t1utils sudo apt-get install msttcorefonts — Установка шрифта для корректного отображения данных. Чтобы перейти к кнопке ОК надо нажать TAB, затем перейти к Yes и нажать Enter.
Еще раз перезагрузим сервер командой sudo reboot.
Перейдем к установке сервер СУБД Postgersql:
С помощью команды locale необходимо проверить локализацию системы, для нас необходимо чтобы было «ru_RU.UTF-8»
Если данной локали нет, то ее надо установить командой apt-get install libicu52. После установки проверить текущую локаль командой locale. Если в ответе нет «ru_RU.UTF-8», то данную локаль необходимо установить выполнив команды: locale-gen en_US ru_RU locale-gen ru_RU.UTF-8 export LANG=ru_RU.UTF-8 dpkg-reconfigure locales
Проверим текущую локаль командой locale, если локаль сбросилась, то добавим в файл «/root/.bashrc» строку export LANG=ru_RU.UTF-8 и выполним команду export LANG=ru_RU.UTF-8.
Отредактировать файл .bashrc можно командой sudo nano /root/.bashrc.
Установим сервер СУБД Postgresql командой sudo sh -c 'echo "deb [arch=amd64] http://1c.postgrespro.ru/deb/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/postgrespro-1c.list'. Данная команда была взята с сайта
После окончании установки проверь статус сервера СУБД командой service postgresql status, если ответ будет «online», то это значит все хорошо.
Теперь зададим пароль для Postgresql
Выполним команду sudo -u postgres psql
Далее наберем \password
Введем два раза пароль
Командой \qвыйдем из установки пароля
Для работы с Postgresql в windows есть утилита PgAdmin3, для данной утилиты также необходимо скачать и установить библиотеку vcredist_x86.exe.
Чтобы обращаться к нашему серверу по имени «ubuntu1c2», а не по IP адресу, необходимо отредактировать файлы «hosts» на сервере и клиенте
В windows данный файл находится в папке «c:\Windows\System32\drivers\etc\».
На ubuntu данный файл находится в папке «/etc».
Теперь сервер готов к работе. Попробуем создать новую базу.
Подключимся к новой базе и запустим клиента.
Для того чтобы наш сервер еще мог работать как и вебсервер, необходимо понизить версию сервера Apache с 2.4 (по умолчанию в Ubuntu 14.04) до 2.2, т.к. 1С работает только с данной версией.
И так по порядку:
Открываем файл «ubuntu1204.list» командой sudo nano /etc/apt/sources.list.d/ubuntu1204.list
Добавляем в файл строку deb http://ru.archive.ubuntu.com/ubuntu/ precise main. Записать и закрыть файл
Открываем файл «apache22» командой sudo nano /etc/apt/preferences.d/apache22
Добавляем в файл строки:
Package: apache*
Pin: release a=precise
Pin-Priority: 500 Записать и закрыть файл
Выполняем команду sudo apt-get update
Выполняем команду sudo apt-get dist-upgrade
Выполняем команду sudo apt-get install apache2 — установка Apache 2.2
Результат работы проверим командой apache2 -v.
Опубликуем нашу созданную базу «Exmaple1C». Для этого создадим на сервере например каталог «/wwwroot/web1c», в данном каталоге будет храниться файл «default.vrd».
Из каталога «/opt/1c/v8.3/x86_64» необходимо выполнить команду ./webinst -apache22 -wsdir Example1C-dir /wwwroot/web1c-connstr "Srvr=ubuntu1c2;Ref=Example1C;" -confPath /etc/apache2/httpd.conf
Расшифрую строку публикации:
./webinst — команда на исполнение
-apache22 — публикация на сервер Apache версии 2.2
-wsdir Example1C — имя, по которому будет доступна база из вне, в данном случае адрес будет выглядеть http://ubuntu1c2/Example1C
-dir /wwwroot/web1c — путь к папке, где будет располагаться файл default.vrd
-connstr "Srvr=ubuntu1c2;Ref=Example1C;" — строка подключения к информационной базе
-confPath /etc/apache2/httpd.conf — путь к конфигурационному файлу Apache
После публикации Apache необходимо перезапустить командой sudo /etc/init.d/apache2 restart
P.S.
Для ускорения рекомендую использовать программу «PuTTY», т.к. в данной программе можно копировать команды в терминал через правую клавиши мыши.
Данная небольшая заметка должна помочь разработчикам на платформе 1С 8.3 по получению токена доступа для работы с API Onliner.by.
На странице есть пример для PHP и общие данные по получения токена.
Рассмотрим 2 примера:
Работа стандартными методами платформы 1С 8.3
Работа с помощью «Microsoft.XMLHTTP»
Прежде чем приступить к примерам необходимо в админке магазина на b2b.onliner.by получить параметры доступа clientId и clientSecret на закладке «Настройка», предварительно там же добавить приложение (например «1С»)
Пример 1.
clientId = ""; //здесь надо указать ИД, полученный в админке магазина http://b2b.onliner.by/login
clientSecret = ""; //здесь надо указать ключ, полученный в админке магазина http://b2b.onliner.by/login
HTTPСоединение = Новый HTTPСоединение(
"b2bapi.onliner.by",,clientId,clientSecret,,,
Новый ЗащищенноеСоединениеOpenSSL);
ГраницаСекций = СтрЗаменить(Новый УникальныйИдентификатор(), "-", "");
ПакетныйЗапросHTTP = Новый HTTPЗапрос;
ПакетныйЗапросHTTP.АдресРесурса = "/oauth/token";
ПакетныйЗапросHTTP.Заголовки["Accept"] = "application/json";
ПакетныйЗапросHTTP.Заголовки["Content-Type"] = "multipart/form-data; boundary=" + ГраницаСекций;
ТелоИзСтроки = "--" + ГраницаСекций + "
|Content-Disposition: form-data; name=""grant_type""
|
|client_credentials
|--" + ГраницаСекций + "--";
ПакетныйЗапросHTTP.УстановитьТелоИзСтроки(ТелоИзСтроки,,ИспользованиеByteOrderMark.НеИспользовать);
ПакетныйОтветHTTP = HTTPСоединение.ОтправитьДляОбработки(ПакетныйЗапросHTTP);
РезультатЗапроса = ПакетныйОтветHTTP.ПолучитьТелоКакСтроку();
Чтение = новый ЧтениеJSON;
Чтение.УстановитьСтроку(РезультатЗапроса);
ДанныеРезультата = ПрочитатьJSON(Чтение, Ложь);
Если ПакетныйОтветHTTP.КодСостояния < 300 Тогда
//Будет выведен токен доступа для работы с API
Сообщить(ДанныеРезультата.access_token);
ИначеЕсли ДанныеРезультата.Свойство("error") Тогда
//Сообщение об ошибке
Сообщить(ДанныеРезультата.error_description);
КонецЕсли;
Пример 2.
ХТТП = Неопределено;
Попытка
ХТТП = Новый COMObject("Microsoft.XMLHTTP");
Исключение
Попытка
ХТТП = Новый COMObject("Msxml2.XMLHTTP");
Исключение
Попытка
ХТТП = Новый COMObject("MSXML2.ServerXMLHTTP");
Исключение
Сообщить("Не могу создать COM объект");
КонецПопытки;
КонецПопытки;
КонецПопытки;
Если ХТТП = Неопределено Тогда
Возврат;
КонецЕсли;
ГраницаСекций = СтрЗаменить(Новый УникальныйИдентификатор(), "-", "");
clientId = ""; //здесь надо указать ИД, полученный в админке магазина http://b2b.onliner.by/login
clientSecret = ""; //здесь надо указать ключ, полученный в админке магазина http://b2b.onliner.by/login
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("txt");
Запись = Новый ЗаписьТекста(ИмяВременногоФайла, КодировкаТекста.UTF8);
Запись.Записать(clientId + ":" + clientSecret);
Запись.Закрыть();
Authorization = Base64Строка(Новый ДвоичныеДанные(ИмяВременногоФайла));
Authorization = Сред(Authorization,5);
Authorization = СтрЗаменить(Authorization, Символы.ВК, "");
Authorization = СтрЗаменить(Authorization, Символы.ПС, "");
НачатьУдалениеФайлов(,ИмяВременногоФайла);
ХТТП.Open("POST", "https://b2bapi.onliner.by/oauth/token", Ложь);
ХТТП.SetRequestHeader("Host", "b2bapi.onliner.by");
ХТТП.SetRequestHeader("Authorization", "Basic " + Authorization);
ХТТП.SetRequestHeader("Accept", "application/json");
ХТТП.SetRequestHeader("Content-Type", "multipart/form-data; boundary=" + ГраницаСекций);
СтрокаЗапроса = "--" + ГраницаСекций + "
|Content-Disposition: form-data; name=""grant_type""
|
|client_credentials
|--" + ГраницаСекций + "--";
ХТТП.Send(СтрокаЗапроса);
Сообщить(ХТТП.Status);
Чтение = новый ЧтениеJSON;
Чтение.УстановитьСтроку(ХТТП.ResponseText);
ДанныеРезультата = ПрочитатьJSON(Чтение, Ложь);
Если ХТТП.Status < 300 Тогда
//Будет выведен токен доступа для работы с API
Сообщить(ДанныеРезультата.access_token);
ИначеЕсли ДанныеРезультата.Свойство("error") Тогда
//Сообщение об ошибке
Сообщить(ДанныеРезультата.error_description);
КонецЕсли;
Функция "ПрочитатьJSON" и тип данных "ЧтениеJSON" доступны только начиная с платформы 1С 8.3.6, для более ранних версий можно воспользоваться обработкой по работе с форматом JSON либо самим написать парсер.
Я не буду останавливаться на вопросе что такое веб-сервисы 1С, т.к в сети очень много статей на эту тему. Просто постараюсь вкратце показать, каким способом возможна работа с веб-сервисами 1С на php.
И так начнем.
В первую очередь для PHP надо подключить модуль для работы по протоколу SOAP. Для windows надо в файле php.ini либо раскомментировать либо дописать строки [PHP_SOAP]
extension=php_soap.dll
Под windows замечена следующая особенность — файл php.ini надо обязательно положить в папку C:\Windows. Также необходимо перезапустить веб-сервер, если PHP установлен как модуль.
Рассмотрим 2 случая:
Когда в параметр метода веб-сервиса необходимо передать строку
Когда в параметр метода веб-сервиса необходимо передать объект пакета XDTO, который описан в 1С
Примем одно условие, что ответ веб-сервис 1С присылает в формате JSON. К сожалению поддержка формата JSON на уровне методов платформы появилось только в версии «1С Предприятие 8.3.6». Чтобы использовать формат JSON в более ранних версиях платформы есть хорошая обработка, которой можно воспользоваться, а можно и написать что-то свое, т.к. данный формат передачи данных не сложный.
Ответ веб-сервиса 1С будет в формате JSON с параметрами «Status» и «Message» (в данном примере я не использовал обработку, а описал ответ сам):
// Необходимо отключить кэширование для SOAP. Если этого не сделать,
// функции веб-сервисов будут работать некорректно.
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0);
$client = new SoapClient("//localhost:8080/ExampleBase/ws/ExampleWebService.1cws?wsdl",
array(
'login' => "1C", //логин пользователя к базе 1С
'password' => "54321", //пароль пользователя к базе 1С
'soap_version' => SOAP_1_2, //версия SOAP
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => true,
'features' => SOAP_USE_XSI_ARRAY_TYPE
)
);
//Заполним массив передаваемых параметров
$ParametrStroka = 'TestStroka';
$params["ParametrStroka"] = $ParametrStroka;
//Выполняем операцию
$result = $client->ExampleMethod($params); //ExampleMethod - это метод веб-сервиса 1С, который описан в конфигурации.
//Обработаем возвращаемый результат
$jsResult = $result->return;
$dataResult = json_decode($jsResult);
$StatusResult = $dataResult->Status; //получим значение параметра Status, который был сформирован при ответе веб-сервиса 1С
$MessageResult = $dataResult->Message; //получим значение параметра Message, который был сформирован при ответе веб-сервиса 1С
2 случай. Передача параметра в виде пакета XDTO 1C.
Допустим параметр XDTO — это документ «заказ клиента», который имеет реквизиты: номер документа, ФИО покупателя, табличная часть «Товары» (реквизиты — штрихкод товара, наименование товара, цена, количество, сумма). Для нашего примера пакет XDTO примет вид
// Необходимо отключить кэширование для SOAP. Если этого не сделать,
// функции веб-сервисов будут работать некорректно.
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0);
$client = new SoapClient("//localhost:8080/ExampleBase/ws/ExampleWebService.1cws?wsdl",
array(
'login' => "1C", //логин пользователя к базе 1С
'password' => "54321", //пароль пользователя к базе 1С
'soap_version' => SOAP_1_2, //версия SOAP
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => true,
'features' => SOAP_USE_XSI_ARRAY_TYPE
)
);
//Заполним массив передаваемых параметров
$ParametrXDTO= Array(
"DocumentNumber" => '0000001',
"NameCustomer" => 'Андрей Петрович',
"Goods" => Array(
"Product" => array(
"ProductBarCod" => '8718863003152',
"ProductName" => 'Телевизор PHILIPS 40PFT4100/60',
"Count" => 1,
"Price" => 25000,
"Summa" => 25000);
$params["ParametrXDTO"] = $ParametrXDTO;
//Выполняем операцию
$result = $client->ExampleMethod($params); //ExampleMethod - это метод веб-сервиса 1С, который описан в конфигурации.
//Обработаем возвращаемый результат
$jsResult = $result->return;
$dataResult = json_decode($jsResult);
$StatusResult = $dataResult->Status; //получим значение параметра Status, который был сформирован при ответе веб-сервиса 1С
$MessageResult = $dataResult->Message; //получим значение параметра Message, который был сформирован при ответе веб-сервиса 1С
На этом все. Как видите ничего сложно нет. Будут вопросы — спрашивайте.
В данной статье я хочу поговорить об организации обмена между конфигурацией «Управление торговлей для РБ 3.1.7» и сайтом, который построен на CMS «1С-Битрикс»
Для примера использовалось следующее ПО:
Платформа «1С предприятие» версии 8.3.6.2041
Конфигурация «Управление торговлей для Беларуси 3.1.7»
Для организации веб-сервера на локальной машине использовался Open Server.
Сначала скачаем все необходимое ПО по выше указанным ссылкам: Open Server,
1С-Битрикс: Управление сайтом (малый бизнес) версии 15.06.
Платформа 1С и конфигурации торговли я думаю у Вас уже будет, а если нет то google или yandex Вам в помощь
Дополнительный модуль для обмена с 1С версии 4.0.5.1
После того как все скачали, внедрим модуль обмена с 1С в конфигурацию «Управление торговлей для Беларуси 3.1.7».
Для этого необходимо зайти в конфигуратор и изменить настройки поддержки «Конфигурация — Настройка поддержки».
Затем по кнопке «Включить возможность изменения» выбираем пункты «Объект поставщика редактируется с сохранением поддержки» и жмем кнопки «Ок».
После принятия изменений выбираем пункт меню «Конфигурация — Сравнить, объединить с конфигурацией из файла» и указываем наш скачанный дополнительный модуль обмена. Когда пройдет сравнение/объединения необходимо с корневого узла снять признак (на рисунке ниже пункт №1) и указать «Действия — отметить по подсистемам файла» (на рисунке ниже пункт №2).
Из предложенных подсистем необходимо выбрать «Битрикс» и нажать кнопку «Установить».
После того как будут отмечены системой объекты для объединения надо отдельно отметить саму подсистему «Битрикс» и нажать кнопку «Выполнить».
Когда будет завершено объединение необходимо в общем модуле «Б_ОбменССайтомСервер» заменить процедуру «СформироватьВременныеТаблицыПоИнформацииОТоварахПакета» на процедуру из файла, сохранить и обновить. На этом работа в конфигураторе завершена.
Теперь рассмотрим настройки веб-сервера для установки сайта на локальной машине.
Чтобы установить Open Server достаточно распаковать архив в любое место на диске и запустить необходимый файл в зависимости какой разрядности у Вас операционная система 32-х или 64-х битная.
Для установки Битрикса необходимо сделать следующие настройки в Open Server:
Затем в папке «Open server\Userdata\config» найти файл настройки апача, выбранного в пункте №1.
В конфигурационный файл необходимо внести дополнение. «%sprogdir%/domains/ShopBitriks» — это папка куда будет установлен интернет-магазин на локальном компьютере, где «%sprogdir%» — это папка куда установлен Open Server.
<Directory "%sprogdir%/domains/ShopBitriks">
php_admin_value mbstring.func_overload 2
php_admin_value mbstring.internal_encoding UTF-8
</Directory>
После настройки апач необходимо в папку «%sprogdir%/domains/ShopBitriks» — распаковать скачанный 1С-Битрикс: Управление сайтом (малый бизнес) и открыть файл «index.php» и следовать по шагам установки.
Исходим из того что конфигурация 1С у нас пустая и все настройки необходимо установить с нуля, а если у Вас конфигурация уже рабочая то просто можно свериться.
Начнем с расстановки необходимых констант
Идем в раздел «Администрирование» пункт «CRM и продажи» и указываем следующие настройки
Переходим в пункт «Маркетинг и планирование» раздела «Администрирование»
Затем пункт «Общие настройки» раздела «Администрирование»
Пункт «Настройки синхронизации данных» раздел «Администрирование»
Пункт «Номенклатура» раздел «Администрирование»
После завершения глобальных настроек заведем несколько элементов справочников необходимых для обмена и начнем с вида цены. В разделе «Маркетинг и планирование» выберем пункт «Настройки и справочники» и далее «Виды цен».
Заведем новый вид цены «Розничная интернет»
Затем необходимо создать соглашение, по которому будут выгружаться цены на сайт. В разделе «Маркетинг и планирование» выбираем пункт «Типовые соглашение».
Создаем новый элемент типового соглашение. Важно чтобы обязательно наименование было «BASE» и был установлен признак «Доступно внешним пользователям»
После того как будут заведены вид цены и типовое соглашение необходимо пучить идентификатор по которому цены будут загружаться на сайт. Такой идентификатор можно получить с помощью обработки.
В открытой обработке необходимо выбрать тип цен, который должен быть выгружен на сайт и нажать кнопку «Показать ИД». В сообщениях будет выведен ИД.
После того как мы получили идентификатор цен, его необходимо указать в настройках сайта. Идем в админку сайт раздел «Магазин-Настройки-Типы цен», в списке наш тип цен с кодом «BASE».
В карточке типа цены в поле «Внешний код» надо указать наш идентификатор.
Теперь перейдем к настройкам правил обмена. В разделе «Администрирование» выбираем пункт «Обмен с сайтом».
Т.к наша база пустая я подгрузил парочку товаров с помощью обработки.
Добавим новый узел. На закладке «Основные настройки» отметим пункты «Выгрузка товаров», «Полная выгрузка», «Выгружать на сайт». В адресе сайте переменная часть только сам адрес сайта, в моем случае это «shopbitriks», а «bitrix/admin/1c_exchange.php» всегда одинаково. Далее указываем имя пользователя и пароль, доступ можно проверить по кнопке «Проверить соединение». Для первой выгрузки указываем пункт «Выполнять полную выгрузку принудительно».
Переходим на закладку «Выгрузка товаров». Выбираем отмечаем следующие пункты:
Товары
Картинки и файлы
Свойства
Выгружать только используемые значения свойств
Предложения. Этот пункт необходимо отмечать, если на сайте будет 2 отдельных каталога: товары и предложения
Выгружать цены
Выгружать остатки
Выгружать остатки с учетом резерва.
Т.к. склад у нас один и на сайте отключен количественный учет (учет ведется в 1С), то пункт «Выгружать остатки по складам» выбирать не надо.
Затем по кнопке «Настроить отбор» укажем отбор по нашему соглашению.
По кнопке «Настроить дерево групп» можно указать иерархию каталогов и товаров так, как Вы хотите чтобы они отражались на сайте.
На этом настройка закончена можно пробовать выгружать товары на сайт по кнопке «Выполнить обмен» в списке узлов обмена с сайтом, выбрав нужный элемент.
Результат обмена.
Список товаров на сайте
Цена товара
Остаток товара
Главная страница сайта
После первого обмена необходимо вернуться в настройки в 1С и установить признак «Выгружать только измененные объекты», а признак «Выполнять полную выгрузку принудительно» снять. По кнопке «Настройка версионности выгружаемых данных» можно настроить по каким именно объектам надо отслеживать изменения, чтобы затем их выгрузить на сайт.
Некоторые настройки на сайте для корректной выгрузки в 1С заказов в белорусских рублях.
Необходимо в админке сайта в разделе «Настройки» выбрать пункт «Интернет-магазин».
Затем на закладках «Настройки» и «Права на заказы» установить валюту «Белорусский рубль»
На этом все.
Небольшое отступление по ведению свойств в 1С.
Если тип свойства — это составной тип данных строка и справочник, то на сайт корректно в стандартном обмене будет выгружается только строка, а справочник будет выгружен как идентификатор.