3ERP

3ERP - простая и бесплатная программа для бухгалтерского и оперативного учёта в учреждениях сферы торговли и услуг, общественного питания, складского хранения, автосервиса, медицины, логистики, производства, управления работами и заявками, поддерживающая до 100 пользователей, на русском языке и полностью бесплатная для 1 пользователя. На сайт (скачать)

03. Таблицы (регистры или журналы)

Таблицы (в синтаксисе DSL — ЖУРНАЛ) предназначены для хранения учётных данных: остатков, оборотов, взаиморасчётов. Заполняются автоматически при проведении документов.

3.1. Синтаксис регистра

ЖУРНАЛ ИмяРегистра
    КОНТРОЛЬ_ОСТАТКОВ ДА|НЕТ
    
    ИЗМЕРЕНИЕ ИмяИзмерения ТИП_ДАННЫХ
    ИЗМЕРЕНИЕ ИмяДругогоИзмерения ТИП_ДАННЫХ
    
    РЕСУРС ИмяРесурса ТИП_ДАННЫХ
    РЕСУРС ИмяДругогоРесурса ТИП_ДАННЫХ
    
    КНОПКА "Записать" ЗАПИСАТЬ
    КНОПКА "Отмена" ЗАКРЫТЬ
КОНЕЦ

3.2. Пример регистра журналов

ЖУРНАЛ ОстаткиЗапчастей
    КОНТРОЛЬ_ОСТАТКОВ ДА
    
    ИЗМЕРЕНИЕ Организация ВЫБОР Организации
    ИЗМЕРЕНИЕ Склад ВЫБОР Склады
    ИЗМЕРЕНИЕ Номенклатура ВЫБОР Номенклатура
    
    РЕСУРС Количество ЧИСЛО
    РЕСУРС Сумма ЧИСЛО
    
    КНОПКА "Записать" ЗАПИСАТЬ
    КНОПКА "Отмена" ЗАКРЫТЬ
КОНЕЦ

3.3. Системные поля журналов

ПолеТипОписание
ДатаДАТАВРЕМЯДата движения (из документа)
НомерСТРОКАНомер документа
ДокументСТРОКАСтроковое представление документа
parent_idЧИСЛОID документа-источника
parent_typeСТРОКАТип документа
_typeЧИСЛО1 = ПРИХОД, -1 = РАСХОД

3.4. Контроль остатков

При КОНТРОЛЬ_ОСТАТКОВ ДА платформа блокирует проведение документа с расходом, если остаток становится отрицательным.

При КОНТРОЛЬ_ОСТАТКОВ НЕТ допускается отрицательный остаток (используется для взаиморасчётов, где возможна переплата).

3.5. Движения по журналу

В документах движения описываются блоком ДВИЖЕНИЕ:

ДВИЖЕНИЕ ОстаткиЗапчастей РАСХОД 
    ПОЛЯ Организация = Организация,
          Склад = Склад,
          Номенклатура = Запчасти.Номенклатура,
          Количество = Запчасти.Количество,
          Сумма = Запчасти.Сумма

3.6. Расчёт остатков

-- Текущий остаток
SELECT Номенклатура, SUM(_type * Количество) as Остаток
FROM Журнал_ОстаткиЗапчастей
GROUP BY Номенклатура

-- Обороты за период
SELECT 
    SUM(CASE WHEN _type = 1 THEN Количество ELSE 0 END) as Приход,
    SUM(CASE WHEN _type = -1 THEN Количество ELSE 0 END) as Расход
FROM Журнал_ОстаткиЗапчастей
WHERE Дата BETWEEN '2024-01-01' AND '2024-12-31'
3544 | 0 | 3544 | 366 | 180 | 47