Вы ведёте учёт в сервисе МойСклад и хотите строить отчёты на основе данных? Данные из МойСклад можно забирать в Power BI, Excel или базу данных по API. Разберём два способа - выбор зависит от объёма данных.
Небольшие данные удобно тянуть прямо в Power BI или Excel через Power Query - без установки коннекторов. Для полноценной загрузки больших объёмов в базу данных (ClickHouse, PostgreSQL, MySQL) есть Python-библиотека morin. Оба способа бесплатны.
Получение токена МойСклад
И для Power Query, и для Python нужен access-токен. Его можно сгенерировать в профиле МойСклад или получить по логину и паролю: пара ЛОГИН:ПАРОЛЬ переводится в кодировку base64 (например, на этом сайте) и отправляется в запросе на токен. Полученный access_token сохраните - им и будем пользоваться.

Небольшие данные: Power Query в Power BI и Excel
Раньше мы раздавали коннектор отдельным файлом (.mez). Теперь проще: код запроса вставляется прямо в Power Query, ставить ничего не нужно, и он работает как в Power BI, так и в Excel.
[TGBLOCK]
Особенность МойСклад - огромное число разных таблиц (товары, контрагенты, заказы, отгрузки, отчёты по остаткам и прибыли и так далее). Все они получаются одинаково, меняется только конец URL. Создайте пустой запрос, откройте «Расширенный редактор» и вставьте код, подставив свой токен и нужный путь:
let
token = "ВАШ_ACCESS_ТОКЕН",
// конец нужного URL из справки МойСклад (например, отчёт по остаткам):
path = "report/stock/all",
url = "https://api.moysklad.ru/api/remap/1.2/" & path,
resp = Json.Document(Web.Contents(url,
[Headers = [#"Authorization" = "Bearer " & token]])),
rows = resp[rows],
table = Table.FromList(rows, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
table
Какой путь подставить в path, смотрите в справке МойСклад: найдите нужный отчёт и возьмите часть URL после https://online.moysklad.ru/api/remap/1.2/ (например, entity/product, entity/customerorder, report/stock/all).

МойСклад отдаёт данные вложенной структурой - даже в развёрнутой таблице встречаются вложенные списки и строки. Разворачивайте столбцы стрелочками в шапке, но не тратьте время на те, что не нужны в итоговом отчёте. Сначала проведите тестовую детализацию и посмотрите, что внутри.
Один запрос отдаёт до 1000 строк. Если данных больше, листайте страницы через параметры limit и offset в URL (например, ?limit=1000&offset=1000). Когда строк становятся десятки тысяч, перебирать их в Power Query долго - тут удобнее сразу грузить в базу через Python (ниже).

Полная загрузка в базу данных: Python-библиотека morin
Для больших объёмов и автоматического ежедневного сбора данные из МойСклад лучше грузить в базу. Для этого есть бесплатная Python-библиотека morin - она забирает данные в ClickHouse, PostgreSQL или MySQL, сама листает все страницы и создаёт таблицы.
pip install morinСоздаём коннектор с access-токеном и перечисляем нужные отчёты через запятую. База выбирается одним параметром subd:
from morin import MSKLDbyDate
ms = MSKLDbyDate(
subd='clickhouse', # или 'postgresql' / 'mysql'
host='localhost', port='8123',
username='default', password='', database='moysklad',
add_name='account1',
token='ВАШ_ACCESS_ТОКЕН',
start='2025-01-01', backfill_days=3,
reports='entity_product,entity_customerorder,report_stock_all',
)
ms.collecting_manager()Коннектор МойСклад умеет десятки отчётов: справочники (entity_product - товары, entity_counterparty - контрагенты, entity_customerorder - заказы, entity_demand - отгрузки и другие), отчёты по остаткам (report_stock_all), прибыли (report_profit_byproduct), деньгам и оборотам, а также аудит. morin сама пролистывает все страницы, так что объём не ограничен 1000 строк, как в Power Query.
Все коннекторы, отчёты и ссылки собраны на странице коннекторов, а сама библиотека - на GitHub.