D
dimi3o
Всем привет!
Пытаюсь запустить работу ТСД CipherLab 8000-C на предприятии с 1С 7.7 ТиС 9.2 (7.70.921), который забросили в черный угол 8 лет назад. Использую прошивку Scancode.
Поставил ядро: K8000V334. Прошивку: U8000241-IG09. Задачу: 1c_8000 (от 12.08.2009). В задачу никаких изменений не вносил, просто загрузил и всё. Далее в 1С подключаю драйвер версии 6.0.4.0(Scancode). Тут все успешно (При включении 1С одинарный звуковой сигнал от ТСД). В настройках все параметры и порты верные.
Но при нажатии кнопки "Выгрузить в ТСД Cipher" в "Справочники.Номенклатура" вылезает следующая ошибка:
Документ = Форма.Параметр.Получить("Контекст");
{\EXTFORMS\PRNFORMS\CIPHERLAB.ERT(13)}: Поле агрегатного объекта не обнаружено (Получить)
Пробовал даже совсем старую версию драйвера Scancode для 1С от 2004 года. Там форма открывается и даже идет обработка ровно до момента передачи в ТСД, где выдает ошибку: "Терминал сбора данных: ошибка при выгрузке в базу Невозможно перевести терминал в режим загрузки!".
Если ввести штрих-код из нашей базы вручную в ТСД при вводе количества и потом заполнить реализацию, то всё без проблем передается и товар находит! Полдела уже есть и очень хотелось бы решить проблему с выгрузкой БД в ТСД.
Где то вычитал, что это проблема совместимости версий ТиС, типа редакция 7.70.921 не работает с драйвером последней версии Scancode.ru. Там вроде тестировалось все на 7.70.924 или 7.70.925. Но сейчас база уже работает и все переустановить проблемно. Может кто знает что нужно исправить в коде?
Нарыл, что объект "параметры" не является списком значений в модуле Номенклатура:
Исправил:
Но появилась новая ошибка:
Документ.ВыбратьСтроки();
{EXTFORMS\PRNFORMS\CIPHERLAB.ERT(15)}: Поле агрегатного объекта не обнаружено (ВыбратьСтроки)
Вот код "CIPHERLAB.ERT" в \PRNFORMS\:
Заранее спасибо за помощь!
Пытаюсь запустить работу ТСД CipherLab 8000-C на предприятии с 1С 7.7 ТиС 9.2 (7.70.921), который забросили в черный угол 8 лет назад. Использую прошивку Scancode.
Поставил ядро: K8000V334. Прошивку: U8000241-IG09. Задачу: 1c_8000 (от 12.08.2009). В задачу никаких изменений не вносил, просто загрузил и всё. Далее в 1С подключаю драйвер версии 6.0.4.0(Scancode). Тут все успешно (При включении 1С одинарный звуковой сигнал от ТСД). В настройках все параметры и порты верные.
Но при нажатии кнопки "Выгрузить в ТСД Cipher" в "Справочники.Номенклатура" вылезает следующая ошибка:
Документ = Форма.Параметр.Получить("Контекст");
{\EXTFORMS\PRNFORMS\CIPHERLAB.ERT(13)}: Поле агрегатного объекта не обнаружено (Получить)
Пробовал даже совсем старую версию драйвера Scancode для 1С от 2004 года. Там форма открывается и даже идет обработка ровно до момента передачи в ТСД, где выдает ошибку: "Терминал сбора данных: ошибка при выгрузке в базу Невозможно перевести терминал в режим загрузки!".
Если ввести штрих-код из нашей базы вручную в ТСД при вводе количества и потом заполнить реализацию, то всё без проблем передается и товар находит! Полдела уже есть и очень хотелось бы решить проблему с выгрузкой БД в ТСД.
Где то вычитал, что это проблема совместимости версий ТиС, типа редакция 7.70.921 не работает с драйвером последней версии Scancode.ru. Там вроде тестировалось все на 7.70.924 или 7.70.925. Но сейчас база уже работает и все переустановить проблемно. Может кто знает что нужно исправить в коде?
Нарыл, что объект "параметры" не является списком значений в модуле Номенклатура:
Код:
Процедура ПоКнопкеПечать()
Если ПустоеЗначение(НомерТекущейФормы) = 1 Тогда
НомерТекущейФормы = 1;
КонецЕсли;
Если НомерТекущейФормы = 1 Тогда
// ЭТИКЕТКА
ПечатьЭтикетки();
ИначеЕсли НомерТекущейФормы = 2 Тогда
// ЦЕННИК
ПечатьЦенника();
Иначе
// внешняя обработка
Параметры = глВзятьКонтекст(Контекст);
ОткрытьФорму("Отчет", Параметры, глКаталогПечФорм + ТаблицаПечФорм.ПолучитьЗначение(НомерТекущейФормы,"Файл"));
КонецЕсли;
КонецПроцедуры // ПоКнопкеПечать()
Исправил:
Код:
Параметры = глВзятьКонтекст(Контекст);
на
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(глВзятьКонтекст(Контекст), "Контекст");
Но появилась новая ошибка:
Документ.ВыбратьСтроки();
{EXTFORMS\PRNFORMS\CIPHERLAB.ERT(15)}: Поле агрегатного объекта не обнаружено (ВыбратьСтроки)
Вот код "CIPHERLAB.ERT" в \PRNFORMS\:
Код:
Процедура ПриОткрытии()
Перем Данные;
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("Процесс", "выгрузить");
Параметры.Установить("Объект" , глТерминал);
Документ = Форма.Параметр.Получить("Контекст");
Если ПустоеЗначение(Документ) = 0 Тогда
Документ.ВыбратьСтроки();
Данные = СоздатьОбъект("ТаблицаЗначений");
Данные.НоваяКолонка("ШтрихКод");
Данные.НоваяКолонка("Номенклатура");
Данные.НоваяКолонка("Цена");
Данные.НоваяКолонка("Количество");
Пока Документ.ПолучитьСтроку() = 1 Цикл
Баркод = Документ.Номенклатура.БазоваяЕдиница.Штрихкод;
Если ПустоеЗначение(Баркод) = 1 Тогда
Сообщить("Для " + Документ.Номенклатура.Наименование + " нет штрихкода - не выгружаем");
Продолжить;
КонецЕсли;
Данные.НоваяСтрока();
Данные.ШтрихКод = Баркод;
Данные.Номенклатура = Документ.Номенклатура.Наименование;
Данные.Цена = Документ.Цена;
Данные.Количество = Документ.Количество;
//Если ПроверитьШтрихкод(Форма.Штрихкод) = 0 Тогда
// Сообщить("У товара """ + Форма.Наименование + """ штрихкод не задан или имеет неверный формат!");
//Иначе
//
//
//КонецЕсли;
КонецЦикла;
Параметры.Установить("Данные" , Данные);
Иначе
Параметры.Установить("Данные" , "");
КонецЕсли;
//ааа = Форма.Параметр.Получить("Контекст");
РезТекст = глОборудованиеКоманда("Терминал", глТерминалОбработка, Параметры);
Если ПустоеЗначение(РезТекст) = 0 Тогда
Сообщить(РезТекст);
Иначе
Если Параметры.Получить("Результат") = 0 Тогда
Сообщить("Терминал сбора данных: ошибка при выгрузке в базу");
Сообщить(Параметры.Получить("ОписаниеРезультата"));
КонецЕсли;
КонецЕсли;
// закрываем фому
СтатусВозврата(0);
КонецПроцедуры // ПриОткрытии
Заранее спасибо за помощь!