Автоматизация процесса формирования документов реализации в лизинговой компании

20.11.19

Задачи пользователя - Подбор и обработка объектов

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Формирование РТиУ
.epf 7,74Kb
1 2 500 руб. Купить
Сравнение фактически поступивших платежей с графиком платежей
.erf 8,25Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Постановка задачи:

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

Решение:

Необходимо где-то хранить информацию о графике платежа (дата платежа и сумма платежа). В конфигурацию "Бухгалтерия предприятия, редакция 3.0" был добавлен новый справочник "ГрафикПлатежей" (можно добавить в расширение). 

Реквизиты: Контрагент, Договор, ВидДоговора

Табличная часть: Платежи (ДатаПлатежа, СуммаПлатежа)

 

В форму элемента справочника выведены реквизиты: Наименование, Контрагент, Договор, Вид договора и Табличная часть "Оплата" с реквизитами ДатаПлатежа и СуммаПлатежа.

 

В модуле формы прописываем код для формирования документов

&НаСервере
Функция СформироватьРТиУНаСервере()
	РТУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
	Сегодня = ТекущаяДата();
	РТУ.Дата = КонецМесяца(Сегодня);
	РТУ.Организация = Справочники.Организации.НайтиПоНаименованию("ООО ""Наша фирма""");
	РТУ.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Услуги;
	РТУ.ДоговорКонтрагента = Объект.Договор;
	РТУ.ВалютаДокумента = Объект.Договор.ВалютаВзаиморасчетов;
	РТУ.Контрагент = Объект.Договор.Владелец;
	РТУ.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
	РТУ.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
	РТУ.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
	РТУ.СуммаВключаетНДС = Истина;
	РТУ.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Основная цена продажи");
	ТекущийМесяц = Месяц(ТекущаяДата());
	ТекущийГод = Год(ТекущаяДата());
	НоваяСтрока = РТУ.Услуги.Добавить();
	Если Объект.ВидДоговора.Наименование = "Аренда" Тогда
		НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000333");
		НоваяСтрока.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда");
	ИначеЕсли
		Объект.ВидДоговора.Наименование = "Лизинговый платеж"
		Тогда
		НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000025");
		НоваяСтрока.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Лизинговый платеж");
	КонецЕсли;
	НоваяСтрока.Содержание = Строка(НоваяСтрока.Номенклатура)+" по договору "+Строка(Объект.Договор);
	НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
	НоваяСтрока.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
	НоваяСтрока.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
	НоваяСтрока.СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.03");
	
	Для Каждого Элемент из Объект.Платежи Цикл
		Если ТекущийМесяц = Месяц(Элемент.ДатаПлатежа) И ТекущийГод = Год(Элемент.ДатаПлатежа) Тогда
			НоваяСтрока.Цена = Элемент.СуммаПлатежа;
			НоваяСтрока.Сумма = Элемент.СуммаПлатежа;
			НоваяСтрока.СуммаНДС = Элемент.СуммаПлатежа*(1-1/1.2);
		КонецЕсли;
	КонецЦикла;
	
	РТУ.Записать(РежимЗаписиДокумента.Запись);
	Возврат РТУ.Ссылка;
КонецФункции

&НаКлиенте
Процедура СформироватьРТиУ(Команда)
	ОткрытьЗначение(СформироватьРТиУНаСервере());
КонецПроцедуры

Таким образом, при нажатии на кнопку "Сформировать РТиУ" формируется документ реализации, заполняется шапка документа, табличная часть "Услуги" и документ записывается с датой последнего дня текущего месяца. 

Табличная часть заполняется в соответствии со значениями справочника "График платежей"

Так можно сформировать документ для каждого конкретного договора.

 

Для того, чтобы сформировать документы по нескольким договорам была написана внешняя обработка "Формирование РТиУ"

 

В модуле формы обработки при нажатии на кнопку "Заполнить" сначала заполняем таблицу из справочника "График платежей"

&НаСервере
Процедура ЗаполнитьНаСервере()
	Запрос = Новый Запрос;	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ГрафикПлатежей.Ссылка КАК График,
	|	ГрафикПлатежей.Контрагент КАК Контрагент
	|ИЗ
	|	Справочник.ГрафикПлатежей КАК ГрафикПлатежей";
	
	Таблица.Загрузить(Запрос.Выполнить().Выгрузить());
	
	Для Каждого Строка Из Таблица Цикл
		Строка.Выбор = Истина;
	КонецЦикла;		
	
КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
	ЗаполнитьНаСервере();
КонецПроцедуры

 

Затем, при нажатии на кнопку "Сформировать РТиУ" формируем документы, которые отмечены крыжиком

