2017 © Pedro PelΓ‘ez
 

library odata-1c

ODATA protocol client adopted to use with 1C

image

kilylabs/odata-1c

ODATA protocol client adopted to use with 1C

  • Sunday, March 25, 2018
  • by kilylabs
  • Repository
  • 3 Watchers
  • 11 Stars
  • 266 Installations
  • PHP
  • 1 Dependents
  • 0 Suggesters
  • 6 Forks
  • 2 Open issues
  • 3 Versions
  • 38 % Grown

The README.md

odata-1c

OData ΠΊΠ»ΠΈΠ΅Π½Ρ‚ для 1C, (*1)

ДокумСнтация 1Π‘ для интСрфСйса OData: https://its.1c.ru/db/v838doc#bookmark:dev:TI000001358, (*2)

Установка

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹ΠΉ способ установки Ρ‡Π΅Ρ€Π΅Π· Composer:, (*3)

$ composer require kilylabs/odata-1c

ИспользованиС

Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

<?php

use Kily\Tools1C\OData\Client;

require __DIR__.'/vendor/autoload.php';

$client = new Client('http://HOSTNAME/BASE/odata/standard.odata/',[
    'auth' => [
        'YOUR LOGIN', 
        'YOUR PASSWORD'
    ],
    'timeout' => 300,
]);

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· 1Π‘

<?php

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· справочника "НомСнклатура" 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();

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘

<?php

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ 
$data = $client->{'Catalog_НомСнклатура'}->create([
    'Артикул'=>'CERTANLY_NONEXISTENT',
    'Description'=>'test test test nonexistent',
]);

// ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ID созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
echo $data->getLastId()

ОбновлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² 1Π‘

<?php

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ· 1Π‘

<?php
// ΠŸΠΎΠΌΠ΅Ρ‚ΠΊΠ° Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅
$data = $client->{'Catalog_НомСнклатура'}->update('40366f94-cded-11e6-e880-00155dd9fc47',{
    'DeletionMark'=>true,
});

// ПолноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ объСка ΠΈΠ· 1Π‘ (я Π±Ρ‹ Π½Π΅ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ...)
$data = $client->{'Catalog_НомСнклатура'}->delete('40366f94-cded-11e6-e880-00155dd9fc47');

ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π° провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²

<?php
// ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
$data = $client->{'Document_АктВыполнСнныхРабот'}->id("40366f94-cded-11e6-e880-00155dd9fc47")->post();

// ΠžΡ‚ΠΌΠ΅Π½Π° провСдСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
$data = $client->{'Document_АктВыполнСнныхРабот'}->id("40366f94-cded-11e6-e880-00155dd9fc47")->unpost();

TODO

  • ~~ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ getLastId();~~
  • ~~fluent интСрфСйс~~
  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° XML?

The Versions

25/03 2018

dev-master

9999999-dev

ODATA protocol client adopted to use with 1C

  Sources   Download

MIT

The Requires

 

by Alexander Bogdanov

odata 1c 1Б 1c enterprise 8.3 1с enterprise 8.3

25/03 2018

0.2

0.2.0.0

ODATA protocol client adopted to use with 1C

  Sources   Download

MIT

The Requires

 

by Alexander Bogdanov

odata 1c 1Б 1c enterprise 8.3 1с enterprise 8.3

27/12 2016

0.1

0.1.0.0

ODATA protocol client adopted to use with 1C

  Sources   Download

MIT

The Requires

 

by Alexander Bogdanov