---
# System prepended metadata

title: алгоритм генерации агрегирующего кода

---

# алгоритм генерации агрегирующего кода

Для генерации кодов используется [UUIDv1](https://en.wikipedia.org/wiki/Universally_unique_identifier).
При этом в параметр Node при генерации необходимо вносить ЕДРПУ предприятия дополненый любой информацией.
К примеру:

JavaScript:
```javascipt
const { v1: uuidv1 } = require("uuid");
// import { v1 as uuidv1 } from 'uuid';

const v1options = {
  node: [0x01, 0x04, 0x35, 0x88, 0x81, 0x45] // ⇨ ЕДРПУ: 43588145, упаковка = 0
};
uuidv1(v1options); // ⇨ 'bb0b27b0-d4bd-11eb-b5bb-010435888145'
```

При передаче данных в НСИТ на стороне НСИТ производится верификация ЕДРПУ (таким образом мы проверяем что контрагент имеет право генерации агергирующего кода).

Внтури UUID так же содержится метка времени
![https://www.uuidtools.com/api/decode/bb0b27b0-d4bd-11eb-b5bb-010435888145](https://i.imgur.com/L1ntScz.png)
[Пример расшифровки кода](https://www.uuidtools.com/api/decode/bb0b27b0-d4bd-11eb-b5bb-010435888145)

НСИТ принимает для активации метки времени не старше 5и дней.

Внутри НСИТ данные из UUID должны быть разнесены для поиска отдельно по ЕДРПУ  и времени.

Байт предшествующий ЕДРПУ используется для указания уровня агрегации
- 0: упаковка
- 1: ящик
- 2: поддон
- 3: палета
- 4: контейнер
- 5: зарезервированно
- 6: зарезервированно
- 7: зарезервированно
- 8: зарезервированно
- 9: зарезервированно

Свободная часть Node (2 байта) может быть использованна производителем по своему усмотрению (для идентификации склада или любой другой внутренней информации) и игнорируется НСИТ.

Агрегирующий код наносится на упаковку в формате [CODE 128](https://en.wikipedia.org/wiki/Code_128)
![пример](https://i.imgur.com/R8WKCEk.png)
[пример генератора](https://cloudzz-barcode-generator.herokuapp.com/?bcid=code128&text=bb0b27b0-d4bd-11eb-b5bb-010435888145&includetext=true)




