Регистры бухгалтерии
Планы счетов
В ниже следующем скрипте демонстрируется обращение к плану счетов “Хозрасчетный” типовой конфигурации 1С:Предприятие 8 “Бухгалтерия предприятия”. Дополнительно используется обращение к табличной части “ВидыСубконто”, в которой хранятся настройки признаков учёта субконто для соответствующих счетов.
Табличная часть “ВидыСубконто” может отсутствовать если аналитический учёт по субконто не используется.
DECLARE @table array -- Таблица для вывода результата запроса
USE 'mssql://server/accounting_3_0_72_72_demo'
SELECT Порядок = Счёт.Порядок,
ПометкаУдаления = Счёт.ПометкаУдаления,
Забалансовый = Счёт.Забалансовый,
Счёт = Счёт.Ссылка,
Родитель = Счёт.Родитель,
КодСчёта = Счёт.Код,
ВидСчёта = CASE WHEN Счёт.Вид = 0 THEN 'Активный'
WHEN Счёт.Вид = 1 THEN 'Пассивный'
WHEN Счёт.Вид = 2 THEN 'Активный/Пассивный' END,
Наименование = SUBSTRING(Счёт.Наименование, 1, 20),
ВерсияДанных = Счёт.ВерсияДанных,
Валютный = Счёт.Валютный,
Количественный = Счёт.Количественный,
НомерСубконто = Субконто.НомерСтроки,
ТипСубконто = ТипСубконто.Наименование,
ТолькоОбороты = Субконто.ТолькоОбороты,
Суммовой = Субконто.Суммовой,
ОбластьДанных = Счёт.ОбластьДанныхОсновныеДанные
INTO @table
FROM ПланСчетов.Хозрасчетный AS Счёт
LEFT JOIN ПланСчетов.Хозрасчетный.ВидыСубконто AS Субконто
ON Счёт.Ссылка = Субконто.Ссылка
LEFT JOIN ПланВидовХарактеристик.ВидыСубконтоХозрасчетные AS ТипСубконто
ON Субконто.ВидСубконто = ТипСубконто.Ссылка
WHERE Счёт.Код LIKE '10%'
ORDER BY Порядок ASC
END
RETURN @table -- Вывод результата запроса в интерфейсе DaJet Studio
Регистр бухгалтерии
В ниже следующем скрипте демонстрируется обращение к регистру бухгалтерии “Хозрасчетный” типовой конфигурации 1С:Предприятие 8 “Бухгалтерия предприятия”. Выбираются все проводки по одному конкретному документу. Дополнительно показано каким образом можно “расшифровать” ссылки на счета соответствующего данному регистру плана счетов.
DECLARE @table array
DECLARE @document entity
USE 'mssql://server/accounting_3_0_72_72_demo'
SELECT Ссылка INTO @document
FROM Документ.ПоступлениеТоваровУслуг
WHERE Номер = '0000-000001' AND Дата = '2015-01-10T06:00:00'
SELECT Активность, Период, Регистратор, НомерСтроки, СчётДт, СчётКт,
ИмяСчётаДт = СчетаДт.Наименование, ИмяСчётаКт = СчетаКт.Наименование,
Организация, ВалютаДт, ВалютаКт, ПодразделениеДт, ПодразделениеКт,
Сумма, КоличествоДт, КоличествоКт, Содержание
, ОбластьДанных = Движения.ОбластьДанныхОсновныеДанные
INTO @table
FROM РегистрБухгалтерии.Хозрасчетный AS Движения
INNER JOIN ПланСчетов.Хозрасчетный AS СчетаДт ON Движения.СчётДт = СчетаДт.Ссылка
INNER JOIN ПланСчетов.Хозрасчетный AS СчетаКт ON Движения.СчётКт = СчетаКт.Ссылка
WHERE Движения.Регистратор = @document
ORDER BY НомерСтроки ASC
END
RETURN @table
Таблица значений субконто
В ниже следующем скрипте демонстрируется получение значений субконто для регистра бухгалтерии “Хозрасчетный” типовой конфигурации 1С:Предприятие 8 “Бухгалтерия предприятия”. Выбираются все проводки по одному конкретному документу.
Начиная с версии 1С:Предприятие 8.3.15, значения субконто дополнительно включаются в состав основной таблицы регистра бухгалтерии. Обращение к их значениям выполняется по порядковым номерам субконто следующим образом:
- Субконто1 - значение субконто.
- ВидСубконто1 - значение соответствующего плана вида характеристик.
DECLARE @table array
DECLARE @document entity
USE 'mssql://server/accounting_3_0_72_72_demo'
SELECT Ссылка INTO @document
FROM Документ.ПоступлениеТоваровУслуг
WHERE Номер = '0000-000001' AND Дата = '2015-01-10T06:00:00'
SELECT Период, Регистратор, НомерСтроки,
ВидДвижения = CASE WHEN Значения.ВидДвижения = 0 THEN 'Дебет' ELSE 'Кредит' END,
ВидСубконто,
Значение = Значения.Значение,
ЗначениеСтрокой = CASE WHEN Значения.Значение IS Справочник.Склады THEN Склады.Наименование
WHEN Значения.Значение IS Справочник.Контрагенты THEN Контрагенты.Наименование
WHEN Значения.Значение IS Справочник.Номенклатура THEN Номенклатура.Наименование
WHEN Значения.Значение IS Справочник.ДоговорыКонтрагентов THEN Договоры.Наименование
ELSE ''
END,
ОбластьДанных = Значения.ОбластьДанныхОсновныеДанные,
ИмяСубконто = Субконто.Наименование
INTO @table
FROM РегистрБухгалтерии.Хозрасчетный.ЗначенияСубконто AS Значения
INNER JOIN ПланВидовХарактеристик.ВидыСубконтоХозрасчетные AS Субконто
ON Значения.ВидСубконто = Субконто.Ссылка
LEFT JOIN Документ.Партия AS Партии ON Значения.Значение = Партии.Ссылка
LEFT JOIN Справочник.Склады AS Склады ON Значения.Значение = Склады.Ссылка
LEFT JOIN Справочник.Контрагенты AS Контрагенты ON Значения.Значение = Контрагенты.Ссылка
LEFT JOIN Справочник.Номенклатура AS Номенклатура ON Значения.Значение = Номенклатура.Ссылка
LEFT JOIN Справочник.ДоговорыКонтрагентов AS Договоры ON Значения.Значение = Договоры.Ссылка
WHERE Значения.Регистратор = @document
AND Значения.ОбластьДанныхОсновныеДанные = 0
ORDER BY НомерСтроки
END
RETURN @table