Вы находитесь на странице: 1из 10

Все потоки Разработка Администрирование Дизайн Менеджмент Маркетинг Научпоп Войти Регистрация

156,04
Рейтинг

Lamoda
Russian Fashion Tech

victor_2004 12 марта 2020 в 11:30

DataMatrix или как правильно маркировать обувь


Блог компании Lamoda, IT-стандарты, Инженерные системы

С 1 июля 2019 года в России введена обязательная маркировка группы товаров. С 1 марта 2020 года под этот закон должна была
попасть обувь. Не все успели подготовиться, и в результате запуск перенесли на 1 июля. Lamoda среди тех, кто успел.

Поэтому мы хотим поделиться опытом с теми, кому еще только предстоит маркировать одежду, шины, парфюм и т.д. В статье
описан ряд отраслевых стандартов, некоторая нормативная документация и личный опыт. Статья предназначена в первую
очередь для интеграторов и разработчиков, которым только предстоит разбираться в этом проекте.

Обратите внимание, что нормативная база часто меняется, и у автора нет возможности постоянно обновлять материал. Поэтому
к моменту прочтения часть информации может уже устареть.

Личный опыт получен автором как в рамках работы по проекту Datamatrix в Lamoda, так и при разработке собственного
бесплатного приложения для маркировки BarCodesFx.

С 1 июля 2019 года в России действует закон об обязательной маркировке. Закон распространяется не на все группы товаров, и
сроки вступления в силу обязательной маркировки для товарных групп различаются. Сейчас под обязательную маркировку
попадают табак, шубы, обувь, лекарства. В ближайшее время будет вводиться для шин, одежды, духов и велосипедов. Каждая
группа товаров регулируется отдельным постановлением правительства (ППР). Поэтому некоторые утверждения, правильные
для обуви, могут быть неправильными для других групп товаров. Но можно надеяться, что техническая составляющая не будет
сильно варьироваться для разных товарных групп.

Маркировка

Общепринятые термины и понятия

УОТ — участник оборота товаров.


ЦРПТ — центр развития перспективных технологий. Частная компания, единственный гос. подрядчик по проекту маркировки.
Работает по схеме государственного частного партнерства (ГЧП). Информации о других участниках тендера по проекту, как и
собственно о самом тендере, к сожалению, нет.
ТГ — товарная группа. Обувь, одежда, шины и т.д.
GTIN — по сути, артикул с учетом цвето-размера. Выдается в GS1 или нацкаталоге для каждого импортера или производителя на
его товар. Предварительно производитель или импортер должен описать этот товар.
ППР — постановление правительства РФ. Для обуви — 860.
КМ — код маркировки. Уникальный набор символов, присвоенный конкретной единице товара. Для обуви состоит из GTIN,
серийного номера, кода проверки и криптохвоста.
GS1 — международная организация, выдающая GTIN-ы. Так же составители ряда стандартов по маркировке.
Нацкаталог — аналог GS1, разработанный ЦРПТ.
Криптохвост — аналог цифровой подписи, подтверждающий легальность КМ. Обязательно должен быть в датаматриксе на
марке. Хранение в текстовом виде запрещено. После распечатывания марки должен быть удален согласно договору с ЦРПТ. Не
известно ни одного случая реального использования.
СУЗ — станция управления заказами. Система, в которой заказываются КМ-ы для товара.
ЭДО — электронный документооборот.
УКЭП — усиленная квалифицированная электронная подпись.

Термины и понятия в рамка данной статьи

ЧЗ — честный знак.
ЛК — личный кабинет.
Марка — напечатанный код маркировки.

Процесс выглядит следующим образом: вначале участник (УОТ) выпускает электронную подпись (УКЭП), регистрируется в
честном знаке (ЧЗ), описывает товар в нацкаталоге или GS1, получает GTIN-ы на товар. На сайте честного знака эти шаги
подробно расписаны, поэтому на них останавливаться не будем.

Заказ и получение кодов

После получения GTIN-ов участник (УОТ) делает заказ кодов (КМ) в системе СУЗ.
Важно, но не очевидно.

1. В одном заказе можно запросить коды максимум для 10 GTIN-ов. В принципе, непонятное ограничение. Импортеру с 14 000
GTIN-ами приходится создавать 1400 заказов.

2. В одном заказе можно запросить максимум 150 000 кодов.

