# 07. Кастомные таблицы

# Кастомные таблицы

*«После того, как бизнес-данные были централизованы и интегрированы, ценность базы данных больше, чем сумма ранее существовавших частей».*  
— Ларри Эллисон, основатель Oracle

---

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

**Кастомные таблицы от Metabot** — это альтернатива (или дополнение) к таким продуктам как Google Sheets, AirTable и Notion, созданное специально для разработки приложений с бизнес-логикой.

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

- Таблица пользователей для регистрации/авторизации и личного кабинета в мессенджере;
- Таблицы заявок или заказов, заполняемая ботом, как замена формы;
- Таблицы, представляющие операционную модель вашего бизнеса (ERP);
- Таблицы для учёта выдачи материалов на мероприятии.

Используя кастомные таблицы в сочетании с диалоговыми сценариями, JavaScript и API конструктором вы сможете создать фронтенд и бэкэнд, которая заменят вам мобильное приложение и серверный бэкэнд.

Таблицы незаменимы при реализации [глубоких интеграций](https://docs.metabot24.ru/books/metabot-platform/page/glubokaya-integraciya-veb-saita-s-cat-botom-dlya-messendzerov) мессенджеров в процессы предприятия, диалогового интерфейса к системам предприятия и диалогового подключенного опыта (CCX) — таблицы используются для хранения данных для синхронизации систем.

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

Если вам необходимо обратиться к таблицам Metabot из внешних систем, для этого вы можете создать [внутренние API эндпоинты](https://docs.metabot24.ru/books/metabot-platform/page/konstruktor-api).

С помощью плагина вы сможете расширить методы работы с таблицами, например, сделав прямые обращение к базе данных и вызов SQL.

<p class="callout info">Работа с SQL доступна на выделенном сервере и в on-premise коробочной версии.</p>

### Конструктор таблиц 

Конструктор таблиц находится в верхнем меню бота в разделе **Таблицы**:

[![Снимок экрана 2023-02-14 122655.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/8MXociXxAxPe3jef-snimok-ekrana-2023-02-14-122655.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/8MXociXxAxPe3jef-snimok-ekrana-2023-02-14-122655.png)

Он предназначен для работы с таблицами, например, для создания таблиц, их форматирования и удаления.

Для создания таблицы необходимо нажать кнопку **Создать**:

[![Снимок экрана 2023-02-14 123312.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/NfBZm8k4nJP4kOrd-snimok-ekrana-2023-02-14-123312.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/NfBZm8k4nJP4kOrd-snimok-ekrana-2023-02-14-123312.png)

В открывшемся окне **Создание таблицы** можно заполнить информацию о создаваемой таблице:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/l5WG2GvmOPRoxv1h-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/l5WG2GvmOPRoxv1h-image.png)

- **Активна** — если опция отключена, то просмотр и редактирование будут недоступны, также таблица будет скрыта из меню быстрого доступа;
- **Синхронизация структуры** — если опция отключена, то синхронизация структуры таблицы с базой данных (БД) не будет выполняться. Отключение опции используется когда все поля в БД создаются вручную;

<p class="callout info">Опция **Синхронизация структуры** доступна только администраторам платформы.</p>

- **Отображать в меню** — если данная опция включена, то таблица будет отображаться в выпадающем списке раздела **Таблицы** верхнего меню бота;
- **Наименование** — название таблицы, которое будет использоваться при обращении к ней методами;

<p class="callout warning">В имени таблицы можно указывать только латиницу (только нижний регистр), цифры и подчеркивание.</p>

- **Заголовок в интерфейсе** — название таблицы, которое будет отображаться в интерфейсе;
- **Комментарий** — пояснение к таблице;
- **JSON словарь** — JSON словарь используется для отображения данных, а также для построения форм редактирования данных. Генерируется автоматически при редактировании структуры таблицы или нажатии на кнопку "Обновить все поля" на странице списка таблиц.

После создания таблицы появляются функции ее редактирования, удаления, создания полей и их обновления в БД:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/e2vlcdX8SCAXahOn-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/e2vlcdX8SCAXahOn-image.png)

### Конструктор полей

Чтобы заполнить таблицу данными, нужно для начала создать ей соответствующие поля. Это можно сделать при помощи операции **Структура:**

[![Снимок экрана 2023-02-17 140114.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/zr5Uuwvedc6yoSKF-snimok-ekrana-2023-02-17-140114.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/zr5Uuwvedc6yoSKF-snimok-ekrana-2023-02-17-140114.png)

Первым полем любой таблицы всегда является ID строки. Это поле создается автоматически при создании таблицы и не подлежит удалению. По этому полю вы сможете идентифицировать отдельные строки таблицы, а также искать и редактировать записи через JS.

Остальные необходимые поля можно добавить щелкнув по кнопке **Создать:**

[![Снимок экрана 2023-02-14 125805.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/C4tNn50U3ljjIsB4-snimok-ekrana-2023-02-14-125805.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/C4tNn50U3ljjIsB4-snimok-ekrana-2023-02-14-125805.png)

В открывшемся окне **Создание поля** необходимо заполнить информацию о создаваемом поле:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/WTbEtAG0E11eICaG-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/WTbEtAG0E11eICaG-image.png)

- **Активно** — если опция отключена, то поле не будет доступно для просмотра и редактирования;
- **Наименование** — название поля, которое будет использоваться при обращении к нему методами;

<p class="callout warning">В имени поля можно указывать только латиницу (только нижний регистр), цифры и подчеркивание.</p>

- **Заголовок в интерфейсе** — название поля, которое будет отображаться в интерфейсе;
- **Тип** — тип данных поля; 
    - **Text** — строковый тип данных;
    - **TextArea** — строковый тип данных с возможностью переноса строк;
    - **Int** — числа в диапазоне **от -2 147 483 648 до 2 147 483 647**;
    - **Big\_Int** — числа в диапазоне **от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807**;
    - **Tiny\_Int** — числа в диапазоне **от -32768 до 32767**;
    - **Decimal** — числа с плавающей точкой;
    - **DateTime** — дата в формате **дд.мм.гггг --:--:--** ;
    - **Date** — дата в формате **дд.мм.гггг** ;
    - **Vector** — динамический массив;
    - **Created\_At** — дата и время создания (не редактируется);
    - **Updated\_At** — дата и время обновления (не редактируется);
    - **Deleted\_At** — дата и время удаления (не редактируется);
- **Обязательное поле** — если данная опция включена, то в поле не может быть задано значение NULL;
- **Значение по умолчанию** — предустановленное значение поля;
- **Размер** — максимальное количество символов в данном поле;
- **Точность** — количество символов в числе после точки;
- **Подсказка в интерфейсе** — подсказка отображаемая в интерфейса в режиме просмотра и редактирования данных;
- **Всплывающая подсказка в интерфейсе** — подсказка в интерфейсе, возникающая при наведении мышкой на знак вопроса рядом с полем.

[![Снимок экрана 2023-02-17 140408.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/TokxcPHpW8bPqh2y-snimok-ekrana-2023-02-17-140408.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/TokxcPHpW8bPqh2y-snimok-ekrana-2023-02-17-140408.png)

После создания и настройки всех ячеек таблицы можно провести обновление таблицы в базе данных платформы. Для это необходимо в конструкторе таблиц нажать **Обновить все поля в БД**:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/y76SklCjEPNSU5CZ-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/y76SklCjEPNSU5CZ-image.png)

Это синхронизирует и обновит таблицу в базе данных, а так же сгенерирует ее **JSON словарь** (Структуру таблицы).

<p class="callout info">На текущий момент, в качестве базы данных платформа Metabot поддерживает PostgreSQL.</p>

<p class="callout info">Формирование модели данных через текстовое описание мета-словаря на базе JSON в текущей версии не доступно. </p>

### Просмотр и редактирование данных

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

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/zKvTirgyrhbg46g1-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/zKvTirgyrhbg46g1-image.png)

[![Снимок экрана 2023-02-14 132358.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/ohTLPXVWZXYnATyk-snimok-ekrana-2023-02-14-132358.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/ohTLPXVWZXYnATyk-snimok-ekrana-2023-02-14-132358.png)

После этого нажмите на кнопку **Создать** и добавьте необходимые данные.

[![кт.png](https://docs.metabot24.ru/uploads/images/gallery/2024-07/scaled-1680-/rc4CMLgoz1f7pLpN-kt.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-07/rc4CMLgoz1f7pLpN-kt.png)

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/XnorGUNh0N0NPnep-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/XnorGUNh0N0NPnep-image.png)

После создания запись появится в таблице. Записи так же можно редактировать и удалять.

По итогу у вас получится таблица, которая может выглядеть, например, так:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-07/scaled-1680-/Odve8fKzykcGtqck-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-07/Odve8fKzykcGtqck-image.png)

<p class="callout info">Данная таблица **"Регионы"** будет использоваться для примеров использования методов в **Cправочнике функций JS**.</p>

### Фильтры

Для ID и всех кастомных полей таблиц предусмотрены фильтры. В зависимости от созданных полей таблицы, будут автоматически созданы фильтры в виде выпадающих списков.

При задании фильтров и нажатии на кнопку **Применить фильтр** будут выведены соответствующие записи в таблице:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2024-07/scaled-1680-/K9y1vRQzXIbTNYbz-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-07/K9y1vRQzXIbTNYbz-image.png)

<p class="callout info align-left">С кастомными таблицами так же можно работать с помощью JS методов. Все методы и их описание вы можете посмотреть в **[Справочнике по функциям JS](https://docs.metabot24.ru/books/07-spravocnik-po-funkciyam-js/page/spravocnik-vsex-funkcii-Cgt#bkmrk-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81%C2%A0:~:text=81%25C2%25A0-,%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%BC%D0%B8%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%D0%BC%D0%B8,-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B%20table "Справочник всех функций")**</p>

# Связи между таблицами

Представьте ситуацию: У вас есть интернет-магазин, и вам необходимо получить детальную информацию о заказе. Помимо базовых данных (таких как сумма и дата), вам нужны сведения о клиенте, товарах и их характеристиках. Раньше для этого требовалось писать сложные SQL-запросы или реализовывать дополнительную логику в коде.

Теперь в Metabot достаточно один раз настроить связи между сущностями через интерфейс. После этого вы можете обращаться к связанным данным в коде так же просто, как к обычным полям.

Преимущества такого подхода:

- Упрощение работы с данными за счет автоматизации связей.
- Минимизация ручного кодирования и SQL-запросов.
- Быстрый доступ к связанным данным через стандартные поля.

### Создание связи

Связи между таблицами создаются при помощи JOIN полей.

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

[![Без имени.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/BlcNctTATT5uU2D9-bez-imeni.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/BlcNctTATT5uU2D9-bez-imeni.png)

Существует два способа создания JOIN поля:

[![Без имени.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/KLNHumRuXUpSQ0sA-bez-imeni.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/KLNHumRuXUpSQ0sA-bez-imeni.png)

- Нажмите на любую из кнопок **Создать**. В открывшемся окне выберите тип поля **RELATION** и наименование связываемого поля.
- Нажмите на кнопу **+** напротив связываемого поля. Тип поля и наименование связываемого поля заполнятся автоматически.

[![Без имени.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/pXubpb9Jch39psda-bez-imeni.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/pXubpb9Jch39psda-bez-imeni.png)

Помимо уже названных полей в окне создания можно заполнить следующие поля:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/p11eCZN2ja6KgOzd-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/p11eCZN2ja6KgOzd-image.png)

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/JCL2sARNlNgktyzu-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/JCL2sARNlNgktyzu-image.png)

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/h8Zho6McVWzLPjJs-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/h8Zho6McVWzLPjJs-image.png)

- **Активно** — если опция отключена, то поле не будет доступно для просмотра и редактирования;
- **Наименование** — название поля, которое будет использоваться при обращении к нему методами;

<p class="callout warning">В имени поля можно указывать только латиницу (только нижний регистр), цифры и подчеркивание.</p>

<div class="pointer-container" id="bkmrk-%C2%A0"><div class="pointer anim is-page-editable"><svg class="svg-icon" data-icon="link" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg><div class="input-group inline block"> <button class="button outline icon" data-clipboard-target="#pointer-url" title="Копировать ссылку" type="button"><svg class="svg-icon" data-icon="copy" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></button></div><svg class="svg-icon" data-icon="edit" role="presentation" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"></svg></div></div>- **Заголовок в интерфейсе** — название поля, которое будет отображаться в интерфейсе;
- **Тип** — тип данных поля **RELATION**;
- **Обязательное поле** — если данная опция включена, то в поле не может быть задано значение NULL;
- **Связываемая таблица** — выпадающий список с кастомными таблицами бизнеса и доступными системными таблицами. Выбор таблицы из списка автоматически заполняет все остальные поля;
- **Алиас связываемой таблицы** — алиас необходим, так как в разных связываемых таблицах фигурируют одинаковые имена полей. Через него можно будет обращаться к полям связанной таблицы (алиас.поле);
- **Поле текущей таблицы** — имя связываемого поля текущей таблицы;
- **Поле связываемой таблицы** — поле по которому будет искаться соответствие с полем текущей таблицы;
- **Использовать данную связь при редактировании поля** — если опция включена, то при редактировании значения физического поля таблицы появляется выпадающий список со значениями из связанной таблицы;

<p class="callout warning">НЕ включайте опцию **Использовать данную связь при редактировании поля** для нескольких связей одного и того же поля текущей таблицы. НЕ включайте данную опцию для JOIN полей второго уровня, так как у такого поля нет физического поля, для его редактирования в текущей таблице.</p>

- **Отображаемое поле 1-3 связываемой таблицы** — имя поля которое тянется из связанной таблицы;
- **Заголовок отображаемого поля 1-3** — заголовок поля которое тянется из связанной таблицы;
- **Создавать внешний ключ для связи** — Foreign Key для связи таблиц;

<p class="callout warning">НЕ включайте опцию **Создавать внешний ключ для связи** для нескольких связей одного и того же поля текущей таблицы. НЕ включайте данную опцию для JOIN полей второго уровня.</p>

- **Действие при обновлении**: 
    - **Каскад** — автоматически обновлять ссылающиеся друг на друга записи в связанных таблицах;
    - **Запрет** — невозможно обновить запись в связанной таблице, если есть записи ссылающиеся на этот товар в другой таблице;
    - **Установить в NULL** — установить значение NULL при обновлении связанной записи;
- **Действие при удалении**: 
    - **Каскад** — автоматически удалять ссылающиеся друг на друга записи в связанных таблицах;
    - **Запрет** — невозможно удалить запись в связанной таблице, если есть записи ссылающиеся на этот товар в другой таблице;
    - **Установить в NULL** — установить значение NULL при удалении связанной записи;
- **Значение по умолчанию** — предустановленное значение поля;
- **Размер** — максимальное количество символов в данном поле;
- **Точность** — количество символов в числе после точки;
- **Подсказка в интерфейсе** — подсказка отображаемая в интерфейса в режиме просмотра и редактирования данных;
- **Всплывающая подсказка в интерфейсе** — подсказка в интерфейсе, возникающая при наведении мышкой на знак вопроса рядом с полем.

После заполнения всех обязательных полей (Наименование, Заголовок в интерфейсе, Связываемая таблица, Алиас, Поле связываемой таблицы) нажмите на кнопку **Сохранить**. Поле появится в таблице **Структура**.

<p class="callout info">Если вы хотите создать несколько связей с одной и той же таблицей, добавьте уникальное для таблицы число в алиасе. Например: leads, leads2...</p>

Записи в таблицах имеют кликабельные ссылки на записи, на которые они ссылаются. Поля с ссылками выделены синим цветом.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/V1Di4kh2MXzEDuE6-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/V1Di4kh2MXzEDuE6-image.png)

<p class="callout warning">При выключении активности физического поля, связанные с ним RELATION поля **продолжат отображаться** в данных таблицы.</p>

Так на скриншоте выше поле **Лид** содержит ссылку на соответствующую запись в системной таблице лидов, а поле **Название** ссылку на соответствующую запись о товаре.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/Kdrnq7WKsjTzQB9C-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/Kdrnq7WKsjTzQB9C-image.png)

При редактировании записи в ссылающейся таблице связанные поля изменяются с помощью выпадающих списков.

[![Без имени.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/K2bZ2UfQWYbF4enO-bez-imeni.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/K2bZ2UfQWYbF4enO-bez-imeni.png)

<p class="callout warning">Если что-то настроено некорректно, то при просмотре или редактировании записей таблицы может возникнуть ошибка 500. Попробуйте отключить лишние опции **Использовать данную связь при редактировании поля** и **Создать внешний ключ**, проверьте алиасы и имена полей. Если не получается исправить проблему, обратитесь в поддержку Metabot.</p>

### Уровни вложенности

Связанные поля имеют неограниченный уровень вложенности. Рассмотрим на примере:

- В таблице **orders** есть поле lead\_id;
- В той же таблице создается RELATION поле **lead** ссылающееся на таблицу **leads** поле **id**, которое обращается к leads.name и **leads.person\_id**;
- В той же таблице **orders** создается RELATION поле **person** ссылающееся на таблицу **person** поле **id** на основе подтянутого связанного поля **leads.person\_id**.

Так будут выглядеть настройки данного поля:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/a1W73MRUTFhlLPJK-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/a1W73MRUTFhlLPJK-image.png)

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

### Пример

1\. В вашем боте есть таблица заказов **orders**.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/cp4r7v8JIbf1v2A1-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/cp4r7v8JIbf1v2A1-image.png)

2\. Вам требуется узнать id персоны лида через эту таблицу. Чтобы это сделать можно связать поле **lead\_id** с системной таблицей лидов.

3\. Для этого создается JOIN поле **lead** с типом **RELATION** описывающее связь между полем **lead\_id** таблицы заказов и полем **id** в системной таблице лидов.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2025-04/scaled-1680-/cFqZB9oOBhwqG8B9-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2025-04/cFqZB9oOBhwqG8B9-image.png)

4\. Теперь при обращении из JS методов вы можете обратиться к данным лида напрямую из таблицы заказов.

<p class="callout info align-left">Со связываемыми полями так же можно работать с помощью JS методов. Все методы и их описание вы можете посмотреть в **[Справочнике по функциям JS](https://docs.metabot24.ru/books/07-spravocnik-po-funkciyam-js/page/spravocnik-vsex-funkcii-Cgt#bkmrk-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81%C2%A0:~:text=81%25C2%25A0-,%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%20%D1%81%20%D0%BA%D0%B0%D1%81%D1%82%D0%BE%D0%BC%D0%BD%D1%8B%D0%BC%D0%B8%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0%D0%BC%D0%B8,-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4%D1%8B%20table "Справочник всех функций")**</p>

# Инструкция по обновлению таблицы department

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

### 1. Обновление таблицы отделений

В данных таблицы **department** необходимо внести новые записи в случае изменений адресов, отделений или струк. подразделений.

Запись должна состоять из:

- **Отделения** - например, Врачебная амбулатория с.Наумовка.
- **Структурного подразделения** - например, Врачебные амбулатории.
- **Адреса** - например, Районная поликлиника.

<p class="callout warning">Адрес и структурное подразделение **не должно отличаться** по написанию от данных взятых в скрипте из кнопок. Следите за **лишними символами** (например, пробелы в конце строки) и правильностью написания.</p>

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2026-04/scaled-1680-/MLG51eSCzrioBRam-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2026-04/MLG51eSCzrioBRam-image.png)

### 2. Обновление Адреса

При добавлении нового Адреса его необходимо добавить в виде кнопки в Скрипт:

<p class="callout info align-left">[https://app.metabot24.com/menubuilder/46480](https://app.metabot24.com/menubuilder/46480)</p>

В Меню нажмите на кнопку **Добавить пункт меню**:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2026-04/scaled-1680-/hJT9lj4doNWZI65t-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2026-04/hJT9lj4doNWZI65t-image.png)

В открывшемся окне заполните **Код, ожидаемый в ответе пользователя** и **Подпись пункта меню**. Нажмите **Создать**.

У созданной кнопки нажмите на ссылку в поле скрипт.

В открывшемся скрипте создайте команды по кнопке **Добавить команду**:

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2026-04/scaled-1680-/2Tc5QRq1aQK0JtJS-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2026-04/2Tc5QRq1aQK0JtJS-image.png)

В команде **Выполнить JavaScript** напишите код:

```JavaScript
lead.setAttr('Адрес', "Название адреса");
```

**"Название адреса"** замените на адрес, который хотите добавить.

В команде **Выполнить скрипт** обязательно укажите скрипт **Выбор подразделения**.

### 3. Обновление Отделения

При добавлении нового Отделения его необходимо добавить в виде кнопки в Скрипт:

<p class="callout info align-left">[https://app.metabot24.com/menubuilder/60178](https://app.metabot24.com/menubuilder/60178)</p>

В **Меню** добавьте кнопку по аналогии с адресом. Дополнительно поставьте галочку возле **Использовать условие** и добавьте код:

```JavaScript
let tasks = table.find('department', [], [["adress", "=", lead.getAttr('Адрес')], ["structural_unit", "=", "Отделение"]]);

return tasks.length
```

**"Отделение"** замените на отделение, которое хотите добавить.

Перейдите по ссылке на кнопке и создайте команды по аналогии с адресом.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2026-04/scaled-1680-/U6oshNmvbHUR4IM8-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2026-04/U6oshNmvbHUR4IM8-image.png)

В команде **Выполнить JavaScript** напишите код:

```JavaScript
lead.setAttr('Структура', 'Отделение');
```

**"Отделение"** замените на отделение, которое хотите добавить.

В команде **Выполнить скрипт** обязательно укажите скрипт **Запрос отдела**.