PHP OData драйвер

Публикация № 605427

Разработка - Системная интеграция - Интеграция с WEB

php REST OData SQL

17
Удобный доступ к OData данным через SQL синтаксис

Стояла задача создать удобный PHP драйвер к OData интерфейсу.

Представляю вашему вниманию свое творение.

Composer: https://packagist.org/packages/falseclock/dbd-php

GitHub: https://github.com/Falseclock/dbd-php

Много рассказывать и описывать не буду, опишу в виде кода

1. Инсталляция. 

composer require falseclock/dbd-php

2. Конструктор

// Если у вас есть MemCached сервер или несколько, то укажите в первом параметре массив
// состоящий из хоста и порта.
// второй параметр отвечает за компрессию данных
// третий параметр указывает время кеширования по умолчанию

$cache = DBD\Cache\MemCache::me()->create(array(['host' => '127.0.0.1', 'port' => 11211]),false,"15 min")->open();

// Нужно создать массив из настроек

$odata_options = array(
	'RaiseError'		=> true, // останавливать выполнение при ошибке
	'PrintError'		=> true, // выводить ошибка на экран
	'HTMLError'			=> true, // печатать ошибки в виде HTML
	'CacheDriver'		=> $cache // указатель на экземпляр кэш драйвера. если нет, то null, либо вообше убрать
);

// создаем экземпляр класса 
// 1-ый параметер - адрес ODATA
// 2-ой - имя пользователи
// 3-ий - его пароль
$od = (new DBD\YellowERP())->create('http://crm.beta.virtex.kz/odata/', "user", "password", $odata_options);

// reuseSessions - если у вас стоит reuseSessions="use", второй параметр количество попыток подключения
// setDataKey('value') - ставить обязательно. Это ключ, в который 1С заталкивает данные в JSON формате

$od = $odata->reuseSessions(true,3)->
setDataKey('value');

3. Выборка данных

