xmlTSDGalery/CommonModules/МенеджерОборудованияПовтИсп/Ext/Module.bsl
kykaevv 88098aa86f Initial commit: конфигурация ТСД с обменом УНФ.
Включает перемещение по ячейкам, стикеровку МП, синхронизацию справочников и обработку кодов маркировки.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-01 12:50:57 +03:00

174 lines
12 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область СлужебныйПрограммныйИнтерфейс
Функция СодержимоеОбщегоМакета(Знач ИмяМакета) Экспорт
СодержимоеМакета = ПолучитьОбщийМакет(ИмяМакета).ПолучитьТекст();
Возврат СодержимоеМакета;
КонецФункции
Функция СовместимостьВнешнейКомпонентыИзФайла(Знач ИмяМакета) Экспорт
ВремИмяМакета = СтрРазделить(ИмяМакета,".", Ложь);
ВремИмяМакета = ВремИмяМакета[ВремИмяМакета.ВГраница()];
ДвоичныеДанные = ПолучитьОбщийМакет(ВремИмяМакета);
Результат = ВнешниеКомпонентыБПО.ИнформацияОКомпонентеИзФайла(ДвоичныеДанные, Ложь);
Если Результат.Разобрано Тогда
Возврат Результат.Реквизиты;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
Функция ПоставляемыеДрайверы() Экспорт
МодулиОбновления = Новый Массив();
Если ОбщегоНазначенияБПО.ИспользуетсяУстройстваВвода() Тогда
МодулиОбновления.Добавить(ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеУстройстваВвода"));
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяЧекопечатающиеУстройства() Тогда
МодулиОбновления.Добавить(ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеЧекопечатающиеУстройства"));
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяПлатежныеСистемы() Тогда
МодулиОбновления.Добавить(ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеПлатежныеСистемы"));
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяДисплеиПокупателя() Тогда
МодулиОбновления.Добавить(ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеДисплеиПокупателя"));
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяВесовоеОборудование() Тогда
МодулиОбновления.Добавить(ОбщегоНазначенияБПО.ОбщийМодуль("ОборудованиеВесовоеОборудование"));
КонецЕсли;
ДрайверыОборудования = МенеджерОборудования.НоваяТаблицаПоставляемыхДрайверовОборудования();
Для Каждого МодульОбновления Из МодулиОбновления Цикл
МодульОбновления.ОбновитьПоставляемыеДрайвера(ДрайверыОборудования);
КонецЦикла;
Возврат ДрайверыОборудования;
КонецФункции
Функция ИдентификаторыДрайверов() Экспорт
ДрайверыОборудования = ПоставляемыеДрайверы();
ДрайверыОборудования.Свернуть("ИдентификаторОбъекта, СнятСПоддержки");
Результат = Новый Массив();
Для каждого Элемент Из ДрайверыОборудования Цикл
Если Не Элемент.СнятСПоддержки Тогда
Результат.Добавить(Элемент.ИдентификаторОбъекта);
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ПараметрыТипыОборудования() Экспорт
Результат = Новый Структура();
ДоступныеТипы = ДоступныеТипыОборудования(Истина);
Для каждого Значение Из ДоступныеТипы Цикл
ИмяЗначения = ОбщегоНазначенияБПО.ИмяЗначенияПеречисления(Значение);
Результат.Вставить(ИмяЗначения, Ложь);
КонецЦикла;
// Дополнение типов оборудования
Результат.Вставить("ФискальныйРегистратор", Ложь);
Возврат Результат;
КонецФункции
// Получить соответствие типов оборудования
//
// Возвращаемое значение:
// Соответствие -
//
Функция СоответствиеТиповОборудования() Экспорт
Соответствие = Новый Соответствие();
ДоступныеТипы = ДоступныеТипыОборудования(Истина);
Для каждого Значение Из ДоступныеТипы Цикл
ИмяЗначения = ОбщегоНазначенияБПО.ИмяЗначенияПеречисления(Значение);
Соответствие.Вставить(ИмяЗначения, Значение);
КонецЦикла;
// Russian alphabet. Не локализовывать
Соответствие.Вставить("УстройствоВвода" , Перечисления.ТипыПодключаемогоОборудования.СканерШтрихкода); //@NON-NLS-1 @NON-NLS-2
// English alphabet.
Соответствие.Вставить("BarcodeScanner" , Перечисления.ТипыПодключаемогоОборудования.СканерШтрихкода); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("CardReader" , Перечисления.ТипыПодключаемогоОборудования.СчитывательМагнитныхКарт); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("KKT" , Перечисления.ТипыПодключаемогоОборудования.ККТ); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("FiscalRegistrar" , Перечисления.ТипыПодключаемогоОборудования.ФискальныйРегистратор); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("ReceiptPrinter" , Перечисления.ТипыПодключаемогоОборудования.ПринтерЧеков); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("CustomerDisplay" , Перечисления.ТипыПодключаемогоОборудования.ДисплейПокупателя); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("DataCollectionTerminal", Перечисления.ТипыПодключаемогоОборудования.ТерминалСбораДанных); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("POSTerminal" , Перечисления.ТипыПодключаемогоОборудования.ЭквайринговыйТерминал); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("WeighingScales" , Перечисления.ТипыПодключаемогоОборудования.ЭлектронныеВесы); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("LabelPrintingScale" , Перечисления.ТипыПодключаемогоОборудования.ВесыСПечатьюЭтикеток); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("LabelPrinter" , Перечисления.ТипыПодключаемогоОборудования.ПринтерЭтикеток); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("RFIDReader" , Перечисления.ТипыПодключаемогоОборудования.СчитывательRFID); //@NON-NLS-1 @NON-NLS-2
Соответствие.Вставить("Recognizer" , Перечисления.ТипыПодключаемогоОборудования.УстройствоРаспознавания); //@NON-NLS-1 @NON-NLS-2
Возврат Соответствие;
КонецФункции
// Возвращает список доступных типов оборудования.
//
// Параметры:
// ВключаяНеиспользуемые - Булево - по умолчанию Ложь, добавить неиспользуемые типы, для совместимости
//
// Возвращаемое значение:
// Массив из ПеречислениеСсылка.ТипыПодключаемогоОборудования - Массив доступных типов подключаемого оборудования в конфигурации.
//
Функция ДоступныеТипыОборудования(ВключаяНеиспользуемые = Ложь) Экспорт
СписокТиповОборудования = Новый Массив;
СтандартнаяОбработка = Истина;
МенеджерОборудованияВызовСервераПереопределяемый.ДоступныеТипыОборудования(СписокТиповОборудования, СтандартнаяОбработка);
Если СтандартнаяОбработка Тогда
СписокТиповОборудования.Очистить();
Если ОбщегоНазначенияБПО.ИспользуетсяУстройстваВвода() Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.СканерШтрихкода);
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяЧекопечатающиеУстройства() Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ККТ);
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ПринтерЧеков);
Если ВключаяНеиспользуемые Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ФискальныйРегистратор);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяДисплеиПокупателя() Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ДисплейПокупателя);
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяПлатежныеСистемы() Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ЭквайринговыйТерминал);
КонецЕсли;
Если ОбщегоНазначенияБПО.ИспользуетсяВесовоеОборудование() Тогда
СписокТиповОборудования.Добавить(Перечисления.ТипыПодключаемогоОборудования.ЭлектронныеВесы);
КонецЕсли;
КонецЕсли;
Возврат СписокТиповОборудования;
КонецФункции
#КонецОбласти
#КонецЕсли