PHP OData драйвер

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

Интеграция и обмен данными - WEB-интеграция

php REST OData SQL

Удобный доступ к 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. Документация будет создаваться позже с более детальными случаями и всеми возможными параметрами. Комментарии приветствуются, участие в проекте тем более. 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Идальго 210 05.04.17 12:26 Сейчас в теме
Привет! Не совсем понимаю, что в этом особенно интересного и перспективного, но хочу разобраться. Поясните пожалуйста следующее:
1. Причём тут Битрикс? Вроде же не только Битрикс можно научить обмениваться информацией с 1С. Правда я с Битриксом работал только в качестве Интернет магазина, где обмен был либо через файлики (ftp), либо через http запросы и последующей передачей этих фаликов внутри него.
2. На 1С можно развернуть Веб сервис и обращаться к нему со стороны сайта или другой 1С (см. демо конфигурацию по Веб сервисам от 1С). Чем OData лучше? Прочитал немного про OData в 1С. Оно позволяет работать с объектами в 1С напрямую. Это действительно может быть полезно, но только не для интернет магазинов, а например, для веб интерфейсов, из которых что-то делают в 1С.
3. Что такое автоматическая поддержка сессий и чем она лучше других случаев? Ну т.е., как я понял, в простом варианте - удаленный сайт, приложение или что-то ещё инициирует http запросом соединение и передает что-то. Чем такой вариант плох и чем автоматическая поддержка сессий лучше? Накладные расходы и в том и в другом случае есть.
2. virtex3 19 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 39 16.10.18 10:49 Сейчас в теме
Респектую, интересное решение. Кеширование поддерживает только мемкеш?
4. virtex3 19 16.10.18 11:34 Сейчас в теме
(3) вообще планировал внедрить NOSQL базы типа Redis, Mongo, но руки так и не дошли.
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

WEB Облачные сервисы, хостинг v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    11123    comol    31    

Rest API от чайника для чайников

WEB v8 Бесплатно (free)

На написание статьи побудило чтение книги "Технологии интеграции "1С:Предприятия 8.3"" Хрусталевой Е.Ю. В первой главе там постоянно чередуются слова REST, REST-интерфейс, архитектура REST и т.д. Мне стало интересно, я начал копать, что это такое, и тема оказалась достаточно интересной.

06.06.2022    3569    zeltyr    2    

Обмен сообщениями "Системы взаимодействия 1С" с "НЕ 1С" системой. Где хранятся файлы вложений и как получить их местоположение в хранилище s3?

Внешние источники данных WEB Обмен между базами 1C v8 1cv8.cf Бесплатно (free)

Вы когда-нибудь задавались вопросом: где хранятся сообщение и их прикрепления «Системы взаимодействия 1С»? Мне пришлось!

31.05.2022    748    Zlohobbit    3    

Загрузка выпусков подкаста Радио 1С Энтерпрайз

WEB v8 Бесплатно (free)

Код для загрузки всех выпусков подкаста Радио 1С Энтерпрайз для оффлайн-прослушивания.

29.04.2022    735    q_i    9    

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

WEB v7.7 v8 Бесплатно (free)

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

10.03.2016    66310    Serginio    33    

УПП: Ошибка при взаимодействии с ФСС

Регламентированный учет и отчетность WEB v8 УПП1 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

При обновлении релиза УПП до 1.3.178.2 пользователи начали жаловаться, что не отправляются в ФСС документы "Ответ на запрос ФСС для расчета пособия" и "Сведения о застрахованных лицах, ФСС". В статье предложен вариант обхода данной ошибки, возможно, это кому-то поможет.

28.04.2022    891    alex_bob    8    

Методика интеграции HTML редакторов в поле HTML документа базы 1С

WEB v8 Платформа 1C v8.2 Бесплатно (free)

В статье описаны критерии WYSIWYG HTML редакторов и общая картина интеграции с платформенными механизмами. На момент платформы 1С 8.3 и возможно для будущих релизов описание будет скорее всего актуально. Апробировано на 1С 8.3.20 и 8.2.12, а также на мобильной платформе 8.3.19.59.

12.04.2022    830    user1206119    0    

Создание кодогенератора для Postman

WEB v8 Бесплатно (free)

Опишу порядок разработки кодогенератора для Postman c использованием OneScript и HTTPКоннектор.

13.03.2022    897    malikov_pro    0    

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

WEB v8 ЗУП3.x Россия Бесплатно (free)

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