// Подготовка запроса без параметров, просто выборка
$sth = $od->prepare("
	SELECT 
		Ref_Key, Number, Date, СуммаДокумента, КодНазначенияПлатежа, Комментарий, СтруктурнаяЕдиница, СтруктурнаяЕдиница_Type,
		Товары/ЕдиницаИзмерения_Key, Товары/Цена, Товары/Сумма, Товары/СуммаНДС, Товары/Количество, Товары/Номенклатура_Key,
		ДоговорКонтрагента/Ref_Key, ДоговорКонтрагента/Description,
		Контрагент/Ref_Key, Контрагент/НаименованиеПолное, Контрагент/ИдентификационныйКодЛичности,
		Организация/Ref_Key, Организация/НаименованиеПолное, Организация/ИдентификационныйНомер, Организация/КБЕ,
		Ответственный/Ref_Key, Ответственный/Description
	FROM 
		Document_СчетНаОплатуПокупателю 
	EXPAND 
		Контрагент,
		Организация,
		ДоговорКонтрагента,
		Ответственный
	ORDER BY
		Date аsc
	LIMIT 10
");
// хотим положить данные в кэш на 24 часа. Если время не укажем, то сохранится на то время,
// которое указавали стандартным при инициализации драйвера кэша. Если кэш не нужен - просто не пишем $sth->cache()
$sth->cache('CacheKey','24h'); 

// Выполнить запрос. Если данные будут найдены в кэше, то возьмутся от туда, если нет
// то запросятся по HTTP через OData.
$sth->execute();

// fetchrow - поочередное извлечение данных из массива
while ($row = $sth->fetchrow()) {
	print_r($row);
}

// Если нужно извлечь все и сразу, то вот так вот в нумерованный массив
$sth->fetchrowset();

// Если нужен ассоциативный массив, то можно указать ключ
$sth->fetchrowset('Ref_Key');

4. Выборка с параметрами

$vatinvoice = "6453a564-1324-11e7-ef88-26a4bef88324";

$sth = $od->prepare("
	SELECT 
		Ref_Key, Number, Date, СуммаДокумента
	FROM 
		Document_ЭСФ
	WHERE 
		СчетФактура eq cast(guid?,?)
	ORDER BY
		Date asc
");

// Вместо вопросов будут поставлены эти значения, то есть конвертнется
// в СчетФактура eq cast(guid'6453a564-1324-11e7-ef88-26a4bef88324','Document_СчетФактураВыданный')

$sth->execute($vatinvoice,'Document_СчетФактураВыданный');


5. Вставка новой записи

$data['СтруктурнаяЕдиница_Type'] = "StandardODATA.Catalog_БанковскиеСчета";
$data['ВалютаДокумента_Key'] = $currency['ВалютаДенежныхСредств']['Ref_Key'];
$data['ТипЦен_Key'] = "00000000-0000-0000-0000-000000000000";
$data['СтруктурноеПодразделение_Key'] = "00000000-0000-0000-0000-000000000000";
$data['Date'] = date("c");
$data['Комментарий'] = $data['НомерЗаказа']."\n".$data['Комментарий'];
unset($data['НомерЗаказа']);
$data['УчитыватьНДС'] = true;
$data['УчитыватьАкциз'] = false;
$data['СуммаВключаетАкциз'] = false;
$data['СуммаВключаетНДС'] = true;
$data['DeletionMark'] = false;
$data['Posted'] = false;
$data['Ответственный_Key'] = $data['Автор_Key'];
$data['КратностьВзаиморасчетов'] = 1;

// Указываем документ и массив данных, где ключ - название поля
$entry = $od->insert('Document_СчетНаОплатуПокупателю',$data);

// Результатом будет возвращен массив либо выведена ошибка
print_r($entry);

6. Изменение данных

$od->update(
	'Document_СчетНаОплатуПокупателю', // Название документа
	array('Date' => $data['Date']),  // Массив тех полей которые нужно изменить и новые значения
	"(guid?)", // по какому полю и как искать элемент
	$data['Ref_Key'] // подстановка значения вместо знака вопроса
);

// либо можно так
$od->update(
	'Document_СчетНаОплатуПокупателю', // Название документа
	array('Date' => $data['Date'], 'Number'=>'00000012'),  // Массив тех полей которые нужно изменить и новые значения
	"(guid'6453a564-1324-11e7-ef88-26a4bef88324')" // по какому полю и как искать элемент
);

7. Metadata

$od->metedata(); // выгрузка всех описаний стандартного интерфейса

$od->metedata('Catalog_Пользователи'); // выгрузка конкретного описания стандартного интерфейса

8. Живой пример

	public function InvoiceData($key)
	{
		////////////////////////////////////////////////////////////////////////Номенклатура_Key
		$sth = $this->od->prepare("
			SELECT 
				Ref_Key, Number, Date, СуммаДокумента, КодНазначенияПлатежа, Комментарий, СтруктурнаяЕдиница, СтруктурнаяЕдиница_Type,
				Товары/ЕдиницаИзмерения_Key, Товары/Цена, Товары/Сумма, Товары/СуммаНДС, Товары/Количество, Товары/Номенклатура_Key,
				ДоговорКонтрагента/Ref_Key, ДоговорКонтрагента/Description,
				Контрагент/Ref_Key, Контрагент/НаименованиеПолное, Контрагент/ИдентификационныйКодЛичности,
				Организация/Ref_Key, Организация/НаименованиеПолное, Организация/ИдентификационныйНомер, Организация/КБЕ,
				Ответственный/Ref_Key, Ответственный/Description
			FROM 
				Document_СчетНаОплатуПокупателю 
			EXPAND 
				Контрагент,
				Организация,
				ДоговорКонтрагента,
				Ответственный
			WHERE 
				Ref_Key eq guid?
		");
		//$sth->cache("Document_СчетНаОплатуПокупателю:{$key}","10m");
		$sth->execute($key);
		
		$invoice = $sth->fetchrow();
		////////////////////////////////////////////////////////////////////////
		
		$goods = $this->Goods();
		$TYPES = $this->GetContactInfoTypes();
		////////////////////////////////////////////////////////////////////////
		$sth = $this->od->prepare("
			SELECT 
				Ref_Key AS id, 
				Description AS desc, 
				НаименованиеПолное AS name
			FROM 
				Catalog_КлассификаторЕдиницИзмерения 
			WHERE 
				НаименованиеПолное ne ''
		");
		$sth->cache("Catalog_КлассификаторЕдиницИзмерения","24h");
		$sth->execute();
		$units = $sth->fetchrowset();
		
		array_walk($units, function(&$val){
			$val['name'] = $val['name'] . " ({$val['desc']})";
			return $val;
		});
		////////////////////////////////////////////////////////////////////////
		
		$bank = $this->BankAccount($invoice['СтруктурнаяЕдиница']);
		
		$invoice['Банк'] = $bank['Банк']['Description'];
		$invoice['БИК'] = $bank['Банк']['БИК'];
		$invoice['НомерСчета'] = $bank['НомерСчета'];

		foreach ($invoice['Товары'] as &$item) {

			$item['ЕдиницаИзмерения'] = $this->_getElementById($units, $item['ЕдиницаИзмерения_Key'])['desc'];
			unset($item['ЕдиницаИзмерения_Key']);
			$item['Наименование'] = $this->_getElementById($goods, $item['Номенклатура_Key'])['full'];
		}
		
		$invoice['Договор'] = $invoice['ДоговорКонтрагента']['Description'];
		
		$GCCD = $this->GetCustomerContactData($invoice['Контрагент']['Ref_Key']);
		$GOCD = $this->GetOrganizationContactData($invoice['Организация']['Ref_Key']);
		
		foreach ($GCCD as $row) {
			if ($TYPES[$row['Вид']]['PredefinedDataName'] == "ЮрАдресКонтрагента") {
				$invoice['Контрагент']['Адрес'] = $row['Представление'];
			}
			if ($TYPES[$row['Вид']]['PredefinedDataName'] == "ТелефонКонтрагента") {
				$invoice['Контрагент']['Телефон'] = $row['Представление'];
			}
		}
		foreach ($GOCD as $row) {
			if ($TYPES[$row['Вид']]['PredefinedDataName'] == "ЮрАдресОрганизации") {
				$invoice['Организация']['Адрес'] = $row['Представление'];
			}
			if ($TYPES[$row['Вид']]['PredefinedDataName'] == "ТелефонОрганизации") {
				$invoice['Организация']['Телефон'] = $row['Представление'];
			}
		}
		$invoice['Ответственный'] = $invoice['Ответственный']['Description'];
		
		unset ($invoice['ДоговорКонтрагента']);
		unset ($invoice['Организация']['Ref_Key']);
		unset ($invoice['СтруктурнаяЕдиница']);
		unset ($invoice['СтруктурнаяЕдиница_Type']);
			
		return($invoice);
	}

print_r(Data1c::me()->InvoiceData('d5086168-00d8-11e7-ef88-26a4bef88324'));

/*

Array
(
    [Ref_Key] => d5086168-00d8-11e7-ef88-26a4bef88324
    [Number] => 00000000076
    [Date] => 2017-03-04T18:44:56
    [СуммаДокумента] => 538330
    [КодНазначенияПлатежа] => 710
    [Комментарий] => Заказ №00005115
dsfsfsfsdf
    [Товары] => Array
        (
            [0] => Array
                (
                    [Номенклатура_Key] => bde6a7ce-32c2-11e2-92a8-c692850d4a80
                    [Цена] => 41410
                    [Сумма] => 165640
                    [СуммаНДС] => 17747,14
                    [Количество] => 4
                    [ЕдиницаИзмерения] => шт
                    [Наименование] => 503297-B21/511777-001 HP 460W HE 12V HOTPLG AC PWR SUPPLY KIT
                )

            [1] => Array
                (
                    [Номенклатура_Key] => 76e80df8-5802-11e4-6686-0e459e882122
                    [Цена] => 41410
                    [Сумма] => 372690
                    [СуммаНДС] => 39931,07
                    [Количество] => 9
                    [ЕдиницаИзмерения] => шт
                    [Наименование] => 501536-001 HP 8GB (1x8GB) Dual Rank x4 PC3-10600 (DDR3-1333) Registered CAS-9 Memory Kit
                )

        )

    [Контрагент] => Array
        (
            [Ref_Key] => bd63f5ba-55f1-11e5-5d98-0e459e882122
            [НаименованиеПолное] => Товарищество с ограниченной ответственностью ------
            [ИдентификационныйКодЛичности] => 140000000634
            [Адрес] => 010000, Республика Казахстан, Астана, р-н.Сарыарка, ул. -----
        )

    [Организация] => Array
        (
            [НаименованиеПолное] => Товарищество с ограниченной ответственностью "-----"
            [ИдентификационныйНомер] => 100000000032
            [КБЕ] => 17
            [Телефон] => +7, 727 0000 000 87010000385
            [Адрес] => A15P5A8, Республика Казахстан, г. Алматы, ул. Сатпаева, -------------
        )

    [Ответственный] => Муханов Нурлан
    [Банк] => АО ДБ "Альфа-Банк"
    [БИК] => ALFAKZKA
    [НомерСчета] => KZ2790000000000407863
    [Договор] => Без договора
)
*/

9. Поддерживаемый синтаксис

SELECT - выборка элементов для выгрузки, можно дополнять через AS, например SELECT Ref_Key AS id, Number AS number, Date FROM document

FROM - указание от куда брать данные

EXPAND - если нужно получать значения связанных сущностей

WHERE - установка условий отбора

ORDER BY - сортировка вывода

LIMIT - количество записей для отбора

10. Итоги

Для кого это нужно вы спросите? Ну в первую очередь если вам нужна выборка данных без установки Bitrix, то это самое оно. Плюс автоматическая поддержка сессий. 

Проект создавался для себя. Open source под лицензией MIT. Документация будет создаваться позже с более детальными случаями и всеми возможными параметрами. Комментарии приветствуются, участие в проекте тем более. 
17

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Идальго 121 05.04.17 12:26 Сейчас в теме
Привет! Не совсем понимаю, что в этом особенно интересного и перспективного, но хочу разобраться. Поясните пожалуйста следующее:
1. Причём тут Битрикс? Вроде же не только Битрикс можно научить обмениваться информацией с 1С. Правда я с Битриксом работал только в качестве Интернет магазина, где обмен был либо через файлики (ftp), либо через http запросы и последующей передачей этих фаликов внутри него.
2. На 1С можно развернуть Веб сервис и обращаться к нему со стороны сайта или другой 1С (см. демо конфигурацию по Веб сервисам от 1С). Чем OData лучше? Прочитал немного про OData в 1С. Оно позволяет работать с объектами в 1С напрямую. Это действительно может быть полезно, но только не для интернет магазинов, а например, для веб интерфейсов, из которых что-то делают в 1С.
3. Что такое автоматическая поддержка сессий и чем она лучше других случаев? Ну т.е., как я понял, в простом варианте - удаленный сайт, приложение или что-то ещё инициирует http запросом соединение и передает что-то. Чем такой вариант плох и чем автоматическая поддержка сессий лучше? Накладные расходы и в том и в другом случае есть.
2. virtex3 17 05.04.17 12:41 Сейчас в теме
(1)
Ничего особенного нет, впрочем, возможно и перспективного. Я просто опубликовал свою работу.

1. Битрикс позволяет делать интеграцию с 1С Предприятием. Но для этого надо покупать сам Битрикс. Обмениваться информацией можно как угодно и с кем угодно, но разбирательство в интерфейсе и работа с ним напрямую сопряжена с нудным и иногда дурацком кодом. Чтобы взять данные по OData - нужно формировать и форматировать строку запроса. Драйвер позволяет упростить это до SQL синтаксиса. При этом не надо передавать никуда никакие файлы и не надо их парсить. Все происходит налету и без всяких сторонних средства. Эдакая универсальность.

2. Вы немного не понимаете суть. В моем драйвере есть возможность обращения к HTTP сервисам самого 1С. Я их не описывал в статье, но возможность существует. Я через сервисный URL запрашиваю остатки на складе и себестоимость продукции в режиме реального времени. Через OData могу резервировать товары и выставлять автоматически счета на оплату через сайт. Как раз таки для магазинов это большое спасение - актуальность данных и их быстрое получение.

3. Если обратимся к документации, то с выходом версии 8.3.9 стало возможно открывать одно постоянное соединение и время от времени обращаться к созданной сессии. Что это значит? Если делать без сессии, то придется постоянно открывать сессию на стороне 1С, а это ресурсы и скорость выполнения. А если 10 человек одновременно запросят данные, то будет открыто 10 сессий. Для этого нужны лицензии. С одной автоматической сессией можно обращаться постоянно и неограниченное количество раз и получать актуальные данные.

Например, у вас в офисе 200 человек, у которых открыто клиентское приложение и пользователи только лишь читают данные, ничего не вносят, просто смотрят актуальность. Для всех 200 нужна пользовательская лицензия. Можно отказаться от 200 лицензий и оставить одну и давать данные через веб интерфейс.
3. azubar 38 16.10.18 10:49 Сейчас в теме
Респектую, интересное решение. Кеширование поддерживает только мемкеш?
4. virtex3 17 16.10.18 11:34 Сейчас в теме
(3) вообще планировал внедрить NOSQL базы типа Redis, Mongo, но руки так и не дошли.
Оставьте свое сообщение

См. также

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.) 31

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    1524    uno-c    16       

Самый примитивный HTTP-сервис в мире 163

Статья Программист Нет файла v8 Бесплатно (free) WEB

Пошаговый пример создания простейшего HTTP-сервиса, который генерирует HTML-страницу для поиска товара, а также реализует асинхронное получение данных из базы.

12.09.2019    5970    YPermitin    25       

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию 56

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    3119    Fragster    7       

Вывод отчетов из Штрих-М Торговое предприятие 5 на кассовое ПО Кассир 5 через веб-сервис 3

Статья Системный администратор Программист Нет файла v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Windows Розничная торговля Бесплатно (free) WEB

Универсальный механизм вывода отчетов товароучетной системы Штрих-М Торговое предприятие в кассовое ПО Кассир 5 посредством веб-сервиса.

14.08.2019    905    Van2507    1       

Совсем простой обмен HTTP, 2 функции 60

Статья Программист Нет файла v8 Бесплатно (free) WEB

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    3565    Yashazz    15       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение 51

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    3220    Sedaiko    1       

1Script.Web. Интернет-приложения на языке 1С 119

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    11597    Evil Beaver    32       

Неверные остатки на сайте битрикс 2

Статья Программист Нет файла v8 УТ11 Бесплатно (free) WEB

Исправление процедуры выгрузки остатков на сайт битрикс из УТ 11

25.04.2019    1772    distorshion    4       

Отправка файлов через SOAP. SOAP with attachments, MTOM 38

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

В продолжение «своеобразной» поддержки 1С протокола SOAP, описанной в https://infostart.ru/public/965259/, опишу еще одну особенность. 1С не поддерживает возможность отправки файлов-вложений. Для решения этой проблемы пришлось самостоятельно писать формирование пакетов SOAP и разбор ответов сервера.

18.04.2019    2752    mysm    2       

HTML-клиент у конфигурации 1С 137

Статья Программист Нет файла v8 Бесплатно (free) WEB

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    10872    Smaylukk    119       

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM 67

Статья Программист Нет файла v8 Бесплатно (free) WEB

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    7099    starik-2005    33       

Логируй больше! 1С + UPD + GELF + Graylog 28

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Администрирование данных 1С WEB Разработка

Наличие производительной платформы управления логами - это жизненно важный элемент в ландшафте систем с высокой активностью. Рассмотрим один из подходов логирования активности систем на платформе 1С в Graylog.

26.02.2019    5187    Lars Ulrich    15       

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор 157

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Статья детально рассказывает обо всех аспектах настройки телеграм бота, работающего через сервер-маршрутизатор посредством обратных вызовов. Приведены примеры работы отправки/исправления сообщений, отправки файлов, работы с внутренними и встроенными запросами. Создание клавиатуры. Авторизация пользователей через gmail.

07.11.2018    17163    🅵🅾️🆇    40       

Мой опыт небольшого проекта с веб-сервисами (Часть 2) 20

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Продолжение публикации по веб-сервису для реализации странички с выводом данных.

05.10.2018    4220    alex_bitti    0       

Как запустить работу Google Maps в поле HTML формы 1С? 25

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

Как справиться с передачей события в поле HTML, если надо передать данные. Переход на новую версию Google Maps.

26.09.2018    6328    Green2    10       

Мой опыт небольшого проекта с веб-сервисами (Часть 1) 22

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Хочу поделиться своим опытом использования веб-сервисов на небольшом проекте, который в принципе расширяем до чего-нибудь более существенного.

08.08.2018    6420    alex_bitti    33       

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя" 54

Статья Программист Нет файла v8 Энергетика и ЖКХ УУ Управление взаимоотношениями с клиентами (СRM) Дебиторская и кредиторская задолженность Бесплатно (free) WEB

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    10376    maxx    31       

На что действительно способны HTTP-сервисы 170

Статья Программист Нет файла v8 Бесплатно (free) WEB

В статье я собираюсь не только рассказать вам про HTTP-сервисы 1С, но и показать много прикольных слайдов с картинками. Я думаю, будет весело, и вы найдете для себя что-то полезное.

14.06.2018    22429    dalgaso2010    44       

Подготовка тестового контура с помощью gitlab-ci и Яндекс.Диска 18

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB

В статье описан пример использования gitlab-ci для копирования продуктовой базы в Яндекс.Диск и разворачивания на другом контуре.

04.05.2018    7162    pallid    0       

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера 87

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С WEB docker Apache

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии. Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

04.04.2018    17750    petr.myazin    35       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.6 2

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт публикации выборки данных сайта работающего на WordPress.

19.03.2018    5861    osivv    0       

Интеграция 1С УТ 11.2 и Битрикс. Настройка выгрузки старой цены для интернет-магазина 8

Статья Программист Нет файла v8 УТ11 Россия УУ Розничная торговля Бесплатно (free) WEB

Настройки позволят вытащить информацию о старой цене из 1С и передать её в CMS Битрикс.

24.01.2018    7862    Consultant_1C    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.3 3

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы УУ Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

09.01.2018    6748    osivv    0       

Готовим Soap для Web-сервисов. Рецепты 130

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) WEB

В статье описаны различные варианты обмена данными с web-сервисами по протоколу Soap, основанные на личном опыте.

28.12.2017    28569    987ww765    27       

УкрПочта - групповая проверка трек-номеров 9

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Необходимо в течение относительно небольшого промежутка времени получить актуальное состояние по трек номеру в системе УкрПочта большого количества сообщений? Тогда во второй раз воспользуемся неофициальным парсингом страницы сервиса УкрПочты.

23.10.2017    6120    abavas    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) 5

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.

16.10.2017    8659    osivv    3       

1С, oauth2, Google API и Google Merchant. Сбор данных и парсинг 18

Статья Программист Нет файла v8 УТ10 Россия Бесплатно (free) Практика программирования WEB

Всем привет. Стала задача, собрать данные с Google Merchants и внести их в 1С, для более детального анализа того, что сейчас показывается, что нет и какие проблемы при этом есть. Если кому это интересно, прошу под кат.

14.09.2017    13107    Mi11er    8       

Отслеживание почтовых сообщений парсингом страницы (УкрПочта) 5

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Когда официальное API есть, но по факту не работает. Возвращаемся к старому способу - парсинг страниц.

17.07.2017    7709    abavas    2       

XPath и пространства имен на примере разбора файла ответа сервиса геокодирования Яндекс 34

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования WEB

Есть некоторые нюансы разбора с помощью Xpath xml-файла, в котором используются несколько пространств имен. Приведен разбор такого файла на примере файла ответа сервиса геокодирования Яндекс.

14.04.2017    9784    brr    6       

Online телефонный справочник из 1С: Зарплата и управление персоналом 33

Статья Системный администратор Программист Нет файла v8 ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) WEB

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    19000    ruha    14       

