PHPackages                             alex8bits/exchange1c - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. alex8bits/exchange1c

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alex8bits/exchange1c
====================

Catalog Loader from 1c - CommerceML protocol

2.1.3(2mo ago)1891MITPHPPHP &gt;=8.0

Since Mar 31Pushed 2mo agoCompare

[ Source](https://github.com/alex8bits/exchange1c)[ Packagist](https://packagist.org/packages/alex8bits/exchange1c)[ Docs](https://github.com/alex8bits/exchange1c)[ RSS](/packages/alex8bits-exchange1c/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (7)Dependencies (11)Versions (15)Used By (1)

PHP exchange1c - обмен 1С предприятие с сайтом на php
=====================================================

[](#php-exchange1c---обмен-1с-предприятие-с-сайтом-на-php)

[![Packagist](https://camo.githubusercontent.com/eaccbc0fe8a03b836410043292131257aafc59643217060ae7e4493c5d648be6/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f616c65786e736b38332f65786368616e676531632e7376673f7374796c653d666c61742d737175617265)](LICENSE)[![Packagist](https://camo.githubusercontent.com/fc2cc1b804a63ab608b45fefa8b01172c758a3c5cce4c99cf62bfccdd1ac5169/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616c65786e736b38332f65786368616e676531632e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bigperson/exchange1c)[![Packagist](https://camo.githubusercontent.com/1e3f48c7dce9396bca5f48d0cf43edfa4f02b453360b09ce50b9b4450caf7c18/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616c65786e736b38332f65786368616e676531632e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/bigperson/exchange1c)

Установка этой библиотеки, должна упрощать интеграцию 1С в ваш сайт.

Библиотека содержит набор интерфейсов, которые необходимо реализовать, чтобы получить возможность обмениваться товарами и документами с 1С. Предполагается, что у Вас есть 1С:Предприятие 8, Управление торговлей", редакция 11.3, версия 11.3.2 на платформе 8.3.9.2033.

Если у вас версия конфигурации ниже, то скорее всего библиотека все равно будет работать, т.к. по большей части, обмен с сайтами сильно не меняется в 1С от версии к версии.

Данная библиотека была написана на основе модуля  - все основные интерфейсы взяты именно из этого модуля.

Зависимости
===========

[](#зависимости)

- php ^8.0
- alex8bits/commerceml
- illuminate/contracts ^10|^11|^12
- symfony/http-foundation ^7.2

Установка
=========

[](#установка)

`composer require alex8bits/exchange1c`

Использование с Laravel
=======================

[](#использование-с-laravel)

Пакет поддерживает Laravel Package Discovery. После установки через Composer `Exchange1CServiceProvider` подключится автоматически — биндинги `AuthServiceInterface`, `ModelBuilderInterface` и `EventDispatcherInterface` будут зарегистрированы без каких-либо дополнительных действий.

В конфиге укажите данные для авторизации и классы моделей:

```
$configValues = [
    'import_dir' => storage_path('1c_exchange'),
    'auth' => [
        'login'    => 'admin',
        'password' => 'secret',
        'custom'   => false,
    ],
    'use_zip'    => false,
    'file_part'  => 0,
    'models'     => [
        \Bigperson\Exchange1C\Interfaces\GroupInterface::class   => \App\Models\Category::class,
        \Bigperson\Exchange1C\Interfaces\ProductInterface::class => \App\Models\Product::class,
        \Bigperson\Exchange1C\Interfaces\OfferInterface::class   => \App\Models\Offer::class,
    ],
];
$config = new \Bigperson\Exchange1C\Config($configValues);
```

Получите `CatalogService` из контейнера (Laravel разрешит все зависимости автоматически):

```
app()->bind(\Bigperson\Exchange1C\Config::class, fn() => $config);

$catalogService = app(\Bigperson\Exchange1C\Services\CatalogService::class);
```

Если вам нужно переопределить реализацию любого интерфейса (например, использовать собственный `AuthService`), добавьте биндинг в `AppServiceProvider`:

```
$this->app->bind(
    \Bigperson\Exchange1C\Interfaces\AuthServiceInterface::class,
    \App\Services\MyCustomAuthService::class
);
```

Использование без Laravel (ручная сборка)
=========================================

[](#использование-без-laravel-ручная-сборка)

```
require_once './../vendor/autoload.php';

$configValues = [
    'import_dir' => '1c_exchange',
    'auth' => [
        'login'    => 'admin',
        'password' => 'admin',
        'custom'   => false,
    ],
    'use_zip'    => false,
    'file_part'  => 0,
    'models'     => [
        \Bigperson\Exchange1C\Interfaces\GroupInterface::class   => \App\Models\Category::class,
        \Bigperson\Exchange1C\Interfaces\ProductInterface::class => \App\Models\Product::class,
        \Bigperson\Exchange1C\Interfaces\OfferInterface::class   => \App\Models\Offer::class,
    ],
];
$config      = new \Bigperson\Exchange1C\Config($configValues);
$request     = \Symfony\Component\HttpFoundation\Request::createFromGlobals();
$dispatcher  = new \Your\EventDispatcher\Implementation(); // реализует EventDispatcherInterface
$modelBuilder = new \Bigperson\Exchange1C\ModelBuilder();

$authService     = new \Bigperson\Exchange1C\Services\AuthService($config);
$loaderService   = new \Bigperson\Exchange1C\Services\FileLoaderService($config);
$categoryService = new \Bigperson\Exchange1C\Services\CategoryService($config, $dispatcher, $modelBuilder);
$offerService    = new \Bigperson\Exchange1C\Services\OfferService($config, $dispatcher, $modelBuilder);
$catalogService  = new \Bigperson\Exchange1C\Services\CatalogService($config, $authService, $loaderService, $categoryService, $offerService);

$mode = $request->get('mode');
$type = $request->get('type');

try {
    if ($type === 'catalog') {
        if (!method_exists($catalogService, $mode)) {
            throw new \Exception('not correct request, mode=' . $mode);
        }
        $body     = $catalogService->$mode($request);
        $response = new \Symfony\Component\HttpFoundation\Response($body, 200, ['Content-Type', 'text/plain']);
        $response->send();
    } else {
        throw new \LogicException(sprintf('Logic for type "%s" not implemented', $type));
    }
} catch (\Exception $e) {
    $body  = "failure\n";
    $body .= $e->getMessage() . "\n";
    $body .= $e->getFile() . "\n";
    $body .= $e->getLine() . "\n";

    $response = new \Symfony\Component\HttpFoundation\Response($body, 500, ['Content-Type', 'text/plain']);
    $response->send();
}
```

Более подробную информацию по интерфейсам и их реализациям можно найти в документации

Лицензия
========

[](#лицензия)

Данный пакет является открытым кодом под лицензией [MIT license](LICENSE).

###  Health Score

42

—

FairBetter than 89% of packages

Maintenance85

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 54.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~31 days

Recently: every ~25 days

Total

13

Last Release

79d ago

Major Versions

0.1 → 1.0.02025-04-03

v1.x-dev → 2.0.02025-12-26

PHP version history (2 changes)0.1PHP &gt;=7.1

1.0.0PHP &gt;=8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e3120e863bbd80929049bebf81511da3d053c7675b4f161db6efcae2dbe81f8?d=identicon)[alex8bits](/maintainers/alex8bits)

---

Top Contributors

[![alex8bits](https://avatars.githubusercontent.com/u/15152675?v=4)](https://github.com/alex8bits "alex8bits (20 commits)")[![bigperson](https://avatars.githubusercontent.com/u/4757391?v=4)](https://github.com/bigperson "bigperson (8 commits)")[![burcev-alex](https://avatars.githubusercontent.com/u/11717148?v=4)](https://github.com/burcev-alex "burcev-alex (4 commits)")[![skv12](https://avatars.githubusercontent.com/u/33741240?v=4)](https://github.com/skv12 "skv12 (4 commits)")[![Serokuz22](https://avatars.githubusercontent.com/u/54354622?v=4)](https://github.com/Serokuz22 "Serokuz22 (1 commits)")

---

Tags

commerceml1c1c-exchange1c-php

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alex8bits-exchange1c/health.svg)

```
[![Health](https://phpackages.com/badges/alex8bits-exchange1c/health.svg)](https://phpackages.com/packages/alex8bits-exchange1c)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[illuminate/config

The Illuminate Config package.

10943.9M2.4k](/packages/illuminate-config)[illuminate/pipeline

The Illuminate Pipeline package.

9348.3M267](/packages/illuminate-pipeline)[illuminate/reflection

The Illuminate Reflection package.

372.9M7](/packages/illuminate-reflection)[illuminate/process

The Illuminate Process package.

44813.9k96](/packages/illuminate-process)[bigperson/exchange1c

Catalog Loader from 1c - CommerceML protocol

396.6k4](/packages/bigperson-exchange1c)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
