INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Алексей Тишков | Заместитель начальника отдела ИТ | ПАО "Амурский судостроительный завод"

«Цифровая трансформация процессов судостроительного предприятия на платформе 1С»

В докладе будет рассмотрен пример построения единого информационного пространства на платформе 1С с использованием комплекса конфигураций: - Управление производственным предприятием; - Документооборот КОРП; - Бухгалтерия предприятия с надстройкой "БИТ:Финанс"; Комплекс конфигураций является фундаментом для внедрения процессного подхода к управлению, системы на платформе 1С используются не только в качестве "учетных", а в качестве среды выполнения формализованных процессов. Таким образом, уровень зрелости и функциональности комплекса перешел от "учетного" к "среде жизненного цикла процессов". Реализованы, в том числе, сквозные процессы между конфигурациями и интегрированными внешними системами (концепция "большие процессы", или "большая единая 1С"), сквозной сбор данных стратегического BI-уровня (контрольные отчеты директора). Используемые технологии: - неквалифицированная цифровая подпись согласно 63-ФЗ (используется для согласования договоров, служебок, исходящих писем, приказов, распоряжений и многих других внутренних документов); - интеграция с внешними системами посредством web-сервисов (интеграция с системой СКУД и управление блокировкой прохода на предприятие из кадровой системы); - интеграция между конфигурациями 1С посредством COM-объектов и web-сервисов; - внешние компоненты; - объекты метаданных Бизнес-процессы и Задачи; На сквозном примере будет рассмотрен общий принцип цифровой трансформации отдельного процесса, выполнение следующего комплекса преобразований: 1. Определение возможного уровня цифровизации, возможности реализации в какой-либо информационной системе весь жизненный цикл процесса (все ли участники процесса присутствуют в информационной системе, могут присутствовать потенциально); 2. Описание и формализация, моделирование текущего состояния процесса, выявление проблемных зон и функций, связанных с вещественной формой передачи информации (на примере модели в нотации EPC); 3. Моделирование трансформированного состояния процесса, определение среды жизненного цикла цифровой формы процесса (подсистемы), измененных форм первичных документов; 4. Закрепление трансформированной формы процесса в системе менеджмента качества (актуализация или создание нормативной базы); 5. Изменение соответствующей информационной подсистемы (архитектура прикладных объектов, кодирование, тестирование); 6. Внедрение и обучение пользователей (участников процесса), постановка на эксплуатацию. Доклад будет интересен практикам внедрения на крупных промышленных предприятиях.

Использование ТСД на WM 6 как беспроводной сканер с получением данных из 1С

Оборудование - Терминал сбора данных

14
Как вариант печати этикеток на мобильный принтер, получение информации по ШК.
Можно легко расширить до более сложных задач. В том числе на Xamarin под Android и IOS.

Сейчас много старых ТСД,  которые можно использовать в этом варианте. В отличие от беспроводных сканеров мы можем получить информацию о товаре. Подтвердить действия и т.д.

Основное в разработке - это модуль обмена по TCP/IP.

Применен протокол со сжатием данных, так как это актуально в медленных сетях Wi-Fi, особенно вдали от точки.

Конечно можно использовать и Вэб сервисы, но часто нужно настраивать мобильный принтер на машире оператора, или делать авбор данных в ручную с локального компьютера.

Применение в 1С такое.

&НаКлиенте
Процедура Запустить(Команда)
	// Вставить содержимое обработчика.
	Если TCPСервер=неопределено Тогда
		TCPСервер= СоздатьСерверTCP();
		
	КонецЕсли; 
	
	Событие=Врап.ПолучитьОбъектДляСобытийСПараметром(TCPСервер,"ПришлоСообщениеПоTCP");
	
	ДобавитьОбработчик Событие.СобытиеСПараметром, ПолучениеДанныхПоTCP;
	TCPСервер.ОткрытьАйПиПортСНомеромПорта(Отчет.Порт);
	
	Элементы.ЗапуститьСерверTCPIP.Доступность=Ложь;
