Читайте дальше...
Запись в регистр бухгалтерии
// Пример записи движения по регистру бухгалтерии
Процедура ЗаписатьДвижениеРегистраБухгалтерии()
// Создаем объект документа, который будет основанием для проводки
Документ = Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
// Заполняем параметры документа...
// Создаем набор записей регистра бухгалтерии
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Мode = РежимНабораЗаписейРегистра.Движение;
// Создаем новую запись
Запись = НаборЗаписей.Добавить();
Запись.Период = Документ.Дата;
Запись.СчетДт = ПланыСчетов.Хозрасчетный.Материалы;
Запись.СчетКт = ПланыСчетов.Хозрасчетный.Поставщики;
Запись.Сумма = 10000; // Сумма проводки
Запись.Валюта = Справочники.Валюты.НайтиПоКоду("643");
Запись.СуммаВВалюте = 10000;
Запись.Количество = 1;
Запись.Подразделение = Справочники.Подразделения.Основное;
Запись.ОбъектАналитикиДт = Справочники.Номенклатура.НайтиПоНаименованию("Офисный стол");
Запись.ОбъектАналитикиКт = Справочники.Контрагенты.НайтиПоНаименованию("ООО Поставщик");
Запись.Документ = Документ;
// Записываем движения
НаборЗаписей.Записать();
КонецПроцедуры
Чтение данных из регистра бухгалтерии
// Пример получения оборотов по счету
Процедура ПолучитьОборотыПоСчету()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Хозрасчетный.СчетДт КАК Счет,
| СУММА(Хозрасчетный.Сумма) КАК Сумма
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.СчетДт = &Счет
| И Хозрасчетный.Период МЕЖДУ &НачалоПериода И &КонецПериода
|СГРУППИРОВАТЬ ПО
| Хозрасчетный.СчетДт";
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.Материалы);
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить("Счет: " + Выборка.Счет + ", Сумма: " + Выборка.Сумма);
КонецЦикла;
КонецПроцедуры
Получение остатков на дату
// Пример получения остатков по счету на дату
Процедура ПолучитьОстаткиПоСчетуНаДату()
Остатки = РегистрыБухгалтерии.Хозрасчетный.ОстаткиПоСчету(
ПланыСчетов.Хозрасчетный.Материалы,
КонецДня(ТекущаяДата()),
Новый Структура("Валюта", Справочники.Валюты.НайтиПоКоду("643")));
Для Каждого Остаток Из Остатки Цикл
Сообщить("Счет Дт: " + Остаток.СчетДт +
", Сумма: " + Остаток.Сумма +
", Количество: " + Остаток.Количество);
КонецЦикла;
КонецПроцедуры
Корректировка записей регистра
// Пример корректировки ранее проведенных движений
Процедура КорректироватьПроводки(ДокументОснование)
// Создаем набор записей для корректировки
НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Mode = РежимНабораЗаписейРегистра.Движение;
// Находим проводки для корректировки
Отбор = Новый Структура;
Отбор.Вставить("Документ", ДокументОснование);
Движения = РегистрыБухгалтерии.Хозрасчетный.ВыбратьДвижения(Отбор);
Пока Движения.Следующий() Цикл
// Создаем новую запись на сторнирование
ЗаписьСторно = НаборЗаписей.Добавить();
ЗаписьСторно.Заполнить(Движения);
ЗаписьСторно.Сторно = Истина;
// Создаем новую запись с корректными данными
ЗаписьКорректировка = НаборЗаписей.Добавить();
ЗаписьКорректировка.Заполнить(Движения);
ЗаписьКорректировка.Сумма = Движения.Сумма * 0.9; // Уменьшаем сумму на 10%
КонецЦикла;
// Записываем корректировки
НаборЗаписей.Записать();
КонецПроцедуры
Пример сложного запроса к регистру бухгалтерии
// Пример запроса с аналитиками и группировками
Процедура ПолучитьОборотыСАналитикой()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Хозрасчетный.СчетДт КАК СчетДт,
| Хозрасчетный.ОбъектАналитикиДт КАК Номенклатура,
| Хозрасчетный.Подразделение КАК Подразделение,
| СУММА(Хозрасчетный.Сумма) КАК Сумма,
| СУММА(Хозрасчетный.Количество) КАК Количество
|ИЗ
| РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.Период МЕЖДУ &НачалоПериода И &КонецПериода
| И Хозрасчетный.СчетДт В ИЕРАРХИИ(&Счет)
|СГРУППИРОВАТЬ ПО
| Хозрасчетный.СчетДт,
| Хозрасчетный.ОбъектАналитикиДт,
| Хозрасчетный.Подразделение";
Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.Материалы);
Запрос.УстановитьПараметр("НачалоПериода", НачалоГода(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода", ТекущаяДата());
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(СтрШаблон("Счет: %1, Номенклатура: %2, Подразделение: %3, Сумма: %4, Количество: %5",
ВыборкаДетальныеЗаписи.СчетДт,
ВыборкаДетальныеЗаписи.Номенклатура,
ВыборкаДетальныеЗаписи.Подразделение,
ВыборкаДетальныеЗаписи.Сумма,
ВыборкаДетальныеЗаписи.Количество));
КонецЦикла;
КонецПроцедуры
Проверка существования проводок для документа
// Проверка наличия движений для документа
Функция ЕстьПроводкиПоДокументу(Документ)
Отбор = Новый Структура;
Отбор.Вставить("Документ", Документ);
Возврат РегистрыБухгалтерии.Хозрасчетный.НайтиДвижения(Отбор).Количество() > 0;
КонецФункции
Эти примеры демонстрируют основные операции с регистрами бухгалтерии в 1С: запись, чтение, получение остатков, корректировку и анализ данных. В зависимости от конфигурации вашей системы, некоторые детали могут отличаться.