3. Есть ограничение на 100 заказов в работе. То есть одновременно в обработке может быть не более 100 заказов. Если будет
более 100, то API начнет возвращать ошибку вместо списка заказов. Единственный способ устранить эту ошибку — закрыть
часть заказов через веб интерфейс. В API не предусмотрено параметра для частичного отображения заказов.

4. Есть лимит по количеству обращений — не более 10 запросов в секунду. По моим данным в документах это ограничение не
фигурирует, но оно есть.

Из личного опыта работы с заказами кодов маркировки КМ через API системы СУЗ.

1. Запрос (сам json) необходимо подписывать ГОСТ-овской подписью. Это работа с криптопро. Надо внимательно следить,
чтобы используемый фреймворк или библиотека ни на байт не изменили изначальный json. Иначе подпись сразу перестает
быть валидной.

2. Подпись заказа. Заказ может быть подписан любой подписью, любого клиента. Если подпись валидна, то система СУЗ ее
примет. При интеграции удалось подписывать запрос чужой подписью, выпущенной на тестовом УЦ. Боевой контур СУЗ-а
заказ обработал и выпустил коды. На мой взгляд, это дыра в безопасности. На баг-репорт разработчики отреагировали
“посмотрим”. Надеюсь, исправили.

Поэтому будьте крайне внимательны, если на одном рабочем месте работает более одного юр. лица. Сегодня СУЗ примет
эти запросы, а завтра запросы перепроверят и отзовут половину кодов из-за чужой подписи. И в принципе, формально
будут правы.

3. Автоподписание заказов — это функционал более недоступный в СУЗ. Для его работы требовалось загружать закрытую
часть ключа в личном кабинете честного знака. Это является компрометацией ключа. И согласно действующему
законодательству, в случае компрометации усиленной квалифицированной электронной подписи владелец должен
проинформировать свой удостоверяющий центр (УЦ) и отозвать УКЭП. Если этот функционал будут возвращать, то
внимательно следите, чтобы закрытая часть ключа не покидала компьютер.
4. В феврале центр развития перспективных технологий (ЦРПТ) молча ввел ограничение на количество запросов к API СУЗ. Не
более одного запроса в секунду. Потом так же неожиданно и молча это ограничение снял. Поэтому рекомендую заложить в
систему возможность ограничивать количество запросов к API ЦРПТ на случай рецидива. Сейчас есть информация о лимите
в 10 запросов в секунду.

5. Также в феврале без предупреждения значительно изменилось поведение API СУЗ. В API есть запрос на получение статуса
заказов. В статусе указывались буферы и их состояние. Один GTIN = один буфер. Там же указывалось, сколько кодов
доступно для получения из буфера. В один прекрасный день у всех буферов количество стало -1. Пришлось через
отдельный метод опрашивать состояние каждого буфера по отдельности. Вместо одного запроса пришлось делать
одиннадцать.

Структура кодов

Итак, коды заказаны и сгенерированы. Их можно забрать через api в текстовом виде, в pdf как этикетки для печати и как csv
файл с текстом.

Про API уже было написано выше. Что касается двух других способов. Изначально СУЗ позволял забрать коды только один раз.
И если забирался pdf файл, то получить коды в текстовом виде можно было только пересканировав все датаматриксы из pdf. К
счастью, добавили возможность несколько раз забирать коды, и эта проблема решилась. В течение двух дней коды еще
доступны для повторного скачивания.

Если забираете в csv формате, то никогда, ни при каких обстоятельствах, не открывайте его в экселе. И никому не разрешайте. В
экселе есть функция автосохранения. В момент сохранения эксель может самым непредсказуемым образом видоизменить ваши
коды. Рекомендую использовать notepad++ для просмотра кодов.

Если открыть файл из СУЗ в notepad++, можно увидеть строки такого вида. Третий код — невалидный (у него отсутствуют
разделители GS).

Партнеры передавали нам коды для маркировки своего товара. Невооруженным взглядом видно, какие файлы формировались с
помощью экселя — до 5% кодов были невалидны.

Настоятельно рекомендую почитать про стандарты GS1. В описании стандарта есть ответы на многие вопросы по
формированию DataMatrix.

