Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/58: Рейтинг темы: голосов - 58, средняя оценка - 4.91
dymy3o

Тсд Cipher 8000 С Драйвером Scancode И 1с Тис 7.70.921.

18.01.2013, 17:41. Показов 11671. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Пытаюсь запустить работу ТСД 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. Но сейчас база уже работает и все переустановить проблемно. Может кто знает что нужно исправить в коде?

Нарыл, что объект "параметры" не является списком значений в модуле Номенклатура:


Код ( (Unknown Language)):
Процедура ПоКнопкеПечать()

Если ПустоеЗначение(НомерТекущейФормы) = 1 Тогда
НомерТекущейФормы = 1;
КонецЕсли;

Если НомерТекущейФормы = 1 Тогда
// ЭТИКЕТКА

ПечатьЭтикетки();
ИначеЕсли НомерТекущейФормы = 2 Тогда
// ЦЕННИК

ПечатьЦенника();
Иначе
// внешняя обработка

Параметры = глВзятьКонтекст(Контекст);
ОткрытьФорму("Отчет", Параметры, глКаталогПечФорм + ТаблицаПечФорм.ПолучитьЗначение(НомерТек ущейФормы,"Файл"));
КонецЕсли;

КонецПроцедуры // ПоКнопкеПечать()

Исправил:

Код ( (Unknown Language)):
Параметры = глВзятьКонтекст(Контекст);
на
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(глВзятьКонтек ст(Контекст), "Контекст");
Но появилась новая ошибка:
Документ.ВыбратьСтроки();
{EXTFORMS\PRNFORMS\CIPHERLAB.ERT(15)}: Поле агрегатного объекта не обнаружено (ВыбратьСтроки)

Вот код "CIPHERLAB.ERT" в \PRNFORMS\:


Код ( (Unknown Language)):
Процедура ПриОткрытии()
Перем Данные;

Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("Процесс", "выгрузить");
Параметры.Установить("Объект" , глТерминал);

Документ = Форма.Параметр.Получить("Контекст");
Если ПустоеЗначение(Документ) = 0 Тогда
Документ.ВыбратьСтроки();
Данные = СоздатьОбъект("ТаблицаЗначений");
Данные.НоваяКолонка("ШтрихКод");
Данные.НоваяКолонка("Номенклатура");
Данные.НоваяКолонка("Цена");
Данные.НоваяКолонка("Количество");

Пока Документ.ПолучитьСтроку() = 1 Цикл
Баркод = Документ.Номенклатура.БазоваяЕдиница.Штр ихкод;
Если ПустоеЗначение(Баркод) = 1 Тогда
Сообщить("Для " + Документ.Номенклатура.Наименование + " нет штрихкода - не выгружаем");
Продолжить;
КонецЕсли;

Данные.НоваяСтрока();
Данные.ШтрихКод = Баркод;
Данные.Номенклатура = Документ.Номенклатура.Наименование;
Данные.Цена = Документ.Цена;
Данные.Количество = Документ.Количество;

//Если ПроверитьШтрихкод(Форма.Штрихкод) = 0 Тогда

// Сообщить("У товара """ + Форма.Наименование + """ штрихкод не задан или имеет неверный формат!");

//Иначе

//

//

//КонецЕсли;

КонецЦикла;
Параметры.Установить("Данные" , Данные);
Иначе
Параметры.Установить("Данные" , "");
КонецЕсли;
//ааа = Форма.Параметр.Получить("Контекст");


РезТекст = глОборудованиеКоманда("Терминал", глТерминалОбработка, Параметры);
Если ПустоеЗначение(РезТекст) = 0 Тогда
Сообщить(РезТекст);
Иначе
Если Параметры.Получить("Результат") = 0 Тогда
Сообщить("Терминал сбора данных: ошибка при выгрузке в базу");
Сообщить(Параметры.Получить("ОписаниеРез ультата"));
КонецЕсли;
КонецЕсли;

// закрываем фому

СтатусВозврата(0);

КонецПроцедуры // ПриОткрытии

Заранее спасибо за помощь!
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.01.2013, 17:41
Ответы с готовыми решениями:

Проверте пожалуйста сборку блока за 30000 тис (8000 грн)
Привет всем, вот такой конфиг хочу собрать, в основном для качественого стрима 2 доты, ну и вообще для других приложений и программ,...