10.03.2017    28186    ruha    21    

Ювелирсофт: Ювелирный торговый дом. Настройка интеграции с ГИИС ДМДК

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

Краткое описание настройки без лишней воды, для локального и серверного варианта.

21.02.2022    2569    Drasha    21    

Как из 1С отдать миллионы строк в BI и успеть это сделать быстро

Консолидация данных Анализ и проектирование ИТ-систем WEB v8 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    3774    Fudj1k    11    

Кэширование COM-соединения. Три способа Промо

Внешние источники данных WEB Обмен между базами 1C v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    44060    YPermitin    42    

Передача сообщений из 1С в MS Teams

WEB v8 1cv8.cf Бесплатно (free)

Пример организации уведомлений в канал MS Teams.

09.02.2022    1627    Alex_YAM    3    

Работа с 1С через протокол OData

WEB v8 1cv8.cf Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    13799    ProgrammingStore    19    

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB v8 Бесплатно (free)

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

07.12.2021    6262    kholkin    12    

Заготовка для загрузки файлов по ftp Промо

WEB Обмен между базами 1C v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    31768    anig99    6    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB v8 1cv8.cf Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    3754    freegman74    12    

Web консоль управления сеансами 1С

WEB v8 1cv8.cf Бесплатно (free)

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    2669    4ernuy    16    

Реализация перевода текста средствами Azure

WEB Локализация решений v8 Россия Бесплатно (free)

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

19.11.2021    538    user1559835    2    

Необычно-экономное использование 1С:Предприятие 8 на Asp.Net-хостинге для реализации Интернет-магазина Промо

WEB Анализ и проектирование ИТ-систем v8 1cv8.cf Россия Бесплатно (free)

Статья описывает, как можно сэкономить на реализации Интернет-магазина предприятия, в который данные поступают из 1С:Предприятие 8. Данные размещаются в базе данных MSSql удаленно у хостинг-провайдера. Предлагается практический опыт гармоничной интеграции 1С:Предприятие и Asp.Net через LINQ и прямой доступ к информационной базе 1С. Строится простейшее решение, с одной стороны имеющее веб-интерфейс, а с другой стороны построенное как desktop-приложение. Тем самым достигается эффективность в наполнении веб-сайта контентом. Максимальный эффект достигается, когда Интернет-магазин проектируется «с нуля» с уникальной для предприятия структурой.

12.11.2010    43570    Elisy    13    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB v8 1cv8.cf Россия Бесплатно (free)

Цель статьи - указать на подводные камни и нюансы, о которых “не пишут на заборах” и которые встретились мне за время внедрения типового модуля интеграции 1С и Битрикс24. Будет интересна для людей, кто подумывает о том, чтобы настроить интеграцию, и хотят понять, с чем столкнутся. А также для тех, кто уже работает с подобным обменом, столкнулся с какими-то из описанных ситуаций и хочет понять, что пошло не так и “как жить дальше”. Постараюсь все описать “человеческим” языком с минимальной долей терминов, так как статья, надеюсь, будет полезна не только программистам.

07.11.2021    5853    freegman74    13    

Внешняя компонента как REST-API-компонента...

Разработка внешних компонент WEB Linux v8 Бесплатно (free)

...и совсем немного кода на С[++]...

01.11.2021    2277    starik-2005    10    

Окей, Google

WEB v8 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    1710    Soloist    6    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB HighLoad оптимизация v8 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    3309    sorter1    2    

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB v8 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    16156    Neti    17    

Интеграция 1С с ГИИС ДМДК

WEB Файловые протоколы обмена (TXT, XML, DBF), FTP v8 ERP2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    29583    1СERP    157    

Быстрое чтение составных http сообщений multipart/form-data

WEB v8 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2371    cherkasovvitalik    3    

Интеграция 1С с Битрикс24 через вебхуки

WEB v8 1cv8.cf Россия Бесплатно (free)

Пример получения токена и http запрос к API битрикса.

15.09.2021    5438    TyurinArt    8    

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB v8 1cv8.cf Россия Бесплатно (free)

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

07.09.2021    6449    ix5s    25    

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB v8 Бесплатно (free)

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    3981    Бэнни    11    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

WEB v8 Россия Бесплатно (free)

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    9113    UltraUnion2005    8    

Глава 2. Как я написал (собрал с инфостарта) свой парсер сайта 1С Releases

WEB v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

Путешествие начинающего программиста 1С. Глава вторая. Призываем экспертов в комментарии, оптимизируем код, ругаемся на кривые руки автора. Автор же, в свою очередь, делится своим опытом, читает умные комментарии, стремится дать те знания, за которыми он сидел ночами тем, кто их хочет найти.

31.08.2021    2018    ldmonster    4    

Взаимодействие с api Честный знак (Молочная продукция)

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    7008    user5300    58    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

WEB v8 УТ11 Бесплатно (free)

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    2431    greencactus    6    

Встраивание форм 1С на страницы сайта

WEB v8 1cv8.cf Бесплатно (free)

В платформе 8.3.16 появилась возможность выводить на страницах сайта информацию из веб-клиента 1С так, что пользователь даже не заметит, что работает с платформой. Руководитель компании Айтон Михаил Пинягин на онлайн-митапе «Web-клиенты для 1С» рассказал о том, какие особенности нужно учесть при настройке встраиваемого веб-клиента, и какие возможности он дает.

27.08.2021    5416    mikepin    9    

Гарри Поттер и подкапотное пространство веб-клиента

WEB v8 Бесплатно (free)

При разработке сайтов, интегрированных с 1С через HTTP-сервисы, приходится бороться с кодировками, искать производительные интерфейсные решения и задумываться над безопасностью. В ходе онлайн-митапа «Web-клиенты для 1С» Юрий Лазаренко показал на практике, как работает магия самодельного веб-клиента и как решать проблемы, возникающие при интеграции.

20.08.2021    4178    TitanLuchs    19    

Умная маршрутизация: кейс интеграции с 1С (часть 1)

WEB v8 Бесплатно (free)

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

18.08.2021    5385    greencactus    42    

Сравнительный анализ вариантов интеграции между системами

Файловые протоколы обмена (TXT, XML, DBF), FTP WEB v8 Бесплатно (free)

На Infostart Meetup «Интеграционные решения для 1С» выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами кейсами из собственной практики: какие интеграционные решения остаются актуальными до сих пор, а каких приемов стоит избегать – даже в безвыходных ситуациях.

30.07.2021    3249    SergeyN    1    

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика (Украина)

WEB v8 Украина Бесплатно (free)

Примеры вызова в 1С методов API до реестров открытой части Электронного кабинета налогоплательщика, Украина. Тестирование проводил на 1С:Предприятие 8.3 (8.3.10.2561).

28.07.2021    2370    Pervuy    5    

Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

WEB v8 ДО Бесплатно (free)

Статья - пример для разработчика, как можно, не используя подсистему Интеграция с Документооборотом, управлять процессами, а именно на нашем примере прерывать выполнение процессов в 1С: Документооборот. Используя данный пример, можно организовать http-сервис в любой конфигурации 1С, которая поддерживает механизм HTTP сервисов.

13.05.2021    3446    Flover    0    

Настраиваем авторизацию пользователей 1С через Okta

WEB v8 Бесплатно (free)

Чем больше в компании различных конфигураций и сервисов, тем актуальнее становится проблема единой системы авторизации single Sign-On. Его лидером практически безоговорочно считается Okta. Но на просторах интернета очень мало информации про интеграцию 1С с Okta через протокол OpenID Connect. Что ж, настало время восполнить недостающие пробелы и перевернуть эту печальную страницу в вашей истории

30.04.2021    5120    ripreal1    16    

Правила обмена больше не нужны

Внешние источники данных Обмен между базами 1C WEB Файловые протоколы обмена (TXT, XML, DBF), FTP v8 Бесплатно (free)

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    16236    Nikola23    40    

Альфа-Авто 5.0 и современные HTTP сервисы

WEB v8 1cv8.cf Автомобили, автосервисы УУ Бесплатно (free)

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

01.03.2021    1866    osivv    2    

Доступ из базы 1С к стандартному интерфейсу Odata базы 1С, в которой заведен пользователь

WEB v8 Россия Бесплатно (free)

Есть база, с пользователем/паролем, нужно подключиться к Odata из другой базы 1С, получить элементы справочника.

24.02.2021    1371    user823999    6    

Интеграция с API WB (Wildberries). Создание карточки товара (спецификации)

WEB v8 1cv8.cf ИТ-компания Россия Бесплатно (free)

Опыт интеграции с API WB (Wildberries), опыт создания карточки товара, получение токенов API WB.

18.01.2021    52091    jenyavp    67