Тестовый сервер 1С на Ubuntu 14.04

Приветствую читателей блога.

В данной заметке я хочу рассказать как создать свой тестовый 64-х разрядный сервер 1С на Ubuntu server 14.04 LTS. Фишка данного сервера в том, что до 12 подключений к серверу не требуются лицензия на сервер, необходима лицензия только для клиентского компьютера. На данный сервер также будет установлен сервер СУБД Postgresql 9.4.5 адаптированный к работе с 1С сторонней командой, будет понижена версия сервера Apache с 2.4 до 2.2, чтобы можно было публиковать http-сервисы или web-сервисы.

И так начнем.

  1. Необходимо скачать и установить VirtualBox.
  2. Необходимо скачать сервер Ubuntu server 14.04 LTS.
  3. Скачать и установить WinSCPS. Данная программа понадобиться для работу с файлами (Копирование, создание папок и т.д.) нашего виртуального сервера.
  4. Скачать и установить PuTTY. Прелесть данной программы в том, что можно копировать команды в терминал из локального компьютера.
  5. Для сервера 1С будет использоваться версия 8.3.7.1759

Кратко об установке Ubuntu.

  • В самом начале выбираем язык установки. В моем случае — это русскийВыбор языка при установке Ubuntu
  • Затем выбираем что хотим установить сервер UbuntuНачало установки Ubuntu
  • Выбираем язык системы, я выбрал русскийВыбор языка сервера Ubuntu
  • Установим способ переключения раскладки клавиатуры
    Выбор переключения раскладки клавиатуры при установке Ubuntu
  • Зададим имя нашего сервера. В моем случае — это ‘Ubuntu1C2’
    Имя компьютера при установке Ubuntu
  • Укажем имя нового пользователя (это не логин сервера)Задание имени учетной записи при установки Ubuntu
  • Затем надо указать логин, под которым будем заходить на сервер. Я указал admin1C
  • После надо задать пароль для входа на серверЗадание пароля учетной записи
  • Далее указываем следующие настройки
    Не шифровать каталог
    Определение временной зоны
    Настройка дисков при установке Ubuntu
    Разметка дисков при установке Ubuntu
    Изменение разделов при разметке дисков
    Определение размера диска при разметке
    Подтверждение разметки дисков
  • В настройках обновления системы я указал «Без автоматического обновления»Настройка обновления системы
  • При выборе программного обеспечения выбрал только «OpenSSH Server»Выбор программного обеспечения
  • После завершения установки перезагружаем сервер. Для входа вводим логин (admin1C) и пароль, которые задали при установкеВход на сервер после установки

Чтобы виртуальный сервер получил адрес общей сети необходимо в VirtualBox установить настройку «Сетевой мост».
Сетевые настройки виртуальной машины
Чтобы подключиться к нашему серверу с помощью программы «PuTTY», необходимо узнать IP адрес сервера с помощью команды ifconfig.
Узнать IP адрес сервера
Подключаемся к серверу с помощью программы «PuTTY«.
Подключение к серверу с помощью 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:

  1. Подключимся к серверу. Необходимо указать IP адрес, который был получен командой ifconfig
    Подключение по WinSCP
  2. В рабочей папке пользователя создадим папку Distr1C и перенесем туда установочные файлы
    Перенос файлов на сервер
  3. Закрываем 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
Установка сервера 1С
Чтобы была возможность делать отладку на сервере, необходимо включить параметр SRV1CV8_DEBUG=1 в конфигурационным файле «srv1cv83». Данный файл находится «/etc/init.d»
Путь к файлу srv1cv83
Данный файл можно отредактировать из файлового менеджера «mc» по кнопке «F4», но перед этим менеджер должен быть запущен командой sudo mc
Корректировка параметра srv1cvdebug
После установки, сервер надо перегрузить командой 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:

  1. С помощью команды locale необходимо проверить локализацию системы, для нас необходимо чтобы было «ru_RU.UTF-8»Проверка локали перед установкой Postgresql
    Если данной локали нет, то ее надо установить командой apt-get install libicu52. После установки проверить текущую локаль командой locale. Если в ответе нет «ru_RU.UTF-8», то данную локаль необходимо установить выполнив команды:
    ocale-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.
  2. Установим сервер СУБД 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'. Данная команда была взята с сайта
  3. После окончании установки проверь статус сервера СУБД командой service postgresql status, если ответ будет «online», то это значит все хорошо.Окончание установки сервера СУБД

