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

30.03.20

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

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

Файлы

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

Наименование Скачано Купить файл
СКУД с продажей билетов и управлением турникетом:
.epf 13,66Kb
3 2 500 руб. Купить
ДТО 2009 года
.zip 19,09Mb
1 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Всем привет. Возникла необходимость реализовать СКУД со сканером штрихкодов и турникетом. Я подумал и решил сделать данную систему на основе 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;
		ДокПечать.АвтоМасштаб = Истина;
		ДокПечать.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
    КонецЦикла;	
	//Завершение процедуры
	///////////////////////////////////////////

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

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

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

135530 руб.

11.06.2015    62849    38    20    

49

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

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

3050 руб.

03.12.2018    70406    239    106    

187

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

Полнофункциональное расширение для формирования и ведения учета перевозочных документов всех видов (ТН, ТТН, ЭТрН). Печать документов или отправка через ЭПД (Электронный перевозочный документооборот). Поддержка регистрации нескольких перевозок на одну финансовую реализацию (в виде УПД, например), а также одной перевозки на основании нескольких финансовых реализаций. Формирование всех сопроводительных документов из одной отгрузки. Формирование реестра грузосопроводительных документов, доверенности менеджеров для указания ответственных лиц (руководитель, главный бухгалтер, кладовщик) организации для пользователей ИБ. Гибкая настройка функциональности под потребности организации.

3399 руб.

18.04.2017    55011    301    43    

100

Рабочее место Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Фармацевтика, аптеки Россия Управленческий учет Платные (руб)

Удобное отображение аналогов номенклатуры в 1С для УТ 11, КА 2, ERP прямо в списке. Легкое добавление и удаление аналогов к номенклатуре. Доработка в виде расширения, изменение конфигурации не требуется.

12709 руб.

19.03.2019    56645    459    85    

126

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

Расширение для форм СПИСКОВ и ВЫБОРА номенклатуры и характеристик для УТ 11, КА 2, ERP 2, Розница 2.2 - Розница 2.3. Превращает форму списка в полноценный инструмент по управлению каталогом товаров. Позволяет быстро наполнять каталог картинками, создавать документы при помощи корзины, устанавливать цены по списку номенклатуры, контролировать и просматривать присоединенные изображения. Добавляет возможность просмотра цен и остатков для форм списков и выбора номенклатуры и характеристик с отборами.

6100 руб.

06.07.2018    53045    157    105    

120

Сканер штрих-кода Терминал сбора данных Мобильная разработка Монитор заказов Оптовая торговля Розничная торговля Ценообразование, анализ цен Программист Пользователь 1С:Предприятие 8 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. Полнофункциональный демо-доступ для своей конфигурации можно запросить в настройках мобильного приложения - все необходимое придет на почту автоматически. Решение предназначено для считывания штрихкодов, а не для их создания и печати.

3050 руб.

22.04.2019    120613    721    205    

380
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 02.07.21 18:10
Сообщение было скрыто модератором.
...
2. Mikov_Evgeniy 2 22.06.22 14:56 Сейчас в теме
Добрый день, как можно с вами связаться, для вашей помощи по настройки турникета, на платной основе?
Казахстан +77019712777
3. пользователь 22.06.22 15:15
Сообщение было скрыто модератором.
...
4. Bukaska 149 22.06.22 16:26 Сейчас в теме
(2)Создать тикет в техподдержку
5. пользователь 23.06.22 08:01
Сообщение было скрыто модератором.
...
6. пользователь 05.02.23 23:10
Сообщение было скрыто модератором.
...
7. пользователь 03.05.23 10:34
Сообщение было скрыто модератором.
...
8. Светлый ум 506 05.06.25 12:16 Сейчас в теме
Каким турникетом управляли - хотим у себя это реализовали?
9. Sandmansss 26 05.06.25 12:54 Сейчас в теме
(8) Честно говоря уже и не помню. Да это по сути и не важно.
У турникета есть колодка с пинами на которые можно подать 5в для переключения его в режим открытия. Это надо смотреть на документацию на конкретный турникет.
Ну а дальше управление происходит через веб сервер ардуино.
Послали нужный пакет - шилд подал питание на нужную ногу. А нога через реле подает напряжение на нужный пин, открытия или закрытия. Длительность подачи питания изменяется в прошивке ардуино.
Собственно все.
1С в данном случае просто посылает нужный запрос на нужный нам веб адрес.
Реализовал через веб, так как неизвестна дальность установки турникета, а через сеть это легко масштабировать.
Светлый ум; +1 Ответить
10. Светлый ум 506 20.03.26 08:36 Сейчас в теме
Спасибо, будем пробовать
Для отправки сообщения требуется регистрация/авторизация