Код идентификации состоит из GTIN и серийного номера. Согласно стандарту GS1 им соответствуют идентификаторы
применения (ИП) 01 и 21. Обратите внимание, идентификаторы применения не являются частью GTIN и серийного номера. Они
указывают, что после идентификатора применения (ИП) идет GTIN или серийный номер. Это особенно важно при
программировании кассового ПО. Для заполнения тега 1162 нужны именно GTIN и серийный номер, без идентификаторов
применения.

Для УПД (универсального передаточного документа) и прочих документов, наоборот, чаще всего нужна запись целиком с
идентификаторами применения.

В стандарте GS1 прописано, что GTIN имеет фиксированную длину в 14 знаков и может состоять только из цифр. Серийный
номер имеет переменную длину и описан на 155 странице стандарта. Там же есть ссылка на таблицу с символами, которые могут
встречаться в серийном номере.

Так как серийный номер имеет переменную длину, то разделитель GS указывает на его окончание. В таблице ASCII у него код 29.
Без этого разделителя ни одна программа не поймет, в какой момент закончился серийный номер, и начались другие группы
данных.

Более подробно про код маркировки (КМ) можно прочитать в официальной документации.

Для обуви серийный номер зафиксирован в 13 знаков, однако, его размер могут в любой момент изменить. Для других товарных
групп (ТГ) длина серийного номера может отличаться.

Генерация DataMatrix

Следующий шаг — это преобразование данных в DataMatrix код. В постановлении правительства РФ 860 указан ГОСТ, согласно
которому необходимо формировать DataMatrix. Так же в ППР 860 указано обязательное использование идентификаторов
применения. Обратите внимание, что в стандарте DataMatrix нет понятия «идентификаторы применения». Они есть только в
стандарте GS-1 DataMatrix. Выходит, что ППР 860 неявным образом обязывает использовать именно GS-1 DataMatrix. К счастью,
стандарты похожи. Основное различие: в GS-1 DataMatrix первый символ должен быть FNC1. Символ GS не должен стоять на
первом месте в DataMatrix, только FNC1.

FNC1 нельзя просто взять и добавить в строку как GS. Его должна добавлять программа, генерирующая DataMatrix. На ресурсах
Альянс Форты выложено несколько мобильных приложений, с помощью которых можно проверить правильность
сгенерированных DataMatrix кодов.

Важно. Приложение честный знак принимает невалидные DataMatrix. Даже QR-коды. Тот факт, что марка распозналась и
информация о товаре отобразилась, не является показателем, что DataMatrix сформирован правильно. Даже при замене
криптохвоста приложение ЧЗ распознало марку и отобразило данные по товару.

Позже ЧЗ выпустили пояснение, как правильно генерировать коды. Из-за большого числа кодов с ошибками они признали коды
без FNC1 валидными, но, все-таки, рекомендуют генерировать GS-1 DataMatrix.

К сожалению, достаточно большой процент датаматриксов от партнеров приходил с ошибками. Благодаря пояснениям от ЧЗ
был полностью решен вопрос “Можно ли торговать таким товаром после 1 июля или нет?”. Спойлер — можно.

Печать

Обратите внимание на способ печати марок. При печати на термопринтере марка быстро выцветает, и этот товар уже нельзя
продавать. Нечитаемая марка — это нарушение ППР 860. Что ведет к изъятию товара, штрафам, уголовной ответственности.

Используйте термотрансферную печать. В этом случае марка не так сильно подвержена выцветанию. От материала этикетки
также зависит, насколько марка подвержена механическим повреждениям. Если код не считывается из-за механического
повреждения, это равносильно отсутствию марки со всеми вытекающими последствиями.

Выбирайте принтер из планируемых объемов печати. Настольные принтеры не рассчитаны на печать 100 000 этикеток в день.

Остановка и старт печати повышают износ принтера. Некоторые программы отправляют задание на печать по одной этикетке.
Такими программами лучше не пользоваться.

Работа с документами

После того как марки распечатаны и наклеены, все дальнейшие операции с ними происходят через документы или личный
кабинет честного знака.

При работе с большим количеством кодов можно создавать xml файлы, в которых будут требуемые коды, и загружать эти файлы
через API или веб интерфейс личного кабинета.

XSD схему можно скачать в разделе “помощь” в ЛК ЧЗ.

Обратите внимание на следующие моменты.

1. Xsd схемы в ЛК ЧЗ содержат ошибки в валидации ИНН и ограничения на длину строки. Только исправив ошибки, можно
пользоваться схемами. К счастью, ошибки очевидные, поэтому это сделать не сложно.

2. Схема чаще всего состоит из двух частей — общая для всех типов документов и отдельная для конкретного типа. Общая
схема добавлена через импорт в конкретную. Обе схемы размещены в разделе помощь в ЛК ЧЗ.

3. Правила экранирования для КМ отличатся от общепринятых для XML, об этом написано в официальной документации от
ЧЗ, обратите на это внимание. Вот здесь на 4 странице все правила.

4. Не следует пытаться ввести 150 000 кодов в оборот одним файлом. Со слов очевидцев файлы более 30 000 обычно
проходят..

5. Xml файл могут завернуть с ошибкой “ошибка валидации xml”, а через пять минут тот же файл принять без проблем.

6. Если в файле оказывается уже введенный в оборот код, то файл ввода в оборот, скорее всего, не примут.
7. Документы отгрузки и приемки используются как временное решение. В дальнейшем их планируют упразднить и перейти
на УПД согласно ППР 860.

8. Миф про 60 дней. Ходит мнение, что не введенные в оборот коды «сгорают» через 60 дней. Это миф, источник неизвестен.
Коды «сгорают», только если вы не забрали их из СУЗ в течение 60 дней. Срок жизни забранных кодов не ограничен.

Заключение

При разработке моего бесплатного приложения для маркировки BarCodesFX, изначально была сделана интеграция с API СУЗ.
Когда честный знак второй раз неожиданно изменил логику работы API, от интеграции пришлось отказаться. Надеюсь, в
дальнейшем ЧЗ удастся стабилизировать разработку и API, т.к. для некоммерческого продукта мне очень затратно каждый день
перепроверять, не было ли изменений в API, и оперативно дорабатывать.

При внедрении маркировки внимательно ознакомьтесь с нормативной документацией по вашей товарной группе ТГ, правильно
печатайте GS1-DataMatrix и будьте готовы к любым непредвиденным изменениям со стороны честного знака ЧЗ.

Альянс Форта создал информационное пространство (вики, чаты в телеграмме, семинары, вебинары), где вы можете найти
полезную и актуальную информацию по маркировке во всех отраслях.

Теги: datamatrix, ЦРПТ, маркировка обуви, обязательная маркировка

Хабы: Блог компании Lamoda, IT-стандарты, Инженерные системы

+21 32 9,9k 20 Поделиться

Lamoda
Russian Fashion Tech

9,0 0,0
Карма Рейтинг

Виктор @ victor_2004
Программист

Сайт Сайт

ПОХОЖИЕ ПУБЛИКАЦИИ

12 сентября 2019 в 11:51

PHP-библиотеки для e-commerce: работа с АТОЛ и Payture, парсинг кодов GS1 и другие задачи

+32 4,3k 52 8

Комментарии 20

Newm 12 марта 2020 в 12:43 0

У знакомых по факту комиссионка. Продают в том числе и обувь (специфическую, по РФ, ну в пределах 3 пар определенного цвета и
размера, чаще вообще по одной паре). С трудом представляю для них получение GTIN и как вообще им что-то разруливать. Где-то
можно почитать по теме, как разруливать тему не крупняку, а самой-самой мелочевке?

jh0ns0n 18 августа 2020 в 14:38 0

про аптеки почитайте, сейчас часть лекарств маркируют

hjornson 12 марта 2020 в 13:53 +3

Пособие «как надо заниматься никому не нужной херней», издание второе, дополненное…
Fragster 12 марта 2020 в 14:50 0

Из многих инициатив много извлечь выгоду, а это — далеко не самое вредное. Например по гарантийным возвратам можно найти
накосячившего, подбить статистику по ним, внедрить KPI. Есть знакомые производства (не обуви, более дорогих и больших штук) чуть
ли не в каждое изделие по своей инициативе nfc метки ставят, как раз для этих целей.

hjornson 12 марта 2020 в 15:39 +1

"… а с маянезиком ничего так", доооо.

Fragster 12 марта 2020 в 15:49 0

Отслеживание каждой единицы подакцизного товара пока единственный путь к закрытию неоплаты акцизов. Если у вас есть
способ получше (ну, кроме отмены акцизов :) я-то вообще за единый налог в 1-1.5% на любой перевод внутри страны кроме
платежей в/из гос органы, отмены налички и всех остальных налогов), опишите его.
Ну а то, что можно либо стенать, либо извлечь пользу — факт. Сами затраты на маркировку на фоне цены изделия незаметны.

hjornson 12 марта 2020 в 17:58 0

я-то вообще за единый налог в 1-1.5% на любой перевод внутри страны… отмены налички

А, подкулачник обыкновенный. «Потратим рубль на то чтобы собрать копейку, но новую яхту премьеру купим»?

Fragster 12 марта 2020 в 18:52 0

«Потратим рубль на то чтобы собрать копейку, но новую яхту премьеру купим»?

Нет. Прочитайте еще раз мой ответ. Напишите, как по вашему обеспечить собираемость акцизов без сквозного учета от
станка до кассы.
Попробуйте еще раз прочитать "… я-то вообще за единый налог в 1-1.5%..." в контексте того, что будет, если отменить все
налоги кроме единого, что будет, если отменить наличку, насколько проще администрироавть эти налоги, сколько можно
сократить персонала (и с той и с другой стороны) и т.п. Попробуйте покопаться в первоисточниках и понять, зачем
вообще нужны налоги (возможно это будет неожиданностью, но не для яхт премьеру или кому либо ещё).

Больше всего, повторюсь, меня интересует ваш способ обеспечения собираемости акцизов для подакцизных товаров.

victor_2004 12 марта 2020 в 19:14 0

Ну, по поводу

Сами затраты на маркировку на фоне цены изделия незаметны.

производители тапочек для отелей с вами не согласятся.


Они их по 10 р. штука продают. А маркировать так же обязаны

keydon2 12 марта 2020 в 15:51 0

Вы подменяете понятия. Внедрять серийники и раньше никто не мешал. Новая обязанность в этом никак на помогает.
Выгоду конечно уже извлекли и извлекут, но севсем не те о ком вы пишите.

victor_2004 12 марта 2020 в 17:02 +1

Лично мое мнение — один из самых больших плюсов маркировки — создание нац каталога. Когда бухгалтерские системы
проведут с ним интеграцию, то это будет прямо прорыв при работе с первичкой. Когда номенклатурные справочники разных
организаций начнут наконец-то совпадать.

bopoh13 12 марта 2020 в 16:24 0


Если забираете в csv формате, то никогда, ни при каких обстоятельствах, не открывайте его в экселе. И никому не разрешайте. В
экселе есть функция автосохранения. В момент сохранения эксель может самым непредсказуемым образом видоизменить ваши
коды.

Это ложь. Попробовал в Excel 2010 [функция СИМВОЛ(29) и обратная КОДСИМВ()], сохранил в CSV, открыл в Excel, пересохранил в
XLSX. Скопировал данные, вставил в Word. Проверил через поиск «подстановчных знаков» [аналогично оператору Like в VB(A)], и
Group Separator 0x1D на месте.
[!^0009^0013^0032\!^0034-^0062\?\@A-Z\[\\\]^0094-^0096a-z^0123-^0126Ё^0171ё^0187А-я]

victor_2004 12 марта 2020 в 17:12 0

Ну, вам виднее. Откройте csv файл экселем, а потом в csv же и сохраните. Повторите 10 000 раз на 100 разных компьютерах с
разными версиями экселя, винды, разными настройками локализации, разными настройками одной и той же версии экселя.

После этого возвращайтесь и мы с вами снова обсудим эту тему. А пока ваша выборка не репрезентативна.

Самые частые проблемы это не потеря GS, а задвоение кавычек, потеря точек с запятой и появление точки с запятой в конце строки.

Alexufo 13 марта 2020 в 05:58 0

В Экселе проблема по-моему только с ведущими нулями. Он применяет свое авто форматирование. А для воспроизведения
вашей проблемы следует приложить файл, чтобы не ссылаться на чью то нерепрезентативность.

bopoh13 13 марта 2020 в 16:32 0

Странно ожидать репрезентативность имея на входе разные настройки. Вот почему потерялся GS.

Все частые проблемы описаны коллегами в статье. И тостер.ру открыт для технических вопросов.

Fagot78 13 марта 2020 в 08:18 +1

ЦРПТ очень вежливо поставил людей на бабки. Заказали большое кол-во кодов на маркировку остатков. Срок внедрения системы
перенесли на 01.07. Казалось бы, коды есть, время есть. Надо сейчас выгрузить коды из «Честного знака» и загрузить их в свою учетную
систему. А вот нифига. Коды не выгружаются ни в pdf, ни в csv. При этом никаких сообщений об ошибке. Техподдержка отвечает, что
«коды-то вы заказали, а вот их печать (сиречь и выгрузка с „Честного знака“) с 01.03 платная. 65 копеек за штуку.
В законе, на мой взгляд, нет никаких оснований для платной печати кодов, заказанных до 01.03 (п.49, абзац 5):
»Предоставление участникам оборота обувных товаров, осуществляющим маркировку средствами идентификации обувных товаров,
введенных в оборот до 1 марта 2020 г., кодов маркировки остатков обувных товаров, необходимых для формирования средств
идентификации, осуществляется оператором информационной системы мониторинга бесплатно."

victor_2004 13 марта 2020 в 09:31 0

На сколько я помню стоимость кода 50 коп., НДС это еще 10. Итого 60, а не 65.

Если вы не согласны с действиями ЦРПТ, то вы можете подать на них в суд.

Вы, как юридическое лицо, заключили договор с другим юридическим лицом (ЦРПТ).

Вы считаете, что требованин оплаты услуг вашим контрагентом противоречит действующему законодательству. Если контрагент с
вами не согласен, то на мой взгляд вопрос должен решаться в судебном порядке.

Fagot78 16 марта 2020 в 09:13 0

Все это справедливо при одном условии. если бы я мог вместо ЦРПТ выбрать другую компанию или осуществлять деятельность
без неё. Ни того, ни другого я сделать не могу. ЦРПТ мне навязан.

victor_2004 16 марта 2020 в 10:22 0

Про навязанность ЦРПТ — это отдельная тема для разговора. Здесь все-таки техническая часть обсуждается. И факт
монополизма ЦРПТ не лишает вас возможности подать против них иск за нарушение условий договора.

Не исключено, что в ближайшее время доработают схему и будет как с ОФД. Инфраструктура едина — в случае ОФД все чеки в
итоге сливаются в налоговую. А вот поставщики — разные.
Здесь могут сделать нечто аналогичное — коды смогут выпускать и спецоператоры (ЭДО, ОФД), но все операции с кодами
будут храниться в мастер-системе ЦРПТ. На мой взгляд такая схема работы оптимальнее текущей.

victor_2004 18 августа 2020 в 13:54 0

По поводу ограничений на ввод в оборот от техподдержки была такая информация:

При подаче сведений о вводе товаров в оборот путем формирования документа в ручном режиме в личном кабинете ГИС МТ
невозможно указать более 1524 кодом маркировки, при необходимости возможно сформировать несколько документов.

Ограничения по размеру на загрузочные файлы форматов csv/xml:

Ввод в оборот (ГИС МТ):


xml — при вводе в оборот остатков товара ограничение: 45 000 КМ или 130 000 строк, файл до 3 Мб.
xml — при вводе в оборот товаров, произведенных в РФ ограничение: 14 000 КМ или 110 000 строк, файл до 4 Мб.
xml — при вводе в оборот товара, ввезенного в РФ ограничение: 14 000 КМ или 100000 строк, файл до 4 Мб.
csv: при вводе в оборот товара, ввезенного в РФ рекомендованное ограничение: 150000 КМ.

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

САМОЕ ЧИТАЕМОЕ

Сутки Неделя Месяц

Август-2020 в Беларуси с точки зрения данных

+75 43,3k 37 168

Думал, что добьюсь большего к своим 35

+71 50,6k 137 244

Как мы внедрили скрытие аккаунтов в Telegram или #ДуровДобавьДвойноеДно

+98 19,8k 61 95

Сколько зарабатывают IT-шники в Великобритании и сколько при этом тратят

+21 21,1k 78 322

Новые форматы онлайн-конференций и возрождение офлайна

Мегапост

Ваш аккаунт Разделы Информация Услуги

Войти Публикации Устройство сайта Реклама

Регистрация Новости Для авторов Тарифы

Хабы Для компаний Контент

Компании Документы Семинары

Пользователи Соглашение Мегапроекты

Песочница Конфиденциальность Мерч


© 2006 – 2020 «Habr» Настройка языка О сайте Служба поддержки Мобильная версия

Вам также может понравиться