&НаСервере
Процедура СформироватьРТУНаСервере()
	
	Для каждого Строка Из Таблица Цикл
		Если Строка.Выбор Тогда
			Выборка = Строка.График;		
			РТУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
			Сегодня = ТекущаяДата();
			//РТУ.Дата = Дата(Год(Сегодня),Месяц(Сегодня),20);
			РТУ.Дата = КонецМесяца(Сегодня);
			РТУ.Организация = Справочники.Организации.НайтиПоНаименованию("ООО ""Наша фирма""");
			РТУ.ВидОперации = Перечисления.ВидыОперацийРеализацияТоваров.Услуги;
			РТУ.ДоговорКонтрагента = Выборка.Договор;
			РТУ.ВалютаДокумента = Выборка.Договор.ВалютаВзаиморасчетов;
			РТУ.Контрагент = Выборка.Договор.Владелец;
			РТУ.СчетУчетаРасчетовСКонтрагентом = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.01");
			РТУ.СчетУчетаРасчетовПоАвансам = ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.02");
			РТУ.СпособЗачетаАвансов = Перечисления.СпособыЗачетаАвансов.Автоматически;
			РТУ.СуммаВключаетНДС = Истина;
			РТУ.ТипЦен = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Основная цена продажи");
			ТекущийМесяц = Месяц(ТекущаяДата());
			ТекущийГод = Год(ТекущаяДата());
			НоваяСтрока = РТУ.Услуги.Добавить();
			Если Выборка.ВидДоговора.Наименование = "Аренда" Тогда
				НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000333");
				НоваяСтрока.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Аренда");
			ИначеЕсли
				Выборка.ВидДоговора.Наименование = "Лизинговый платеж"
				Тогда
				НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00000000025");
				НоваяСтрока.Субконто = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Лизинговый платеж");
			КонецЕсли;
			НоваяСтрока.Содержание = Строка(НоваяСтрока.Номенклатура)+" по договору "+Строка(Выборка.Договор);
			НоваяСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
			НоваяСтрока.СчетДоходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.01.1");
			НоваяСтрока.СчетРасходов = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
			НоваяСтрока.СчетУчетаНДСПоРеализации = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.03");
			
			Для Каждого Элемент из Выборка.Платежи Цикл
				Если ТекущийМесяц = Месяц(Элемент.ДатаПлатежа) И ТекущийГод = Год(Элемент.ДатаПлатежа) Тогда
					НоваяСтрока.Цена = Элемент.СуммаПлатежа;
					НоваяСтрока.Сумма = Элемент.СуммаПлатежа;
					НоваяСтрока.СуммаНДС = Элемент.СуммаПлатежа*(1-1/1.2);
				КонецЕсли;
				
				
			КонецЦикла;
		
		РТУ.Записать(РежимЗаписиДокумента.Запись);	
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура СформироватьРТУ(Команда)
	СформироватьРТУНаСервере();
КонецПроцедуры

Код формирования документов, фактически, повторяет код в справочнике, только добавлен цикл по строкам таблицы

 

Обработка в режиме предприятия

 

Помимо формирования документов, добавление в базу информации о графиках платежей, позволяет с помощью простенького отчета проводить план-фактный анализ  поступления платежей

Запрос

ВЫБРАТЬ
	ГрафикПлатежейПлатежи.Ссылка.Наименование КАК Наименование,
	ГрафикПлатежейПлатежи.Ссылка.Контрагент КАК Контрагент,
	ГрафикПлатежейПлатежи.Ссылка.Договор КАК Договор,
	ГрафикПлатежейПлатежи.НомерСтроки КАК НомерСтроки,
	ГрафикПлатежейПлатежи.ДатаПлатежа КАК ДатаПлатежа,
	ГрафикПлатежейПлатежи.СуммаПлатежа КАК СуммаПлатежа,
	ПоступлениеНаРасчетныйСчет.Контрагент КАК Контрагент1,
	ПоступлениеНаРасчетныйСчет.Дата КАК Дата,
	ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента КАК ДоговорКонтрагента,
	ПоступлениеНаРасчетныйСчет.СуммаДокумента КАК СуммаДокумента,
	ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка
ИЗ
	Справочник.ГрафикПлатежей.Платежи КАК ГрафикПлатежейПлатежи
		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
		ПО ГрафикПлатежейПлатежи.Ссылка.Договор = ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента
			И (НАЧАЛОПЕРИОДА(ГрафикПлатежейПлатежи.ДатаПлатежа, МЕСЯЦ) = НАЧАЛОПЕРИОДА(ПоступлениеНаРасчетныйСчет.Дата, МЕСЯЦ))

 

Сам отчет

 

В табличную часть справочника "График платежей" информация загружалась с использованием стандартной обработки "ЗагрузкаДанныхИзТабличногоДокумента.epf"

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Мастера заполнения Поиск данных Инструментарий разработчика Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

6000 руб.

25.02.2026    3774    13    1    

16

Перенос данных 1C Учет документов Подбор и обработка объектов Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Россия Бухгалтерский учет Платные (руб)

Обработка «Сравнение документов» — это мощный инструмент для синхронизации и контроля данных между базами 1С:УНФ – 1С:БП, 1С:УТ – 1С:БП. Она позволяет сравнивать документы в двух базах, выявлять расхождения и загружать недостающие документы из одной базы в другую.

12200 руб.

06.08.2025    2367    4    0    

5

Подбор и обработка объектов Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Очень часто бывает, что документы одного периода повторяются в следующем. Поэтому приходится выполнять рутинную работу по их повторению, а именно копировать каждый документ по отдельности. Чтобы этого избежать, была написана обработка группового копирования документов для конфигурации 1С Бухгалтерия версии 3.0.

6100 руб.

29.06.2015    48187    93    18    

108

Подбор и обработка объектов Бухгалтер Пользователь 1С 8.3 1С 8.5 1С:Бухгалтерия 3.0 Абонемент ($m)

Дополнение для журнала реализаций, позволяющее отслеживать и автоматически формировать счета-фактуры выданные, для конфигурации Бухгалтерия предприятия 3

3 стартмани

09.02.2026    818    5    Marat1c8    0    

4

Подбор и обработка объектов Программист Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Абонемент ($m)

Данная обработка может быть полезна тем, кто хочет сделать более точечную замену объектов, когда заказчику необходимо заменить что-то только в определенном виде документа (справочника) с определенным отбором по реквизитам.

1 стартмани

09.05.2025    3094    83    Rafael-87    18    

7

Подбор и обработка объектов Программист Бухгалтер Пользователь 1С 8.3 Абонемент ($m)

Горыныч - универсальная внешняя обработка группового многопоточного проведения (УФ). Работает в одном потоке в любой конфигурации, многопоточный режим доступен при наличии справочника «Склады».

10 стартмани

29.04.2025    5609    10    DmitryKSL    12    

18

Поиск данных ЭДО и ОФД Подбор и обработка объектов 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Поиск номенклатуры при сопоставлении в ЭДО не интуитивный, не настраиваемый и просто неудобный. Данное решение - это альтернативный вариант расширенного поиска и сопоставления номенклатуры для 1С, который подключается в качестве расширения и решает эту проблему.

10000 руб.

10.04.2025    2419    1    1    

2

Подбор и обработка объектов Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 3.0 Управленческий учет Абонемент ($m)

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

1 стартмани

21.02.2025    2496    7    andrey7617    0    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. roman3333 14.01.20 13:44 Сейчас в теме
добрый день! есть опыт автоматизации платежей..Т.е. клиент имеем неск-ко догворов. Оплачивает он общей суммой
Возможно ли как-то распределить автоматом общую сумму на все договры (от первого догвора до последнего)?
2. yurikmellon 6 14.01.20 14:35 Сейчас в теме
(1) добрый. А как Вы это себе представляете? Приходит выписка из банка по контрагенту (документ "Поступление на расчетный счет") на конкретную сумму и конкретный договор.
Потом что должно происходить? Эта сумма должна пропорционально распределиться на все договора данного контрагента?
3. roman3333 14.01.20 18:02 Сейчас в теме
допустим у клиента есть 7 договоров. К каждому договру привязан график ежемесячных платежей (дата/сумма). Соотв-но общая сумма распредел-ся согласно каждого договора и суммы из графика по порядку возрастания номеров договоров. Если общей суммы на все договоры не хватит,то на те договоры что не хватило суммы должны зафиксироваться как долг клиента по конкретному договору.
При следующем поступлении средств от клиента (выписка) вначале погашается долги по этим договорам,а затем плановые суммы из гарфика вновь распределяются.
4. yurikmellon 6 15.01.20 08:31 Сейчас в теме
(3) я бы в этом случае написал обработку, которая из одного документа "Поступление на расчетный счет" делает семь и сумму в этом документе распределяет по этим семи договорам в соответствии с графиком платежей начиная с первого по номеру. Нужно где то хранить информацию по долгам (регистр какой нибудь сделать), чтобы следующее поступление сначала закрывало эти долги. Как то так.
Для отправки сообщения требуется регистрация/авторизация