Включает перемещение по ячейкам, стикеровку МП, синхронизацию справочников и обработку кодов маркировки. Co-authored-by: Cursor <cursoragent@cursor.com>
1047 lines
58 KiB
Plaintext
1047 lines
58 KiB
Plaintext
|
||
#Область ПрограммныйИнтерфейс
|
||
|
||
// Возвращает текущую дату, происходит обращение к серверу, для получения точной даты.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Дата - текущая дата сеанса.
|
||
//
|
||
Функция ДатаСеанса() Экспорт
|
||
|
||
ДатаСеанса = МенеджерОборудованияКлиентПереопределяемый.ДатаСеанса();
|
||
Если ЗначениеЗаполнено(ДатаСеанса) Тогда
|
||
Возврат ДатаСеанса;
|
||
КонецЕсли;
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиент = ОбщийМодуль("ОбщегоНазначенияКлиент");
|
||
Возврат МодульОбщегоНазначенияКлиент.ДатаСеанса();
|
||
// Конец Вызов БСП
|
||
|
||
КонецЕсли;
|
||
|
||
Поправка = МенеджерОборудованияКлиент.ПодключаемоеОборудование().ПоправкаКВремениСеанса;
|
||
ДатаСеанса = ТекущаяДата() + Поправка; // АПК:143 ТекущаяДата() для вычисления времени сеанса
|
||
Возврат ДатаСеанса;
|
||
|
||
КонецФункции
|
||
|
||
#Область РаботаСXML
|
||
|
||
// Функция читает корневой элемент XML.
|
||
//
|
||
// Параметры:
|
||
// СтрокаXML - Строка - XML строка.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура
|
||
//
|
||
Функция ПрочитатьКорневойЭлементXML(СтрокаXML) Экспорт
|
||
|
||
#Если ВебКлиент Тогда
|
||
Возврат ОбщегоНазначенияБПОСлужебныйВызовСервера.ПрочитатьКорневойЭлементXML(СтрокаXML);
|
||
#Иначе
|
||
Результат = Новый Структура();
|
||
Если Не ПустаяСтрока(СтрокаXML) Тогда
|
||
ЧтениеXML = Новый ЧтениеXML;
|
||
ЧтениеXML.УстановитьСтроку(СтрокаXML);
|
||
ЧтениеXML.ПерейтиКСодержимому();
|
||
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
|
||
Если ЧтениеXML.КоличествоАтрибутов() > 0 Тогда
|
||
Пока ЧтениеXML.ПрочитатьАтрибут() Цикл
|
||
Результат.Вставить(ЧтениеXML.Имя, ЧтениеXML.Значение);
|
||
КонецЦикла
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
КонецЕсли;
|
||
Возврат Результат;
|
||
#КонецЕсли
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область Данные
|
||
|
||
// Создает полную копию структуры, соответствия, массива, списка или таблицы значений, рекурсивно,
|
||
// с учетом типов дочерних элементов. При этом содержимое значений объектных типов
|
||
// (СправочникОбъект, ДокументОбъект и т.п.) не копируются, а возвращаются ссылки на исходный объект.
|
||
//
|
||
// Параметры:
|
||
// Источник - Структура
|
||
// - ФиксированнаяСтруктура
|
||
// - Соответствие
|
||
// - ФиксированноеСоответствие
|
||
// - Массив
|
||
// - ФиксированныйМассив
|
||
// - СписокЗначений - объект, который необходимо скопировать.
|
||
// ФиксироватьДанные - Булево - если Истина - фиксировать, если Ложь - снять фиксацию.
|
||
// - Неопределено - не изменять.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура,
|
||
// ФиксированнаяСтруктура,
|
||
// Соответствие
|
||
// ФиксированноеСоответствие
|
||
// Массив
|
||
// ФиксированныйМассив
|
||
// СписокЗначений - копия объекта, переданного в параметре Источник.
|
||
//
|
||
Функция СкопироватьРекурсивно(Источник, ФиксироватьДанные = Неопределено) Экспорт
|
||
|
||
Перем Приемник;
|
||
|
||
ТипИсточника = ТипЗнч(Источник);
|
||
|
||
Если ТипИсточника = Тип("Структура")
|
||
Или ТипИсточника = Тип("ФиксированнаяСтруктура") Тогда
|
||
Приемник = СкопироватьСтруктуру(Источник, ФиксироватьДанные);
|
||
ИначеЕсли ТипИсточника = Тип("Соответствие")
|
||
Или ТипИсточника = Тип("ФиксированноеСоответствие") Тогда
|
||
Приемник = СкопироватьСоответствие(Источник, ФиксироватьДанные);
|
||
ИначеЕсли ТипИсточника = Тип("Массив")
|
||
Или ТипИсточника = Тип("ФиксированныйМассив") Тогда
|
||
Приемник = СкопироватьМассив(Источник, ФиксироватьДанные);
|
||
ИначеЕсли ТипИсточника = Тип("СписокЗначений") Тогда
|
||
Приемник = СкопироватьСписокЗначений(Источник, ФиксироватьДанные);
|
||
Иначе
|
||
Приемник = Источник;
|
||
КонецЕсли;
|
||
|
||
Возврат Приемник;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныйПрограммныйИнтерфейс
|
||
|
||
// Функция возвращает Истина, если внедрена Библиотека стандартных подсистем
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
Функция ИспользуетсяБСП() Экспорт
|
||
|
||
// Вызов БСП
|
||
Возврат ПараметрПриложения("СтандартныеПодсистемы.ПараметрыКлиента") <> Неопределено;
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает установленную версию БСП, если БСП не установлена тогда
|
||
// возвращает "0.0.0.0"
|
||
//
|
||
// Возвращаемое значение:
|
||
// Строка
|
||
Функция ВерсияБСП() Экспорт
|
||
Возврат ПараметрПриложения("БПО.ВерсияБСП");
|
||
КонецФункции
|
||
|
||
Функция ПараметрПриложения(Знач ИмяПараметра) Экспорт
|
||
|
||
// Вызов БСП
|
||
Если ТипЗнч(ПараметрыПриложения) = Тип("Соответствие") Тогда
|
||
Возврат ПараметрыПриложения[ИмяПараметра]; // Переменная в модуле приложения
|
||
Иначе
|
||
Возврат Неопределено;
|
||
КонецЕсли;
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
Процедура УстановитьПараметрПриложения(Знач ИмяПараметра, Значение) Экспорт
|
||
|
||
// Вызов БСП
|
||
Если ТипЗнч(ПараметрыПриложения) = Тип("Соответствие") Тогда
|
||
ПараметрыПриложения[ИмяПараметра] = Значение; // Переменная в модуле приложения
|
||
КонецЕсли;
|
||
// Конец Вызов БСП
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура УдалитьПараметрПриложения(Знач ИмяПараметра) Экспорт
|
||
|
||
// Вызов БСП
|
||
Если ТипЗнч(ПараметрыПриложения) = Тип("Соответствие") Тогда
|
||
ПараметрыПриложения.Удалить(ИмяПараметра); // Переменная в модуле приложения
|
||
КонецЕсли;
|
||
// Конец Вызов БСП
|
||
|
||
КонецПроцедуры
|
||
|
||
Функция ПараметрыРаботыКлиентаПриЗапуске() Экспорт
|
||
|
||
// Вызов БСП
|
||
МодульСтандартныеПодсистемыКлиент = ОбщийМодуль("СтандартныеПодсистемыКлиент");
|
||
Возврат МодульСтандартныеПодсистемыКлиент.ПараметрыРаботыКлиентаПриЗапуске();
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
Функция СистемаЛогирования() Экспорт
|
||
Возврат МенеджерОборудованияКлиент.ПодключаемоеОборудование().СистемаЛогирования;
|
||
КонецФункции
|
||
|
||
|
||
// Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
|
||
//
|
||
// Параметры:
|
||
// ИмяСобытия - Строка
|
||
// Комментарий - Строка, Неопределено -
|
||
// Метаданные - ОбъектМетаданных -
|
||
//
|
||
Процедура ЗаписатьОшибкуВЖурналРегистрации(ИмяСобытия, Комментарий = Неопределено, ПредставлениеУровня = "Ошибка", Метаданные = Неопределено) Экспорт
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульЖурналРегистрацииКлиент = ОбщегоНазначенияБПОКлиент.ОбщийМодуль("ЖурналРегистрацииКлиент");
|
||
МодульЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации(ИмяСобытия, ПредставлениеУровня, Комментарий);
|
||
// Конец Вызов БСП
|
||
|
||
Иначе
|
||
|
||
ОбщегоНазначенияБПОСлужебныйВызовСервера.ЗаписатьОшибкуВЖурналРегистрации(ИмяСобытия, Комментарий, ПредставлениеУровня, Метаданные);
|
||
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
Процедура ОткрытьНавигационнуюСсылку(Ссылка) Экспорт
|
||
|
||
// Вызов БСП
|
||
МодульФайловаяСистемаКлиент = ОбщегоНазначенияБПОКлиент.ОбщийМодуль("ФайловаяСистемаКлиент");
|
||
МодульФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(Ссылка);
|
||
// Конец Вызов БСП
|
||
|
||
КонецПроцедуры
|
||
|
||
#Область ОповещениеПользователя
|
||
|
||
// Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
|
||
//
|
||
// Параметры:
|
||
// ТекстСообщенияПользователю - Строка - текст сообщения.
|
||
// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
|
||
// Поле - Строка - наименование реквизита формы.
|
||
// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
|
||
// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
|
||
//@skip-check method-too-many-params
|
||
Процедура СообщитьПользователю(Знач ТекстСообщенияПользователю, Знач КлючДанных = Неопределено, Знач Поле = "",
|
||
Знач ПутьКДанным = "", Отказ = Ложь) Экспорт
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиент = ОбщийМодуль("ОбщегоНазначенияКлиент");
|
||
МодульОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
|
||
// Конец Вызов БСП
|
||
|
||
Иначе
|
||
СообщитьПользователюБПО(ТекстСообщенияПользователю, КлючДанных, Поле, ПутьКДанным, Отказ);
|
||
КонецЕсли;
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
#Область УсловныеВызовы
|
||
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
// Процедуры и функции для вызова необязательных подсистем.
|
||
|
||
// Возвращает Истина, если функциональная подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Параметры:
|
||
// ПолноеИмяПодсистемы - Строка
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - Истина, если существует.
|
||
//
|
||
Функция ПодсистемаСуществует(Знач ПолноеИмяПодсистемы) Экспорт
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиент = ОбщийМодуль("ОбщегоНазначенияКлиент");
|
||
Возврат МодульОбщегоНазначенияКлиент.ПодсистемаСуществует(ПолноеИмяПодсистемы);
|
||
// Конец Вызов БСП
|
||
|
||
Иначе
|
||
ИмяПараметра = "БПО.ПодсистемыКонфигурации";
|
||
ИменаПодсистем = ПараметрыПриложения[ИмяПараметра];
|
||
Возврат ИменаПодсистем.Получить(ПолноеИмяПодсистемы) <> Неопределено;
|
||
КонецЕсли;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает ссылку на общий модуль или модуль менеджера по имени.
|
||
//
|
||
// Параметры:
|
||
// Имя - Строка - имя общего модуля.
|
||
//
|
||
// Возвращаемое значение:
|
||
// ОбщийМодуль - общий модуль.
|
||
//
|
||
Функция ОбщийМодуль(Знач Имя) Экспорт
|
||
|
||
Модуль = Вычислить(Имя);
|
||
|
||
#Если Не ВебКлиент Тогда
|
||
|
||
// В веб-клиенте не проверяется
|
||
// т.к. при обращении к модулям с вызовом сервера типа такого модуля в веб-клиенте не существует.
|
||
|
||
Если ТипЗнч(Модуль) <> Тип("ОбщийМодуль") Тогда
|
||
ВызватьИсключение СтрШаблон(
|
||
НСтр("ru = 'Общий модуль ""%1"" не существует.'"),
|
||
Имя);
|
||
КонецЕсли;
|
||
|
||
#КонецЕсли
|
||
|
||
Возврат Модуль;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область ТекущееОкружение
|
||
|
||
////////////////////////////////////////////////////////////////////////////////
|
||
// Функции описания текущего окружения клиентского приложения и операционной системы.
|
||
|
||
// Возвращает Истина, если клиентское приложение запущено под управлением ОС Windows.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - если нет клиентского приложения, возвращается Ложь.
|
||
//
|
||
Функция ЭтоWindowsКлиент() Экспорт
|
||
|
||
ТипПлатформыКлиента = ТипПлатформыКлиента();
|
||
Возврат ТипПлатформыКлиента = ТипПлатформы.Windows_x86
|
||
Или ТипПлатформыКлиента = ТипПлатформы.Windows_x86_64;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если клиентское приложение запущено под управлением ОС Linux.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - если нет клиентского приложения, возвращается Ложь.
|
||
//
|
||
Функция ЭтоLinuxКлиент() Экспорт
|
||
|
||
ТипПлатформыКлиента = ТипПлатформыКлиента();
|
||
Возврат ТипПлатформыКлиента = ТипПлатформы.Linux_x86
|
||
Или ТипПлатформыКлиента = ТипПлатформы.Linux_x86_64;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если клиентское приложение запущено под управлением macOS.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - если нет клиентского приложения, возвращается Ложь.
|
||
//
|
||
Функция ЭтоMacOSКлиент() Экспорт
|
||
|
||
ТипПлатформыКлиента = ТипПлатформыКлиента();
|
||
Возврат ТипПлатформыКлиента = ТипПлатформы.MacOS_x86
|
||
Или ТипПлатформыКлиента = ТипПлатформы.MacOS_x86_64;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если приложение запущено через веб-клиент
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - признак веб клиента.
|
||
//
|
||
Функция ЭтоВебКлиент() Экспорт
|
||
|
||
#Если ВебКлиент Тогда
|
||
Возврат Истина;
|
||
#Иначе
|
||
Возврат Ложь;
|
||
#КонецЕсли
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если клиентское приложение подключено к базе через веб-сервер.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - Истина, если подключен.
|
||
//
|
||
Функция КлиентПодключенЧерезВебСервер() Экспорт
|
||
|
||
Возврат СтрНайти(ВРег(СтрокаСоединенияИнформационнойБазы()), "WS=") = 1;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если включен режим отладки.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - Истина, если включен режим отладки.
|
||
//
|
||
Функция РежимОтладки() Экспорт
|
||
|
||
Возврат СтрНайти(ПараметрЗапуска, "РежимОтладки") > 0;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает объем оперативной памяти, доступной клиентскому приложению.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Число - количество гигабайтов оперативной памяти с точностью до десятых долей.
|
||
// Неопределено - нет клиентского приложения, то есть ТекущийРежимЗапуска() = Неопределено.
|
||
//
|
||
Функция ОперативнаяПамятьДоступнаяКлиентскомуПриложению() Экспорт
|
||
|
||
СистемнаяИнформация = Новый СистемнаяИнформация;
|
||
Возврат Окр(СистемнаяИнформация.ОперативнаяПамять / 1024, 1);
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает тип платформы клиента.
|
||
//
|
||
// Возвращаемое значение:
|
||
// ТипПлатформы, Неопределено - тип платформы на которой запущен клиент. В режиме веб-клиента, если тип
|
||
// платформы иной, чем описан в типе ТипПлатформы, то возвращается Неопределено.
|
||
//
|
||
Функция ТипПлатформыКлиента() Экспорт
|
||
|
||
СистемнаяИнфо = Новый СистемнаяИнформация;
|
||
Возврат СистемнаяИнфо.ТипПлатформы;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает признак работы в режиме разделения данных по областям
|
||
// (технически это признак условного разделения).
|
||
//
|
||
// Возвращает Ложь, если конфигурация не может работать в режиме разделения данных
|
||
// (не содержит общих реквизитов, предназначенных для разделения данных).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - Истина, если разделение включено,
|
||
// Ложь, если разделение выключено или не поддерживается.
|
||
//
|
||
Функция РазделениеВключено() Экспорт
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиент = ОбщийМодуль("ОбщегоНазначенияКлиент");
|
||
Возврат МодульОбщегоНазначенияКлиент.РазделениеВключено();
|
||
// Конец Вызов БСП
|
||
КонецЕсли;
|
||
|
||
Возврат Ложь;
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает признак возможности обращения к разделенным данным (которые входят в состав разделителей).
|
||
// Признак относится к сеансу, но может меняться во время работы сеанса, если разделение было включено
|
||
// в самом сеансе, поэтому проверку следует делать непосредственно перед обращением к разделенным данным.
|
||
//
|
||
// Возвращает Истина, если конфигурация не может работать в режиме разделения данных
|
||
// (не содержит общих реквизитов, предназначенных для разделения данных).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево - Истина, если разделение не поддерживается, либо разделение выключено,
|
||
// либо разделение включено и разделители установлены.
|
||
// Ложь, если разделение включено и разделители не установлены.
|
||
//
|
||
Функция ДоступноИспользованиеРазделенныхДанных() Экспорт
|
||
|
||
Если ИспользуетсяБСП() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульОбщегоНазначенияКлиент = ОбщийМодуль("ОбщегоНазначенияКлиент");
|
||
Возврат МодульОбщегоНазначенияКлиент.ДоступноИспользованиеРазделенныхДанных();
|
||
// Конец Вызов БСП
|
||
|
||
КонецЕсли;
|
||
|
||
Возврат Истина;
|
||
|
||
КонецФункции
|
||
|
||
Функция ИмяКомпьютераКлиента() Экспорт
|
||
|
||
#Если Не ВебКлиент Тогда
|
||
Возврат ИмяКомпьютера();
|
||
#Иначе
|
||
Возврат "";
|
||
#КонецЕсли
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область ДоступныеПодсистемы
|
||
|
||
// Возвращает Истина, если используется устройства ввода и эти подсистемы существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяУстройстваВвода() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.УстройстваВвода");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется устройства "Шаблоны магнитных карт" и эти подсистемы существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяШаблоныМагнитныхКарт() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.УстройстваВвода.ШаблоныМагнитныхКарт");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистемы фискальных устройств и эти подсистемы существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяЧекопечатающиеУстройства() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется "Кассовая смена" и эти подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяКассоваяСмена() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.КассоваяСмена");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется "РассылкаЭлектронныхЧеков" и эти подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяРассылкаЭлектронныхЧеков() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.РассылкаЭлектронныхЧеков");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется "ФорматноЛогическийКонтроль" и эти подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяФорматноЛогическийКонтроль() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.ФорматноЛогическийКонтроль");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется "Маркировка" и эти подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяМаркировка() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.Маркировка");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Платежные системы" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяПлатежныеСистемы() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ПлатежныеСистемы");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Дисплеи покупателя" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяДисплеиПокупателя() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ДисплеиПокупателя");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Весовое оборудование" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяВесовоеОборудование() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ВесовоеОборудование");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Терминалы сбора данных" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяТерминалыСбораДанных() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ТерминалыСбораДанных");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Принтеры этикеток" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяПринтерыЭтикеток() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ПринтерыЭтикеток");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Считыватель RFID" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяСчитывательRFID() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.СчитывательRFID");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Офлайн-оборудование" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяОфлайнОборудование() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ОфлайнОборудование");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Печать этикеток и ценников" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяПечатьЭтикетокИЦенников() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПечатьЭтикетокИЦенников");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "Электронные сертификаты НСПК" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяЭлектронныеСертификатыНСПК() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ЭлектронныеСертификаты");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина если существует подсистема СтандартныеПодсистемы.ОценкаПроизводительности
|
||
// и можно выполнять оценку производительности
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево
|
||
Функция ИспользуетсяОценкаПроизводительности() Экспорт
|
||
|
||
// Вызов БСП
|
||
Возврат ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности");
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина если существует подсистема СтандартныеПодсистемы.БазоваяФункциональность
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево
|
||
Функция ИспользуетсяБазоваяФункциональность() Экспорт
|
||
|
||
// Вызов БСП
|
||
Возврат ПодсистемаСуществует("СтандартныеПодсистемы.БазоваяФункциональность");
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина если существует подсистема ПоддержкаОборудования.СообщенияВСлужбуТехническойПоддержки
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево
|
||
Функция ИспользуетсяСообщенияВСлужбуТехническойПоддержки() Экспорт
|
||
|
||
// Вызов БИП
|
||
Возврат ПодсистемаСуществует("ИнтернетПоддержкаПользователей.СообщенияВСлужбуТехническойПоддержки")
|
||
И ПодсистемаСуществует("ПоддержкаОборудования.СообщенияВСлужбуТехническойПоддержки");
|
||
// Конец Вызов БСП
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "СертификатыНУЦМинцифры" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяСертификатыНУЦМинцифры() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ЭлектронныеСертификаты.СертификатыНУЦМинцифры");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "РаспределеннаяФискализация" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяРаспределеннаяФискализация() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.РаспределеннаяФискализация");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется "АвтономнаяККТ" и эти подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяАвтономнаяККТ() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ЧекопечатающиеУстройства.АвтономнаяККТ");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "НастройкиПрограммы" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяНастройкиПрограммыБПО() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.НастройкиПрограммы");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "УстройствоРаспознавания" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяУстройствоРаспознавания() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.УстройствоРаспознавания");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "ОблачныеККТ" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуютсяОблачныеККТ() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.ОблачныеККТ");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "ЛогированиеОборудования" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяПодсистемаЛогирования() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ЛогированиеОборудования");
|
||
|
||
КонецФункции
|
||
|
||
// Возвращает Истина, если используется подсистема "НесертифицированноеОборудование" и эта подсистема существует в конфигурации.
|
||
// Предназначена для реализации вызова необязательной подсистемы (условного вызова).
|
||
//
|
||
// Возвращаемое значение:
|
||
// Булево.
|
||
//
|
||
Функция ИспользуетсяНесертифицированноеОборудование() Экспорт
|
||
|
||
Возврат ПодсистемаСуществует("ПоддержкаОборудования.ПодключаемоеОборудование.НесертифицированноеОборудование");
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
#Область ОценкаПроизводительности
|
||
|
||
// Начинает замер времени если используется подсистема Оценка производительности, если передано значение ПользовательскоеОповещение,
|
||
// тогда оно будет подменено оповещением завершения замера, а затем будет вызвано ПользовательскоеОповещение.
|
||
//
|
||
// Параметры:
|
||
// КлючеваяОперация - Строка - имя ключевой операции
|
||
// ПользовательскоеОповещение - ОписаниеОповещения - оповещение которое будет подменено
|
||
// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки.
|
||
// АвтоЗавершение - Булево - Истина - признак автоматического завершения замера.
|
||
//
|
||
// Возвращаемое значение:
|
||
// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
|
||
//
|
||
Функция ЗамерВремениБПО(КлючеваяОперация, ПользовательскоеОповещение = Неопределено, ФиксироватьСОшибкой = Ложь, АвтоЗавершение = Ложь) Экспорт
|
||
|
||
УИДЗамера = Неопределено;
|
||
#Если Не МобильноеПриложениеКлиент Тогда
|
||
Если ИспользуетсяОценкаПроизводительности() Тогда
|
||
|
||
// Вызов БСП
|
||
МодульОценкаПроизводительностиКлиент = ОбщийМодуль("ОценкаПроизводительностиКлиент");
|
||
УИДЗамера = МодульОценкаПроизводительностиКлиент.ЗамерВремени(КлючеваяОперация, ФиксироватьСОшибкой, АвтоЗавершение);
|
||
// Конец Вызов БСП
|
||
|
||
КонтекстЗамера = Новый Структура();
|
||
КонтекстЗамера.Вставить("УИДЗамера", УИДЗамера);
|
||
КонтекстЗамера.Вставить("ПользовательскоеОповещение", ПользовательскоеОповещение);
|
||
КонтекстЗамера.Вставить("МодульОценкаПроизводительностиКлиент", МодульОценкаПроизводительностиКлиент);
|
||
// Подменить пользовательское оповещение
|
||
ПользовательскоеОповещение = Новый ОписаниеОповещения("ЗамерВремениБПО_ЗавершениеЗамера", ЭтотОбъект, КонтекстЗамера);
|
||
КонецЕсли;
|
||
#КонецЕсли
|
||
|
||
Возврат УИДЗамера;
|
||
|
||
КонецФункции
|
||
|
||
// Начинает замер времени если используется подсистема Оценка производительности.
|
||
//
|
||
// Параметры:
|
||
// КлючеваяОперация - Строка - имя ключевой операции
|
||
// ФиксироватьСОшибкой - Булево - признак автоматической фиксации ошибки.
|
||
// АвтоЗавершение - Булево - Истина - признак автоматического завершения замера.
|
||
//
|
||
// Возвращаемое значение:
|
||
// УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
|
||
//
|
||
Функция НачатьЗамерВремениБПО(КлючеваяОперация, ФиксироватьСОшибкой = Ложь, АвтоЗавершение = Ложь) Экспорт
|
||
|
||
УИДЗамера = Неопределено;
|
||
#Если Не МобильноеПриложениеКлиент Тогда
|
||
Если ИспользуетсяОценкаПроизводительности() Тогда
|
||
// Вызов БСП
|
||
МодульОценкаПроизводительностиКлиент = ОбщийМодуль("ОценкаПроизводительностиКлиент");
|
||
УИДЗамера = МодульОценкаПроизводительностиКлиент.ЗамерВремени(КлючеваяОперация, ФиксироватьСОшибкой, АвтоЗавершение);
|
||
// Конец Вызов БСП
|
||
КонецЕсли;
|
||
#КонецЕсли
|
||
|
||
Возврат УИДЗамера;
|
||
|
||
КонецФункции
|
||
|
||
// Завершает замер времени если используется подсистема Оценка производительности
|
||
//
|
||
// Параметры:
|
||
// УИДЗамера -УникальныйИдентификатор - уникальный идентификатор замера, который позволяет идентифицировать замер.
|
||
// ВыполненСОшибкой - Булево - признак того, что замер не был выполнен до конца.
|
||
//
|
||
Процедура ЗавершитьЗамерВремениБПО(УИДЗамера, ВыполненСОшибкой = Ложь) Экспорт
|
||
|
||
#Если Не МобильноеПриложениеКлиент Тогда
|
||
Если ИспользуетсяОценкаПроизводительности() Тогда
|
||
// Вызов БСП
|
||
МодульОценкаПроизводительностиКлиент = ОбщийМодуль("ОценкаПроизводительностиКлиент");
|
||
МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(УИДЗамера, ВыполненСОшибкой);
|
||
// Конец Вызов БСП
|
||
КонецЕсли;
|
||
#КонецЕсли
|
||
|
||
КонецПроцедуры
|
||
|
||
// Процедура подменяемая в качестве пользовательского оповещения
|
||
//
|
||
// Параметры:
|
||
// Результат - см. МенеджерОборудованияКлиентСервер.ПараметрыВыполненияОперацииНаОборудовании
|
||
// КонтекстЗамера - Структура - контекст оповещения замера:
|
||
// * УИДЗамера - УникальныйИдентификатор
|
||
// * ПользовательскоеОповещение - ОписаниеОповещения
|
||
// * МодульОценкаПроизводительностиКлиент - ОбщийМодуль
|
||
//
|
||
Процедура ЗамерВремениБПО_ЗавершениеЗамера(Результат, КонтекстЗамера) Экспорт
|
||
|
||
#Если Не МобильноеПриложениеКлиент Тогда
|
||
Если ТипЗнч(Результат) = Тип("Структура") И Результат.Свойство("Результат") Тогда
|
||
ВыполненСОшибкой = Не Результат.Результат;
|
||
Иначе
|
||
ВыполненСОшибкой = Ложь;
|
||
КонецЕсли;
|
||
|
||
МодульОценкаПроизводительностиКлиент = КонтекстЗамера.МодульОценкаПроизводительностиКлиент;
|
||
МодульОценкаПроизводительностиКлиент.ЗавершитьЗамерВремени(КонтекстЗамера.УИДЗамера, ВыполненСОшибкой);
|
||
|
||
// Выполнить подмененное оповещение
|
||
Если КонтекстЗамера.ПользовательскоеОповещение<>Неопределено Тогда
|
||
ВыполнитьОбработкуОповещения(КонтекстЗамера.ПользовательскоеОповещение, Результат);
|
||
КонецЕсли;
|
||
#КонецЕсли
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СлужебныеПроцедурыИФункции
|
||
|
||
#Область ОповещениеПользователя
|
||
|
||
// Формирует и выводит сообщение, которое может быть связано с элементом управления формы.
|
||
//
|
||
// Параметры:
|
||
// ТекстСообщенияПользователю - Строка - текст сообщения.
|
||
// КлючДанных - ЛюбаяСсылка - объект или ключ записи информационной базы, к которому это сообщение относится.
|
||
// Поле - Строка - наименование реквизита формы.
|
||
// ПутьКДанным - Строка - путь к данным (путь к реквизиту формы).
|
||
// Отказ - Булево - выходной параметр, всегда устанавливается в значение Истина.
|
||
// @skip-check method-too-many-params
|
||
Процедура СообщитьПользователюБПО(
|
||
Знач ТекстСообщенияПользователю,
|
||
Знач КлючДанных = Неопределено,
|
||
Знач Поле = "",
|
||
Знач ПутьКДанным = "",
|
||
Отказ = Ложь) Экспорт
|
||
|
||
Сообщение = Новый СообщениеПользователю;
|
||
Сообщение.Текст = ТекстСообщенияПользователю;
|
||
Сообщение.Поле = Поле;
|
||
|
||
//@skip-check empty-except-statement
|
||
Попытка
|
||
Если НЕ ПустаяСтрока(ПутьКДанным) Тогда
|
||
Сообщение.ПутьКДанным = ПутьКДанным;
|
||
КонецЕсли;
|
||
Исключение
|
||
|
||
КонецПопытки;
|
||
|
||
Сообщение.Сообщить();
|
||
|
||
Отказ = Истина;
|
||
|
||
КонецПроцедуры
|
||
|
||
#КонецОбласти
|
||
|
||
#Область СкопироватьРекурсивно
|
||
|
||
Функция СкопироватьСтруктуру(СтруктураИсточник, ФиксироватьДанные)
|
||
|
||
СтруктураРезультат = Новый Структура;
|
||
|
||
Для Каждого КлючИЗначение Из СтруктураИсточник Цикл
|
||
СтруктураРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение, ФиксироватьДанные));
|
||
КонецЦикла;
|
||
|
||
Если ФиксироватьДанные = Истина
|
||
Или ФиксироватьДанные = Неопределено
|
||
И ТипЗнч(СтруктураИсточник) = Тип("ФиксированнаяСтруктура") Тогда
|
||
|
||
Возврат Новый ФиксированнаяСтруктура(СтруктураРезультат);
|
||
КонецЕсли;
|
||
|
||
Возврат СтруктураРезультат;
|
||
|
||
КонецФункции
|
||
|
||
Функция СкопироватьСоответствие(СоответствиеИсточник, ФиксироватьДанные)
|
||
|
||
СоответствиеРезультат = Новый Соответствие;
|
||
|
||
Для Каждого КлючИЗначение Из СоответствиеИсточник Цикл
|
||
СоответствиеРезультат.Вставить(КлючИЗначение.Ключ, СкопироватьРекурсивно(КлючИЗначение.Значение, ФиксироватьДанные));
|
||
КонецЦикла;
|
||
|
||
Если ФиксироватьДанные = Истина
|
||
Или ФиксироватьДанные = Неопределено
|
||
И ТипЗнч(СоответствиеИсточник) = Тип("ФиксированноеСоответствие") Тогда
|
||
Возврат Новый ФиксированноеСоответствие(СоответствиеРезультат);
|
||
КонецЕсли;
|
||
|
||
Возврат СоответствиеРезультат;
|
||
|
||
КонецФункции
|
||
|
||
Функция СкопироватьМассив(МассивИсточник, ФиксироватьДанные)
|
||
|
||
МассивРезультат = Новый Массив;
|
||
|
||
Для Каждого Элемент Из МассивИсточник Цикл
|
||
МассивРезультат.Добавить(СкопироватьРекурсивно(Элемент, ФиксироватьДанные));
|
||
КонецЦикла;
|
||
|
||
Если ФиксироватьДанные = Истина
|
||
Или ФиксироватьДанные = Неопределено
|
||
И ТипЗнч(МассивИсточник) = Тип("ФиксированныйМассив") Тогда
|
||
Возврат Новый ФиксированныйМассив(МассивРезультат);
|
||
КонецЕсли;
|
||
|
||
Возврат МассивРезультат;
|
||
|
||
КонецФункции
|
||
|
||
Функция СкопироватьСписокЗначений(СписокИсточник, ФиксироватьДанные)
|
||
|
||
СписокРезультат = Новый СписокЗначений;
|
||
|
||
Для Каждого ЭлементСписка Из СписокИсточник Цикл
|
||
СписокРезультат.Добавить(
|
||
СкопироватьРекурсивно(ЭлементСписка.Значение, ФиксироватьДанные),
|
||
ЭлементСписка.Представление,
|
||
ЭлементСписка.Пометка,
|
||
ЭлементСписка.Картинка);
|
||
КонецЦикла;
|
||
|
||
Возврат СписокРезультат;
|
||
|
||
КонецФункции
|
||
|
||
#КонецОбласти
|
||
|
||
|
||
#КонецОбласти
|