![]() |
1c (оле) <=> Автограф, запрос по заправкам топлива
Добрый день!
Задача такая... Необходимо получить данные запросом из 1с через оле в автограф по заправкам за период. Начало заправки, окончание, количество литров заправки. Вроде все просто и понятно, но... Смотрим в описание полей dbf... Для запроса через AG.ExportDataToFile(ИмяФайлаБазыDBF,Р еквизитЗапроса,1); Тип: 0 – координаты; 1 – аналоговые данные; 2 – счётчики 1-2; 3 – счётчики 3-4; 4 – характеристика движения; 5 – событие; 6 – 1-wire ID водителя; 7 – 1-wire температура 1-4; 8 – 1-wire температура 5-8; 9 – RS-485: датчики LLS 1-4; 10 – RS-485: датчики LLS 5-8; 11 – CAN1: скор., упр,. расход; 12 – CAN2: уровни топлива; 13 – CAN3: обороты, моточасы; 14 – CAN4: температура; 15 – CAN5: пробеги общ. и сут.; 16 – CAN6: нагрузка на колёса; 17 – CAN7: записи пользователя; 18 – счётчики 5-6; 19 – счётчики 7-8; 20 – RS-485: объём заправки; 21 – RS-485: расход топлива; 22 – RS-485: прод.-сть. заправки; 23 – RS-485: расширитель входов; 24 – RS-485: пассажиропоток; 25 – RS-485: вес (уровень); 26 – CAN: коды ошибок; 27 – CAN: калькулированный расход Тут вроде ясно, строчка 22 – RS-485: прод.-сть. заправки, она нам и нужна. т.е. в нашем случае AG.ExportDataToFile(ИмяФайлаБазыDBF,22 ,1); - это для продолжительности заправки, для объема заправки ставим соответственно: AG.ExportDataToFile(ИмяФайлаБазыDBF,20 ,1); Далее делаем запрос в 1с ке ДанныеОбработеКрановойУст ановки.Очистить(); AG=Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation"); // Создаем COM-объект ddd=AG.WaitForInitializing(); // Ждем окончания инициализации объекта НепройденныеКТ = 1; // Устанавливаем чекбокс "Показывать отчет с непройденными КТ" в положение "Да" ТабГрупп.очистить(); ТабКТ.очистить(); ЗаполнитьТаблицуТС(Кран_); Для каждого стр из ТабТС цикл ТСПериодНач=НачалоДня(НачП ериода) ; ТСПериодКон=КонецДня(КонПе риода) ; AG.SetGroupIndexByFileName(стр.ГрФайл); AG.SetCarIndexByDevice(стр.СерНом); AG.WaitForComputing(стр.ГрФайл,стр.С рНом,ТСПериодНач,ТСПериод он,"GSM",1); КолРейсов = AG.TripsNum; ФайлКТ = AG.CarCheckPointsFile; если КолРейсов > 0 тогда AG.TripIndex = 1; конецесли ; СерийныйНомерКрана = стр.Серном ; ИмяФайлаБазыDBF= строка("D:\kran.dbf"); Попытка AG.ExportDataToFile(ИмяФайлаБазыDBF,22 ,1); Исключение AG.PropertyName = "Last_Error"; Сообщить(AG.PropertyValue); Сообщить("Не удалось экспортировать данные: "+ОписаниеОшибки()); КонецПопытки; Далее должен сформироваться файл dbf в него заходим и перебираем, берем что нам надо. Но то что надо нам, нет. Похоже что ExportDataToFile не воспринимает параметр 22. Подскажите пожалуйста в чем засада?! Может где то какой то параметр надо поставить?! Добавлено через 51 минуту система почему то обрезает сообщение. Чтобы посмотреть все, нажмите на расширенный режим... |
Леонид Борисович, а почему через файл ? Эти данные легко и гораздо быстрее можно напрямки через массив получить.
![]() |
Через массив ни разу не делали. Только через файл.
Подскажите пример пожалуйста. Добавлено через 2 минуты Как я понял, должно быть тоже самое, только заместо параметра AG.ExportDataToFile( ставим то что указали с нужными параметрами? |
Вложений: 1
Отчет по заправкам и сливам:
Нажмите для просмотра содержимого...
Код:
//************************************************************************************************************************************************************************ |
Отличный ответ, большое спасибо.
|
А как можно подтянуть котрольные точки, через которые прошло ТС?
|
Цитата:
Тремя постами выше - вложен пример отчетов для 1С - там есть и отчет по КТ, причем и просто по пройденным и по пройденным и непройденным... |
Спасибо! Посмотрел разобрался.
SK подскажите еще а есть ли возможность создавать рейсы в автографе через OLE если у нас в 1с создаются путевки, можно прописать на обработку при записи связь с автографом и создание рейса. |
Что значит "создавать рейсы" ? Рейсы не создаются, деление на рейсы делается согласно установленным признакам начала нового рейса.
Если надо что-то нестандартное или динамическое, Вы можете самостоятельно делить на рейсы как хотите, а потом в цикле подставлять полученные временные интервалы при формировании отчетов и получении данных в 1С. У Вас по каким признакам начинается и заканчивается рейс ? Имхо, сначала нужно поставить задачу - как правило все можно решить и без лишних кастомных телодвижений. |
[QUOTE=Леонид Борисович;49291]Добрый день!
Задача такая... Необходимо получить данные запросом из 1с через оле в автограф по заправкам за период. Начало заправки, окончание, количество литров заправки. Подскажите, а у Вас на машинах Дуты стоят? если да, то какая их точность? |
Текущее время: 00:02. Часовой пояс GMT. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot