PHPackages                             bonditka/export1c - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. bonditka/export1c

ActiveYii2-extension[Parsing &amp; Serialization](/categories/parsing)

bonditka/export1c
=================

Generator Xml for 1c.

015PHP

Since May 17Pushed 8y ago1 watchersCompare

[ Source](https://github.com/bonditka/yii2-export1c)[ Packagist](https://packagist.org/packages/bonditka/export1c)[ RSS](/packages/bonditka-export1c/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Экспорт документов из Yii2 в 1с через формат EnterpriseData ("Универсальный формат обмена 1с")
==============================================================================================

[](#экспорт-документов-из-yii2-в-1с-через-формат-enterprisedata-универсальный-формат-обмена-1с)

Модуль позволяет генерировать xml файлы с описанием документов через формат [EnterpriseData](http://v8.1c.ru/edi/edi_app/enterprisedata/). Более детальное описание формата обмена можно почитать [на сайте 1с](http://v8.1c.ru/edi/edi_stnd/enterprisedata/1.0/).

На данный момент реализована генерация для следующих документов:

- [Реализация товаров и услуг](http://v8.1c.ru/edi/edi_stnd/enterprisedata/1.0/#00000000054)
- [Поступление товаров и услуг](http://v8.1c.ru/edi/edi_stnd/enterprisedata/1.0/#00000000075)

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

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

Предпочтительный вариант установки через [composer](http://getcomposer.org/download/).

Чтобы установить, выполните следующую команду:

```
php composer.phar require --prefer-dist bonditka/export1c "*"

```

или добавьте

```
"bonditka/export1c": "*"

```

в блок require вашего `composer.json` файла.

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

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

Для передачи данных в модуль используются dto модели. Для всех документов обязательны следующие поля:

```
'companyInfo' => [
	'name' => 'Lorem name',
	'nameShort' => 'Lorem name short',
	'nameFull' => 'Lorem name full',
	'inn' => 'Lorem inn',
	'kpp' => 'Lorem kpp',
	'formOrganization' => 'Lorem formOrganization'
],
'partnerInfo' => [
	'name' => 'Lorem name',
	'nameShort' => 'Lorem name short',
	'inn' => 'Lorem inn',
	'kpp' => 'Lorem kpp',
	'formOrganization' => 'Lorem formOrganization'
],
'counterparty' => [
	'name' => 'Lorem name',
	'nameShort' => 'Lorem name short',
	'inn' => 'Lorem inn',
	'kpp' => 'Lorem kpp',
	'formOrganization' => 'Lorem formOrganization'
],
'tableItems' => [
	[
		'name' => 'Lorem name',
		'code' => 'Lorem code',
		'unitCode' => 'Lorem unitCode',
		'quantity' => 2,
		'amount' => 150,
		'price' => 75,
		'vat' => 18,
		'vatAmount' => 27
	],
	[
		'name' => 'Lorem name',
		'code' => 'Lorem code',
		'unitCode' => 'Lorem unitCode',
		'quantity' => 2,
		'amount' => 150,
		'price' => 75,
		'vat' => 18,
		'vatAmount' => 27
	],
]
```

Для документа ПоступлениеТоваровУслуг дополнительно необходимо передать:

```
'documentNumber' => [
	'number' => 'Lorem number',
	'date' => 'Lorem date'
],
'store' => [
	'name' => 'Lorem name',
	'typeStore' => 'Lorem name short',
]
```

Для документа РеализацияТоваровУслуг:

```
'companyAccountant' => [
	'fio' => 'Lorem fio',
	'birthDay' => 'Lorem birthDay',
	'inn' => 'Lorem inn',
],
'companyBank' => [
	'accountNumber' => 'Lorem accountNumber',
	'bik' => 'Lorem bik',
	'korrAccount' => 'Lorem korrAccount',
	'name' => 'Lorem name'
],
'companyHead' => [
	'fio' => 'Lorem fio',
	'birthDay' => 'Lorem birthDay',
	'inn' => 'Lorem inn',
],
'releaseProduced' => [
	'fio' => 'Lorem fio',
	'birthDay' => 'Lorem birthDay',
	'inn' => 'Lorem inn',
]
```

Нужную dto модель можно сгенерировать из массива через соответствующий конструктор:

```
//для документа ПоступлениеТоваровУслуг
$documentDto = new dto\DocumentDto($arData);

//для документа РеализацияТоваровУслуг
$documentDto = new dto\SellingDto($arData);
```

Для генерации всего документа нужно вызвать метод `addDocument`. Так же существует возможность сгенерировать только шапку (метод `addDocumentHeader`) и только табличную часть документа (метод `addDocumentTable`). Когда нужная dto модель сформирована, запустить генерацию xml можно через специальный сервис:

```
$action = 'addDocument';

$generatorService = new GeneratorDocumentService($dto);
$response = $generatorService->run($action, $param);

//проверка ответа на наличие ошибок
if($response->hasError()){
  print_r($response->getErrors());
}
```

Или напрямую через модель:

```
$documentDto = new dto\DocumentDto($arData);

$generator = new GeneratorDocument();
$generator->setParam($param);

$generator->addDocumentTable($documentDto->tableItems);
```

В массиве `$param` можно передать дополнительные парметры выполнения. На данный момент обрабатывается только один элемен данного массива с ключом `filePath`, в котором должен содердаться путь до выходного xml-файла.

Тестирование
------------

[](#тестирование)

Запускать тесты можно следующими командами:

```
vendor/bin/codecept build
vendor/bin/codecept run
```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity6

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/302c045959300f3edeb2a851cab7a4da24274c16b6aa1fc189aef84461be2cfb?d=identicon)[bonditka](/maintainers/bonditka)

---

Top Contributors

[![bonditka](https://avatars.githubusercontent.com/u/14823173?v=4)](https://github.com/bonditka "bonditka (2 commits)")

### Embed Badge

![Health badge](/badges/bonditka-export1c/health.svg)

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

###  Alternatives

[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[opis/closure

A library that can be used to serialize closures (anonymous functions) and arbitrary data.

2.6k230.0M284](/packages/opis-closure)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M229](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M65](/packages/sabberworm-php-css-parser)[michelf/php-markdown

PHP Markdown

3.5k52.4M345](/packages/michelf-php-markdown)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)

PHPackages © 2026

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