Andrey areful (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
Плюнул на 8370.
Используем решение от другого производителя. Но интерес остался.
Может вам пригодится следующая информация:
Если компилировать тот C# проект который идет с вашей компонентой,
то на Win2008 x64 он тоже не работает, так же как и из под 1С, зато прекрасно работает на WinXP x32.
На WinXP x64 не пробывал.
А ваша демонстрационная программа, которая идет в том же инсталляционном пакете
по моему CipherLabTCPLoader.exe называется, прекрасно отрабатывает и на Win2008 X64
и на WinXP x32. Мне вот интересно на чем она писалась? Если есть возможность дайте мне ответ.

Еще вопрос - можно ли заставить терминал читать другие виды кодов например CODE 39 не меняя задачу и прошивку?
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
Я эту обработку и использовал
терминал пингуется с ПК но не переходит в режим сбора данных при выборе меню "1. Сбор"
пишет Ожидание связи и все!
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
Может быть еще что-то подскажете?
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
Написал такую обработку.
Процедура ОбработкаВнешнегоСобытия полностью
взята из вашего примера.
Я так понимаю после выполнения процедуры ПодключитьТСД()
терминал должен входить в режим ввода данных
т.е. должна на нем появиться надпись "Введите код",
а там только ожидание связи.
Посмотрел как работает с обработкой С# и Эксель из вашего примера
там и в том, и в другом случае есть функция Start() которая запускает
сервер, а в примере с 1С вызова этой процедуры нет.
Правильно ли это?
И еще вопрос - по какому пути компонента сбрасывает файл и как он называется
в режиме "Записывать данные в файл".

[code]
Перем Объект; // Отвечает за компоненту CipherLabTCP



//*******************************************
Процедура Сформировать()

КонецПроцедуры


Процедура ОбработкаВнешнегоСобытия(Источник, Событие, Данные) Экспорт
Перем ВремТовар, ВремЕдиница, ВремКоличество, ВремЦена, ВремВалюта;
Перем НомерТСД, НомерБД, НомерФормы;
Перем Поле1, Поле2, Поле3, Поле4, Поле5, Поле6, Поле7, Поле8;

// Все методы объекта начинаются с "НомераТСД", т.е. его IP-адреса.
// IP-адрес сообщается в переменной "Данные"
Сообщить("Событие: "+Источник);
Если Источник = "CPT_TCP" Тогда
//Объект = глТерминал;
НомерТСД = Данные;
// Получим данные от ТСД, приславшего внешнее событие
Объект.ПолучитьДанные(НомерТСД, НомерБД, НомерФормы,
Поле1, Поле2, Поле3, Поле4, Поле5, Поле6, Поле7, Поле8);

/////////////////////////////////////////////////////////////////////////////
// Если было событие о начале подбора (создание документа) от радиоТСД, то....
/////////////////////////////////////////////////////////////////////////////
// Входящие данные:
// Поле1 = тип документа,
// Поле2 = номер документа,
// Поле3 = номер пользователя 1С (если включена настройка в ТСД),
// Поле4 = пароль в 1С (если включена настройка в ТСД).
// Выходные данные:
// Поле1 = номер документа
/////////////////////////////////////////////////////////////////////////////
Если Событие = "Make" Тогда
Сообщить("Терминал номер "+НомерТСД);
Сообщить("Создал накладную "+Поле1+" типа, с именем "+Поле2);
// Возвращаю тоже самое имя или можно поменять на свое имя
Объект.Ответ(НомерТСД,Поле2,,,,,,,);
КонецЕсли;

// Если было событие об окончании подбора от радиоТСД, то....
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// Входящие данные:
// Поле1 = тип документа,
// Поле2 = номер документа,
// Поле3 = номер пользователя 1С (если включена настройка в ТСД),
// Поле4 = пароль в 1С (если включена настройка в ТСД).
// Выходные данные:
// Поле1 = 1 - подтвердим получение (любое не пустое значение).
/////////////////////////////////////////////////////////////////////////////
Если Событие = "Close" Тогда
Сообщить("Терминал номер "+НомерТСД);
Если Объект.МетодЗаписи = 1 Тогда
Сообщить("Закрыл накладную с именем "+Поле1);
Иначе
Сообщить("Закрыл файл с именем "+Поле1);
КонецЕсли;

Объект.Ответ(НомерТСД,1,,,,,,,); // Без данных, только чтобы ТСД понял, что документ закрыт
КонецЕсли;

// Если было событие (поиск) от радиоТСД, то....
/////////////////////////////////////////////////////////////////////////////
// Входящие данные:
// Поле1 - Data, где Data-данные (ключевое поле);
/////////////////////////////////////////////////////////////////////////////
// Выходящие данные:
// Поле1-Поле8 - заполнить полями БД ТСД
Если Событие = "Query" Тогда
Если глПолучитьТоварПоШтрихкоду(Поле1, ВремТовар, ВремЕдиница, ВремКоличество) 0 Тогда
ЦенаИзСправочника = глПользователь.ОсновнойТипЦенПродажи;
ВыбСклад = глПользователь.ОсновнойСклад;

//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Количество)
//|Период с (ТекущаяДата()) по (ТекущаяДата());
|ОбрабатыватьДокументы все;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|ТипыЦен = Регистр.ОстаткиТМЦ.ЦенаПрод;
|Склад = Регистр.ОстаткиТМЦ.Склад;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КоличествоКонОст = КонОст(Количество);
|Группировка Номенклатура без групп;
|Условие(Номенклатура в ВремТовар);
|Условие(Склад в ВыбСклад);
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Запрос.Группировка(1);
// Поле1 = Данные;
Поле2 = Запрос.Номенклатура.Наименование;
Поле3 = глВернутьЦену(ВремТовар, ЦенаИзСправочника, РабочаяДата(), ВремЦена, ВремЕдиница, ВремВалюта);
Поле4 = Запрос.КоличествоКонОст;
Сообщить("Отсылаю: "+Поле1+" "+Поле2+" "+Поле3+" "+Поле4+" "+Поле5+" "+Поле6+" "+Поле7+" "+Поле8);
Объект.Ответ(НомерТСД,Поле1, Поле2, Поле3, Поле4,,,,);
Иначе
// После заполнения данных, ТСД вернет событие "Insert".
// Если разкомментировать строки ниже, то ТСД ответит событием "Update"
// Поле1 = Данные;
// Поле2 = "Новый товар";
// Поле3 = 0;
// Поле4 = 0;
//Объект.Ответ(НомерТСД,Поле1,Поле2,Поле3,Поле4,,,,);
Объект.ПослатьСообщение(НомерТСД, "Такого штрихкода нет в базе!");
Объект.Ответ(НомерТСД,,,,,,,,);
КонецЕсли;
КонецЕсли;

// Если было событие для обновления данных, то....
/////////////////////////////////////////////////////////////////////////////
// Входящие данные:
// Поле1-Поле8 - Поля БД терминала;
/////////////////////////////////////////////////////////////////////////////
// Выходящие данные:
// Поле1 = 1 - подтвердим получение (любое не пустое значение).
Если Событие = "Update" Тогда
// Здесь нужно вставить код для обновления базы
Сообщить("От ТСД №"+НомерТСД+" пришли данные для обновления "+Поле1+
" "+Поле2+" "+Поле3+" "+Поле4+" "+Поле5+" "+Поле6+" "+Поле7+" "+Поле8);
Объект.Ответ(НомерТСД,1,,,,,,,); // Без данных, только чтобы ТСД понял, что данные обновлены
КонецЕсли;

// Если было событие для вставки данных, то....
/////////////////////////////////////////////////////////////////////////////
// Входящие данные:
// Поле1-Поле8 - Поля БД терминала;
/////////////////////////////////////////////////////////////////////////////
// Выходящие данные:
// Поле1 = 1 - подтвердим получение (любое не пустое значение).
Если Событие = "Insert" Тогда
// Здесь нужно вставить код для вставки новых данных в базу
Сообщить("От ТСД №"+НомерТСД+" пришли данные для вставки "+Поле1+
" "+Поле2+" "+Поле3+" "+Поле4+" "+Поле5+" "+Поле6+" "+Поле7+" "+Поле8);
Объект.Ответ(НомерТСД,1,,,,,,,); // Без данных, только чтобы ТСД понял, что данные вставлены
КонецЕсли;
Иначе
Сообщить("Ну тогда в главный модуль");
глОбработкаВнешнегоСобытия(Источник, Событие, Данные);
КонецЕсли;
КонецПроцедуры // ОбработкаВнешнегоСобытия()



Процедура Пинг()
СтатусВозврата(1);
результат = Объект.Пинг("192.168.1.107",1,100);
Если результат = 1 Тогда
Сообщить("Пинг успешный");
Иначе
Сообщить("Пинг неуспешный");
КонецЕсли;
СтатусВозврата(0);
КонецПроцедуры // ПолучитьОписаниеРезультата()


Процедура СообщениеВТСД()
Объект.ПослатьСообщение("","Полетела жопа");
Сообщить("Результ: "+Объект.Результат);
Сообщить("Описание результа: "+Объект.ОписаниеРезультата);
КонецПроцедуры


Процедура ПодключитьТСД()
Компонента = "CipherLabTCP.dll";
ПрогИд = "CipherLabTCP";

Если ЗагрузитьВнешнююКомпоненту(Компонента) = 0 Тогда
ОписаниеРезультата = "ошибка загрузки внешней компоненты """ + Компонента + """";
Возврат;
Иначе
Объект = СоздатьОбъект("AddIn." + ПрогИд); // Создание объекта внешней компоненты

//Если ПустоеЗначение(Объект) = 1 Тогда
// Сообщить("Не создан Объект с идентификатором AddIn." + ПрогИд);
// Возврат;
//Иначе
// Если Объект.Подключить()=0 Тогда
// Сообщить("К созданном объекту с идентификатором AddIn." + ПрогИд + "не могу подключить терминал");
// Возврат;
// КонецЕсли;
//КонецЕсли;
КонецЕсли;
Объект.Подключить();
Сообщить("Запущен сервер Радио-ТСД Cipher");
Сообщить("Включен: "+Объект.Включен);
Сообщить("Результ: "+Объект.Результат);
Сообщить("Описание результа: "+Объект.ОписаниеРезультата);
Сообщить("Метод записи: "+Объект.МетодЗаписи);
Сообщить("Порт: "+Объект.Порт);
Сообщить("Разделитель: "+Объект.Разделитель);
КонецПроцедуры


Процедура ОтключитьТСД()
Если ПустоеЗначение(Объект) = 0 Тогда
Объект.Отключить();
КонецЕсли;
Сообщить("Остановлен сервер Радио-ТСД Cipher");
КонецПроцедуры
[/code]
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
[quote author=Олег link=topic/4/663/1/#4236 date=13.04.2011 10:40]
[quote author=Andrey link=topic/4/663/1/#4233 date=12.04.2011 20:33]
Я так понимаю после выполнения процедуры ПодключитьТСД() терминал должен входить в режим ввода данных т.е. должна на нем появиться надпись "Введите код", а там только ожидание связи.
[/quote]
Терминал сам никуда не перейдет и не переключится. Если сервер запущен и настройки правильно указаны в терминале, то при выборе пункта "Сбор" терминал подключится к серверу и Вы увидите форму на экране терминала. У Вас ожидание связи. Значит неверно настроен WiFi. Пинганите терминал, пока он не пингуется, смысла связывать с 1С нету. Терминал должен находиться в пункте "Сбор".
[/quote]

Терминал отлично пингуется и работает с программой написанной на C#, а вот с 1С не работает


[quote author=Andrey link=topic/4/663/1/#4233 date=12.04.2011 20:33][quote]
И еще вопрос - по какому пути компонента сбрасывает файл и как он называется
в режиме "Записывать данные в файл".
[/quote]
В каталоге с компонентой создается каталог CipherLabTCP\ в него помещаются все темповые и готовые документы, а также дебаг-информация, если установлен флаг.[/quote]

Я к тому, что может быть мне можно работать с терминалом через вот эту тестовую программу на C#, для ввода документов
а в 1С использовать работу с терминалом в режиме чтения из файла?
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
[quote author=Олег link=topic/4/663/1/#4243 date=14.04.2011 10:22]Судя по тексту у Вас 1С 7.7. Обработка в комплекте точно рабочая. Я сам ею пользуюсь, т.к. проще и надежней 7.7 нет! Возьмите нашу обработку, проверьте работоспособность и уже переделывайте ее. Возможно где-то косяк в Вашем коде.[/quote]

Но почему ТСД не пингуется из закладки ТСД 8370 в Сервис -> Параметры стандартной 1С,
это к моему коду не относится, на вкладке работает целиком ваша компонента.
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
Не "пикает" в 1С. А в С# пикает. С тем же самыми портом и адресом сервера.
Вот эту фразу я не вижу "Работает сервер WiFi режима...".
Может вы мне пришлете обработку которой сами пользуетесь?

4251_Equip.rar

ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
[quote author=Олег link=topic/4/663/1/#4250 date=14.04.2011 15:49]для того, чтобы сделать пинг нужно:
1. Нажать на терминал 1.Сбор. Все равно, что будет отображено на терминале, главное, что он пытается соединиться.
2. набрать на ПК команду: ping IP-адрес терминала.
Если точка доступа пропустила через себя терминал, то пинговаться будет. Запущен у Вас 1С, проект C# или вообще ничего не запущено ровным счетом не имеет значения.

Если пинг проходит, значит можно возиться с 1С. Для этого, переписываем нашу обработку и файл настроек (epf). Открываете обработку и видите надпись: "Работает сервер WiFi режима...". Ничего не трогая больше на ПК, на треминале входим в пункт 1.Сбор. Через несколько секунд (2-5) терминал пикнет и войдет в режим сбора, отобразив на экране форму! Все! Коннект. Если нет, смотрим настройки IP-порта и IP-адрес сервера.[/quote]

У меня терминал имеет адрес 192.168.1.107 и с ПК командой

[code]ping 192.168.1.107[/code]

пингуется отлично, но я в этом и не сомневался.
Но не пикает и не переходит в режим сбора.
Причем это происходит именно когда работает сервер 1С. Из C# он переходит в режим сбора быстро и с радостью.
ТСД 8370 и Windows 2008R2 64 bit в режиме терминала, Обсуждение: ТСД 8370 и Windows 2008R2 64 bit в режиме терминала
 
С проблемой подключения CipherLabTCP.dll к 1С на сервере разобрался.
На ярлыке 1С стоял режим совместимости с Windows XP. Нельзя ставить не XP2 не XP3
Теперь 1С не выдает ошибку о том, что компонента не найдена.
Теперь затык с подключением терминала.
При подключении 1С выдает такое

[quote]> Запущен сервер Радио-ТСД Cipher
! Терминал сбора данных: ошибка при подключении
> Остановлен сервер Радио-ТСД Cipher[/quote]

Причем в меню Параметры появляется вкладка ТСД 8x70. Я так понимаю компонента грузится.
Но терминал не "эхо-тестируется".

В вашей обработке CipherLabTCP.ert есть такая функция
[code]
Процедура ПриЗакрытии()
Отключить();
Форма.Параметр.Установить("Результат", 0);
Форма.Параметр.Установить("ОписаниеРезультата", ОписаниеРезультата);
КонецПроцедуры
[/code]


Которая срабатывает по кнопке на форме Закрыть.
Я так понимаю терминал в любом случае остается неподключенным. Подскажите куда копать?
CipherLab1000 и УТ 11 V8.2, Обсуждение: CipherLab1000 и УТ 11 V8.2
 
Вопрос.

Сканер корректно работает только с scanopos 8.0.4.1?
Если да, то можно ее как то подсунуть УТ на платформе 8.2
Страницы: 1 2 След.