Skip to content

mihpa/odata-1c-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OData 1С 8.3 PHP

Библиотека доступа к 1С:Предприятие 8.3 через протокол OData. Язык программирования PHP.

Официальная документация доступна по адресу, актуальная версия на момент публикации Платформа 1С:Предприятие 8.3.22.

Установка библиотеки через Composer

$ composer require mihpa/odata-1c-php

Использование библиотеки

Инициализация

use OData\Client\OdataConnection;

$client = new OdataConnection('http://<имя хоста OData>/<имя базы данных>/odata/standard.odata/');

// Если используется дайджест-проверки подлинности IIS
$client->setAuth('<имя пользователя>', '<пароль>');

// Если подключение должно происходить через прокси-сервер
$client->setProxy('<имя хоста прокси>', '<номер порта>');

// Если требуется увеличить время ожидания отклика (по умолчанию 300 секунд)
$client->setTimeout(600);

Получение информации

$customer = $client->{'Справочник/Контрагенты'}
    ->get('9ffb357b-8431-11ec-8105-005056baf506');

Использование фильтра

$documents = $client->{'Документ/ПоступлениеТоваровУслуг'}
    ->select([
        'Ref_Key',
        'DataVersion',
        'Number',
        'Date',
        'Posted',
        'ВидОперации',
        'Товары/Сумма',
        'Товары/СуммаНДС',
        'Услуги/Сумма',
        'Контрагент/Ref_Key',
        'Контрагент/Description',
        'ДоговорКонтрагента/Номер',
        'ДоговорКонтрагента/Дата',
    ])
    ->expand([
        'Контрагент',
        'ДоговорКонтрагента',
    ])
    ->filter('not (DeletionMark)')
    ->orderby('Date', 'desc')
    ->get();

Получение части информации

$documents = $client->{'Документ/ПоступлениеТоваровУслуг'}
    ->top(50)
    ->offset(200)
    ->get();

Создать

$customer = $client->{'Справочник/Контрагенты'}
    ->create(
        [
            'Description'=>'Тестовый контрагент',
        ]
    );

Изменить

$customer = $client->{'Справочник/Контрагенты'}
    ->update(
        [
            'Description'=>'Изменённый контрагент',
        ],
        'c70666f7-ae3a-11e5-80ce-005056baf506'
    );

Пометить на удаление

$customer = $client->{'Справочник/Контрагенты'}
    ->delete('c70666f7-ae3a-11e5-80ce-005056baf506');

Снять пометку на удаление

$customer = $client->{'Справочник/Контрагенты'}
    ->undelete('c70666f7-ae3a-11e5-80ce-005056baf506');

Удалить навсегда

$client->{'Справочник/Контрагенты'}
    ->deletePermanently('c70666f7-ae3a-11e5-80ce-005056baf506');

Провести

$document = $client->{'Документ/ПоступлениеТоваровУслуг'}
    ->post('08e15d09-d48e-11ed-a84a-0050569ad97e');

Отменить проведение

$document = $client->{'Документ/ПоступлениеТоваровУслуг'}
    ->unpost('08e15d09-d48e-11ed-a84a-0050569ad97e');