Веб-сервисы и 1С: «Здравствуй, Name», время-деньги и «Жизнь» 75

Статья Программист Нет файла v8 Бесплатно (free) WEB

Несколько статей о создании веб-сервисов на платформе 1С

09.03.2017    20954    hayroff    11       

Интерактивный ввод капчи 26

Статья Программист Нет файла v8 Бесплатно (free) WEB

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

17.02.2017    8452    gaabora    3       

Отправка PUT запроса средствами 1С 8.3 65

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

HTTP запрос с использованием метода PUT средствами 1С 8.3 на практике - проблема и решение

16.02.2017    20293    hspeed79    16       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    22947    BraunAlex    34       

Еще немного об обмене на web-сервисах 18

Статья Программист Нет файла v8 Россия Бесплатно (free) WEB Перенос данных из 1C8 в 1C8

Расскажу о собственном опыте по передаче данных через web-сервисы

26.08.2016    10483    savostin.alex    8       

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие 123

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB Практика программирования Универсальные функции

Статья о том, как можно быстро создать HTTP-сервис в 1С:Предприятие и как выполнять его отладку.

25.07.2016    39362    serg_infostart    19       

SOAP-сервисы с предварительной Cookie-аутентификацией 16

Статья Программист Нет файла v8 Бесплатно (free) WEB

Платформа 1С не позволяет использовать cookie при работе со статичной WS-ссылкой или WS-прокси. Вследствие этого работа со многими веб-сервисами крупных поставщиков (например, DHL) напрямую невозможна.

05.06.2016    9014    blackschool    1       

Google Analytics API, Oauth2.0 и 1c8 51

Статья Системный администратор Нет файла v8 1С:Франчайзи, автоматизация бизнеса Windows Бесплатно (free) Практика программирования WEB

Обращение к Google Analytics API, Протокол Oauth 2.0 и запросы от 1С:8 без авторизации пользователя

02.05.2016    21697    Ольга_tmp    18       

HTTP-сервисы для тех, кто ничего не понимает в WEB 426

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Если вы ничего не понимаете в WEB технологиях и такие слова, как json, get, post и прочее для вас ничего не значат и вы просто заядлый 1С-ник до мозга костей, но вам кровь из носу надо подружить 1С со сторонними приложениями или сайтом, то эта статья для вас

21.04.2016    100463    YAGolova    55       

Дай дернуть-2! Обращение к веб-сервисам с помощью подручных средств 97

Статья Программист Нет файла v8 Бесплатно (free) WEB

Как показала практика, о веб-сервисах знает почти каждый программист, но о том, как их готовить, - весьма ограниченный круг. Давайте интереса ради замутим сервис и дернем его с помощью простого подручного средства - "Бумеранг"!

