| Вопрос ID#95 Работает ли OLE-сервер под Win NT4, Windows 2000. |
| Ответ Работает. NT4 - c SP6. |
| Ключевые слова - "OLE операционная работа система" Поиск по этим ключевым словам >>> |
| Вопрос ID#107 Я установил CashTAN v2.0 от 1.04.2001.
При попытке чтения протокола из 1С я получаю ошибку:
// кол-во протоколов определилось и например надо распечатать 30-й
ПД=CashTAN.ProtocolFolders(1).Protocol(30).ProtocolData;
ПД.MoveFirst();
Пока ПД.EOF()=0 цикл
Сообщить(""+ПД.DataCheckNumber); // здесь ошибка CashTANP9: Нет данных
ПД.MoveNext();
КонецЦикла;
Что я делаю не так? |
| Ответ Дело в том, что каждая операция содержит свой набор полей. Например, использование DataCheckNumber корректно для операций ctopCash, ctopCheck и ctopOther. Использование DataCheckNumber для других операций вызывает ошибку. Однако, Fields("CheckNumber").Value ошибку не вызывает, а просто возвращает пустое значение.
Отсюда вариантов два:
1. Проверять код операции перед использованием свойств Data<имяполя>
2. Использовать коллекцию Fields
Примечание: для увеличения скорости доступа к данным рекомендуется выносить за пределы цикла как можно больше обращений к свойствам, а именно:
ПД=CashTAN.ProtocolFolders(1).Protocol(30).ProtocolData;
ПДOpCode=ПД.Fields("OpCode")
ПДCheckNumber=ПД.Fields("CheckNumber")
ПД.MoveFirst();
Пока ПД.EOF()=0 цикл
Сообщить(""+ПДOpCode.Value+ПДCheckNumber.Value); // Будет работать в 2 раза быстрее, чем
Сообщить(""+ПД.Fields("OpCode").Value+ПД.Fields("CheckNumber").Value);
ПД.MoveNext();
КонецЦикла; |
| Ключевые слова - "ошибка поля протокол чтение" Поиск по этим ключевым словам >>> |
| Вопрос ID#108 В данных протокола, поле DataTime,насколько я понял, содержит и дату и время.
В 1С при ПДTime=ПД.Fields("Time") по всем чекам получаю одно и тоже
Сообщить(""+ПДTime.Value)-»30.12.99
Сообщить(""+Число(ПДTime.Value))-»2415019
Подскажите пожалуйста, как правильно выбрать дату и время чека.
С уважением,
Копытин Константин Владимирович.
Ведущий инженер-программист
ОАО "Сумынефтепродукт" |
| Ответ Только отправил Вам письмо, по поводу проблемы чтения из 1С времени чека, но решил еще проверить один вариант - и он прошел.
Все достаточно просто, и я был неправ говоря, что информации мало в файле описания. Просто не сразу доходит.
Использование
Сообщить(ПД.Fields("Time").AsString) дает прекрасный результат.
С уважением,
Копытин Константин Владимирович.
Ведущий инженер-программист
ОАО "Сумынефтепродукт" |
| Ключевые слова - "1С время протокол чек чтение" Поиск по этим ключевым словам >>> |
| Вопрос ID#109 А где взять DCOM98 ? |
| Ответ У Microsoft'а :
http://www.microsoft.com/com/dcom/dcom98/dcom1_3.asp |
| Ключевые слова - "DCOM Microsoft" Поиск по этим ключевым словам >>> |