Операции и проводки
Операции, проводки, корреспонденции
Для отражения данных о хозяйственной деятельности предприятия в бухгалтерском учете используются операции. Каждая операция содержит одну или несколько проводок. Проводка всегда принадлежит одной и только одной операции. Каждая из проводок, в свою очередь, может состоять из одной или нескольких корреспонденций. Проводки, содержащие несколько корреспонденций, называются сложными. В сложных проводках дебет одного счета корреспондирует с кредитом нескольких счетов или наоборот.
Свойства операции и проводки
Операция имеет следующие свойства: содержание операции, ее общая сумма, дата, номер, а также другие реквизиты, определяемые конфигурацией.
Проводка имеет следующие свойства: счет дебета, субконто счета дебета, счет кредита, субконто счета кредита, сумма проводки, валюта, количество, валютная сумма, а также другие реквизиты, определяемые конфигурацией.
Журнал операций и журнал проводок
Журнал операций служит для просмотра списка введенных бухгалтерских операций. Каждая операция отображается в нем одной строчкой, содержащей наиболее важную информацию об операции: дату, вид документа, содержание, сумму операции и т. д. В журнале операций существует возможность просмотра проводок текущей операции. В журнале операций можно просматривать как все операции, так и выборочно, руководствуясь при этом различными условиями. Так, например, можно сделать “видимыми” только те операции, которые попали в заданный временной интервал.
Журнал проводок является средством просмотра введенных проводок. Каждая операция содержит в себе одну или несколько проводок. Проводка всегда принадлежит одной и только одной операции. В журнале проводок отражаются проводки, относящиеся к разным операциям.
Режимы ввода операций
При ручном вводе операции все данные заносятся непосредственно пользователем.
Использование типовых операций автоматизирует ввод стандартных или часто используемых операций. Типовая операция представляет собой шаблон хозяйственной операции, т.е. некоторые данные уже введены, например, счет дебета и счет кредита. В типовой операции есть некоторые возможности по автоматическому расчету сумм проводок и других данных. В отличие от документов, которые полностью настраиваются в конфигурации, типовые операции вводятся пользователем.
Использование документов еще больше облегчает ввод хозяйственной операции. При таком вводе операции пользователю не надо заполнять все данные об операции: как правило, в документ вводится необходимая информация о хозяйственной операции, а проводки формируются автоматически при проведении документа
Источник
Чем отличается проводка от операции
Рассылка
Курс лекций
Статьи
Программы
Ссылки
Форум
Создание операции и проводок
Простой перебор
Перебор с фильтром
Перебор с корр. счетом
Фильтр по субконто
Графа отбора
Поиск операции
Удаление операции и проводок
Другие полезности
Операция обычно содержит одну или несколько проводок. Именно проводки влияют на бухгалтерские итоги. Каждая проводка принадлежит одной и только одной операции. Следует помнить, что любая операция вводится на основании документа. Даже операции, введенные вручную, привязываются к документу специального типа «Операция».
Работа с операциями похожа на работу с документами. Проводки можно представить, как табличную часть операции, по аналогии с табличной частью документа. С точки зрения пользователя все операции и проводки хранятся в журнале операций и связанном с ним журнале проводок.
Создание операции и проводок
При проведении документа, имеющего отношение к бухгалтерскому учету, процедура проведения должна заполнить атрибуты операции данного документа и сформировать проводки.
//заполнение атрибутов операции
Операция.СуммаОперации = Итог(«Сумма»);
Операция.Содержание = «Поступление материалов»;
Операция.Журнал = «МТ»; //доп. реквизит операции
//для каждой строки документа сделаем проводку
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
ПривязыватьСтроку(1); //проводки будут содержать номер строки документа
//создание проводки и заполнение атрибутов проводки
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду(«10.1»);
Операция.Дебет.Склады = Склад; //1-й вариант обращения к субконто
Операция.Дебет.Субконто(ВидыСубконто.Материалы,Материал); //2-й вариант
Операция.Количество = Количество;
Операция.Кредит.Счет = СчетПоКоду(«51»);
Операция.Кредит.Субконто(1,РасчетныйСчет); //3-й вариант
//у нас счет 10.1 валютный, поэтому
Операция.ВалСумма = Сумма*Курс;
Операция.Валюта = Валюта;
Операция.Филиал = Филиал; //разделитель учета (доп. реквизит проводки)
Итак, у операции есть следующие атрибуты:
Атрибут Документ предназначен только для доступа к атрибутам и реквизитам документа, которому принадлежит операция. Для получения значения типа «Документ» используется метод ТекущийДокумент.
Перед обращением к атрибуту конкретной проводки эта проводка должна быть выбрана с помощью методов ВыбратьПроводки, ПолучитьПроводку или создана при помощи метода НоваяПроводка. В модулях форм «Операции» и «Журнал проводок» текущая проводка определяется положением курсора.
Дебет.Счет
Дебет.Субконто
Атрибут Дебет служит для обращения к дебетовой части текущей проводки (корреспонденции) операции. Данный атрибут возвращает агрегатный объект специального типа «Дебет», который используется только для доступа к данным дебетовой части конкретной проводки (корреспонденции) операции и не используется отдельно.
Атрибут Дебет.Счет служит для доступа к счету дебета/кредита проводки или корреспонденции операции.
Атрибут Дебет.Субконто служит для доступа к значению субконто дебета проводки (корреспонденции) операции. В конкретном случае обращение к субконто для дебета определяется счетом дебета, то есть заданными для него видами субконто по которым ведется аналитический учет по этому счету.
Разные варианты обращения к субконто см. выше в примере.
Кредит.Счет
Кредит.Субконто
Простой перебор операций и проводок
Пример, выбрать все операции за период :
Опер = СоздатьОбъект(«Операция»);
Опер.ВыбратьОперации(НачДата, КонДата); //заданный период
Пока Опер.ПолучитьОперацию()=1 Цикл
//организуем перебор проводок текущей операции
//1-й вариант
Опер.ВыбратьПроводки();
Пока Опер.ПолучитьПроводку()=1 Цикл
Сообщить(Опер.Дебет.Счет);
Сообщить(Опер.Кредит.Счет);
Сообщить(Опер.Сумма);
//2-й вариант перебора проводок текущей операции
Для Ном = 1 По Опер.КоличествоПроводок() Цикл
Опер.ПолучитьПроводкуПоНомеру(Ном); //проводка стала текущей
Сообщить(Опер.Дебет.Счет);
Сообщить(Опер.Кредит.Счет);
Сообщить(Опер.Сумма);
Перебор операций и проводок с фильтром
Пример, выбрать проводки по счету «10.1» по филиалу «Северный».
Опер = СоздатьОбъект(«Операция»);
Опер.ВыбратьОперацииСПроводками(НачДата, КонДата,»10.1″,,ПланыСчетов.Основной,филСеверный);
Пока Опер.ПолучитьПроводку()=1 Цикл
.
КонецЦикла;
После вызова метода ВыбратьОперацииСПроводками метод ПолучитьПроводку выбирает очередную проводку из выборки удовлетворяющую заданным условиям, а метод ПолучитьОперацию выбирает первую проводку слудующей операции удовлетворяющую заданным условиям.
Перебор операций и проводок с указанием счета и корр. счета
. Необязательный параметр. Счет — счет, по которому будут отбираться проводки.
. Необязательный параметр. Счет — корреспондирующий счет, по которому будут отбираться проводки. Параметр имеет смысл, если указан параметр .
. Необязательный параметр. Число — признак вида оборота. Параметр может принимать значения: 1 — отбирать проводки только по дебету счета; 2 — отбирать проводки только по кредиту счета; 3 — отбирать проводки и по дебету, и по кредиту. По умолчанию 3.
Пример, выбрать проводки Д10.1 К51 или Д51 К10.1
Сч10_1 = СчетПоКоду(«10.1»);
Сч51 = СчетПоКоду(«51»);
Опер = СоздатьОбъект(«Операция»);
Опер.ВыбратьОперацииСПроводками (НачДата, КонДата, Сч10_1, Сч51. ПланыСчетов.Основной);
Пока Опер.ПолучитьПроводку()=1 Цикл
.
КонецЦикла;
Фильтрация по субконто
Пример, выбрать все проводки по счету 60 для заданной организации
Опер = СоздатьОбъект(«Операция»);
Опер.ИспользоватьСубконто(ВидыСубконто.Организации, ВыбОрг);
Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, «60»);
Пока Опер.ПолучитьПроводку() = 1 Цикл
. Сообщить(«Сумма » + Опер.Сумма);
КонецЦикла;
Пример, выбрать все проводки по счету 10 для заданного материала и заданного склада
Опер = СоздатьОбъект(«Операция»);
Опер.ИспользоватьСубконто(ВидыСубконто.Материалы, ВыбрМатериал);
Опер.ИспользоватьСубконто(ВидыСубконто.Склады, ВыбрСклад);
Опер.ВыбратьОперацииСПроводками(ДатаНач, ДатаКон, «10»);
Пока Опер.ПолучитьПроводку() = 1 Цикл
. Сообщить(«Сумма » + Опер.Сумма);
КонецЦикла;
Метод ИспользоватьКорСубконто аналогичен методу ИспользоватьСубконто, но задает фильтр по корреспондирующим субконто.
В качестве значения субконто в этим методы можно передавать «Список значений».
Фильтрация по графе отбора
синтаксис: ВыбратьПоЗначению ( , , , )
Параметр для отбора операций может принимать следующие значения:
«СуммаОперации» | Отбор по сумме операции. Доступно если в метаданных включен отбор по сумме операции. |
«Содержание» | Отбор по содержанию операции. Доступно если в метаданных включен отбор по содержанию операции. |
Отбор по дополнительному реквизиту операции. Идентификатор реквизита должен быть указан так, как это задано в метаданных. Доступно если в метаданных включен отбор по реквизиту операции. |
Параметр для отбора проводок может принимать следующие значения:
«Счет» | Отбор по счету дебета или счету кредита проводки. Доступно если в метаданных включен отбор по счетам проводок. |
«СчетДт» | Отбор по счету дебета проводки. Доступно если в метаданных включен отбор по дебету/кредиту счетов проводок. |
«СчетКт» | Отбор по счету кредита проводки. Доступно если в метаданных включен отбор по дебету/кредиту счетов проводок. |
«Валюта» | Отбор по валюте проводки. Доступно если в метаданных включен отбор по валюте проводок. |
ВидСубконто> | Отбор по виду субконто. Идентификатор вида субконто должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому виду субконто. |
Отбор по дополнительному реквизиту проводки. Идентификатор реквизита должен быть указан так, как он задан в метаданных. Доступно если в метаданных включен отбор по этому реквизиту проводки |
После выполнения данного метода обход операций (проводок) осуществляется методами ПолучитьОперацию и ПолучитьПроводку.
Поиск операции
Синтаксис: НайтиОперацию([ ])
В системе 1С:Предприятие каждая операция принадлежит документу. Причем операция принадлежит только одному документу, а у документа может существовать только одна операция. Операции введенные вручную принадлежат документам специального вида «Операция». Поэтому не существует возможности передачи такого значения как «Операция». Для «идентификации» операции фактически используется значение документа, которому она принадлежит. Поэтому для позиционировании объекта «Операция» непосредственно на конкретную операцию используется значение типа «Документ».
Опер = СоздатьОбъект(«Операция»);
Если Опер.НайтиОперацию(ВыбрДокумент)=1 Тогда
.
КонецЕсли;
Удаление операций и проводок
При отмене проведения документа автоматически удаляются операции и проводки, которые он сформировал (если у него стоит параметр Создавать операцию «только при проведении»).
Опер = СоздатьОбъект(«Операция»);
Если Опер.НайтиОперацию(ВыбрДокумент)=1 Тогда
. Опер.Удалить(1); //непосредственное удаление (по умолч.)
. Опер.Удалить(0); //пометка операции (документа) на удаление
КонецЕсли;
Методы ПометкаУдаления и СнятьПометкуУдаления работают так же, как для документов.
Метод УдалитьПроводку удаляет текущую проводку из операции.
Иногда проводки лучше не удалять, а просто выключить. Тогда они исключаются из бухгалтерских итогов. Потом проводки можно обратно включить.
Опер.ВключитьПроводки(0); //выключить проводки
Опер.ВключитьПроводки(1); //включить проводки
Другие полезные методы
УстановитьВремя()
ПроводкаВыбрана()
ПредставлениеСубконто()
Данный метод имеет смысл использовать, только в том случае, если существует необходимость обращения к итогам, измененным проводками записываемой операции.
Сч20 = СчетПоКоду(«20»);
Cч40 = CчeтПoKoдy(«40»);
СписаниеСчетаНаСч20(СчетПоКоду(«25»));
СписаниеСчетаНаСч20(СчетПоКоду(«26»));
Операция.ЗаписатьПроводки();
СписаниеСчета20На40();
Операция.Содержание = «Закрытие фин. результатов за » + Формат(ДатаДок, «Д ММММГГГГ»);
Операция.Записать();
Источник