21.04.2016    29898    starik-2005    32       

Отладка обмена с web-сайтом на Битрикс 71

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB

Часто возникает необходимость отладки обмена между 1С и web-сайтом на Битрикс. Разберемся, какие инструменты есть для этого...

04.04.2016    14939    vital1c    6       

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция 111

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования WEB

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    48261    Serginio    33       

.Net в 1С. Асинхронные HTTP запросы, отправка Post нескольких файлов multipart/form-data, сжатие трафика с использованием gzip, deflate, удобный парсинг сайтов и т.д. 37

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент WEB

Очень часто нужно при работе с HTTP сервисами или сайтами использовать Асинхронные HTTP запросы, отправку на сервер нескольких файлов, использование сжатия трафика. Эта статья про то, как этого легко добиться.

09.03.2016    25298    Serginio    22       

Управление магазином ECWID из 1С 11

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Вероятно многие (в том числе и я) используют для поддержки интернет-магазина стороннего поставщика, выплачивая ему энную сумму денег в месяц. Я выбрал ECWID. Не реклама, но не жалуюсь. Услуги вполне качественные. В этой статье пойдет речь об инструментах, с помощью которых можно из 1С через API Эквида общаться с их движком.

01.02.2016    9649    Sardukar    3       

Дай дернуть! О веб-сервисах, Linux'ах и добрых поисковых сайтах 60

Статья Программист Нет файла v8 1cv8.cf Linux Бесплатно (free) Инструментарий разработчика Администрирование данных 1С WEB

О веб-сервисах, апачах и *nix'ах. - установим на новенький убунту старенький апач с php. - дернем сервис из php-скрипта. - создадим приложение, позволяющее дергать произвольный сервис с произвольными данными. - ну и что там получится по пути в лес...

30.12.2015    22446    starik-2005    4