# Работа с таблицами MaviBot

## Создать новую запись в таблице со указанными значениями

Создать новую запись в таблице со указанными значениями.

new\_record(table\_id, data)

<table><thead><tr><th width="188.26171875">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td>table_id </td><td>ID таблицы</td></tr><tr><td>data</td><td>словарь с данными для записи.<br><br>Пример: {"column_name1": "value1", "column_name2": "value2"}. Если столбца не существует, он создаётся.</td></tr></tbody></table>

Ответ: ID новой записи

### Пример

<div data-with-frame="true"><figure><img src="/files/801c98052f3566ec6671a2cf2cc8a2ceaee4bf3b" alt="" width="563"><figcaption></figcaption></figure></div>

## Редактировать существующую запись в таблице

edit\_record(table\_id, record\_id, data)

<table><thead><tr><th width="304.22265625">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td>table_id</td><td>ID таблицы</td></tr><tr><td>record_id</td><td>ID редактируемой записи</td></tr><tr><td>data</td><td>словарь с данными для редактирования. Пример: {"column_name1": "value3", "column_name2": "value4"}. Если столбца не существует, он НЕ создаётся.</td></tr></tbody></table>

Ответ:

Возвращает все данные отредактированной записи в формате: {"column\_name1": "value3", "column\_name2": "value4"}.

### Пример

<div data-with-frame="true"><figure><img src="/files/dc4593b1886dfc8cbda0ae19dec6eab658904eb0" alt="" width="563"><figcaption></figcaption></figure></div>

## Удалить запись из таблицы по её ID

delete\_record(table\_id, record\_id)

<table><thead><tr><th width="298.4140625">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td>table_id</td><td>ID таблицы</td></tr><tr><td>record_id</td><td> ID удалённой записи</td></tr></tbody></table>

Ответ:

{'message': 'Удалённые записи: 1'}

## Найти запись в таблице по указанному значению

find\_record(table\_id, value, find\_in, return\_from)

<table><thead><tr><th width="304.22265625">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td>table_id</td><td>ID таблицы</td></tr><tr><td>value</td><td>значение для сопоставления</td></tr><tr><td>find_in - </td><td>необязательный параметр. Название столбца, по которому выполнять поиск. Если не указано, поиск будет выполняться по всем столбцам.</td></tr><tr><td>return_from</td><td>необязательный параметр. Название столбца, из которого нужно вернуть значение.</td></tr></tbody></table>

Ответ:

Если return\_from указан, будет возвращено значение из указанного столбца (если он существует в таблице). Если return\_from не указан или столбца не существует, в ответе будут возвращены все данные найденной записи, например: {"column\_name1": "value3", "column\_name2": "value4"}.

### Пример

<div data-with-frame="true"><figure><img src="/files/c0bd4bc748093a16b85ed1f1c0cb7644e99f43e9" alt=""><figcaption></figcaption></figure></div>

## Получение значения из указанной записи

get\_record\_data(table\_id, record\_id)

<table><thead><tr><th width="298.4140625">Параметры</th><th>Описание</th></tr></thead><tbody><tr><td>table_id</td><td>ID таблицы</td></tr><tr><td>record_id</td><td>ID записи, из которой извлекаются значения</td></tr><tr><td>return_column</td><td>необязательный параметр. Название столбца, из которого нужно вернуть значение.</td></tr></tbody></table>

Ответ: если запись найдена, возвращается словарь вида {"column\_name1": "value1", "column\_name2": "value2"}. Если указан параметр return\_column и такой столбец существует, будет возвращено только значение из этого столбца.

### Где найти ID таблицы?

<div data-with-frame="true"><figure><img src="/files/4529890de924bbba357cb1df47ec843b4658ec4b" alt="" width="220"><figcaption></figcaption></figure></div>

Чтобы работать с функциями чат-бота, вам понадобится ID таблицы. Найдите нужную таблицу в списке и нажмите на неё.

<div data-with-frame="true"><figure><img src="/files/5a6203665a87033f539e7dad8ba55861bfa9ee3a" alt=""><figcaption></figcaption></figure></div>

Затем нажмите на адресную строку.

В адресной строке вы увидите URL вида&#x20;<https://salebot.pro/projects/11111/table/2>,&#x20;где можно найти ID нужной таблицы:

<div data-with-frame="true"><figure><img src="/files/a15c5d60b75a5c9488a90ebd32b241484cd219dd" alt="" width="563"><figcaption></figcaption></figure></div>

## Получение записи из таблицы

get\_records\_from\_table(table\_id, start\_row, count, start\_col, end\_col) - получение записи из таблицы.

| Параметр   | Описание                                                                        | Примечание                                                                                   |
| ---------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| table\_id  | ID таблицы                                                                      |                                                                                              |
| start\_row | Необязательный параметр, целое число. Указывает начало диапазона строк.         | Номер строки, с которой начинать чтение (включительно). Указывайте без кавычек.              |
| count      | Необязательный параметр, целое число. Указывает количество строк для получения. | По умолчанию значение равно 1000, максимум — 5000. Указывайте без кавычек.                   |
| start\_col | Необязательный параметр, строка. Указывает начало диапазона столбцов.           | Название столбца, с которого начинать чтение (включительно). Указывайте в кавычках.          |
| end\_col   | Необязательный параметр, строка. Указывает конец диапазона столбцов.            | Название столбца, до которого читать значения таблицы (включительно). Указывайте в кавычках. |

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

### Пример

В блоке, где нужно получить записи из таблицы, перейдите в **«Калькулятор»** раздел в настройках блока и укажите функцию с нужными параметрами.

Давайте посмотрим, как данные отображаются в таблице.

<div data-with-frame="true"><figure><img src="/files/7ebaa46657f375100c2d0ca1c4d377b0a72f8637" alt=""><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/a4b9df36841a1f471cf1690549c15c23da1b4088" alt="" width="563"><figcaption></figcaption></figure></div>

Теперь запустите блок "Старт" в тестовом режиме.

<div data-with-frame="true"><figure><img src="/files/3acde13cec706aabd4a9529cc75859f9f2c708a3" alt="" width="375"><figcaption></figcaption></figure></div>

Мы видим данные, которые были записаны в переменную из таблицы, в сообщении, отправленном ботом. Поскольку мы обратились к переменной в сообщении с помощью `#{}` синтаксиса, данные, сохранённые в ней, были отображены в чате бота.

<div data-with-frame="true"><figure><img src="/files/a7405184e08ade0f8c6d24eadd96d877b8d05234" alt="" width="563"><figcaption></figcaption></figure></div>

## Получение данных из таблицы в указанном диапазоне

table\_read\_cells(table\_id, cell\_data) - позволяет получать данные из таблицы, указывая диапазоны.

<table><thead><tr><th width="286.37890625">Параметр</th><th>Описание</th></tr></thead><tbody><tr><td><mark style="color:красный;"><strong>!</strong></mark> table_id</td><td>обязательный параметр, ID таблицы</td></tr><tr><td><mark style="color:красный;"><strong>!</strong></mark> cell_data</td><td>обязательный параметр, словарь с диапазонами.<br><strong>cell_data</strong> пример: <code>'{"a1":"a1", "a3": "b4", "c1": "c3"}'</code></td></tr></tbody></table>

Если во время запроса не возникло проблем, ответом будет словарь, содержащий статус и все ячейки со значениями:

`{"status": true, "A1": "value", "A3": "value", "B3": "value", "A4": "value", "B4": "value", "C1": "", "C2": "value", "C3": "ddddddd"или, в случае ошибки: {"status": false, "err": "Сообщение или описание ошибки"}`

### Пример в калькуляторе

Например, ячейки таблицы содержат следующие указанные значения:

<div data-with-frame="true"><figure><img src="/files/05238ea8a6b458efa70fc397f45e2cf6367ac22a" alt="" width="563"><figcaption></figcaption></figure></div>

Чтобы получить данные из таблицы через бота, передайте нужные диапазоны в функции в **Калькуляторе**.

<div data-with-frame="true"><figure><img src="/files/56d04186ad927f17ba24ae30046cd874ff519963" alt="" width="563"><figcaption></figcaption></figure></div>

В примере конструкция #{res}, которая хранит переменную, помогает показать в сообщении данные, полученные с помощью функции и указанного диапазона:

<div data-with-frame="true"><figure><img src="/files/68d1bcda7179caa3e6e4e22df5e886a0e8f96028" alt="" width="563"><figcaption></figcaption></figure></div>

Если названия столбцов разные (например, "Product", "Number", "Amount"), необходимо указать диапазон в формате {"Product1":"Amount3"}, где:

• **Product** — это название первого столбца\
• **1** означает, что это столбец номер 1\
• **Сумма** — это название третьего столбца\
• **3** означает, что это столбец номер 3

<div data-with-frame="true"><figure><img src="/files/047ae58467a8d2c85bb844d6ace74ea51df01e13" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/ad969bc213643d863dbb23330935a4bfd37331d7" alt="" width="563"><figcaption></figcaption></figure></div>

<div data-with-frame="true"><figure><img src="/files/574104e0fcfb0402a1f1ecb87fd9cb89eff98199" alt="" width="563"><figcaption></figcaption></figure></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/doc/ru/chatbot/functions/kalkulyator/tables.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
