1С 8.3 Дополнительные проводки с помощью расширения
Данные > Примеры кода 1С > 1С 8.3 Расширения
Перейти в раздел примеры кода 1С 8.3:
Вклиниваемся в обработку проведения документа ПоступлениеНаРасчетныйСчет.
Благодаря методу ПродолжитьВызов - сначала отрабатывает типовой функционал. А потом при определенных условиях, срабатывает наш блок проводок.
Аннотация &Вместо в 1С 8.3:
&Вместо("ОбработкаПроведения")
Процедура ПНРС_ОбработкаПроведения(Отказ, РежимПроведения)
ПродолжитьВызов(Отказ, РежимПроведения);
Если Ссылка.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатКартам Тогда
Сч51 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
Сч571 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.1");
Сч7611 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.11");
// Создаем таблицу значений для выгрузки проводок
ТЗ = Новый ТаблицаЗначений;
// Добавляем колонки в таблицу значений
ТЗ.Колонки.Добавить("СчетДт");
ТЗ.Колонки.Добавить("СчетКт");
ТЗ.Колонки.Добавить("Регистратор");
ТЗ.Колонки.Добавить("Активность");
ТЗ.Колонки.Добавить("Период");
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("Содержание");
ТЗ.Колонки.Добавить("Организация");
ТЗ.Колонки.Добавить("СубконтоКт");
// Вставить содержимое метода.
ПНРС_НаборЗаписей = Движения.Хозрасчетный;
ПНРС_НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
ПНРС_НаборЗаписей.Прочитать();
Для Каждого Запись Из ПНРС_НаборЗаписей Цикл
Если Запись.СчетДт = Сч51 И Запись.СчетКт = Сч571 Тогда
СтрТЗ = ТЗ.Добавить();
ЗаполнитьЗначенияСвойств(СтрТЗ, Запись);
КонецЕсли;
КонецЦикла;
Для Каждого Стр Из ТЗ Цикл
ПНРС_Движение = ПНРС_НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(ПНРС_Движение, Стр);
ПНРС_Движение.СчетДт = Сч571; // делаем подмену счета Дт
ПНРС_Движение.СчетКт = Сч7611; // делаем подмену счета Кт
ПНРС_Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]
= Стр.СубконтоКт.Договоры; // делаем подмену субконто Кт
КонецЦикла;
ПНРС_НаборЗаписей.Записывать = Истина;
Движения.Записать();
КонецЕсли;
КонецПроцедуры
Процедура ПНРС_ОбработкаПроведения(Отказ, РежимПроведения)
ПродолжитьВызов(Отказ, РежимПроведения);
Если Ссылка.ВидОперации = Перечисления.ВидыОперацийПоступлениеДенежныхСредств.ПоступленияОтПродажПоПлатКартам Тогда
Сч51 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51");
Сч571 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("57.1");
Сч7611 = ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.11");
// Создаем таблицу значений для выгрузки проводок
ТЗ = Новый ТаблицаЗначений;
// Добавляем колонки в таблицу значений
ТЗ.Колонки.Добавить("СчетДт");
ТЗ.Колонки.Добавить("СчетКт");
ТЗ.Колонки.Добавить("Регистратор");
ТЗ.Колонки.Добавить("Активность");
ТЗ.Колонки.Добавить("Период");
ТЗ.Колонки.Добавить("Сумма");
ТЗ.Колонки.Добавить("Содержание");
ТЗ.Колонки.Добавить("Организация");
ТЗ.Колонки.Добавить("СубконтоКт");
// Вставить содержимое метода.
ПНРС_НаборЗаписей = Движения.Хозрасчетный;
ПНРС_НаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
ПНРС_НаборЗаписей.Прочитать();
Для Каждого Запись Из ПНРС_НаборЗаписей Цикл
Если Запись.СчетДт = Сч51 И Запись.СчетКт = Сч571 Тогда
СтрТЗ = ТЗ.Добавить();
ЗаполнитьЗначенияСвойств(СтрТЗ, Запись);
КонецЕсли;
КонецЦикла;
Для Каждого Стр Из ТЗ Цикл
ПНРС_Движение = ПНРС_НаборЗаписей.Добавить();
ЗаполнитьЗначенияСвойств(ПНРС_Движение, Стр);
ПНРС_Движение.СчетДт = Сч571; // делаем подмену счета Дт
ПНРС_Движение.СчетКт = Сч7611; // делаем подмену счета Кт
ПНРС_Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры]
= Стр.СубконтоКт.Договоры; // делаем подмену субконто Кт
КонецЦикла;
ПНРС_НаборЗаписей.Записывать = Истина;
Движения.Записать();
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник