Процедура ОбработкаПроведения(Отказ, Режим) СторнируемыеДвижения = РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(СторнируемыйДокумент); Пока СторнируемыеДвижения.Следующий() Цикл Проводка = Движения.Хозрасчетный.Добавить(); Проводка.Период = Дата; Проводка.СчетДт = СторнируемыеДвижения.СчетДт; Проводка.СчетКт = СторнируемыеДвижения.СчетКт; Для каждого Субконто Из СторнируемыеДвижения.СубконтоДт Цикл Проводка.СубконтоДт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Для каждого Субконто Из СторнируемыеДвижения.СубконтоКт Цикл Проводка.СубконтоКт[Субконто.Ключ] = Субконто.Значение; КонецЦикла; Проводка.ВалютаДт = СторнируемыеДвижения.ВалютаДт; Проводка.ВалютаКт = СторнируемыеДвижения.ВалютаКт; Проводка.ВалютнаяСуммаДт = - СторнируемыеДвижения.ВалютнаяСуммаДт; Проводка.ВалютнаяСуммаКт = - СторнируемыеДвижения.ВалютнаяСуммаКт; Проводка.КоличествоДт = - СторнируемыеДвижения.КоличествоДт; Проводка.КоличествоКт = - СторнируемыеДвижения.КоличествоКт; Проводка.НомерЖурнала = СторнируемыеДвижения.НомерЖурнала; Проводка.Организация = СторнируемыеДвижения.Организация; Проводка.Содержание = СторнируемыеДвижения.Содержание; Проводка.Сумма = - СторнируемыеДвижения.Сумма; КонецЦикла; Движения.Хозрасчетный.Записать(); КонецПроцедуры
Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт Если Счет = Неопределено ИЛИ Счет.Пустая() Тогда Возврат; КонецЕсли; Если ТипЗнч(ИмяСубконто) = Тип("Число") Тогда Если ИмяСубконто > Счет.ВидыСубконто.Количество() Тогда Возврат; КонецЕсли; ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто; Иначе ВидСубк = ПланыВидовХарактеристик[Метаданные.НайтиПоТипу(ТипЗнч(Счет)).ВидыСубконто.Имя][ИмяСубконто]; Если Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; Если ВидСубк.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) Тогда Субконто.Вставить(ВидСубк, ЗначениеСубконто); Иначе Сообщить("Неверное значение """ + ЗначениеСубконто + """ для вида субконто <" + ВидСубк + ">"); КонецЕсли; КонецПроцедуры
// где Выборка - Выборка из результата запроса Проводка = Движения.Международный.Добавить(); Проводка.Период = ДатаЗакрытияПериода; Проводка.СчетДт = Выборка.Счет; Проводка.СчетКт = ПланыСчетов.Международный.СуммарныеДоходыИРасходы; Проводка.Организация = Организация; Проводка.Сумма = Выборка.СуммаОстатокКт; Проводка.Содержание = "Закрытие счетов в конце финансового года"; Проводка.НомерЖурнала = "Рег"; НомерСубконто = 0; Для каждого ВидСубконто Из Проводка.СчетДт.ВидыСубконто Цикл НомерСубконто = НомерСубконто + 1; ЗначениеСубконто = Выборка["Субконто"+НомерСубконто]; Если ЗначениеЗаполнено(ЗначениеСубконто) Тогда УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, НомерСубконто, ЗначениеСубконто); КонецЕсли; КонецЦикла;
// Задать выбираемые значения. ВыбранныйОтветственный = Справочники.Пользователи.НайтиПоНаименованию("Иванцова"); ВыбранныйКонтрагент = Справочники.Контрагенты.НайтиПоКоду("00027"); ВыбранныйДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00013"); ВыбранныйДокумент = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру(2, '20050101'); ВыбранныйСчет = Справочники.БанковскиеСчета.НайтиПоКоду("00001"); ВыбраннаяСтатья = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("00002"); ВыбраннаяОрганизация = Справочники.Организации.НайтиПоКоду("00001"); ВыбраннаяВалюта = Справочники.Валюты.НайтиПоКоду(810); // Создать будущий регистратор. ДатаЗаписи = ТекущаяДата(); Документ = Документы.ОперацияБух.СоздатьДокумент(); Документ.Дата = ДатаЗаписи; Документ.Организация = ВыбраннаяОрганизация; Документ.Ответственный = ВыбранныйОтветственный; Документ.Содержание = "Оплата поставщику"; Документ.Записать(); // Создать набор записей. НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Документ.Ссылка); Движение = НаборЗаписей.Добавить(); Движение.Регистратор = Документ.Ссылка; Движение.Период = ДатаЗаписи; // Заполнить счет дебета. Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("60.01"); // Заполнить аналитику счета дебета. Движение.СубконтоДт.Контрагенты = ВыбранныйКонтрагент; Движение.СубконтоДт.Договоры = ВыбранныйДоговор; Движение.СубконтоДт.ДокументыРасчетовСКонтрагентами = ВыбранныйДокумент; // Заполнить счет кредита. Движение.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("51"); // Заполнить аналитику счета кредита. Движение.СубконтоКт.БанковскиеСчета = ВыбранныйСчет; Движение.СубконтоКт.СтатьиДвиженияДенежныхСредств = ВыбраннаяСтатья; // Балансовое измерение. Движение.Организация = ВыбраннаяОрганизация; // Балансовый ресурс. Движение.Сумма = 300000; // Реквизиты.Движение.НомерЖурнала = "БК"; Движение.Содержание = "Оплата поставщику"; // Записать набор записей. НаборЗаписей.Записать();
Процедура ОбработкаПроведения() Пока ПолучитьСтроку() = 1 Цикл Операция.НоваяПроводка(); Операция.Кредит.Счет = СчетПоКоду("60.1"); Операция.Дебет.Счет = СчетПоКоду("08.4"); Операция.СодержаниеПроводки = "Поступление ОС"; Операция.Сумма = Сумма; Операция.НомерЖурнала="OC"; КонецЦикла; Операция.Записать(); КонецПроцедуры