Запись данных в регистр бухгалтерии (вручную и с помощью конструктора) и получение итоговой информации. С помощью конструктора Запись данных в регистр бухгалтерии осуществляется, когда происходит какая-либо хозяйственная операция. Она отражается строкой в регистре бухгалтерии и называется проводкой. Это можно сделать двумя способами: вручную и с помощью конструктора. Для того чтобы провести проводку с помощью конструктора нужно сначала создать план счетов. Затем создать регистр бухгалтерии и связать его с этим планом счетов. Кроме тех полей, которые мы сами создадим в регистре бухгалтерии, создадутся дополнительные поля после связывания регистра с планом счетов. Считаем, что у нас есть документ, который требуется отразить в регистре бухгалтерии. В движении этого документа указываем, что он будет связан с нашим регистром бухгалтерии. Таким образом, в режиме 1С предприятия, если документ будет проведен, то у нас получится проводка или, другими словами, запись в регистре бухгалтерии. Код, который будет сгенерирован конструктором: Для Каждого ТекСтрокаМатериалы Из Материалы Цикл // регистр Управленческий Движение = Движения.Управленческий.Добавить(); // создается новая строка, а дальше заполняется каждая колонка этой строки. Данные мы берем из документа-регистратора. Движение.СчетДт = ПланыСчетов.Основной.Товары; Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставшиками; Движение.Период = Дата; Движение.Сумма = ТекСтрокаМатериалы.Сумма; Движение.Количество = ТекСтрокаМатериалы.Количество; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Материалы] = ТекСтрокаМатериалы.Материал; КонецЦикла; Движения.ОстаткиМатериалов.Записать(); Движения.СтоимостьМатериалов.Записать(); Движения.Управленческий.Записать(); КонецПроцедуры Т.е. здесь все колонки регистра бухгалтерии заполняются конструктором. 1 Вручную А теперь создадим проводку вручную. Для этого нужно создать документ-регистратор (документ, который связан с регистром бухгалтерии). Затем добавить в регистр новую запись и заполнить эту строку всеми данными, которые там должны быть. В примере регистр бухгалтерии имеет следующие поля для записи данных: Измерения – Организация и Валюта; Ресурсы – Сумма, ВалютнаяСумма и Количество; Реквизиты – Содержание, НомерЖурнала. Вот код, который нужно прописать вручную. // Задать выбираемы значения. ВыбранныйОтветственный = Справочники.Пользователи. НайтиПоНаименованию(«Иванцова»); ВыбранныйКонтрагент = Справочники.Контрагенты.НайтиПоКоду («00027»); ВыбранныйДоговор = Справочники.ДоговорыКонтрагентов.НайтиПоКоду(«00013»); ВыбранныйДокумент = Документы.ДокументРасчетовСКонтрагентом. НайтиПоНомеру(2, ‘20050101’); ВыбранныйСчет = Справочники.БанковскиеСчета.НайтиПоКоду(«00001»); ВыборанныйСтатья = Справочники.СтатьиДвиженияДенежныхСредств. НайтиПоКоду(«00002»); ВыбраннаяОрганизация = Справочники.Организации.НайтиПоКоду(«00001»); ВыбраннаяВалюта = Справочники.Вылюты.НайтиПоКоду(810); // Создать будущий регистратор ДатаЗаписи = ТекущаяДата(); Документ = Документы.ОперацияБух.СоздатьДокумент(); Документ.Дата = ДатаЗаписи; Документ.Организация = ВыбраннаяОрганизация; Документ.Ответственный = ВыбранныйОтветственный; Документ.Содержание = «Оплата поставщику»; Документ.Записать(); // Создать набор записей НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Документ.Ссылка); 2 Движение = НаборЗаписей.Добавить(); Движение.Регистратор = Документ.Ссылка; Движение.Период = ДатаЗаписи; // Заполнить счет дебета Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(«60.01»); // заполнить аналитику счета дебета Движение.СубконтоДт.Контрагенты = ВыбранныйКонтрагент; Движение.СубконтоДт.Договоры = ВыбранныйДоговор; Движение.СубконтоДт.ДокументыРасчетовСКонтрагентами = ВыбранныйДокумент; // Заполнить счет кредита Движение.СчетКт = ПланыСчетов.Хозрасчетный.НайтиПоКоду(«51»); // Заполнить аналитику счета кредита Движение.СубконтоКт.БанковскиеСчета = ВыбранныйСчет; Движение.СубконтоКт.СтатьиДвиженияДенежныхСредства = ВыбраннаяСтатья; //Балансовое измерения Движение.Организация = ВыбраннаяОрганизация; // Балансовый ресурс Движение.Сумма = 30000; // Реквизиты Движение.НомерЖурнала = «БК»; Движение.Содержание = «Оплата поставщику»; // Записать набор записей НаборЗаписей.Записать(); Создаем новую строку в регистре и заполняем все поля. Т.е. мы создали документ, и все это отразилось в регистре бухгалтерии. Получение итоговой информации Как получить остаток по счету? Получим остатки по счету Товары на складах в разрезе организаций и товаров. Для этого будем использовать запрос к виртуальной таблице остатков регистра бухгалтерии Хозрасчетный: Запрос = Новый Запрос; Запрос.Текст = « | ВЫБРАТЬ 3 | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Организация, | ХозрасчетныйОстатки.СуммаОстаток, | ХозрасчетныйОстатки.КоличествоОстаток | ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет,,) | КАК ХозрасчетныйОстатки»; Запрос.УстановитьПараметр(«Период», КонецДня(ДатаОтчета)); Запрос.УстановитьПараметр(«Счет», ПланыСчетов.Хозрасчетный.ТоварыНаСкладах); РезультатЗапроса = Запрос.Выполнить(); Как получить валютные остатки по счетам? Получить остатки по каждой валюте в разрезе счетов и организаций: ВЫБРАТЬ ОсновнойОстатки.Организация КАК Организация, ОсновнойОстатки.Счет КАК Счет, ОсновнойОстатки.Валюта КАК Валюта, ОсновнойОстатки.ВалютнаяСуммаОстаток КАК Остаток ИЗ РегистрБухгалтерии.Основной.Остатки КАК ОсновнойОстатки УПОРЯДОЧИТЬ ПО ОсновнойОстатки.Счет.Код ИТОГИ СУММА ПО Организация, Счет, Валюта Кроме того, остатки и обороты по счету можно получить аналогично данным из регистров накопления, посредством функций Остатки и Обороты регистра бухгалтерии. 4