PHP code example of vilkoz / odata-1c

1. Go to this page and download the library: Download vilkoz/odata-1c library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

vilkoz / odata-1c example snippets




use Kily\Tools1C\OData\Client;

/BASE/odata/standard.odata/',[
    'auth' => [
        'YOUR LOGIN', 
        'YOUR PASSWORD'
    ],
	'timeout' => 300,
]);



// Получение всех объектов из справочника "Номенклатура" 1С
$data = $client->{'Catalog_Номенклатура'}->get()->values();
var_dump($data);
/*
array(1) {
  [0]=>
  array(105) {
    ["Ref_Key"]=>
    string(36) "3ca886b6-aabd-11e7-1a8d-021c5dd9fc20"
    ["Description"]=>
    string(51) "ПАЛЬТО ПУХ ЖЕН HATANGA V2 БОРДО 46"
,,,
*/

// Получение всех объектов с проверкой ошибок
$data = $client->{'Catalog_Номенклатура'}->get();
if(!$client->isOk()) {
    var_dump('Something went wrong: ',$client->getHttpErrorCode(),$client->getHttpErrorMessage(),$client->getErrorCode(),$client->getErrorMessage(),$data->toArray());
    die();
}
var_dump($data->values());

// Получение по UUID (ID или Ref_Key)
$data = $client->{'Catalog_Номенклатура'}->get("40366f94-cded-11e6-e880-00155dd9fc47")->first();
$data = $client->{'Catalog_Номенклатура'}->id("40366f94-cded-11e6-e880-00155dd9fc47")->get()->first();

// Получение по фильтру
$data = $client->{'Catalog_Номенклатура'}->get("Артикул eq 'АРТ-1'")->values();
$data = $client->{'Catalog_Номенклатура'}->filter("Артикул eq 'АРТ-1'")->get()->values();

// Получение вместе с дополнительной информацией
$data = $client->{'Catalog_Номенклатура'}->expand('Производитель,Марка')->get()->values();
$data = $client->{'Catalog_Номенклатура'}->expand('ВидНоменклатуры')->get()->values();

// Ограничение по количеству в запросе
$data = $client->{'Catalog_Номенклатура'}->top(10)->get()->values();



// Создание 
$data = $client->{'Catalog_Номенклатура'}->create([
    'Артикул'=>'CERTANLY_NONEXISTENT',
    'Description'=>'test test test nonexistent',
]);

// Получение ID созданного объекта
echo $data->getLastId()



// Обновление
$data = $client->{'Catalog_Номенклатура'}->update('40366f94-cded-11e6-e880-00155dd9fc47',[
    'Description'=>'Test description',
]);


// Пометка на удаление
$data = $client->{'Catalog_Номенклатура'}->update('40366f94-cded-11e6-e880-00155dd9fc47',{
    'DeletionMark'=>true,
});

// Полное удаление объека из 1С (я бы не стал использовать...)
$data = $client->{'Catalog_Номенклатура'}->delete('40366f94-cded-11e6-e880-00155dd9fc47');


// Проведение
$data = $client->{'Document_АктВыполненныхРабот'}->id("40366f94-cded-11e6-e880-00155dd9fc47")->post();

// Отмена проведения документа
$data = $client->{'Document_АктВыполненныхРабот'}->id("40366f94-cded-11e6-e880-00155dd9fc47")->unpost();