КонецПроцедуры


&НаКлиенте
Процедура ПолучениеДанныхПоTCP(Данные)
	
	// Получаем данные в виде объекта у которого 2 свойства
	// Команда Имя запроса строка
	// Данные Строковое представление данных
	Сообщить("Команда="+Данные.Команда);
	Сообщить("Данные="+Данные.Данные);
	Сообщить("ЕстьОтвет="+Данные.ЕстьОтвет);	
	
	// ТСД Посылает команду "СканированШК" и отсканированный ШК 
	Если Данные.Команда="СканированШК" Тогда
		Шк=Данные.Данные;
		// Получим данные по Номенклатуре и отправит данные ТСД
		Ответ=ПолучениеДанныхПоШК(ШК);
		TCPСервер.Ответить(Ответ);
		
		возврат
	КонецЕсли; 
	
	// Для других команд просто отправим текущее время и дату 
	Если Данные.ЕстьОтвет Тогда
		Ответ="Ответ на команду "+Данные.Команда+"
		|Данные "+Данные.Данные+"
		|ВремяНаСервере="+XmlСтрока(ТекущаяДата());
		TCPСервер.Ответить(Ответ);
		
		
	КонецЕсли; 
	
КонецПроцедуры
 

Вот исходники модуля передачи и приема данных по сети

 

Тестировал на эмуляторе.

Также удобно передавать данные сразу в сериализованном DataTable для универсальной обработки на TCL с фильтрами поиском и тд

 

Функция ПолучитьТипКолонкиДляДТ(Колонка) Экспорт
Тип=Колонка.ТипЗначения;
Если Тип=Неопределено Тогда
возврат "System.Object"
КонецЕсли; 

Если тип.Типы().Количество()>1 Тогда
	возврат "System.Object"
КонецЕсли; 

Тип1=тип.Типы()[0];

Если Тип1=Тип("Число") Тогда
	Квалификатор=Тип.КвалификаторыЧисла;
	Если Квалификатор.РазрядностьДробнойЧасти>0 Тогда
		возврат "System.Decimal"
	КонецЕсли; 
	
	Разрядность=Квалификатор.Разрядность;
	Если Разрядность<10 Тогда
		возврат "System.Int32"
	ИначеЕсли Разрядность<19 Тогда	
		возврат "System.Int64"
	Иначе
		возврат "System.Decimal"
	КонецЕсли; 
	
КонецЕсли; 

Если Тип1=Тип("Строка") Тогда
 возврат "System.String"
ИначеЕсли Тип1=Тип("Дата") Тогда
 возврат "System.DateTime"
КонецЕсли;

return "System.Object"
КонецФункции	

Функция СоздатьДТ(врап,Тз,ИмяТаблицы) Экспорт

	 Колонки=Тз.Колонки;

	 myTable=Врап.СоздатьОбъект("System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",ИмяТаблицы);
	 DataColumn=Врап.ПолучитьТип("System.Data.DataColumn");
	 Columns= myTable.Columns;
	 КоличествоКолонок=Колонки.Количество();
	 Для каждого Колонка Из Колонки Цикл
	 
	 	 colItem =Врап.СоздатьОбъект(DataColumn,Колонка.Имя, Врап.ПолучитьТип(ПолучитьТипКолонкиДляДТ(Колонка)));
         Columns.Add(colItem);
	 
	 КонецЦикла; 
	 
//	rowArray =новый COMSafeArray("VT_VARIANT",КоличествоКолонок);//Врап.СоздатьМассив("System.Object",КоличествоКолонок);
    Rows=myTable.Rows;
	Для каждого стр Из Тз Цикл
		  Row = myTable.NewRow();
		Для сч=0 По КоличествоКолонок-1 Цикл
			сообщить(стр[сч]);
		Row.set_Item(сч,стр[сч]);
		  
	  КонецЦикла;
	  
Сообщить(Row.ToString());
//Rows.Add(Row);
врап.ВыполнитьМетод(Rows,"Add",Row);


	КонецЦикла; 
	
	возврат myTable
