gifts2017

Настройка ТСД chiperLab 8001 для УТ 11

Опубликовал Anton Pavlov (antonlinux) в раздел Оборудование - Терминал сбора данных

Расширяем функционал ТСД chiperLab 8001 и загружаем сразу 10 документов
Сканируйте 10 накладных за один раз!!!

 

 В данном примере мы рассмотрим, как доработать задачу  в ТСД chiperLab 8001, расширив ее функционал, и подключить к УТ11:

В  файле Revolution8001.AGX содержится доработанная задача, имеющая следующие особенности:

1. Возможность загрузки до 10 различных документов

 


2.В каждой накладной выводится номер накладной, штрих код сканированного товара, ввод сканированного товара, название, счетчик позиций по накладной.

3.Поиск происходит по базе товаров, которые выгружаются в ТСД.

               Установка из коробки

1. Первое, что нужно сделать, это подключить ТСД и установить софт (нам необходим Генератор приложений) аем

2. Настраиваем в генераторе приложений подключение

 

в данном случае через подставку

3. Проверяем настройки в ТСД, соответсвуют ли они настройкам в генераторе приложений

4. Загружаем задачу в ТСД.

Если прошло все успешно, то переходим к следующей части,если нет... учите мат. часть

 Настройка в 1С

1. Заходим в настройки оборудования

 

 

 

 

 

 

2. Добавляем новое устройство на свое рабочее место 

 

 

3. Устанавливаем драйвер(в 11 версии это можно сделать прямо из 1с), настраиваем параметры подключения. Обязательно!!! ставим галочку "не выбирать источник загрузки". Дальше напишу зачем.

 

 

 

 

 

4. Обратите внимание на вкладку "форматы", она должна быть заполнена именно так

 

 

 

 

 

 

5.Ну и теперь самое интересное. Для тех, кто хочет задействовать все 10 накладных, далее... Без этого все будет работать, но документ загрузки будет только 1 и выбираться как задано на вкладке 5 

        Доработка кода

Для того чтобы получить выбор накладной как на рисунке

 

 

 

 

необходимо дописать следующее

общиймодуль.ПодключаемоеОборудованиеСканкодТерминалыСбораДанныхКлиент

Функция НачатьЗагрузку(ОбъектДрайвера, Параметры, ПараметрыПодключения, Количество, ВыходныеПараметры)

Результат = Истина;
ПараметрыПодключения.Вставить("ПоследнийИсточникЗагрузки", "Документ");

Если Параметры.ВыбиратьИсточникЗагрузки Тогда
СписокИсточниковЗагрузки = Новый СписокЗначений();
//начало Яшин А.И. нам не нужна загрузка база данных нам нужно 10 документов
//СписокИсточниковЗагрузки.Добавить("Документ", НСтр("ru='Документ терминала сбора данных'"));
//СписокИсточниковЗагрузки.Добавить("База", НСтр("ru='База терминала сбора данных'"));
СписокИсточниковЗагрузки.Добавить("Документ1", НСтр("ru='Накладная 1'"));
СписокИсточниковЗагрузки.Добавить("Документ2", НСтр("ru='Накладная 2'"));
СписокИсточниковЗагрузки.Добавить("Документ3", НСтр("ru='Накладная 3'"));
СписокИсточниковЗагрузки.Добавить("Документ4", НСтр("ru='Накладная 4'"));
СписокИсточниковЗагрузки.Добавить("Документ5", НСтр("ru='Накладная 5'"));
СписокИсточниковЗагрузки.Добавить("Документ6", НСтр("ru='Накладная 6'"));
СписокИсточниковЗагрузки.Добавить("Документ7", НСтр("ru='Накладная 7'"));
СписокИсточниковЗагрузки.Добавить("Документ8", НСтр("ru='Накладная 8'"));
СписокИсточниковЗагрузки.Добавить("Документ9", НСтр("ru='Накладная 9'"));
СписокИсточниковЗагрузки.Добавить("Документ10", НСтр("ru='Накладная 10'"));

//конец Яшин А.И. нам не нужна загрузка база данных нам нужно 10 документов

ИсточникЗагрузки = СписокИсточниковЗагрузки.ВыбратьЭлемент(НСтр("ru='Выберите источник загрузки данных'"));
Если ИсточникЗагрузки <> Неопределено Тогда
ПараметрыПодключения.ПоследнийИсточникЗагрузки = ИсточникЗагрузки.Значение;
//начало Яшин А.И. нам не нужна загрузка база данных нам нужно 10 документов

//Если ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ" Тогда
// Количество = ОбъектДрайвера.ЗаписейВДокументе(Параметры.НомерДокумента);
//Иначе
// Количество = ОбъектДрайвера.ЗаписейВБазеДанных(Параметры.НомерБазы);
//КонецЕсли;
Если ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ1" Тогда
НомерДокумента=0;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ2" Тогда
НомерДокумента=1; 
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ3" Тогда
НомерДокумента=2;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ4" Тогда
НомерДокумента=3;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ5" Тогда
НомерДокумента=4;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ6" Тогда
НомерДокумента=5;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ7" Тогда
НомерДокумента=6;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ8" Тогда
НомерДокумента=7;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ9" Тогда
НомерДокумента=8;
ИначеЕсли ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ10" Тогда
НомерДокумента=9;
КонецЕсли;
Параметры.Вставить("НомерДокумента" , НомерДокумента);
Количество = ОбъектДрайвера.ЗаписейВДокументе(НомерДокумента); 
//конец Яшин А.И. нам не нужна загрузка база данных нам нужно 10 документов
Иначе
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(НСтр("ru='Операция отменена пользователем'"));
Возврат Ложь;
КонецЕсли;
Иначе
Количество = ОбъектДрайвера.ЗаписейВДокументе(Параметры.НомерДокумента);
КонецЕсли;

