Настольные базы данных · 6 экранов · таблицы, запросы, формы, отчёты, схема данных, внешние СУБД
BS-01 Таблица (режим таблицы)
Файл .mbx — это SQLite с служебными таблицами. Слева область навигации по объектам (таблицы, запросы, формы, отчёты), в центре таблица «Клиенты» с подстановкой «Менеджер», внизу навигатор записей.
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локальноАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыПоляТаблица⌄ Свернуть ленту
▦Таблица✎Конструктор
Режимы
📋Вставить
ВырезатьКопироватьФормат по образцу
Буфер обмена
По возрастаниюПо убываниюУдалить сортировку
⏷Фильтр
Выделение ▾Дополнительно ▾Применить фильтр
Сортировка и фильтр
+Создать💾Сохранить✕Удалить∑Итоги
Обновить всеОрфографияДополнительно ▾
Записи
🔍Найти
ЗаменитьПерейти ▾Выделить ▾
Найти
Carlito11
ЖКЧ
A▇≡≣▦↕
Форматирование текста
Все объекты Base«
🔍 Поиск объектов
▾Таблицы
▦ Клиенты
▦ Заказы
▦ Позиции заказа
▦ Товары
▦ Менеджеры
⛓ customers (PostgreSQL)
▾Запросы
⧉ Заказы за месяц
⧉ Должники
⧉ Продажи по городам (перекрёстный)
▾Формы
▭ Клиенты
▭ Заказ
▭ Главное меню
▾Отчёты
▤ Продажи по менеджерам
▤ Этикетки (адреса клиентов)
▤ Счёт на оплату
▸Скрипты
▦ Клиенты ✕▦ Заказы▭ Заказ⧉ Должники
ID ▴
Название
ИНН
Город ⏷
Менеджер ▾
Телефон
E-mail
Статус
Создан
1001
ООО «Северсталь-Трейд»
7805123456
Санкт-Петербург
Ирина Климова
+7 (812) 320-11-02
sales@sstrade.ru
Активен
12.01.2024
1002
ИП Соколов И. В.
781400123456
Санкт-Петербург
Олег Самойлов
+7 921 300-45-67
sokolov.iv@mail.ru
Активен
03.02.2024
1003
ООО «СтройПрофи»
7811456789
Санкт-Петербург
Александр Морозов
+7 (812) 777-20-20
info@stroyprofi.ru
Активен
15.02.2024
1004
АО «Ленэнерго-Сервис»
7803987654
Санкт-Петербург
Ирина Климова
+7 (812) 494-00-11
office@lenes.ru
Приостановлен
02.03.2024
1005
ООО «Балтийский Дом»
3906112233
Калининград
Марина Ершова
+7 (4012) 60-10-10
bd@baltdom.ru
Активен
18.03.2024
1006
ООО «Волга-Пром»
6316554433
Самара
Олег Самойлов
+7 (846) 212-33-44
zakaz@volgaprom.ru
Должник
25.03.2024
▶
1007
ООО «Вектор-Юг»
2312445566
Краснодар
Ирина Климова▾
+7 (861) 200-50-60
ug@vektor.ru
Активен
10.04.2024
1008
ИП Прохорова Е. А.
772812345678
Москва
Марина Ершова
+7 916 111-22-33
e.prokhorova@gmail.com
Новый
22.04.2024
1009
ООО «Техно-Арсенал»
7724334455
Москва
Александр Морозов
+7 (495) 640-70-80
info@t-arsenal.ru
Активен
05.05.2024
1010
ООО «Урал-Металл»
6671223344
Екатеринбург
Олег Самойлов
+7 (343) 300-90-90
sales@uralmetal.ru
Активен
19.05.2024
1011
ООО «Сибирь Логистик»
5406778899
Новосибирск
Ирина Климова
+7 (383) 210-15-15
sl@siblog.ru
Должник
01.06.2024
1012
АО «Карелия-Лес»
1001556677
Петрозаводск
Марина Ершова
+7 (8142) 70-20-30
kl@karlesa.ru
Активен
14.06.2024
1013
ООО «ДонСтрой-Инвест»
6164889900
Ростов-на-Дону
Александр Морозов
+7 (863) 250-40-40
office@dsi.ru
Приостановлен
28.06.2024
1014
ИП Нечаев Д. С.
165912345678
Казань
Олег Самойлов
+7 917 260-30-40
nechaev.ds@yandex.ru
Новый
09.07.2024
1015
ООО «ПромТех-Нева»
7807667788
Санкт-Петербург
Ирина Климова
+7 (812) 331-60-60
pt@ptneva.ru
Активен
21.07.2024
1016
ООО «Белые Ночи Девелопмент»
7813990011
Санкт-Петербург
Марина Ершова
+7 (812) 448-80-80
bn@bndev.ru
Активен
02.08.2024
1017
ООО «Тюмень-Газсервис»
7202334455
Тюмень
Олег Самойлов
+7 (3452) 50-60-70
tgs@tgs72.ru
Активен
16.08.2024
1018
ООО «Приморье-Трейд»
2536778899
Владивосток
Александр Морозов
+7 (423) 240-10-20
pt@primtrade.ru
Новый
30.08.2024
✱
(Новая)
Запись:
⏮◀
7
▶⏭▶✱
из 1 248⏷ Фильтр: Город🔍 Поиск по записям
Режим таблицыSQLite 3.46 · Клиенты (CRM).mbx · 12 МБФильтр: Город ∈ {СПб, Москва, …}Num Lock▦▭✎
Подстановка «Менеджер» хранит МенеджерID, а показывает имя из таблицы «Менеджеры» (▾ открывает список). Правка в ячейке пишется в SQLite транзакцией при переходе на другую запись; карандаш в селекторе строки — незафиксированные изменения. Миллион строк прокручивается виртуально.
BS-02 Конструктор таблицы
Поля, типы данных и описания; ключевое поле; внизу — свойства выбранного поля (размер, формат, маска ввода, значение по умолчанию, условие на значение, обязательность, индекс). Типы отображаются на SQLite-типы и ограничения CHECK.
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локальноАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыКонструктор⌄ Свернуть ленту
▦Таблица✎Конструктор
Режимы
🔑Ключевое поле⚒Построитель✓Проверка условий
Вставить строкиУдалить строкиИзменить подстановки
Сервис
☰Страница свойств⇅Индексы
Показать или скрыть
⚡До изменения⚡После обновления⚡После удаления
Триггеры SQLСкрипт таблицы
События таблицы
⛓Схема данных⧉Зависимости
Связи
Все объекты Base«
▾Таблицы
▦ Клиенты
▦ Заказы
▦ Позиции заказа
▦ Товары
▦ Менеджеры
▸Запросы
▸Формы
▸Отчёты
▸Скрипты
✎ Клиенты ✕▦ Заказы
Имя поля
Тип данных
Описание (необязательно)
🔑
ID
Счётчик
Уникальный номер клиента
Название
Текст
Юридическое название или ФИО ИП
▶
ИНН
Текст▾
10 цифр для юрлиц, 12 для ИП
Город
Текст
МенеджерID
Подстановка → Менеджеры
Ответственный менеджер
Телефон
Текст
Маска +7 (###) ###-##-##
Email
Текст
Статус
Текст (список значений)
Активен; Новый; Приостановлен; Должник
Создан
Дата и время
=Now() по умолчанию
Примечание
Длинный текст
Форматированный текст (Write)
КредитныйЛимит
Денежный
В рублях, 2 знака
Активен
Логический
Договор
Вложение
PDF договора, несколько файлов
Задолженность
Вычисляемое
=Sum(Заказы.Сумма WHERE Оплачен=0)
Счётчик
Текст
Длинный текст
Число
Дата и время
Денежный
Логический
Подстановка…
Вложение
Вычисляемое
Гиперссылка
JSON
Свойства поляИНН · ТекстОбщиеПодстановка
Размер поля
12
Формат поля
Маска ввода
000000000099;0;_
Подпись
ИНН
Значение по умолчанию
Условие на значение
Len([ИНН]) In (10;12) And IsNumeric([ИНН])
Сообщение об ошибке
ИНН должен содержать 10 цифр (юрлицо) или 12 (ИП)
Обязательное поле
Да
Пустые строки
Нет
Индексированное поле
Да (совпадения не допускаются)▾
Сжатие Юникод
Да
Условие на значение Выражение проверяется при каждом сохранении записи. В SQLite сохраняется как ограничение CHECK, поэтому действует и для скриптов, и для внешних подключений.
CHECK (length("ИНН") IN (10,12) AND "ИНН" GLOB '[0-9]*')
Нажмите F1 для справки по выражениям · ⚒ Построитель выражений
КонструкторКлиенты · 14 полей · ключ: IDИзменения структуры применятся при сохранении (ALTER TABLE в транзакции)
Список типов открыт в ячейке «Тип данных». Изменение типа поля с данными предлагает предпросмотр преобразования и число строк, которые не пройдут. «Подстановка…» запускает мастер (таблица-источник, отображаемые столбцы, разрешить несколько значений).
BS-03 Запрос (конструктор QBE и SQL)
Конструктор «запрос по образцу»: таблицы со связями сверху, сетка условий снизу. Переключатель SQL показывает тот же запрос в виде кода (двусторонняя синхронизация, пока запрос выразим в QBE), результат — предпросмотром.
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локальноАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыКонструктор запросов⌄ Свернуть ленту
⧉ Заказы за месяц ✕▦ КлиентыКонструкторSQLРезультат
Клиенты
🔑 ID
Название
ИНН
Город
МенеджерID
Статус
Заказы
🔑 ID
КлиентID
Дата
Сумма
Оплачен
МенеджерID
Менеджеры
🔑 ID
Имя
Отдел
Email
Внутреннее объединение · перетащите поле в сетку
Поле:
Название
Город
Дата
Сумма
Оплачен
Менеджер: [Имя]
Имя таблицы:
Клиенты
Клиенты
Заказы
Заказы
Заказы
Менеджеры
Сортировка:
по возрастанию
по убыванию
Вывод на экран:
Условие отбора:
"Санкт-Петербург"
Between [Начало] And [Конец]
>100000
False
или:
"Москва"
Between [Начало] And [Конец]
>250000
SQLсинхронизирован с конструкторомФорматировать
SELECT Клиенты.Название, Клиенты.Город, Заказы.Дата,
Заказы.Сумма, Менеджеры.Имя AS Менеджер
FROM (Клиенты INNER JOIN Заказы
ON Клиенты.ID = Заказы.КлиентID)
INNER JOIN Менеджеры
ON Заказы.МенеджерID = Менеджеры.ID
WHERE (Клиенты.Город = 'Санкт-Петербург'
AND Заказы.Дата BETWEEN :Начало AND :Конец
AND Заказы.Сумма > 100000 AND Заказы.Оплачен = 0)
OR (Клиенты.Город = 'Москва'
AND Заказы.Дата BETWEEN :Начало AND :Конец
AND Заказы.Сумма > 250000)
ORDER BY Клиенты.Город ASC, Заказы.Дата DESC;
Результатпредпросмотр · первые 50 из 312 · 18 мсПараметры: Начало = 01.09.2026, Конец = 30.09.2026
Параметры [Начало]/[Конец] запрашиваются диалогом при выполнении или передаются из формы. Если SQL отредактирован так, что в QBE не выражается (CTE, оконные функции), конструктор блокируется с пояснением, запрос остаётся «SQL-запросом». Перекрёстный запрос добавляет строку «Перекрёстная таблица».
BS-04 Конструктор формы
Форма «Заказ» в режиме конструктора: элементы управления слева, холст с сеткой и полосами (заголовок, область данных, примечание), подчинённая форма «Позиции заказа», справа свойства выбранного элемента с вкладкой «События» — обработчик на MeridianScript.
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локальноАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыКонструктор формУпорядочитьФормат⌄ Свернуть ленту
▭Форма▤Макет✎Конструктор
Режимы
🎨ТемыAШрифты
Темы
ab|Aa☰▾☑◉▭⧉▦🖼📊╱▢🔗📎⋯
Элементы управления
🖼ЛоготипTЗаголовок🕘Дата и время
Колонтитулы
⊞Добавить поля☰Свойства⇥Порядок переходов{}Скрипт формы
Сервис
Элементы управления«
ab|Поле
AaПодпись
☰Список
▾Поле со списком
☑Флажок
◉Переключатель
▭Кнопка
⧉Вкладки
▦Подчинённая форма
🖼Изображение
📊Диаграмма
╱Линия
▢Прямоугольник
🔗Гиперссылка
📎Вложение
📅Выбор даты
Использовать мастера
✎ Заказ ✕▦ Заказы▭ Клиенты
▾ Заголовок формы
Заказ № [Номер]
=Format([Дата];"dd.mm.yyyy")
▾ Область данных
Номер заказа
Номер
Дата
Дата📅
Статус
Статус▾
Клиент
КлиентID▾
Менеджер
МенеджерID▾
Комментарий
Комментарий
Оплачен
Доставка
▦ Подчинённая форма: Позиции заказа (связь ID → ЗаказID)таблица
Товар
Кол-во
Цена
Сумма
▶
Утеплитель PIR 100 мм, м²
120
1 850,00 ₽
222 000,00 ₽
Профиль каркаса 60×27, шт.
400
310,00 ₽
124 000,00 ₽
Крепёж фасадный (комплект)
1
18 500,00 ₽
18 500,00 ₽
✱
(Новая)
Итого:=Sum([Сумма])=[Итого]*0,2 (НДС)
💾 Сохранить🖨 Печать+ Новый заказ✉ Отправить клиенту
▾ Примечание формы
=«Запись » & [CurrentRecord] & « из » & [RecordCount]
Выравнивание
⫷⫶⫸⫯⫰
Размер
↔↕⊟
Привязка к сетке: 4 px
Свойства✕
▾Клиент — поле со списком
ДанныеМакетСобытияДругие
После обновления
ƒ ПослеВыбораКлиента⋯
До обновления
При изменении
Получение фокуса
Потеря фокуса
Нажатие кнопки
Двойное нажатие
ƒ ОткрытьКлиента
Отсутствие в списке
ƒ ДобавитьКлиента
Клавиша нажата
ПОСЛЕ ОБНОВЛЕНИЯ · scripts/order_form.ts
// Подставить менеджера клиента /
// Fill manager from the client
form.on("Клиент.afterUpdate", async () => {
const c = await db.table("Клиенты")
.find(form.Клиент);
form.Менеджер = c?.МенеджерID;
form.Статус ??= "Новый";
});
Скрипты выполняются в песочнице QuickJS; доступ к файлам и сети — только с разрешения.
Открыть редактор скриптов
Конструктор формЗаказ · источник записей: Заказы · 14 элементовВыбрано: Клиент (поле со списком) · 326×24 px▭▤✎
Вкладка «Данные» того же элемента: Данные = КлиентID, Источник строк = SELECT ID, Название FROM Клиенты ORDER BY Название, Присоединённый столбец = 1, Ограничиться списком = Да. Формы адаптивны: режим «Макет» раскладывает элементы в сетку, которая тянется по ширине окна.
BS-05 Отчёт
Конструктор отчёта с полосами: заголовок отчёта, колонтитулы страницы, заголовок и примечание группы «Менеджер» с итогами, область данных. Справа — живой предпросмотр печати «Продажи по менеджерам» (Meridian Print → PDF/A).
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локальноАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыКонструктор отчётовУпорядочитьПараметры страницы⌄ Свернуть ленту
по возрастанию · с заголовком и примечанием · не разрывать группу
Сортировка: Дата ▾ по убыванию
+ Добавить группировку
✎ Продажи по менеджерам ✕▤ Этикетки
▾ Заголовок отчёта
Продажи по менеджерам
=Format(Now();"dd.mm.yyyy")
▾ Верхний колонтитул
КлиентГородДатаСуммаОплачен
▾ Заголовок группы «Менеджер»
Менеджер
=«Заказов: » & Count(*)
▾ Область данных
НазваниеГородДатаСумма☑
▾ Примечание группы «Менеджер»
Итого по менеджеру:
=Sum([Сумма])
=Count(*)
▾ Нижний колонтитул
ООО «Вектор» · конфиденциально
=«Страница » & [Page] & « из » & [Pages]
▾ Примечание отчёта
ВСЕГО:
=Sum([Сумма])
Предпросмотр печатиA4 книжная · стр. 1 из 4⟳
Продажи по менеджерам
03.10.2026
КлиентГородДатаСуммаОпл.
Ирина Климова · Заказов: 3
ООО «Северсталь-Трейд»СПб17.091 180 000,00☑ООО «ПромТех-Нева»СПб12.09152 300,00☐ООО «Сибирь Логистик»Новосиб.03.0996 400,00☐
Итого по менеджеру:1 428 700,00 ₽3
Александр Морозов · Заказов: 3
ООО «СтройПрофи»СПб28.09640 000,00☑ООО «Техно-Арсенал»Москва29.09412 500,00☐ООО «Приморье-Трейд»Владив.10.0988 000,00☑
Итого по менеджеру:1 140 500,00 ₽3
Марина Ершова · Заказов: 2
ООО «Белые Ночи Девелопмент»СПб04.09327 900,00☑ИП Прохорова Е. А.Москва21.09268 000,00☐
Итого по менеджеру:595 900,00 ₽2
ООО «Вектор» · конфиденциальноСтраница 1 из 4
◀1 / 4▶PDF🖨 Печать
Конструктор отчётовПродажи по менеджерам · группа: Менеджер · 8 записей на стр.Выбрано: =Sum([Сумма]) · примечание группы▤🖨▦✎
Предпросмотр пересчитывается при каждом изменении макета (данные берутся из запроса с кэшем). Отчёт экспортируется в PDF/A, Write (.mwx) и Sheets (.msx, таблицей с группами). «Этикетки» — тот же конструктор с колонками и шаблоном размеров (A4 3×8, Avery).
BS-06 Схема данных и внешние подключения
Окно «Схема данных»: таблицы-карточки, связи 1—∞ с целостностью и каскадами (внешние ключи SQLite). Диалог «Подключить внешнюю базу» связывает таблицы PostgreSQL/MySQL/SQL Server/ODBC/SQLite — данные остаются на сервере, Base работает с ними как со своими.
BКлиенты (CRM).mbx— Meridian Base
🔍 Поиск объектов и команд ⌘⇧P
SQLite · локально + 1 подключениеАМ
ФайлГлавнаяСозданиеВнешние данныеРабота с базойСкриптыСхема данных⌄ Свернуть ленту
🗄Новый источник⛓Связанные таблицы
PostgreSQL · MySQL · SQL ServerODBC · SQLite · Sheets · CSVОбновить связи
Импорт и связи
SSheets,CSVPDFPDFSQLСкрипт SQL✉По почте
Экспорт
⛓Схема данных⧉Зависимости объектов🗜Сжать и восстановить🔒Шифрование
Работа с базой
✎Изменить связи⊠Очистить макет▤Отчёт о связях
Скрыть таблицуВсе связи
Схема данных
Все объекты Base«
▾Таблицы
▦ Клиенты
▦ Заказы
▦ Позиции заказа
▦ Товары
▦ Менеджеры
▾Связанные таблицы
⛓ customers (PostgreSQL)
⛓ orders (PostgreSQL)
▸Запросы
▸Формы
▸Отчёты
⛓ Схема данных ✕▦ Клиенты
Менеджеры
🔑 ID
Имя
Отдел
Email
Клиенты
🔑 ID
Название
ИНН
Город
МенеджерID
Статус
Создан
Заказы
🔑 ID
КлиентID
Дата
Сумма
Оплачен
МенеджерID
Позиции заказа
🔑 ID
ЗаказID
ТоварID
Количество
Цена
⛓ customers (PostgreSQL)
🔑 id
name
inn
external_ref
Изменение связей✕
КлиентыЗаказы
Клиенты
Заказы
ID
КлиентID
Обеспечение целостности данных (FOREIGN KEY)Каскадное обновление связанных полей (ON UPDATE CASCADE)Каскадное удаление связанных записей (ON DELETE CASCADE)
Тип отношения: один-ко-многимИндекс по КлиентID создан
Схема данных5 таблиц · 4 связи · 1 внешнее подключениеPRAGMA foreign_keys = ON
Связанные внешние таблицы помечаются ⛓ и пунктирной рамкой; ключ и тип полей читаются из каталога СУБД. Запросы к связанным таблицам по возможности выполняются на сервере (pass-through), формы и отчёты работают без изменений. Пароли — только в хранилище ОС, в .mbx хранится лишь имя подключения.