КонецФункции 

 

В Папке Для1С лежат файлы NetObjetToIDispatch45.dll и RegAsm.bat и внешняя обработка ТестТСД.erf 
 
Скопируйте в общедоступную папку и зарегистрируйте, запустив от администратора RegAsm.bat
 
В Папке ТСДкакСканер лежат файлы ТСДкакСканер.exe и ТСДкакСканер.exe.config, их нужно скопировать на КПК, например, в Programm Files
 
Но перед тем. как копировать, измените ТСДкакСканер.exe.config
<add key="ServerName"  value="10.250.0.1" /> 
<add key="ServerPort" value="6891" /> 
 
ServerName на IpAddress компьютера, на котором будет загружаться обработка. Порт должен быть таким, как в обработке.
 
Запускаете обработку, нажимаете на кнопку Запустить, и можно обмениваться данными с ТСД, сканировать как эмулятор  клавиатуры, набирать ШК вручную.
 
Ссылки на подключение эмулятора к сети
 
Ссылка на SDK
14

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

Наименование Файл Версия Размер
ТестТСД
.zip 141,74Kb
25.05.16
6
.zip 141,74Kb 6 Скачать

См. также

Комментарии
Сортировка: Древо
1. Операция1Ы 53 18.05.16 20:36 Сейчас в теме
Снимаю шляпу, определенно плюс за концепцию.
2. Serginio 711 18.05.16 20:42 Сейчас в теме
3. avz_1C 10 19.05.16 13:47 Сейчас в теме
Актуально.
Плюс.
Спасибо.
4. Serginio 711 19.05.16 14:02 Сейчас в теме
5. igor_nat 07.08.16 10:33 Сейчас в теме
Очень интересная и полезная тема. Автору спасибо большое. Искал по интернету а тут есть Может есть примеры включения,отключения сканера
получение данных со сканера тсд.
различных моделей тоже будет интересно
6. Serginio 711 07.08.16 11:57 Сейчас в теме
В данном примере сканер как клавиатура. Есть модели, где есть специальное апи с событием.
В настройках для каждой модели можно настраивать, что куда и когда
7. wmonref1 15.08.17 09:46 Сейчас в теме
Сергей Смирнов, как думаете, ТСД на Windows 10 будет работать?
Спасибо!
8. Serginio 711 15.08.17 10:29 Сейчас в теме
Работает. Там внутри ТСД на WM 6 можно и к вэб сервисам подключаться и обмен по Tcp/ip.
Единственно это то, что нужно использовать для WM 6 VS 2008 и при этом нельзя пользоваться эмулятором, так как Win 10 не поддерживает Virtual PC 2007
9. wmonref1 15.08.17 16:16 Сейчас в теме
(8) А что, использование эмулятора обязательна?
10. Serginio 711 15.08.17 17:42 Сейчас в теме
Нет конечно. Ты через шнурок и мобильный центр подключаешься для отладки
Эмуляторы нужны когда девайса нет.
11. wmonref1 17.08.17 12:13 Сейчас в теме
(10) Сергей, я хочу подключиться с ТСД к серверу через РДП и сканировать ШК товаров прямо в 1С, в форме документа. Возможно ли это сделать с помощью вашей обработки?
12. Serginio 711 17.08.17 13:30 Сейчас в теме
Моя обработка нужна для работы в полу ОнЛайн.
Для РДП ничего не нужно, так как ты работаешь с удаленным экраном.
Минусы РДП, что нужен постоянный Онлайн и нужны формы учитывающие размер и с разрешение ТСД
Ну и язык C# значительно мощнее 1С
13. Xershi 387 24.12.17 18:36 Сейчас в теме
Для справки для обмена сообщениями по сети в конфигурацию придется встроить 2 компоненты?
14. Serginio 711 25.12.17 11:18 Сейчас в теме
Ну нужна только одна https://infostart.ru/public/238584/
А она уже использует любые .Net классы
Оставьте свое сообщение