maximal/1c-client-bank-exchange

A library for parsing 1C Client Bank Exchange format.

v1.0 2025-03-10 14:57 UTC

This package is auto-updated.

Last update: 2025-04-10 15:16:08 UTC


README

Эта PHP-библиотека разбирает файлы формата 1С для обмена банковской информацией: выписки со счёта, платёжные документы, инкассовые поручения и тому подобные документы.

Установка

Установка Композером:

composer require maximal/1c-client-bank-exchange

Пример использования

Базовый пример использования — в файле example.php:

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

use Maximal\ClientBankExchange1C\DocumentSection;
use Maximal\ClientBankExchange1C\Exceptions\EncodingException;
use Maximal\ClientBankExchange1C\Exceptions\UnreadableFileException;
use Maximal\ClientBankExchange1C\Parser;

$parser = new Parser();
try {
	$parser->loadFile(__DIR__ . '/Выписка.txt');
	// Или
	//$parser->loadDocument(file_get_contents(__DIR__ . '/Выписка.txt'));
} catch (EncodingException $exception) {
	// Ошибка декодирования файла из исходной кодировки во внутреннюю (UTF-8)
} catch (UnreadableFileException $exception) {
	// Файл недоступен для чтения
}

if ($parser->parse()) {
	// Дата и время создания выписки
	var_dump($parser->getRootSection()->getCreationTime());
	foreach ($parser->getRootSection()->getSections() as $section) {
		if ($section instanceof DocumentSection) {
			// Тип документа (DocumentType, string)
			var_dump($section->getType());
			var_dump($section->getTypeName());
			// Номер документа (string)
			var_dump($section->getNumber());
			// Дата документа (DateTimeImmutable)
			var_dump($section->getDate());
			// Дата списания (DateTimeImmutable)
			var_dump($section->getWithdrawalDate());
			// Назначение платежа (string)
			var_dump($section->getPaymentPurpose());
			// Сумма в копейках (fixed point, int)
			var_dump($section->getAmountFixed());
			// Сумма в рублях (floating point)
			var_dump($section->getAmountFloat());
		}
	}
} else {
	// Ошибка разбора файла
	var_dump($parser->getLineNumber());
	var_dump($parser->getState());
}

Автор