Прямые MS SQL запросы к базе 1С
Возникла нужда строить отчеты на основании данных из 1С на WEB страницу строящуюся на PHP. Первой проблемой, после удачного коннекта к MSSQL, стало сопоставить структуру данных из конфигуратора с реальными таблицам в MSSQL. Для сопоставления существует много разработок, например http://infostart.ru/public/147147/
Работоспособных адекватных конверторов запросов 1С в текст SQL я так и не нашел. А «ручками» запрос лепить, оказалось весьма время затратно.
Вот пример получившегося запроса по остаткам продукции, из регистра накоплений на текущий момент:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
SELECT [upp_rss].[dbo].[_Reference248].[_Description] as skladname ,[_Reference186].[_Description] as nomename ,[upp_rss].[dbo].[_Reference246].[_Description] as seria ,[_Reference186].[_Fld2914] as emk ,[_Fld24642] as kol FROM [upp_rss].[dbo].[_AccumRgT24645] INNER JOIN [upp_rss].[dbo].[_Reference186] ON [upp_rss].[dbo].[_AccumRgT24645].[_Fld24638RRef]=[upp_rss].[dbo].[_Reference186].[_IDRRef] INNER JOIN [upp_rss].[dbo].[_Reference84] ON [upp_rss].[dbo].[_Reference186].[_Fld2887RRef]=[upp_rss].[dbo].[_Reference84].[_IDRRef] INNER JOIN [upp_rss].[dbo].[_Reference246] ON [upp_rss].[dbo].[_AccumRgT24645].[_Fld24641RRef]=[upp_rss].[dbo].[_Reference246].[_IDRRef] INNER JOIN [upp_rss].[dbo].[_Reference248] ON [upp_rss].[dbo].[_AccumRgT24645].[_Fld24637RRef]=[upp_rss].[dbo].[_Reference248].[_IDRRef] WHERE [_Reference84].[_Description]='Продукция' and [_AccumRgT24645].[_Period]='5999-11-01 00:00:00.000' and [_AccumRgT24645].[_Fld24642]<>0 order by skladname,nomename desc |
Ну что я могу сказать? Мне не понравилось.. Буду искать какой-то метод по проще..