Теперь зададим пароль для Postgresql

  1. Выполним команду sudo -u postgres psql
  2. Далее наберем \password
  3. Введем два раза пароль
  4. Командой \qвыйдем из установки пароля

Для работы с Postgresql в windows есть утилита PgAdmin3, для данной утилиты также необходимо скачать и установить библиотеку vcredist_x86.exe.

Чтобы обращаться к нашему серверу по имени «ubuntu1c2», а не по IP адресу, необходимо отредактировать файлы «hosts» на сервере и клиенте
В windows данный файл находится в папке «c:\Windows\System32\drivers\etc\».
Расположение файла Hosts
На ubuntu данный файл находится в папке «/etc».
Настройка hosts на сервере Ubuntu

Теперь сервер готов к работе. Попробуем создать новую базу.
Создать базу на новом сервере
Подключимся к новой базе и запустим клиента.
Проверка входа в новую базу

Для того чтобы наш сервер еще мог работать как и вебсервер, необходимо понизить версию сервера 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/ recise 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.
Установленная версия Apache 2.2

Опубликуем нашу созданную базу «Exmaple1C». Для этого создадим на сервере например каталог «/wwwroot/web1c», в данном каталоге будет храниться файл «default.vrd».
Создание папки для публикации базы 1С
Из каталога «/opt/1c/v8.3/x86_64» необходимо выполнить команду ./webinst -apache22 -wsdir Example1C-dir /wwwroot/web1c-connstr "Srvr=ubuntu1c2;Ref=Example1C;" -confPath /etc/apache2/httpd.conf
Публикация базы 1С на сервере Ubuntu
Расшифрую строку публикации:

  1. ./webinst — команда на исполнение
  2. -apache22 — публикация на сервер Apache версии 2.2
  3. -wsdir Example1C — имя, по которому будет доступна база из вне, в данном случае адрес будет выглядеть http://ubuntu1c2/Example1C
  4. -dir /wwwroot/web1c — путь к папке, где будет располагаться файл default.vrd
  5. -connstr "Srvr=ubuntu1c2;Ref=Example1C;" — строка подключения к информационной базе
  6. -confPath /etc/apache2/httpd.conf — путь к конфигурационному файлу Apache

После публикации Apache необходимо перезапустить командой sudo /etc/init.d/apache2 restart

P.S.
Для ускорения рекомендую использовать программу «PuTTY», т.к. в данной программе можно копировать команды в терминал через правую клавиши мыши.

Популярность: 6%

Рубрика: Платформа 1С | Метки: | Добавить комментарий

Получение токена доступа для работы с API каталога onliner.by

Здравствуйте.

Данная небольшая заметка должна помочь разработчикам на платформе 1С 8.3 по получению токена доступа для работы с API Onliner.by.

На странице есть пример для PHP и общие данные по получения токена.

Рассмотрим 2 примера:

  1. Работа стандартными методами платформы 1С 8.3
  2. Работа с помощью «Microsoft.XMLHTTP»

Прежде чем приступить к примерам необходимо в админке магазина на b2b.onliner.by получить параметры доступа clientId и clientSecret на закладке «Настройка», предварительно там же добавить приложение (например «1С»)
Доступ к API onliner.by

Пример 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 либо самим написать парсер.

Популярность: 4%

Рубрика: Настройка и оптимизация | Метки: | Добавить комментарий

Работа с веб-сервисами 1С на PHP

Здравствуйте.

Я не буду останавливаться на вопросе что такое веб-сервисы 1С, т.к в сети очень много статей на эту тему. Просто постараюсь вкратце показать, каким способом возможна работа с веб-сервисами 1С на php.

И так начнем.

В первую очередь для PHP надо подключить модуль  для работы по протоколу SOAP. Для windows надо в файле php.ini либо раскомментировать либо дописать строки
[PHP_SOAP]
extension=php_soap.dll

Под windows замечена следующая особенность — файл php.ini надо обязательно положить в папку C:\Windows. Также необходимо перезапустить веб-сервер, если PHP установлен как модуль.

Рассмотрим 2 случая:

  1. Когда в параметр метода веб-сервиса необходимо передать строку
  2. Когда в параметр метода веб-сервиса необходимо передать объект пакета XDTO, который описан в 1С

Примем одно условие, что ответ веб-сервис 1С присылает в формате JSON. К сожалению поддержка формата JSON на уровне методов платформы появилось только в версии «1С Предприятие 8.3.6». Чтобы использовать формат JSON в более ранних версиях платформы есть хорошая обработка, которой можно воспользоваться, а можно и написать что-то свое, т.к. данный формат передачи данных не сложный.
Ответ веб-сервиса 1С будет в формате JSON с параметрами «Status» и «Message» (в данном примере я не использовал обработку, а описал ответ сам):


НашеСообщение = "Какое-то сообщение"
ТекстОтветаВебСервисов = "{" + Символы.ПС + """Status""" + ":" + """Ok""" + "," + Символы.ПС 
                         + """Message""" + ":" + """" + НашеСообщение + """" + Символы.ПС
	                 + "}";


1 случай. Передача параметра в виде строки.


// Необходимо отключить кэширование для SOAP. Если этого не сделать, 
// функции веб-сервисов будут работать некорректно.    
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0); 

$client = new SoapClient("http://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 примет вид
Пример пакета XDTO


// Необходимо отключить кэширование для SOAP. Если этого не сделать, 
// функции веб-сервисов будут работать некорректно.    
ini_set('soap.wsdl_cache_enabled', 0 );
ini_set('soap.wsdl_cache_ttl', 0); 

$client = new SoapClient("http://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С

На этом все. Как видите ничего сложно нет. Будут вопросы — спрашивайте.

Популярность: 20%

Рубрика: Настройка и оптимизация | Метки: , | Добавить комментарий

Организация обмена с сайтом на «1С-Битрикс»для конфигурации «Управление торговлей для Беларуси 3.1.7 (и выше)»

Приветствую всех читателей блога.

В данной статье я хочу поговорить об организации обмена между конфигурацией «Управление торговлей для РБ 3.1.7» и сайтом, который построен на CMS «1С-Битрикс»

Для примера использовалось следующее ПО:

И так приступим.

Сначала скачаем все необходимое ПО по выше указанным ссылкам: Open Server,
1С-Битрикс: Управление сайтом (малый бизнес) версии 15.06.
1С-Битрикс: Управление сайтом (малый бизнес)
Платформа 1С и конфигурации торговли я думаю у Вас уже будет, а если нет то google или yandex Вам в помощь

Дополнительный модуль для обмена с 1С версии 4.0.5.1
Модуль обмена с 1С

После того как все скачали, внедрим модуль обмена с 1С в конфигурацию «Управление торговлей для Беларуси 3.1.7».

Для этого необходимо зайти в конфигуратор и изменить настройки поддержки «Конфигурация — Настройка поддержки».

Настройка поддержки конфигурации

Затем по кнопке «Включить возможность изменения» выбираем пункты «Объект поставщика редактируется с сохранением поддержки» и жмем кнопки «Ок».

Включить возможность изменения конфигурации

Настройка возможности изменения конфигурации

После принятия изменений выбираем пункт меню «Конфигурация — Сравнить, объединить с конфигурацией из файла» и указываем наш скачанный дополнительный модуль обмена. Когда пройдет сравнение/объединения необходимо с корневого узла снять признак (на рисунке ниже пункт №1) и указать «Действия — отметить по подсистемам файла» (на рисунке ниже пункт №2).

Настройка объединения с конфигурацией

Из предложенных подсистем необходимо выбрать «Битрикс» и нажать кнопку «Установить».

Выбор подсистемы

После того как будут отмечены системой объекты для объединения надо отдельно отметить саму подсистему «Битрикс» и нажать кнопку «Выполнить».

Выбор подсистемы при объединении

Когда будет завершено объединение необходимо в общем модуле «Б_ОбменССайтомСервер» заменить процедуру «СформироватьВременныеТаблицыПоИнформацииОТоварахПакета» на процедуру из файла, сохранить и обновить. На этом работа в конфигураторе завершена.

Теперь рассмотрим настройки веб-сервера для установки сайта на локальной машине.

Чтобы установить Open Server достаточно распаковать архив в любое место на диске и запустить необходимый файл в зависимости какой разрядности у Вас операционная система 32-х или 64-х битная.

Для установки Битрикса необходимо сделать следующие настройки в Open Server:

  1. Настройка Open server
  2. Затем в папке «Open server\Userdata\config» найти файл настройки апача, выбранного в пункте №1.
    Настройка апач для Open Server
  3. В конфигурационный файл необходимо внести дополнение. «%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>
  4. После настройки апач необходимо в папку «%sprogdir%/domains/ShopBitriks» — распаковать скачанный 1С-Битрикс: Управление сайтом (малый бизнес) и открыть файл «index.php» и следовать по шагам установки.

Исходим из того что конфигурация 1С у нас пустая и все настройки необходимо установить с нуля, а если у Вас конфигурация уже рабочая то просто можно свериться.
Начнем с расстановки необходимых констант

  1. Идем в раздел «Администрирование» пункт «CRM и продажи» и указываем следующие настройки
    Настройки в подсистеме CRM
    Настройки в подсистеме СRM
  2. Переходим в пункт «Маркетинг и планирование» раздела «Администрирование»
    Настройки в подсистеме маркетинг
  3. Затем пункт «Общие настройки» раздела «Администрирование»
    Подсистема "Общие настройки"
  4. Пункт «Настройки синхронизации данных» раздел «Администрирование»
    Настройка подсистемы "Синхронизация данных"
  5. Пункт «Номенклатура» раздел «Администрирование»
    Настройка подсистемы "Номенклатура"

После завершения глобальных настроек заведем несколько элементов справочников необходимых для обмена и начнем с вида цены. В разделе «Маркетинг и планирование» выберем пункт «Настройки и справочники» и далее «Виды цен».
Доступ к видам цен
Заведем новый вид цены «Розничная интернет»
Новый вид цены
Затем необходимо создать соглашение, по которому будут выгружаться цены на сайт. В разделе «Маркетинг и планирование» выбираем пункт «Типовые соглашение».
Доступ к типовым соглашениям
Создаем новый элемент типового соглашение. Важно чтобы обязательно наименование было «BASE» и был установлен признак «Доступно внешним пользователям»
Новое соглашение для обмена
После того как будут заведены вид цены и типовое соглашение необходимо пучить идентификатор по которому цены будут загружаться на сайт. Такой идентификатор можно получить с помощью обработки.
В открытой обработке необходимо выбрать тип цен, который должен быть выгружен на сайт и нажать кнопку «Показать ИД». В сообщениях будет выведен ИД.
Получить идентификатор вида цены
После того как мы получили идентификатор цен, его необходимо указать в настройках сайта. Идем в админку сайт раздел «Магазин-Настройки-Типы цен», в списке наш тип цен с кодом «BASE».
Типы цен на сайте битрикс
В карточке типа цены в поле «Внешний код» надо указать наш идентификатор.
Внешний код типа цены битрикс

Теперь перейдем к настройкам правил обмена. В разделе «Администрирование» выбираем пункт «Обмен с сайтом».
Доступ к настройкам обмена с сайтом

Т.к наша база пустая я подгрузил парочку товаров с помощью обработки.

Добавим новый узел. На закладке «Основные настройки» отметим пункты «Выгрузка товаров», «Полная выгрузка», «Выгружать на сайт». В адресе сайте переменная часть только сам адрес сайта, в моем случае это «shopbitriks», а «bitrix/admin/1c_exchange.php» всегда одинаково. Далее указываем имя пользователя и пароль, доступ можно проверить по кнопке «Проверить соединение». Для первой выгрузки указываем пункт «Выполнять полную выгрузку принудительно».
Начальная настройка обмена с битрикс
Переходим на закладку «Выгрузка товаров». Выбираем отмечаем следующие пункты:

  • Товары
  • Картинки и файлы
  • Свойства
  • Выгружать только используемые значения свойств
  • Предложения. Этот пункт необходимо отмечать, если на сайте будет 2 отдельных каталога: товары и предложения
  • Выгружать цены
  • Выгружать остатки
  • Выгружать остатки с учетом резерва.

Т.к. склад у нас один и на сайте отключен количественный учет (учет ведется в 1С), то пункт «Выгружать остатки по складам» выбирать не надо.
Настройка выгрузки товаров в битрикс
Затем по кнопке «Настроить отбор» укажем отбор по нашему соглашению.
Отбор по соглашению для обмена с битрикс
По кнопке «Настроить дерево групп» можно указать иерархию каталогов и товаров так, как Вы хотите чтобы они отражались на сайте.
Настройка дерева групп для обмена с битрикс

На этом настройка закончена можно пробовать выгружать товары на сайт по кнопке «Выполнить обмен» в списке узлов обмена с сайтом, выбрав нужный элемент.
Результат обмена.
Список товаров на сайте
Товары на сайте после обмена
Цена товара
Цена товара на сайте
Остаток товара
Остатки товара на сайте
Главная страница сайта
Список товаров на сайте

После первого обмена необходимо вернуться в настройки в 1С и установить признак «Выгружать только измененные объекты», а признак «Выполнять полную выгрузку принудительно» снять. По кнопке «Настройка версионности выгружаемых данных» можно настроить по каким именно объектам надо отслеживать изменения, чтобы затем их выгрузить на сайт.
Настройка версионности обмена

Некоторые настройки на сайте для корректной выгрузки в 1С заказов в белорусских рублях.
Необходимо в админке сайта в разделе «Настройки» выбрать пункт «Интернет-магазин».
Настройка в битрикс интернет-магазина
Затем на закладках «Настройки» и «Права на заказы» установить валюту «Белорусский рубль»
Настройка валюты по заказам интернет-магазина
Настройках прав на заказы в битрикс

На этом все.

Небольшое отступление по ведению свойств в 1С.
Если тип свойства — это составной тип данных строка и справочник, то на сайт корректно в стандартном обмене будет выгружается только строка, а справочник будет выгружен как идентификатор.

Популярность: 13%

Рубрика: Торговля 3.0 для РБ | Метки: , | Добавить комментарий

Пакетная печать табличных документов в 1С 8.3

Здравствуйте, дорогие читатели.

В данной заметке хочу поделиться одной интересной возможностью, которая есть в платформе «1С предприятие 8.3», а именно «пакетная печать табличных документов». Для использования данной возможности используются объекты
встроенного языка: ПакетОтображаемыхДокументов, ЭлементыПакетаОтображаемыхДокументов, ЭлементПакетаОтображаемыхДокументов.

ПакетОтображаемыхДокументов – это сам пакет, который содержит документы, которые надо напечатать или сохранить в файл, также содержит настройки печати. Для помещения документов в пакет предназначено свойство Состав, представляющее собой объект ЭлементыПакетаОтображаемыхДокументов – коллекцию
объектов ЭлементПакетаОтображаемыхДокументов.

ЭлементПакетаОтображаемыхДокументов – объект, который содержит либо адрес временного хранилища, в котором расположен табличный документ, либо объект ПакетОтображаемыхДокументов, обозначающий вложенный пакет
документов.

Настройки печати устанавливаются для всего пакета, индивидуальные настройки печати документов игнорируются.
Для доступны следующие настройки КоличествоЭкземпляров, РазборПоКопиям, ИмяПринтера, ДвусторонняяПечать, ТочностьПечати, Вывод.

Чтобы получить возможность установить индивидуальные параметры печати для конкретного документа, следует добавить вложенный пакет,поместить документ в него и установить параметры печати для этого вложенного пакета.

Рассмотрим пример:

Необходимо распечатать 2 табличных документа, причем первого 3 экземпляра, а второго 2.


Пакет = Новый ПакетОтображаемыхДокументов;
// Документы, находящиеся в этом пакете, печатаются в 3 экземплярах
Пакет.КоличествоЭкземпляров = 3;
// Добавляем документы в пакет
ЭлементПакета1 = Пакет.Состав.Добавить();
ЭлементПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент, УникальныйИдентификатор);

// Добавляем вложенный пакет для третьего документа
ВложенныйПакет = Новый ПакетОтображаемыхДокументов;
// Документ во вложенном пакете печатается в 2 экземплярах
ВложенныйПакет.КоличествоЭкземпляров = 2;
// Добавляем документ во вложенный пакет
ЭлементВложенногоПакета1 = ВложенныйПакет.Состав.Добавить();
ЭлементВложенногоПакета1.Данные = ПоместитьВоВременноеХранилище(ТабличныйДокумент1, УникальныйИдентификатор);

ЭлементПакета2 = Пакет.Состав.Добавить();
ЭлементПакета2.Данные = ВложенныйПакет;

// Печатаем пакет сразу на принтер
Пакет.Напечатать();

//сохраняем в файл
Пакет.ЗаписатьФайлДляПечати("D:\ПакетнаяПечать.pdf");

Обработку (на управляемых формах) для демонстрации пакетного режима печати можно скачать здесь.

Популярность: 51%

Рубрика: Особенности работы управляемого интерфейса, Платформа 1С | Метки: | Добавить комментарий