Если Количество = 0 Тогда
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(НСтр("ru='Отсутствуют данные для загрузки из терминала сбора данных.'"));

Результат = Ложь;
ИначеЕсли Количество < 0 Тогда
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);

Результат = Ложь;
КонецЕсли;

Возврат Результат;

КонецФункции

Функция ЗагрузитьСтроку(ОбъектДрайвера, Параметры, ПараметрыПодключения, Штрихкод, Количество, ВыходныеПараметры)

Результат = Истина;
//начало Яшин А.И. 10 документов 
//ФорматИсточника = ?(ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ",
ФорматИсточника = ?(ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ"+(Параметры.НомерДокумента+1),
//конец Яшин А.И.10 документов
Параметры.ФорматДокумента, Параметры.ФорматБазы);
Штрихкод = Неопределено;
Количество = Неопределено;
Разделитель = "";
// начало Яшин А.И. 10 документов
//Если ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ" Тогда
Если ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ"+(Параметры.НомерДокумента+1) Тогда
// конец Яшин А.И.10 документов
Разделитель = Символ(Параметры.РазделительДокумента);
ОбъектДрайвера.ПолучитьЗаписьИзДокумента(Параметры.НомерДокумента);
Иначе
Разделитель = Символ(Параметры.РазделительБазы);
ОбъектДрайвера.ПолучитьЗаписьИзБазыДанных(Параметры.НомерБазы);
КонецЕсли;

Если ОбъектДрайвера.Результат <> 0 Тогда
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(ОбъектДрайвера.ОписаниеРезультата);

Результат = Ложь;
Иначе
ДанныеИзТСД = СтрЗаменить(ОбъектДрайвера.Данные, Разделитель, Символы.ПС);

Если ФорматИсточника.Количество() > 0 Тогда
Для Каждого СтрокаФормата Из ФорматИсточника Цикл
Если СтрокаФормата.Наименование = "Штрихкод" Тогда
Попытка
#Если ВебКлиент Тогда
Штрихкод = СтрПолучитьСтроку(ДанныеИзТСД, СтрокаФормата.НомерПоля);
#Иначе
Штрихкод = ОбъектДрайвера["Поле" + СтрокаФормата.НомерПоля];
#КонецЕсли
Исключение
Продолжить;
КонецПопытки;
ИначеЕсли СтрокаФормата.Наименование = "Количество" Тогда
Попытка
#Если ВебКлиент Тогда
Количество = Число(СтрПолучитьСтроку(ДанныеИзТСД, СтрокаФормата.НомерПоля));
#Иначе
Количество = Число(ОбъектДрайвера["Поле" + СтрокаФормата.НомерПоля]);
#КонецЕсли
Исключение
Количество = 0;
КонецПопытки;
КонецЕсли;
КонецЦикла;
Иначе
Штрихкод = ОбъектДрайвера.Поле1;
Попытка
Если ПараметрыПодключения.ПоследнийИсточникЗагрузки = "Документ" Тогда
Попытка
Количество = Число(ОбъектДрайвера.Поле2);
Исключение
Количество = 0;
КонецПопытки;
Иначе
Попытка
Количество = Число(ОбъектДрайвера.Поле8);
Исключение
Количество = 0;
КонецПопытки;
КонецЕсли;
Исключение
ВыходныеПараметры.Очистить();
ВыходныеПараметры.Добавить(999);
ВыходныеПараметры.Добавить(НСтр("ru='Неверный формат данных поля ""Количество"".
|Проверьте настройку задачи терминала.'"));

Результат = Ложь;
КонецПопытки;
КонецЕсли;
КонецЕсли;

Возврат Результат;

КонецФункции

 На выходе получаем ТСД с 10 накладными что очень удобно при отгрузке или приемке нескольких заказов

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Revolution8001.AGX
.AGX 18,51Kb
23.10.14
16
.AGX 18,51Kb 16 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Evgeny K (mar_a) 09.07.15 09:48
Интересует несколько вещей:
1)терминал я так понял по драйверу только Сканкодовский и с прошивкой/драйвером от Скансити работать в принипе не будет?
2)терминал предположим с родной тайваньской прошивкой соответсвенно через DLL сканкода и скансити не работает, возможна ли настройка связи через другие DLL которые мне еще не встречались (если есть таковые буду рад позаимствовать).
2. Яшин Антон (Anyxwar) 09.07.15 15:34
1) можно переделать саму задачу на Скансити,редактор одинаков
2)DLL которые мне еще не встречались........................ все возможно,...........если есть описание к библиотеке.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа