Под данными понимаются различные количественные характеристики, отчеты по продажам, прибыль, выручка и т.д.
Данные будут обрабатываться js и визуализироваться в HTML5.
Первое что пришло на ум, это веб-сервисы и http-сервисы 1c. Кстати это не одно и то же???
С первыми немного работал. Со вторыми нет.
Еще как вариант данные можно тянуть напрямую из SQL, или загружать из dbf предварительно подготовленные в 1с.
Так как суть визуализации в том чтоб графы менялись в режиме онлайн то наверное правильно будет брать данные по веб-сервисам.
Вопрос в следующем у кого какие мнения, как будет правильнее, хотя я так понимаю правильнее так как умеешь, но все же возможно уже кто то проходил этот путь и готов поделиться опытом.
(1) baracuda, на веб-сервисах делал похожую штуку... Планируешь постоянно долбиться в веб-сервис и каждую минуту выполнять запрос в базе? Ну, работать вполне будет, если не завалишь базу и контролить надо, чтобы не заваливался, связь не пропадала, не зависало... Напрямую из скуля хорошо, конечно, но геморройно, имхо, собирать их там.
(2) necropunk, Каждую минуту, полчаса или час не принципиально. Главное, чтоб данные изменялись.
Допустим у меня есть отчет ДоходыРасходы в 1С, мне нужно этот самый запрос выполнить серез веб-сервис и получить данные. Пока не совсем представляю как это будет выглядеть. И какие данные я получу. XML или можно сразу цифровые показатели?
Недавно озвучивали мне аналогичную задачу. Сбор данных из разных баз и просмотр руководством в веб-форме отчетов.
Думается такая цепочка - выгрузка показателей из баз данных в одну сводную аналитическую, и уже из нее в отчеты.
Не знаю подойдет ли тут "Консолидация".
С отчетами тоже вопрос - то ли веб-возможности 1С использовать, то ли прямые запросы к базе.
Буду следить за темой - вдруг что хорошее люди посоветуют.
(6) kudlach, примерно то что описали вы делают люди тут. В моем случае все проще база только 1с, правда базы разные.
Собственно если методологию построить неважно количество баз и тип источников.
Я писал веб-сервис, чтобы он вообще произвольный запрос выполнял и возвращал результат. Если пользоваться аккуратно - работает. Надо только помнить, что можно запросом, в общем-то и всю базу вернуть, поэтому лучше навтыкать ограничений, хотя бы уж "ПЕРВЫЕ 50"....
ВЫБРАТЬ
СУММА(ДоходыИРасходы.ДоходУпр) КАК ДоходУпр,
СУММА(ДоходыИРасходы.РасходУпр) КАК РасходУпр,
ДоходыИРасходы.ПодразделениеКомпании КАК ПодразделениеКомпании
ИЗ
РегистрНакопления.ДоходыИРасходы КАК ДоходыИРасходы
ГДЕ
ДоходыИРасходы.Период МЕЖДУ &Дата1 И &Дата2
СГРУППИРОВАТЬ ПО
ДоходыИРасходы.ПодразделениеКомпании
УПОРЯДОЧИТЬ ПО
ПодразделениеКомпании,
Показать
при создании пакета XDTO как правильно описать пакет под этот запрос.
Сделал так будет ли правильно?
Да почти все получил то что надо, единственное не могу осилить отображение подразделения.
Для свойства подразделения указал тип, string.
Модуль вебсервиса такой
Функция PoschitatDoxod(Data1, Data2)
ВыручкаТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "Viruchka");
ОтчетТип = ФабрикаXDTO.Тип("http://www.sample-package.org", "Otchet");
Отчет = ФабрикаXDTO.Создать(ОтчетТип);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(ДоходыИРасходы.ДоходУпр) КАК ДоходУпр,
| ЕСТЬNULL(ДоходыИРасходы.ПодразделениеКомпании, ""Организация"") КАК ПодразделениеКомпании,
| СУММА(ДоходыИРасходы.РасходУпр) КАК РасходУпр
|ИЗ
| РегистрНакопления.ДоходыИРасходы КАК ДоходыИРасходы
|ГДЕ
| ДоходыИРасходы.Период МЕЖДУ &Дата1 И &Дата2
|
|СГРУППИРОВАТЬ ПО
| ДоходыИРасходы.ПодразделениеКомпании
|
|УПОРЯДОЧИТЬ ПО
| ПодразделениеКомпании,
| ДоходУпр,
| РасходУпр
|ИТОГИ
| СУММА(ДоходУпр),
| СУММА(РасходУпр)
|ПО
| ОБЩИЕ,
| ПодразделениеКомпании";
Запрос.УстановитьПараметр("Дата1", Data1);
Запрос.УстановитьПараметр("Дата2", Data2);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
СтрокаОтчета = ФабрикаXDTO.Создать(ВыручкаТип);
СтрокаОтчета.doxod = ВыборкаДетальныеЗаписи.ДоходУпр;
СтрокаОтчета.razxod = ВыборкаДетальныеЗаписи.РасходУпр;
СтрокаОтчета.podrazdelenie = ВыборкаДетальныеЗаписи.ПодразделениеКомпании;
Отчет.strokaOtcheta.Добавить(СтрокаОтчета);
КонецЦикла;
Возврат Отчет;
КонецФункции
Показать
На что выдается ошибка
<soap:Text xml:lang="ru_RU">Неизвестная ошибка. {WebСервис.PoschitatDoxod.Модуль(41)}: Ошибка при установке значения атрибута контекста (podrazdelenie)
по причине:
{WebСервис.PoschitatDoxod.Модуль(41)}: Ошибка при установке значения атрибута контекста (podrazdelenie)
по причине:
(12) baracuda, есть подозрение что вам из запроса тянутся итоговые записи с NULL в нерассчитываемых полях. Либо попробуйте через Попытка исключение обработать это, либо обход по запросу поправить.
Вот что в итоге получилось. Данные тянутся при каждом вызове страницы. По умолчанию стоит период от начала года до текущего дня, но думаю вывести две формы ввода периода не составит труда.
Хотелось бы отметить прекрасную библиотеку amcharts.com.
Всегда считал что руководству незачем сидеть в 1с, тем более что это в основном люди с маками и айпадами)). Да и наглядность в случае веб-тчетов в разы выше. Поставленной цели достиг благодаря amcharts.com и drupal 7.