Документ «Корректировка записей регистров» в типовых конфигурациях 1С предназначен для ручной корректировки записей регистров накопления, зависимых регистров сведений и регистров бухгалтерии. Типичные ситуации, в которых может понадобиться документ «Корректировка записей регистров», - ввод начальных остатков, исправление ошибок в учете, отражение в учете операций, для которых в конфигурации нет специальных документов. В документе есть сервис автоматического заполнения движений с предопределенным действием «Сторно движений документа». С его помощь можно автоматически создать движения по регистрам бухгалтерии и регистрам накопления, аналогичные движениям указанного документа, но с отрицательными значениями.
Иногда количество вводимых записей по регистрам может быть велико и тогда целесообразно выполнить корректировку регистров программно. Документ «Корректировка записей регистров», как Вы уже, наверно, догадались, не совсем обычный. А иначе бы о нем не стоило и писать. В этом плане у него много общего с документом «Операция», который мы разбирали недавно.
В качестве примера, когда может потребоваться программно создать документ «Корректировка записей регистров», предлагаю рассмотреть операцию переоценки основных средств. Переоценка основных средств - ситуация хоть и нечастая, но все же вполне реальная, а специального документа для переоценки в типовых конфигурациях 1С нет. Чтобы пример получился более представительным (включал в себя все виды корректируемых регистров), я сделал обработку для конфигурации «1С:Управление производственным предприятием». Но с другой стороны, чтобы не перегружать пример лишней информацией, мы рассмотрим случай, когда в результате переоценки происходит увеличение стоимости основных средств и накопленной амортизации (дооценка).
В этом случае переоценка основных средств отражается в бухгалтерском учете проводками:
- Дт. 01.01. - Кт. 83.01 - Увеличение первоначальной стоимости ОС.
- Дт. 83.01. - Кт. 02.01 - Увеличение суммы накопленной амортизации ОС.
В налоговом учете операция переоценки основных средств не предусмотрена, но для того чтобы соблюдалось равенство БУ = НУ + ПР + ВР, мы должны отразить в учете возникновение постоянных разниц. Также мы должны сделать движения в регистрах накопления «СтоимостьОС», «СтоимостьОСБухгалтерскийУчет» и в регистрах сведений «ПараметрыАмортизацииОС», «ПараметрыАмортизацииОСБухгалтерскийУчет», «СобытияОС» и «СобытияОСОрганизаций».
Исходные данные для переоценки ОС берутся из dbf-таблицы с набором полей:
- OS (строка) - код основного средства;
- SumU (число) - сумма дооценки по управленческому учету в единицах валюты управленческого учета;
- SumB (число) - сумма дооценки по бухгалтерскому учету;
- AmortU (число) - сумма дооценки накопленной амортизации по управленческому учету в единицах валюты управленческого учета;
- AmortB (число) - сумма дооценки накопленной амортизации по бухгалтерскому учету.
Скачать готовую обработку «Переоценка основных средств» можно в «Кладовке провинциального программиста»:
Упрощенный фрагмент кода обработки, иллюстрирующий запись проводок в регистр бухгалтерии, представлен в листинге:
Сч01_01 = ПланыСчетов.Хозрасчетный.ОСвОрганизации; Сч02_01 = ПланыСчетов.Хозрасчетный.АмортизацияОС_01; Сч83_01 = ПланыСчетов.Хозрасчетный.ПриростСтоимостиИмуществаПоПереоценке; ДБФ = Новый XBase; ДБФ.ОткрытьФайл(ИмяФайла); Если ДБФ.Открыта() Тогда Попытка НачатьТранзакцию(); ДокКорректировка = Документы.КорректировкаЗаписейРегистров.СоздатьДокумент(); ЗаполнениеДокументов.ЗаполнитьШапкуДокумента(ДокКорректировка.ЭтотОбъект, ПараметрыСеанса.ТекущийПользователь); ДокКорректировка.Дата = Период; НоваяСтрокаРегБух = ДокКорректировка.ТаблицаРегистровБухгалтерии.Добавить(); НоваяСтрокаРегБух.Имя = "Хозрасчетный"; НоваяСтрокаРегБух.Представление = "Журнал проводок (бухгалтерский учет)"; ДокКорректировка.Записать(); ДокКорректировкаСсылка = ДокКорректировка.Ссылка; НЗХозрасчетный = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НЗХозрасчетный.Отбор.Регистратор.Значение = ДокКорректировкаСсылка; ДБФ.Первая(); Пока Не ДБФ.ВКонце() Цикл ОсновноеСредство = Справочники.ОсновныеСредства.НайтиПоКоду(СокрЛП(ДБФ.OS)); Если ОсновноеСредство.Пустая() Тогда Сообщить("Не найдено ОС с кодом " + ДБФ.OS + "!", СтатусСообщения.Важное); Продолжить; КонецЕсли; ЗХозрасчетный = НЗХозрасчетный.Добавить(); ЗХозрасчетный.Период = Период; ЗХозрасчетный.Регистратор = ДокКорректировкаСсылка; ЗХозрасчетный.Организация = Организация; ЗХозрасчетный.Содержание = "Увеличение первоначальной стоимости ОС"; ЗХозрасчетный.СчетДт = Сч01_01; ЗХозрасчетный.СчетКт = Сч83_01; БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетДт, ЗХозрасчетный.СубконтоДт, "ОсновныеСредства", ОсновноеСредство); БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "ОсновныеСредства", ОсновноеСредство); ЗХозрасчетный.Сумма = ДБФ.SumB; ЗХозрасчетный = НЗХозрасчетный.Добавить(); ЗХозрасчетный.Период = Период; ЗХозрасчетный.Регистратор = ДокКорректировкаСсылка; ЗХозрасчетный.Организация = Организация; ЗХозрасчетный.Содержание = "Увеличение накопленной амортизации ОС"; ЗХозрасчетный.СчетДт = Сч83_01; ЗХозрасчетный.СчетКт = Сч02_01; БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетДт, ЗХозрасчетный.СубконтоДт, "ОсновныеСредства", ОсновноеСредство); БухгалтерскийУчет.УстановитьСубконто(ЗХозрасчетный.СчетКт, ЗХозрасчетный.СубконтоКт, "ОсновныеСредства", ОсновноеСредство); ЗХозрасчетный.Сумма = ДБФ.AmortB; ДБФ.Следующая(); КонецЦикла; ДБФ.ЗакрытьФайл(); НЗХозрасчетный.Записать(); ЗафиксироватьТранзакцию(); Исключение Сообщить(ОписаниеОшибки(), СтатусСообщения.ОченьВажное); ОтменитьТранзакцию(); КонецПопытки; КонецЕсли;
Как видно из примера, документ «Корректировка записей регистров» подобно документу «Операция» используется в качестве регистратора, движения же записываются непосредственно в регистр. Движения по регистрам накопления и регистрам сведений делаются аналогично.
P. S. Не забывайте про обмен ссылками, кампания продолжается.
Оч познавательно. Спасибо большое!!!
ОтветитьУдалитьспасибо, то что нужно... статья очень помогла
ОтветитьУдалитьСпасибо, очень доходчивая статья, очень помогла
ОтветитьУдалить