Как создать документы для поступления, перемещения и расхода денежных средств?
Создание документов для поступления, перемещения и расхода денежных средств в 1С (на примере чистой конфигурации или проекта типа "Семейный бюджет") включает определение объектов метаданных, настройку реквизитов, движений и форм. Ниже пошагово описано, как реализовать эти документы в конфигураторе:
1. Документ "ПоступлениеДенежныхСредств"
Шаг 1. Создание документа
-
В конфигураторе → Документы → Создать → Название: ПоступлениеДенежныхСредств.
-
Установите:
-
Нумерация: Авто.
-
Записывает движение: Да.
-
Использовать форму: Да.
-
Шаг 2. Добавление реквизитов
-
Дата (автоматически).
-
Сумма (Тип: Число, точность 2).
-
Счет (Тип: Справочник.Счета).
-
Источник (Тип: Справочник.Контрагенты или строка, если физ.лицо).
Шаг 3. Движения
Создайте регистр накопления ДвиженияПоСчетам, если ещё не создан.
- В модуле объекта документа:
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движение = Движения.ДвиженияПоСчетам.Добавить();
Движение.Период = Дата;
Движение.Счет = Счет;
Движение.Приход = Сумма;
Движение.Расход = 0;
КонецПроцедуры
2. Документ "РасходДенежныхСредств"
Шаг 1. Создание
- Название: РасходДенежныхСредств.
Шаг 2. Реквизиты
-
Сумма (Тип: Число, точность 2).
-
Счет (Тип: Справочник.Счета).
-
Получатель (Справочник.Контрагенты или строка).
Шаг 3. Движения
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движение = Движения.ДвиженияПоСчетам.Добавить();
Движение.Период = Дата;
Движение.Счет = Счет;
Движение.Приход = 0;
Движение.Расход = Сумма;
КонецПроцедуры
3. Документ "ПеремещениеДенежныхСредств"
Шаг 1. Создание
- Название: ПеремещениеДенежныхСредств.
Шаг 2. Реквизиты
-
СчетОтправитель (Справочник.Счета).
-
СчетПолучатель (Справочник.Счета).
-
Сумма (Число, точность 2).
Шаг 3. Движения
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ДвижениеРасход = Движения.ДвиженияПоСчетам.Добавить();
ДвижениеРасход.Период = Дата;
ДвижениеРасход.Счет = СчетОтправитель;
ДвижениеРасход.Приход = 0;
ДвижениеРасход.Расход = Сумма;
ДвижениеПриход = Движения.ДвиженияПоСчетам.Добавить();
ДвижениеПриход.Период = Дата;
ДвижениеПриход.Счет = СчетПолучатель;
ДвижениеПриход.Приход = Сумма;
ДвижениеПриход.Расход = 0;
КонецПроцедуры
### **4\. Настройка форм**
#### **Общая форма документа**
- В модуле формы добавьте обработку нажатия на кнопку "Провести":
```python
Процедура ПровестиДокумент(Команда)
Попытка
ЭтотОбъект.Провести();
Сообщить("Документ проведён");
Исключение
Сообщить("Ошибка проведения: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Элементы формы:
-
Поля ввода: Дата, Счет, Сумма, Контрагент.
-
Кнопки: Провести, Записать и закрыть.
5. Проверка и тестирование
-
Запустите в режиме предприятия.
-
Откройте каждый документ, создайте несколько записей.
-
Убедитесь, что проводки создаются в регистре ДвиженияПоСчетам.
-
Проверьте, что остатки формируются корректно (через отчёт или запрос).
6. Возможные улучшения
-
Добавить проверку остатка перед расходом.
-
Добавить валюту и конвертацию при необходимости.
-
Связать документы с планом бюджета (регистр расчёта).
-
Реализовать механизм отмены проведения с удалением движений.
Таким образом, три документа формируют универсальную систему движения денежных средств: поступления, расходы и внутренние перемещения. Всё это регистрируется через движения в одном или нескольких регистрах, что позволяет в дальнейшем легко формировать отчёты и анализировать финансы.