1С 8.3 Сторно для регистра бухгалтерии - Программист 1С Минск. Автоматизация бизнеса.

Популярные страницы:
Перейти к контенту

1С 8.3 Сторно для регистра бухгалтерии

Данные > Примеры кода 1С > 1С 8.3 Регистры бухгалтерии
Перейти в раздел примеры кода 1С 8.3:
Пример Сторно проводок в 1С 8.3:
Процедура ОбработкаПроведения(Отказ, Режим)

   ДвиженияСторно = РегистрыБухгалтерии.Хозрасчетный.ВыбратьПоРегистратору(ВыбДокументСторно);

   Пока ДвиженияСторно.Следующий() Цикл

       НоваяПроводка = Движения.Хозрасчетный.Добавить();
       НоваяПроводка.Период = Дата;

       НоваяПроводка.НомерЖурнала = ДвиженияСторно.НомерЖурнала;
       НоваяПроводка.Организация = ДвиженияСторно.Организация;
       НоваяПроводка.Содержание = ДвиженияСторно.Содержание;

       НоваяПроводка.СчетДт = ДвиженияСторно.СчетДт;
       НоваяПроводка.СчетКт = ДвиженияСторно.СчетКт;

       Для Каждого СубконтоДт Из ДвиженияСторно.СубконтоДт Цикл
           НоваяПроводка.СубконтоДт[СубконтоДт.Ключ] = СубконтоДт.Значение;
       КонецЦикла;

       Для Каждого СубконтоКт Из ДвиженияСторно.СубконтоКт Цикл
           НоваяПроводка.СубконтоКт[СубконтоКт.Ключ] = СубконтоКт.Значение;
       КонецЦикла;

       НоваяПроводка.ВалютаДт = ДвиженияСторно.ВалютаДт;
       НоваяПроводка.ВалютаКт = ДвиженияСторно.ВалютаКт;

       НоваяПроводка.ВалютнаяСуммаДт = - ДвиженияСторно.ВалютнаяСуммаДт;
       НоваяПроводка.ВалютнаяСуммаКт = - ДвиженияСторно.ВалютнаяСуммаКт;

       НоваяПроводка.КоличествоДт = - ДвиженияСторно.КоличествоДт;
       НоваяПроводка.КоличествоКт = - ДвиженияСторно.КоличествоКт;

       НоваяПроводка.Сумма = - ДвиженияСторно.Сумма;

   КонецЦикла;

   Движения.Хозрасчетный.Записать();

КонецПроцедуры
Пример Сторно проводок через ПолучитьДополнение в 1С 8.3:
Процедура ОбработкаСторно()

    ЗаписиДвижения = Движения.Хозрасчетный.ПолучитьДополнение();
    Для Каждого Сторно Из ЗаписиДвижения Цикл

        НоваяПроводка = Движения.Хозрасчетный.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяПроводка, Сторно);
        НоваяПроводка.Сторно = Истина;
        НоваяПроводка.ПериодРегистрации = Сторно.ПериодРегистрацииСторно;
        НоваяПроводка.ПериодДействияНачало = Сторно.ПериодДействияНачалоСторно;
        НоваяПроводка.ПериодДействияКонец = Сторно.ПериодДействияКонецСторно;

    КонецЦикла;
    //....

КонецПроцедуры
Пример Сторно проводок через Метаданные в 1С 8.3 (от Timo):
Процедура ОбработкаСторно()

    Док = Объект.Док.ПолучитьОбъект();

    МассивМетаданных = Новый Массив;
    МассивМетаданных.Добавить("Измерения");
    МассивМетаданных.Добавить("Ресурсы");
    МассивМетаданных.Добавить("Реквизиты");

    МассивОтрицательныхРеквизитов = Новый Массив;
    МассивОтрицательныхРеквизитов.Добавить("Количество");
    МассивОтрицательныхРеквизитов.Добавить("Сумма");
    МассивОтрицательныхРеквизитов.Добавить("ВалютнаяСумма");

    МетаДокумента = Док.Движения.ВыручкаИСебестоимостьПродаж.Метаданные();
    НовоеДвижение = Док.Движения.ВыручкаИСебестоимостьПродаж.Добавить();
    ДвижениеСторно = РегистрыНакопления.ВыручкаИСебестоимостьПродаж.ВыбратьПоРегистратору(Док.Ссылка);

    Пока ДвижениеСторно.Следующий() Цикл
        Для Каждого ИмяМетаданных Из МассивМетаданных Цикл
            Для Каждого МетаИмяРеквизита Из МетаДокумента[ИмяМетаданных] Цикл
                Если МассивОтрицательныхРеквизитов.Найти(МетаИмяРеквизита.Имя) <> Неопределено Тогда
                    НовоеДвижение[МетаИмяРеквизита.Имя] = - ДвижениеСторно[МетаИмяРеквизита.Имя];
                Иначе
                    НовоеДвижение[МетаИмяРеквизита.Имя] = ДвижениеСторно[МетаИмяРеквизита. Имя];
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;

    Док.Движения.Записать();

КонецПроцедуры
Поиск кода
0
Комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 04.05.2022
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому