СКУД с продажей билетов и управлением турникетом

30.03.20

Интеграция - Сканер штрих-кода

Обработка, позволяющая печатать билеты со штрихкодом и управлять турникетом. Система контроля доступа с одним считывателем (сканером штрихкода) и турникетом.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
СКУД с продажей билетов и управлением турникетом:
.epf 13,66Kb
3
3 Скачать (1 SM) Купить за 1 850 руб.
ДТО 2009 года
.zip 19,09Mb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Всем привет. Возникла необходимость реализовать СКУД со сканером штрихкодов и турникетом. Я подумал и решил сделать данную систему на основе 1С.Розница 2.3. Причина выбора 1с в том, что через нее легко можно продавать (подключение КТТ онлайн) и вести учет, ну а СКУД - всего лишь надстройка.

Тестировалось на Розница, редакция 2.3 (2.3.3.19), платформа 1С:Предприятие 8.3 (8.3.15.1869)

Делюсь, потому как информации на этот счет не так уж и много, вдруг кому понадобится.

Практически весь функционал реализован в самой обработке, но кое где все таки пришлось влазить в основную конфигурацию.

Схема работы.

При продаже через РКМ, в процедуру 

Процедура ПробитьЧекККМЗавершение(РезультатВыполнения, ПараметрыОперации) Экспорт

Добавлен код формирования и печати билета с ШК:

  • Проверяем все позиции в чеке. Если есть номеклатура, принадлежащая товарной группе "Билеты", то по количеству этой номеклатуры, в независимом регистре сведений "БилетыНаПроход" формируется запись с новым штрих кодом и указанием времени продажи, ссылкой на чек, и на саму номеклатуру
  • По количеству позиций отправляем на принтер этикеток печать билетов со штрих кодом

Далее для прохода через турникет должна быть запущена обработка СКУД, она и управляет возможностью прохода. При срабатывании внешнего события от сканера, проверяется принадлежит ли штрихкод текущим суткам и не является ли он погашенным. Если штрихкод не погашен, то дается команда турникету на открытие, далее штрихкод гасится.

Турникет управляется посылкой команды "open" http запросом на запрограммированный адрес, у меня  192.168.0.250.

Управление турникетом я реализовал на базе ардуино уно + шилд 5100.

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

////////////////////////////////////////////////////////////////
// Открытие турникета в потоке по условиям
// 1 - ШК принадлежит текущим суткам
// 2 - ШК непогашен 
// Погашение ШК в случае успешного прохода через турникет
Процедура ОткрытьТурникет(Штрихкод,IP_Port,CMD) Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	БилетыНаПроход.Штрихкод КАК Штрихкод,
		|	БилетыНаПроход.ДатаГенерации КАК ДатаГенерации,
		|	БилетыНаПроход.Погашен КАК Погашен
		|ИЗ
		|	РегистрСведений.БилетыНаПроход КАК БилетыНаПроход
		|ГДЕ
		|	БилетыНаПроход.Штрихкод ПОДОБНО &Штрихкод 
		|	И БилетыНаПроход.Погашен = Ложь";
	
	Запрос.УстановитьПараметр("Штрихкод", Штрихкод);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если (Формат(ВыборкаДетальныеЗаписи.ДатаГенерации, "ДЛФ=Д") = Формат(ТекущаяДата(), "ДЛФ=Д")) Тогда
	    
		    Соединение = Новый HTTPСоединение(IP_Port,,,,,10);
		    Заголовки = Новый Соответствие();
		    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=Windows-1251");
		    Запрос = Новый HTTPЗапрос("/" + CMD , Заголовки);
		    ОтветСервера = Соединение.Получить(Запрос);      // Ответ от контроллера
		    Ответ = ОтветСервера.ПолучитьТелоКакСтроку();    // переводим в строку и получаем код странички			
			Если Ответ="event_step_in" Тогда                 // Ответ "event_step_in" говорит, о совершенном переходе через турникет
	 			ТекущийБилет = РегистрыСведений.БилетыНаПроход.СоздатьНаборЗаписей(); 
				//ТекущийБилет.Отбор.Погашен.Установить(Ложь);
				ТекущийБилет.Отбор.Штрихкод.Установить(Штрихкод);			
				ТекущийБилет.Прочитать();					
				Для Каждого Билет Из ТекущийБилет Цикл
				     Билет.Погашен = Истина;
					 Билет.ДатаПогашения = ТекущаяДата();
				 КонецЦикла;	
				 ТекущийБилет.Записать(); 
			КонецЕсли;			
		КонецЕсли;
	КонецЦикла;

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

Особенность подключения сканера ШК в том, что он подключается с использованием драйверов DTO 2009 года, тех что еще бесплатны. Сделано это для того, чтобы событие сканирования не возникало в РМК.

Вот код вставленный в РМК

&НаКлиенте
Процедура ПробитьЧекККМЗавершение(РезультатВыполнения, ПараметрыОперации) Экспорт
	ПараметрыЗаполнения = ПараметрыОперации.ПараметрыЗаполнения;
	
	Если РезультатВыполнения.Результат Тогда
		
		// Установить полученное значение номера чека реквизиту документа.
		ПараметрыЗаполнения.Вставить("СтатусЧекаККМ", ПредопределенноеЗначение("Перечисление.СтатусыЧековККМ.Пробитый"));
		ПараметрыЗаполнения.Вставить("Дата", ОбщегоНазначенияКлиент.ДатаСеанса());
		ПараметрыЗаполнения.Вставить("НомерСменыККМ", РезультатВыполнения.ВыходныеПараметры[0]);
		ПараметрыЗаполнения.Вставить("НомерЧекаККМ" , РезультатВыполнения.ВыходныеПараметры[1]);
		
		Если НЕ ЗначениеЗаполнено(ПараметрыЗаполнения.НомерЧекаККМ) Тогда
			Если НомерДокументаКассыККМ[ПараметрыОперации.КассаККМ] <> Неопределено Тогда
				НомерЧекаККМ  = НомерДокументаКассыККМ[ПараметрыОперации.КассаККМ];
			Иначе
				НомерЧекаККМ  = ПорядковыйНомерПродажи;
			КонецЕсли;
			
			ПараметрыЗаполнения.Вставить("НомерЧекаККМ", НомерЧекаККМ);
		КонецЕсли;
	Иначе
		ЗаголовокИнформации = НСтр("ru = 'При печати чека произошла ошибка.'");
		ТекстСообщения = НСтр("ru = 'Чек не напечатан на устройстве для печати чеков.
		                            |Дополнительное описание: %ДополнительноеОписание%'");
		ТекстСообщения = СтрЗаменить(ТекстСообщения, "%ДополнительноеОписание%", РезультатВыполнения.ОписаниеОшибки);
		ОбщегоНазначенияРТКлиент.ВывестиИнформациюДляРМКУправляемой(ЗаголовокИнформации, ТекстСообщения);
		
	КонецЕсли;
	
	ПараметрыЗаполнения.ЧекПробит = РезультатВыполнения.Результат;
	
	ВыполнитьОбработкуОповещения(ПараметрыОперации.ОповещениеПриЗавершении, ПараметрыЗаполнения);
	///////////////////////////////////////////////////////////////
	//Процедура генерации штрихкода
	НовыеШК = Массив_ШК(ПараметрыОперации.ЧекККМСсылка);
	Для Каждого Штрихкод из НовыеШК Цикл
		ДокПечать = ПечатьБилета(Штрихкод);
		//ДокПечать.ИмяПринтера="HP LaserJet 3055 PCL5 LAN";
		ДокПечать.ОтображатьСетку = Ложь;
		ДокПечать.Защита = Ложь;
		ДокПечать.ТолькоПросмотр = Ложь;
		ДокПечать.ОтображатьЗаголовки = Ложь;
		ДокПечать.ПолеСлева=3;
		ДокПечать.ПолеСправа=3;
		ДокПечать.АвтоМасштаб = Истина;
		ДокПечать.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
    КонецЦикла;	
	//Завершение процедуры
	///////////////////////////////////////////

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

В конце модуля формы РМК

////////////////////////////////////////////////////////////////////
//Вызовы серверным методов из модуля менеджера обработки СКУД
Функция Массив_ШК(ЧекККМСсылка)
	Возврат Обработки.СКУД.ГенерацияШК(ЧекККМСсылка);
КонецФункции

&НаСервере
Функция ПечатьБилета(ШК)
	Возврат Обработки.СКУД.ПечатьБилетаНаСервере(ШК);
КонецФункции
////////////////////////////////////////////////////////////////////

Для упрощения работы, я создал подсистему "СКУД", пользователя "СКУД" и назначил пользователю все необходимые права. При заходе под пользователем "СКУД", ему доступна только его подсистема и обработка запускается автоматически, т.е. от продажи билетов управление турникетом отделено.

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

Обработка СКУД Ардуино Билет со штрихкодом

См. также

Зарплата Производство готовой продукции (работ, услуг) Учет рабочего времени Рабочее место Бизнес-аналитик Пользователь Руководитель проекта Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Торговля и склад 7.7 Бытовые услуги, сервис Оптовая торговля, дистрибуция, логистика Электротехника и микроэлектроника Управленческий учет Платные (руб)

Модуль или расширение «Сервисный центр для 1С» позволяет принимать в ремонт оборудование (компьютеры, бытовая техника и т.п.), оформлять заявки инженеров на посещение клиентов и вести начисление заработной платы для сотрудников. Позволяет наладить автоматизированный учет в сервисном центре на уже существующей базе.

14800 руб.

01.11.2012    94134    115    1    

117

SALE! 10%

Рабочее место Розничная торговля Обмен с ГосИС Бухгалтер Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Управленческий учет Акцизы Платные (руб)

Помощник ЕГАИС для 1С Розница 2.2/2.3 - обновление сопоставлений алкогольных классификаторов, инвентаризация по марке, проверка накладных по check1.fsrar.ru, поиск продукции по акцизке, запрос новых акцизных марок и многое другое!

12000 10800 руб.

05.01.2016    146866    508    700    

227

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн - все это содержит в себе решение 1С "Штрихкод-информер" (штрих-код чекер). Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

3000 руб.

03.12.2018    59291    192    103    

172

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Простой мобильный ТСД (терминал сбора данных) сканер для 1С для смартфонов на iOS и Android, не требующий сложных настроек и установки дополнительных программ. Обмен между Вашей 1С и мобильным приложением осуществляется через облачный сервис и расширение конфигурации. Работает с конфигурациями УТ 11, ERP, КА2, Розница 2, Розница 3, УНФ 1.6, УНФ 3.0. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически.

2000 руб.

22.04.2019    97225    586    189    

321

Сканер штрих-кода Пользователь Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Розница 3.0 Управленческий учет Платные (руб)

У вас возникал вопрос - Как быстро и правильно выполнить приемку товара в торговой точке? Как минимизировать ошибки при сборке заказа клиента? Текущая разработка способна помочь в решении данных проблем. Её назначение - проверка с помощью сканера штрих кода поступления и реализации товаров, заказов клиентов, заказов поставщикам, расходных и приходных ордеров, перемещений и возвратов.

2400 руб.

29.07.2020    36518    170    159    

142
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 02.07.21 18:10
Сообщение было скрыто модератором.
...
2. Mikov_Evgeniy 2 22.06.22 14:56 Сейчас в теме
Добрый день, как можно с вами связаться, для вашей помощи по настройки турникета, на платной основе?
Казахстан +77019712777
3. пользователь 22.06.22 15:15
Сообщение было скрыто модератором.
...
4. Bukaska 140 22.06.22 16:26 Сейчас в теме
(2)Создать тикет в техподдержку
5. пользователь 23.06.22 08:01
Сообщение было скрыто модератором.
...
6. пользователь 05.02.23 23:10
Сообщение было скрыто модератором.
...
7. пользователь 03.05.23 10:34
Сообщение было скрыто модератором.
...
Оставьте свое сообщение