Собрал сборку за 27000 тис.грн.Посоветуйте может что взять лучше?Бюджет-30000 тис
Собрал сборку за 27000 тис.грн.Посоветуйте может что взять лучше?Бюджет-30000 тис. Процессор Intel Core i5-6500 Skylake (3200MHz, LGA1151,...

Scancode Map клавиш в реестре
Привет! HKEY_LOCAL_MACHINE SYSTEM\CurrentControlSet\Control\Keyboard Layout Создаю ключ Scancode...

5
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
18.01.2013, 23:53
* Ошибка не CIPHERLAB.ERT а в головном модуле, а именно какие параметры он дает.
* Судя по смыслу, надо передать документ, но почему-то вложить его в СписокЗначений (может раньше список был большой)
* Так и дайте текущий документ. Аллах его ведает, что еще делает ф-ия глВзятьКонтекст()! В урну ее!

Код ( (Unknown Language)):
Параметры.ДобавитьЗначение(Контекст, "Контекст");
0
dymy3o
19.01.2013, 19:34
Цитата Сообщение от Дайнеко
* Ошибка не CIPHERLAB.ERT а в головном модуле, а именно какие параметры он дает.
* Судя по смыслу, надо передать документ, но почему-то вложить его в СписокЗначений (может раньше список был большой)
* Так и дайте текущий документ. Аллах его ведает, что еще делает ф-ия глВзятьКонтекст()! В урну ее!

Код ( (Unknown Language)):
Параметры.ДобавитьЗначение(Контекст, "Контекст");
Ну вообще я так и сделал. Даже если написать:


Код ( (Unknown Language)):
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(Контекст, "Контекст");
вместо моего варианта:


Код ( (Unknown Language)):
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(глВзятьКонтек ст(Контекст), "Контекст");
чем, в свою очередь, я заменил строку в процедуре ПоКнопкеПечать():


Код ( (Unknown Language)):
Параметры = глВзятьКонтекст(Контекст);
результат получаем один и тот же:

Документ.ВыбратьСтроки();
{K:\ARHIV\ТОРГОВЫЕ\1C\РАБОЧАЯ_РАЗВ(ТА06. 01.13)\EXTFORMS\PRNFORMS\CIPHERLAB.ERT(1 5)}: Поле агрегатного объекта не обнаружено (ВыбратьСтроки)
1 / 1 / 0
Регистрация: 15.11.2009
Сообщений: 947
19.01.2013, 22:49
А стажи- ка, мил человек! Этот чертов Контекст является документом?
Процедура ПоКнопкеПечать() находтся в документе?


И не надо метаться.
В обработке стоит:

Код ( (Unknown Language)):
Документ = Форма.Параметр.Получить("Контекст");
Документ.ВыбратьСтроки()
Значит ей передается именно документ. Варианта всего 2:


Код ( (Unknown Language)):
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(Контекст, "Контекст");
ИЛИ

Код ( (Unknown Language)):
Параметры.ДобавитьЗначение(ТекщийДокумен т(), "Контекст");

При условии, что вызов иди от документа!!!
А еще написать перед:
Сообщить(ТипЗначенияСтр(Документ));
Документ.ВыбратьСтроки()
0
dymy3o
19.01.2013, 23:32
Выгрузка в ТСД - это принтформа, которая вызывается в "ФормаСписок" номенклатуры. Ну это та форма, которая появляется при нажатии кнопочки "номенклатура". Там такая стрелочка внизу со списком принтформ - что распечатать. Ну разработчики ПО Scancode туда закинулы свою принтформу "Выгрузка в ТСД", чтобы передавать всю номенклатуру или её группу в ТСД.
Замечу, что раньше в их драйвере код принтформы выглядел следующим образом:

Код ( (Unknown Language)):
Процедура ПриОткрытии()
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.Установить("Процесс", "выгрузить");
Параметры.Установить("Объект" , глТерминал);
//Параметры.Установить("Данные" , Данные);
РезТекст = глОборудованиеКоманда("Терминал", глТерминалОбработка, Параметры);
Если ПустоеЗначение(РезТекст) = 0 Тогда
Сообщить(РезТекст);
Иначе
Если Параметры.Получить("Результат") = 0 Тогда
Сообщить("Терминал сбора данных: ошибка при выгрузке в базу");
Сообщить(Параметры.Получить("ОписаниеРез ультата"));
КонецЕсли;
КонецЕсли;

// закрываем фому
СтатусВозврата(0);
КонецПроцедуры // ПриОткрытии
Тут нет никакого документа и ВыбратьСтроки(). Выгрузка в ТСД проходит, но я очень сомневаюсь в правильности работы процедуры. Не зря же всё-таки люди добавили эти 20 строк кода, спустя 6 лет.

ГрупповойКонтекст - вот, что возвращает Сообщить(ТипЗначенияСтр(Документ));

Вот картинка формы-списка номенклатуры с кнопкой "Выгрузить в ТСД" с рабочего стола:
dymy3o
20.01.2013, 19:50
Решение оказалось следующим. Заменить это:


Код ( (Unknown Language)):
Параметры = глВзятьКонтекст(Контекст);
на это:


Код ( (Unknown Language)):
Параметры = СоздатьОбъект("СписокЗначений");
Параметры.ДобавитьЗначение(ТекущийЭлемен т(), "Номенклатура");
в основном модуле номенклатуры "ФормаСписок".
Спасибо за помощь, Дайнеко!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.01.2013, 19:50
Помогаю со студенческими работами здесь

Схему усилителя SVEN-HR-921
Всех приветствую! Ищу долго и упорно схему усилителя SVEN-HR-921, необходини для ремонта. Перерыл интернет, нашел только здесь...

Cipher Caesar
Шифр - это тип секретного кода, где вы меняете буквы так, чтобы никто не мог прочитать ваше сообщение. Вы будете использовать один из...

Monoalphabetic cipher шифровальщик
Привет, ребята. Ну, нашел я готовую уже программу, но она не запускается. Помогите мне ее допилить, чтоб запустилась как надо :) Что...

духовка Zigmund & Shtain EN32.921 S, не реагирует на сенсор
Вид этой духовки вот такой http://sale.radu.ru/en/product/elektriches...tain-en32921-s/ Помогите с информацией по этому зверю у нас он...

Духовка Zigmund Shtain EN 111.921 S, Номинал smd резистора
На силовом модуле этой духовки бахнул блок питания, собранный на шим контроллере LNK 364. В ногах литов 4.7 мкФ х 400 V стоит резистор R...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru