ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (https://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: 1С + АвтоГРАФ (https://forum.tk-chel.ru/forumdisplay.php?f=112)
-   -   Остаток топлива в баках 1с 7.7 (https://forum.tk-chel.ru/showthread.php?t=3370)

semyongorokhov 08.11.2013 02:17

Остаток топлива в баках 1с 7.7
 
Можете объяснить, пожалуйста, как получить остаток топлива в баках у определенной машины в определенное время. Через OLE в 1с 7.7.

Добавлено через 19 минут
не могу вставить код. но если автомобиль не находит по индексу, то берет какое-то левый автомобиль и выдает его остатки

Добавлено через 1 минуту
AG=СоздатьОбъект("AutoGRAPH.AutoGRAPH Automation"); // Создаем COM-объект
ddd=AG.WaitForInitializing(); // Ждем окончания инициализации объекта
НепройденныеКТ = 1; // Устанавливаем чекбокс "Показывать отчет с непройденными КТ" в положение "Да"
Если Вопрос("Документ надо сначала записать. Записать?","Да+Нет")="Да" Тогда
Записать();
ВыбратьСтроки();
ТекДок = СоздатьОбъект("Документ.Ин ентаризацияТоплива");
ТекДок.НайтиДокумент(Текущ ийДокумент());
Часы = "";
Минуты = "";
Секунды = "";
ТекДок.ПолучитьВремя(Часы, инуты,Секунды);
Если Число(Часы)<10 Тогда
Часы = "0"+Часы;
КонецЕсли;
Если Число(Минуты)<10 Тогда
Минуты = "0"+Минуты;
КонецЕсли;
Если Число(Секунды)<10 Тогда
Секунды = "0"+Секунды;
КонецЕсли;
ТСПериодНач=Формат(ДатаЧис ло(ДатаДок),"Ч(0)2.0")+"."+Формат( ДатаМесяц(ДатаДок),"Ч(0)2.0")+"." +Строка(ДатаГод(ДатаДок))+" 00:00:00";
ТСПериодКон=Формат(ДатаЧис ло(ДатаДок),"Ч(0)2.0")+"."+Формат( ДатаМесяц(ДатаДок),"Ч(0)2.0")+"." +Строка(ДатаГод(ДатаДок))+" "+Часы+":"+ Минуты+":"+Секунды;
Пока ПолучитьСтроку()=1 Цикл
Если ВыбАвтомобиль.ИДГлонасс > 0 Тогда
AG.WaitForComputing("*",ВыбАвтомобиль .ИДГлонасс,ТСПериодНач,ТСП риодКон,"GSM",1);
КолРейсов = AG.TripsNum;
Если КолРейсов=0 Тогда
//Предупреждение("Рейсов не обнаружено");
Иначе
AG.TripIndex = КолРейсов;
НомРейса = КолРейсов;
НачРейса = AG.TripStartRealTime;
КонРейса = AG.TripEndRealTime;
AG.TripEntriesListTypeName="tank";
КолТопливаВБаке = СоздатьОбъект("СписокЗначе ний");
КолТопливаВБаке.ВставитьЗ ачение(1,0);
AG.TripEntriesListKindName="num1"; // ДЛЯ БАКА 1 !!!
КолТопливаВБаке.ВставитьЗ ачение(1,AG.TripTank1EndLevel);
AG.TripEntriesListKindName="num2"; // ДЛЯ БАКА 1 !!!
КолТопливаВБаке.ВставитьЗ ачение(2,AG.TripTank2EndLevel);
AG.TripEntriesListKindName="num3"; // ДЛЯ БАКА 1 !!!
КолТопливаВБаке.ВставитьЗ ачение(3,AG.TripTank3EndLevel);
AG.TripEntriesListKindName="num4"; // ДЛЯ БАКА 1 !!!
КолТопливаВБаке.ВставитьЗ ачение(4,AG.TripTank4EndLevel);
Если ВыбТипДвигателя = Перечисление.ТипыДвигател й.Основной Тогда
КолТопливаВБакеАвтограф = КолТопливаВБаке.ПолучитьЗ ачение(ВыбАвтомобиль.Бак1О снДвиг)+КолТопливаВБаке.По учитьЗначение(ВыбАвтомоби ль.Бак2ОснДвиг);
ИначеЕсли ВыбТипДвигателя = Перечисление.ТипыДвигател й.Дополнительный Тогда
КолТопливаВБакеАвтограф = КолТопливаВБаке.ПолучитьЗ ачение(ВыбАвтомобиль.Бак1Д опДвиг)+КолТопливаВБаке.По учитьЗначение(ВыбАвтомоби ль.Бак2ДопДвиг);
КонецЕсли;
КонецЕсли;
ВыбОстатокТопливаПоГлонас с = КолТопливаВБакеАвтограф;
РазницаОстатков();
КонецЕсли;
КонецЦикла;
Иначе
Возврат;
КонецЕсли;

Добавлено через 1 минуту
отправил. но как-то криво

SK 25.11.2013 14:27

Цитата:

Сообщение от semyongorokhov (Сообщение 66865)
как получить остаток топлива в баках у определенной машины в определенное время. Через OLE в 1с 7.7

Вот код:
Код:

ТСПериодНач= ??? ; // Вставить Начало исследуемого периода, чтоб между началом и концом были записи по топливу
ТСПериодКон= ??? ; // Вставить Конец исследуемого периода
AG.WaitForComputing(ФайлГруппыТС,ТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",0); // 0 - не разбивать на рейсы, т.к. интересует только значение на конец периода
Если AG.TripsNum = 0 Тогда
// Предупреждение("Рейсов не обнаружено"); // Раскомментировать, если надо предупреждения
Иначе
AG.TripIndex = 1;
УровеньНаКонецПериода = AG.TripTank1EndLevel; // 1 - заменить на нужный номер бака, если необходимо
КонецЕсли;

Полностью пример со всей инициализацией можно посмотреть из внешнего отчета для 1С 7.7 тут: http://www.tk-chel.ru/download/AutoGRAPH_OLE.zip


Текущее время: 07:35. Часовой пояс GMT.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot