NDemia CashMatic выпуск 2.7.2.329 Официальная техническая информация ООО НДемиа Этот документ содержит список изменений программного продукта по сравнению с предыдущими опубликованными версиями. ООО НДемиа / NDemia Ltd © 2006..2013 SUR0116: Доработка: устранение необходимости настройки запуска программ NDemia CashMatic от имени администратора под Windows Vista и выше. Windows Vista (и выше) поддерживает особый компонент настройки безопасности — Контроль учётных записей пользователей (User Account Control, UAC) - см. http://msdn.microsoft.com/ru-ru/library/aa511445.aspx ; см. http://ru.wikipedia.org/wiki/User_Account_Control ) UAC требует особого повышения прав пользователя (даже администратора) для выполнения некоторых системных действий, критичных с точки зрения безопасности. В этой связи пользователи предыдущих выпусков NDemia CashMatic сталкивались с различными трудностями и дополнительными действиями при установке под Windows Vista или Windows 7: приходилось отключать службу NDemia CashMatic Kiosk (см. SUR0039 от v.2.7.0), настраивать запуск Панели управления NDemia CashMatic от имени администратора, выполнять регистрацию и активацию немедленно после установки и т. п. В NDemia CashMatic v.2.7.2 решены все известные проблемы совместимости с UAC Windows Vista/7, в дальнейшем никаких дополнительных действий не требуется. 1. Обеспечивается запуск от имени администратора (с повышением прав, без каких-либо дополнительных настроек) для следующих программ: Install.CashMatic.exe - программа установки (инсталлятор) NDemia CashMatic; Uninstall.exe - программа удаления (деинсталлятор) NDemia CashMatic; CMControl.exe - Панель управления NDemia CashMatic; CMRegUI.exe - программа регистрации и активации NDemia CashMatic; 2. Создаётся разрешение запускать и останавливать службу NDemia CashMatic Kiosk всем пользователям, что даёт возможность использовать службу из KioskBrowser и дополнительных программ без каких-либо ограничений, дополнительных настроек и экранных предупреждений. 3. Добавляется разрешение всем пользователям на полный доступ к разделу системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic и всех его подразделов – что даёт возможность полноценно использовать все возможности NDemia CashMatic без специальных запусков программ от имени администратора. 4. Настраивается разрешение на создание и изменение файлов в папках данных NDemia CashMatic: %ProgramFiles%\NDemia\CashMatic\html %ProgramFiles%\NDemia\CashMatic\Logs %ProgramFiles%\NDemia\CashMatic\PrintTemplates и во всех вложенных подпапках — что устраняет проблемы с открытием лог-файлов, добавлением и правкой шаблонов печати и HTML-скриптов, и т. п. Информация для пользователей заказных сборок NDemia CashMatic: перечисленные доработки по совместимости с версиями Windows выше XP поддерживаются в NDemia CashMatic, начиная с релиза 2.7.2.323 (от 27.09.2012) SUR0117: Доработка KioskBrowser: отображение заголовка HTML-документа в заголовке окна. В NDemia CashMatic v.2.7.2 в заголовок окна KioskBrowser вставляется заголовок текущего HTML-документа. Следует заметить, что окно KioskBrowser не имеет видимого заголовка, однако заголовок окна отображается в Панели задач Windows, в Диспетчере задач Windows, при переключении окон через клавишную комбинацию Alt-Tab, и т.п. Заголовок окна NDemia CashMatic KioskBrowser формируется аналогично заголовку окна Internet Explorer: показывается содержимое тега , а если он не задан, то полный путь HTML-документа. Заголовок документа может быть изменён через свойство document.title. В предыдущих версиях окно программы всегда имело неизменный заголовок "NDemia CashMatic KioskBrowser". SUR0118: Доработка инсталлятора: расширена и уточнена диагностика системных ошибок при установке NDemia CashMatic. Некоторые пользователи столкнулись с системными ошибками при установке NDemia CashMatic, в частности, при создании ярлыков программы в меню кнопки Пуск под Windows 7. Сущность проблемы установить не удалось, но признано, что диагностические сообщения, которые в этих случаях выдавал на экран инсталлятор, малопонятны и не точны. В NDemia CashMatic v.2.7.2.329 обработка ошибок при установке уточнена и значительно расширена. SUR0119: Изменение порядка визуализации окна при запуске и при завершении KioskBrowser.exe. (дополнительно к SUR0065 от v.2.7.0) При запуске приложения NDemia CashMatic KioskBrowser окно программы становится видимым логически несколько позже, чем в предыдущих версиях. Начальное окно браузера создаётся скрытым, за счёт этого устраняется cмаргивание изображения при первой загрузке стартовой страницы. При завершении NDemia CashMatic KioskBrowser (выходе из программы) окно скрывается логически несколько позже, чем в предыдущих версиях. За счёт этого устраняется проблема, имеющаяся в v.2.7.0 и v.2.7.1: если при выходе из программы выдаётся окно javascript текущего HTML-документа (например, по событию javascript onbeforeunload), то оно отображается при уже скрытом окне основной программы (при этом, если javascript сможет из onbeforeunload через диалог с пользователем предотвратить закрытие окна, то после диалога окно появится заново). Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение NDemia CashMatic v.2.7.0, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable AutoHide и присвоить ему ненулевое значение (см. SUR0216) SUR0120: Новая возможность: NDemia CashMatic препятствует всплытию экранной заставки и переходам в энергосберегающие режимы. Многие пользователи NDemia CashMatic (владельцы и администраторы платёжных терминалов) неоднократно сталкивались с проблемой: для терминала длительный простой (бездействие) — это обычное состояние, и он в любой момент должен быть готов обслужить очередного пользователя-плательщика, поэтому на терминале обязательно нужно отключать экранную заставку и таймеры перехода в энергосберегающие режимы («ждущий», «спящий», «сон», «гибернация» и т.п.) - иначе при длительном простое терминала всё это сработает. С NDemia CashMatic v.2.7.2 делать эти настройки уже не обязательно. Приложение KioskBrowser само удерживает компьютер от перехода в энергосберегающие режимы, а также блокирует экранную заставку. Особенности: 1) под Windows Vista и выше NDemia CashMatic не может блокировать переход в энергосберегающий режим по прямой команде пользователя (администратора) — например, по нажатию соответствующей кнопки (но блокирует переход по длительному бездействию). 2) экранная заставка и команда перехода в энергосберегающий режим блокируются только при активном окне KioskBrowser (если активным станет окно другой программы, то блокирование может не сработать, впрочем, под Windows Vista и выше блокирование экранной заставки по длительному бездействию будет выполняться в любом случае). 3) служба NDemia CashMatic Kiosk постоянно сдедит за оборудованием (в частности за купюроприёмником), поэтому она предотвращает переход в энергсберегающий режим, даже если KioskBrowser не запущен (служба запускается при старте KioskBrowser, но если KioskBrowser после этого закрыть, то служба всё равно продолжает работать). Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore PowerMode и присвоить ему ненулевое значение (см. SUR0216) Противодействие нежелательным переключениям режима электропитания реализовано в NDemia CashMatic v.2.7.2.329. SUR0121: Доработка KioskBrowser: контроль URL-адресов переходов не выполняется для вложенных документов (frame и iframe). В NDemia CashMatic v.2.7.2 сделана доработка: контроль допустимости URL-адресов переходов в особых состояниях терминала выполняется только для главного окна (основного HTML-документа) и не распространяется на вложенные документы (HTML-элементы frame и iframe). Более подробно о контроле URL-адресов переходов см. здесь: http://ndemia.com/CashMatic/u-home/PG/navigation/urls-check.php В предыдущих версиях NDemia CashMatic существовала определённая проблема — когда наступает особое состояние терминала (инкассация или неисправность), то запрет переходов на любые адреса, кроме разрешённых по ситуации, распространяется на все HTML-окна, включая вложенные (HTML-элементы frame и iframe). Иногда это создаёт необоснованные трудности для разработчиков приложений. (Например, экраны инкассации и неисправности точно не могут содержать никаких вложенных фреймов, поскольку KioskBrowser заблокирует их загрузку с других URL-адресов) Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable CheckNavigate MainBrowser и присвоить ему ненулевое значение (см. SUR0216) SUR0122: Доработка KioskBrowser: изменения логгинга навигации — различение основного документа и вложенных документов (фреймов). В NDemia CashMatic v.2.7.2 изменены некоторые сообщения, записываемые в отладочный лог приложения KioskBrowser.exe, касающиеся навигации браузера. Основная проблема предыдущих версий по этой части: неразличимость переходов главного окна/документа и вложенных объектов frame и iframe. 1) в сообщениях «Переход на адрес URL ...» для объектов frame и iframe добавляется префикс «["ИмяФрейма":]», что улучшает разборчивость и информативность лога; 2) при отмене перехода сообщение в логе "Навигация отменена" заменено на "По текущему состоянию терминала переход отменяется"; 3) Сообщение "Документ загружен (URL: …)" для главного документа заменено на "Основной документ загружен (URL: …)"; 4) Сообщение "Документ загружен (URL: …)" для документов в окнах frame/iframe заменено на "Вложенный документ загружен (URL: …)". Совместимость: указанные доработки выпущены в составе релиза NDemia CashMatic v.2.7.2.329. SUR0123: Доработка логгинга навигации в приложении NDemia CashMatic KioskBrowser — подробности автоматических переходов. В NDemia CashMatic v.2.7.2 существенно доработан логгинг автоматической (по инициативе приложения) веб-навигации - в отладочный лог приложения KioskBrowser.exe (лог-файлы, которые записываются в папке “%ProgramFiles%\NDemia\CashMatic\Logs” с именами вида DebugLog(YYYY-MM-DD).txt) записываются следующие новые сообщения: 1) При попытке перейти на стартовый экран: «Перейти на стартовый экран: "..."» 2) При неудаче перехода на стартовый экран: «Не удалось перейти на стартовый экран (ошибка 0x...)» 3) При попытке перейти на экран неисправности: «Перейти на стартовый экран: "..."» 4) При неудаче перехода на экран неисправности: «Не удалось перейти на экран неисправности (ошибка 0x...)» 5) Если переход на экран неисправности отменён по другим условиям (например, отложенный отказ — в текущем платёжном сеансе приняты деньги): «Переход на экран неисправности игнорируется по текущему состоянию терминала» 6) При попытке перейти на любой URL-адрес: «Перейти на адрес URL: "..." (флаги: 0x0)» 7) При неудаче перехода на любой URL-адрес: «Ошибка 0x... при переходе на адрес URL "..." (флаги: 0x0)» Пример 1 Последовательность записей в лог-файле при переходе на стартовый экран теперь выглядит приблизительно так: Перейти на стартовый экран: "start" Перейти на адрес URL: "file:///C:/Program Files/NDemia/CashMatic/html/start.cmht" (флаги: 0x0) Переход на адрес URL: "C:\Program Files\NDemia\CashMatic\html\start.cmht" Статус браузера: "Ожидание file:///C:/Program%20Files/NDemia/CashMatic/html/start.cmht..." Заголовок текущего документа: "start.cmht" Статус браузера: "Ожидание file:///C:/Program%20Files/NDemia/CashMatic/html/start.cmht..." Статус браузера: "Загрузка изображения file:///C:/Program%20Files/NDemia/CashMatic/html/img/ndemia-long-rainbow.jpg..." Статус браузера: "Готово" Заголовок текущего документа: "Входная страница демонстрационного интерфейса приёма платежей" Основной документ загружен (URL: "C:\Program Files\NDemia\CashMatic\html\start.cmht") Пример 2 Последовательность записей в лог-файле при ошибке перехода на экран неисправности теперь выглядит приблизительно так: Перейти на экран неисправности: "failure" Перейти на адрес URL: "file:///C:/Program Files/NDemia/CashMatic/html/failure.html" (флаги: 0x0) Ошибка 0x800700AA при переходе на адрес URL "file:///C:/Program Files/NDemia/CashMatic/html/failure.html" (флаги: 0x0) Не удалось перейти на экран неисправности (ошибка 0x800700aa) Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0124: Доработка пользовательского интерфейса выполнения тестов купюроприёмника и принтера в Панели управления NDemia CashMatic. Сам пользовательского интерфейса выполнения тестов остался прежним (как в предыдущих версиях) — те же кнопки, те же окна и те же сообщения. Улучшено блокирование окна Панели управления и кнопки «Тест» во время теста, улучшено отображение выполнения теста — кнопка «Тест» меняет вид, быстрее (с меньшими задержками) отображаются строки в окне результатов теста купюроприёмника. Указанные доработки сделаны в NDemia CashMatic v.2.7.2.329. SUR0125: Доработка NDemia CashMatic KioskBrowser: исключён сброс платёжного сеанса при закрытии окна приложения. В приложении NDemia CashMatic v.2.7.2 при закрытии окна приложения KioskBrowser не делается сброс текущего платёжного сеанса (исключён автоматический вызов CashMatic.Session.Reset(), который делался в предыдущих версиях на самом первом шаге обработки закрытия окна). Благодаря этому прикладные скрипты и компоненты расширения (плагины) до самого последнего момента своей работы имеют доступ к переменным последнего платёжного сеанса (доступным через CashMatic.Session.GetProp()). Ранее (в предыдущих версиях) не было возможности программно связать с прерываемым платёжным сеансом код обработки отмены приёма купюр (OnCancel), обработки закрытия окна (OnGuiExit) и т.п. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить сброс платёжного сеанса при закрытии окна KioskBrowser, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Session Reset on Exit и присвоить ему ненулевое значение (см. SUR0216) SUR0126: Доработка документации (Руководство прикладного программиста): гарантируется, что OnGuiExit – последний вызов перед завершением KioskBrowser. В разделе «Интерфейс ICashMaticTerminalExtender» см. http://ndemia.com/CashMatic/u-home/PG/terminal/interfaces/ICashMaticTerminalExtender.php в описании метода ICashMaticTerminalExtender::OnGuiExit() добавлено: "Гарантируется, что это последний вызов компонента расширения перед завершением работы (точнее: гарантируется, что после завершения OnGuiExit всех установленных компонентов расширения работа приложения будет завершена без каких-либо дополнительных вызовов прикладного кода)." SUR0127: Изменение KioskBrowser: не допускается включение купюроприёмника во время закрытия окна приложения. Обнаружено, что существует возможность из кода компонента расширения (плагина) включить приём (или проверку) купюр при закрытии окна приложения KioskBrowser (например, из ICashMaticTerminalExtender::OnGuiExit), причём в определённых случаях купюроприёмник может остаться в действующем положении даже после завершения процесса KioskBrowser.exe. В NDemia CashMatic v.2.7.2 при попытке во время закрытия окна включить купюроприёмник из прикладного скрипта или компонента расширения возвращается ошибка с кодом 1 (S_FALSE) Совместимость: указанная доработка сделана в релизе 2.7.2.329. SUR0128: Новая возможность: подстановка переменных окружения в именах и путях лог-файлов. В NDemia CashMatic v.2.7.2 реализована подстановка переменных окружения ("set", environment variables) в именах и путях лог-файлов программного продукта, настраиваемых в системном реестре Windows. Совместимость: указанная доработка выпущена в релизе 2.7.2.321 SUR0129: Новое средство: автоматическая запись лог-файлов программы регистрации программного продукта и активации лицензионного ключа. В NDemia CashMatic v.2.7.2 лог-файлы программы регистрации и активации (CMRegUI) автоматически сохраняются в пути «Logs\CMRegUI» (относительно папки программного продукта). В лог-файлы CMRegUI добавлена нумерация строк (начинается заново при каждом запуске программы). Вообще говоря, возможность записать лог (журнал) из окна программы существовала и ранее, но для этого требуется команда пользователя, кроме того, в конце работы окно программы автоматически закрывается (без предупреждения), поэтому пользователь зачастую не имеет возможности записать результат выполнения регистрации программного продукта или активации лицензионного ключа. Совместимость: указанная доработка выпущена в релизе 2.7.2.321 SUR0130: Доработка KioskBrowser.exe: в отладочный лог приложения записывается нумерация строк, время указывается с разрешением до миллисекунд. В NDemia CashMatic v.2.7.2 доработан отладочный лог приложения KioskBrowser.exe (лог-файлы, которые записываются в папке “%ProgramFiles%\NDemia\CashMatic\Logs” с именами вида DebugLog(YYYY-MM-DD).txt) – все строки записываются с нумерацией (нумерация от запуска программы), время в каждой строке указывается с миллисекундами (что позволяет оценить интервалы между достаточно быстро происходящими событиями). Если по какой-либо причине нужно отключить эти доработки, то нужно в разделе системного реестра Windows HKEY_CURRENT_USER\Software\NDemia\CashMatic\Debug создать параметр REG_DWORD с именем LogOptions (по умолчанию не создан) Значение параметра — битовая комбинация: 1 - включает запись миллисекунд; 2 - включает запись номеров строк; Если параметр не создан, то все биты считаются установленными. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0131: Доработка логгинга KioskBrowser: в отладочный лог приложения записывается статус браузера. В NDemia CashMatic v.2.7.2 сделана следующая доработка: в отладочный лог приложения KioskBrowser.exe (лог-файлы, которые записываются в папке “%ProgramFiles%\NDemia\CashMatic\Logs” с именами вида DebugLog(YYYY-MM-DD).txt) записываются строки статуса браузера (текст, который обычно Internet Explorer отображает при загрузке HTML-документов в строке статуса). В лог записываются сообщения вида Статус браузера: "текст" Повторяющиеся сообщения пропускаются. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0132: Доработка KioskBrowser: логгинг неправильного завершения сеанса купюроприёмника (удаления объекта CashMaticCashSession в активном состоянии). В приложении NDemia CashMatic KioskBrowser добавлены новые сообщения для отладочного лога приложения (“%ProgramFiles%\NDemia\CashMatic\Logs\DebugLog*.txt)"). Если при удалении объекта CashMaticCashSession (например, при закрытии HTML-страницы, на которой он создан) обнаруживается, что объект удалён в активном состоянии (см. свойство Active объекта CashMaticCashSession), то в лог записывается сообщение: "Внимание! Объект CashMaticCashSession удалён в активном состоянии. Это неправильно и может привести к потере принятых купюр." Затем приложение KioskBrowser попытается закрыть приём купюр, и если при этом будет принята ещё одна купюра, то в лог записываются сообщения: "Принята купюра в закрывающемся сеансе купюроприёмника. Информация о купюре будет утеряна." "Внимание, ошибка! Приём купюр завершён неверно" Совместимость: указанные сообщения поддерживаются в релизе 2.7.2.329. SUR0133: Новая возможность: поддержка Юникода в именах шаблонов печати. (дополнительно к SUR0053 от v.2.7.0) (дополнительно к SUR0090 от v.2.7.1) В NDemia CashMatic v.2.7.2 поддерживается Юникод в именах шаблонов печати (см. свойство Template объекта CashMatic.Print.Receipt). В предыдущих версиях делалось внутреннее преобразование имён к 8-битному представлению, что могло приводить к искажениям имён файлов и ошибкам. Совместимость: указанная доработка выпущена в релизе 2.7.2.315 SUR0134: Изменение примера "Демонстрационный интерфейс приёма платежей": доработка getcash.html – проверка успешности включения или выключения приёма купюр (функция EnableCash возвращает результат). (дополнительно к SUR0115 от v.2.7.1) Разработчики прикладных скриптов сталкиваются со следующей проблемой: при выключении приёма купюр приём может снова включиться из обработчика события сеанса купюроприёмника. Более подробно: когда прикладной скрипт выключает приём купюр, например, так: CashSession.Active = false; , вызываются обработчики событий сеанса купюроприёмника, как минимум, вызывается OnCancel. Если в последний момент перед отключением купюроприёмник примет купюру, то вызывается OnAccept (или OnReject, или OnDetect). Любой из этих обработчиков может продлить сеанс купюроприёмника так: CashSession.Active = true; Наиболее типичный случай - «купюра последней секунды». Допустим, при приёме купюры назначено время ожидания активности пользователя 60 секунд, после чего должен произойти переход либо на стартовый экран (если денег не принято вообще), либо на экран печати чека (если некоторое количество купюр принято ранее). Допустим, пользователь задержался и вставил купюру на 59й секунде. В этом случае во времени накладываются два не-мгновенных процесса — загрузка купюры в купюроприёмник и переход пользовательского интерфейса на другой экран по таймауту. Прикладной скрипт перед переходом на другой экран должен закрыть приём купюр. Механизмы внутренней синхронизации NDemia CashMatic обеспечат, что введённая пользователем купюра будет либо принята в сеансе купюроприёмника, либо возвращена пользователю. Таким образом, может сложиться ситуация, когда купюра примется во время выключения приёма купюр, и будет вызван обработчик события OnAccept, который может продлить приём купюр. Поэтому функция, вызывающая переход на другой экран по таймауту, после выключения приёма купюр должна удостовериться, что приём купюр действительно выключился. В NDemia CashMatic в примере платёжного интерфейса, устанавливаемом в пути %ProgramFiles%\NDemia\CashMatic\HTML , в файле getcash.html показано, как прикладной скрипт после выключения приёма купюр может проверить, действительно ли приём выключился, и при отрицательном результате проверки изменить свои дальнейшие действия. Начиная с версии NDemia CashMatic v.2.7.1 для включения и выключения приёма купюр в getcash.html используется функция EnableCash. В версии v.2.7.2 функция доработана: после переключения режима (CashSession.Active) выполняется проверка, действительно ли режим переключился. Функция возвращает логическое значение, истина при успешной установке нужного режима. Результат EnableCash проверяется в функциях go_back, go_next и OnTimeout, при отрицательном результате отменяются соответствующие переходы пользовательского интерфейса. Вообще говоря, в предыдущих версиях переходы go_back и OnTimeout отменялись, если после выключения приёма купюр увеличилась сумма принятых наличных. Например, может прийти сигнал о возврате купюры пользователю, в виде вызова обработчика OnReject (в getcash.html – функция CashReject), который продлит приём купюр, а сумма принятых денег при этом не увеличится. Таким образом, не-выключение приёма купюр может остаться незамеченным. При закрытии HTML-страницы приём купюр так или иначе выключится — если не из скрипта, то из приложения KioskBrowser, однако в этом случае обработка «купюры последней секунды» в какой-то момент может быть пропущена (с точки зрения пользователя, терминал просто «проглотит» купюру, не засчитав её в платёж). Конечно, вероятность такого сочетания событий очень мала, но тем не менее она существует. Проверка значения CashSession.Active намного более надёжна. Если никакие обработчики не вызваны и CashSession.Active==false, то уже никакие события купюроприёмника не смогут вмешаться. Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0135: Изменение примера "Демонстрационный интерфейс приёма платежей": доработка getcash.html – изменение некоторых точек сброса таймаута неактивности пользователя. В NDemia CashMatic в примере платёжного интерфейса, устанавливаемом в пути %ProgramFiles%\NDemia\CashMatic\HTML , в файле getcash.html изменены некоторые функции javascript, на предмет вызова функции InputEvent (сброса таймаута неактивности пользователя - см. terminal.js): 1. Добавлены вызовы InputEvent при вызове функций go_back и go_next по клику соответствующих кнопок (в функциях добавлен параметр click, передаётся как true при вызовах из событий onclick кнопок), а также при отрицательном результате (при отмене перехода) функции OnTimeout (эти события указывают на активность пользователя или её имитацию); 2. Удалены вызовы InputEvent при вызовах функций CashFailure и CashCancel (эти события в общем плане не указывают на активность пользователя); 3. В функции go_next стирается значение переменной платёжного сеанса (CashMatic.Session) “CashTimeout” при переходе по клику и при отмене перехода из-за вероятного приёма купюры при выключении приёма купюр (значение “CashTimeout” передаётся на страницу finish.html для принятия решения, нужно ли ждать реакции пользователя на завершающем экране). Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0136: Изменение примера "Демонстрационный интерфейс приёма платежей": доработка getcash.html – использование параметров обработчика события OnAccept. В NDemia CashMatic в примере платёжного интерфейса, устанавливаемом в пути %ProgramFiles%\NDemia\CashMatic\HTML , в файле getcash.html изменена функция CashAccept, которая используется в качестве обработчика события сеанса купюроприёмника OnAccept. Начиная с v.2.7.1, в примере обработчики событий назначаются как объекты function, а не просто как строки javascript-кода (в NDemia CashMatic такая возможность поддерживается, начиная с v.2.6.0). В этом случае функция-обработчик получает все параметры, заявленные в спецификации. Функция CashAccept как обработчик OnAccept получает параметры: CashSession – сеанс купюроприёмника, для которого вызван обработчик (объект CashMaticCashSession); Bill – принятая купюра (объект CashMaticBill, может использоваться как число (в денежном выражении)). Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0137: Обновление изображений банкнот Российской Федерации. В NDemia CashMatic v.2.7.2 в примере платёжного интерфейса обновлены изображения банкнот Российской Федерации (обеспечено сооответствие изображений купюр последним выпущенным на момент публикации образцам). Все изображения получены с официального сайта Центрального банка Российской федерации ( http://cbr.ru/bank-notes_coins/ ) Совместимость: указанная доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0138: Новая функциональность: подавление реакции на ошибку 0x800A1393 при обработке событий сеанса купюроприёмника. В NDemia CashMatic v.2.7.2 добавлена возможность подавить реакцию программы на ошибку с кодом 0x800A1393, если она возникает при вызове обработчика события сеанса купюроприёмника. Ошибка 0x800A1393 означает, что код javascript удалён к моменту его вызова: "Не удаётся выполнить программу из освобождённого сценария" (в других источниках: «Невозможно выполнить код удалённого сценария»). Наиболее частая причина: установлен обработчик события купюроприёмника на странице приёма наличных, затем произошёл переход на другую страницу (но сеанс купюроприёмника не был закрыт), затем произошло событие, требующее обработки — таким образом, к моменту вызова обработчик уже удалён (освобождён). Такая ошибка может быть проигнорирована, поскольку невозможность вызвать обработчик не является проблемой (обработчик может быть вообще не назначен). Для этого нужно в разделе реестра HKEY_CURRENT_USER\Software\NDemia\CashMatic\Debug создать ненулевое значение “Ignore Freed Script Errors”. Однако следует иметь в виду, что код 0x800A1393 в любом случае всё же указывает на некорректность программы — если обработчик был назначен и не был вызван, значит, некоторая обработка предполагалась, но не выполнена. Например, если обработчик отвечал за приём купюры, то ошибка 0x800A1393 может означать, что купюра была принята (доставлена в стекер купюроприёмника), но не была зачислена ни в какой платёж — т. е. внесённые пользователем-плательщиком деньги фактически потерялись. Совместимость: указаннная доработка NDemia CashMatic выпущена в релизе 2.7.2.329. SUR0139: Доработка KioskBrowser: запрет недопустимых изменений значения свойства Active объекта CashMaticCashSession. В NDemia CashMatic KioskBrowser запрещено изменение свойства Active объекта CashMaticCashSession во время выполнения обработчика события OnActive. Это не нововведение — такое изменение было неявно запрещено и в предыдущих версиях. Если это произойдёт, то в предыдущих версиях изменение игнорируется (в отдельных случаях может привести к неправильному управлению купюроприёмником и даже к «проглатыванию» купюр без обработки), в v.2.7.2 – это изменение вызывает программную ошибку с текстом сообщения «Текущий сеанс купюроприёмника невозможно прервать в данный момент» или «Сеанс купюроприёмника невозможно активировать в данный момент» Если используется прямое присваивание свойства ActiveSession объекта CashMaticCash (CashMatic.Cash), то это нужно интерпретировать как изменение свойства Active и в текущем (если не null), и в новом (если не null) сеансах купюроприёмника, если какое-либо изменение окажется запрещённым, то в версии v.2.7.2 это вызовет программную ошибку, никакие изменения не произойдут. Соответствующие доработки выпущены в релизе NDemia CashMatic v.2.7.2.329. Ограничения возможности изменений значения свойства Active объекта CashMaticCashSession документированы в Руководстве прикладного программиста NDemia CashMatic, в разделах: Объект CashMaticCashSession, свойства и методы Объект CashMaticCash (CashMatic.Cash), свойства и методы Если по какой-либо причине требуется отменить вбрасывание ошибки в NDemia CashMatic KioskBrowser при недопустимых изменениях свойства Active объекта CashMaticCashSession, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore CashSession ActiveLock и присвоить ему ненулевое значение (см. SUR0216). В режиме совместимости (при заданном параметре “Ignore CashSession ActiveLock”) также устранён ряд проблем, вызываемых в предыдущих версиях рекурсивными (вложенными) изменениями свойства Active, однако подобные изменения всё равно не рекомендуются, поскольку они необоснованно запутывают логику обработки событий купюроприёмника. SUR0140: Доработка KioskBrowser: устранение возможности программно скрыть отказ купюроприёмника из прикладного скрипта или компонента расширения. В NDemia CashMatic обнаружена следующая особенность поведения приложения KioskBrowser: прикладной код (javascript, или компонент расширения (плагин)) имеет возможность программно принудительно сбросить признак отказа купюроприёмника, через вызов CashMatic.Terminal.SetFailState("BillValidator", false); Это не рекомендуется, но возможно (допускается), см. http://ndemia.com/CashMatic/u-home/PG/failures/names.php В этом случае прикладной разработчик может столкнуться с некоторой проблемой: после принудительного сброса отказа программа не имеет информации о дальнейшем состоянии купюроприёмника (точнее, наличии этого отказа). Для восстановления соответствия признака отказа реальному положению дел программа должна отказ принудительно установить — тогда мониторинг состояния купюроприёмника перейдёт в режим ожидания восстановления, и, если реального отказа нет, то мониторинг сразу сработает. На пользовательском интерфейсе это отразится переходом на экран неисправности, и, если отказа нет, сразу же произойдёт переход на стартовый экран. В NDemia CashMatic v.2.7.2 это поведение изменено. В случае сброса отказа "BillValidator" мониторинг состояния купюроприёмника переходит в режим ожидания отказа, и, если реальный отказ имеет место, то почти сразу признак отказа восстановится, и произойдёт переход на экран неисправности терминала. Другими словами, прикладной код теперь не имеет возможности программно скрыть отказ купюроприёмника. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable CashFailureMonitor AutoRestart и присвоить ему ненулевое значение (см. SUR0216) SUR0141: Доработка: устранена 1-секундная задержка при запуске приложения NDemia CashMatic KioskBrowser с использованием службы NDemia CashMatic Kiosk. Это изменение связано с доработкой внутренних функций NDemia CashMatic. Ранее при запуске службы из KioskBrowser вводилась искусственная пауза в 1 секунду, чтобы служба успела запуститься и инициализироваться. В v.2.7.2.329 уточнена синхронизация запуска службы, дополнительная задержка не требуется. SUR0142: Доработка инсталлятора: при ответе на вопрос о замене файлов данных нажатие кнопки "Отмена" требует дополнительного подтверждения для отмены/прерывания установки программы. В NDemia CashMatic v.2.7.2 сделана некоторая доработка инсталлятора (программы установки программного продукта). Если установка выполняется повторно ("поверх" уже существующей установки), и инсталлятор обнаружил, что на диске существуют файлы данных, которые отличаются от устанавливаемых, то задаётся вопрос о порядке обновления файлов данных (см. http://www.ndemia.com/CashMatic/u-home/UG/install/reinstall.php ) При ответе "Отмена" в предыдущих версиях установка немедленно прерывалась. В NDemia CashMatic v.2.7.2 в этом случае выдаётся запрос "Установка программы не закончена. Прервать установку?", на который пользователь должен ответить "Да" или "Нет" (но нет варианта "Отмена"/Esc). Таким образом, снижается вероятность случайного прерывания/отмены установки из-за непродуманного ответа пользователя. Совместимость: указанная доработка выпущена в релизе 2.7.2.321 SUR0143: Новая возможность: ярлык программы удаления добавлен в меню NDemia CashMatic в Проводнике Windows (в меню кнопки «Пуск»). Начиная с выпуска NDemia CashMatic v.2.7.2.329, программу удаления NDemia CashMatic можно вызвать из меню NDemia CashMatic в Проводнике Windows (в меню кнопки «Пуск»). SUR0144: Изменение: команда “cmkiosk /stop” не выдаёт сообщение об ошибке, если служба NDemia CashMatic Kiosk не запущена. Это изменение связано с доработкой внутренних функций NDemia CashMatic. Начиная с v.2.7.2.329, не считается ошибкой попытка остановить службу, которая уже остановлена. SUR0145: Доработка: Панель управления NDemia CashMatic регистрируется для поиска в панели управления Windows Vista (и выше). Панель управления NDemia CashMatic v.2.7.2 при установке программного продукта регистрируется как элемент панели управления Windows, который может быть найден через «Поиск в панели управления» (поддерживается в Windows Vista/7). Панель управления NDemia CashMatic может быть найдена по большому списку ассоциативных ключевых слов: «Терминал», «Купюроприёмник», «Принтер», «Печать», «Фискальный регистратор» и т.п. Информация для пользователей заказных сборок NDemia CashMatic: поиск Панели управления NDemia CashMatic в панели управления Windows поддерживается в NDemia CashMatic, начиная с релиза v.2.7.2.329 SUR0146: Доработка службы CMKiosk: запуск прикладного процесса режима пользователя (CMKiosk.umap) Для выполнения некоторых функций службе NDemia CashMatic Kiosk под Windows Vista и Windows 7 требуется возможность вызывать некоторые функции Windows в режиме пользователя, а не системы. Для этого разработан специальный модуль: CMkiosk.umap (UMAP – User Mode Application Process). Он загружается при необходимости, запускается как отдельный процесс (его видно в Диспетчере задач Windows, т.е. на самом деле это EXE), завершает работу при завершении службы CMKiosk.exe. Следует рассматривать процесс CMKiosk.umap как часть службы CMKiosk.exe, не следует его принудительно завершать или препятствовать его запуску. Совместимость: файл CMKiosk.umap добавлен в дистрибутив NDemia CashMatic v.2.7.2.329. SUR0147: Устранение проблемы: меню значка NDemia CashMatic в панели задач Windows не закрывается при щелчках мыши в другие окна. Меню значка NDemia CashMatic в панели задач Windows в версиях ранее v.2.7.2 не закрывается, если щёлкнуть мышью какое-либо другое окно (что не соответствует привычному опыту пользователей Windows). Данная проблема устранена в релизе v.2.7.2.329. SUR0148: Устранение проблемы: при работе KioskBrowser без службы NDemia CashMatic Kiosk в случае ошибки внутреннего сервиса (купюроприёмника или принтера) приложение KioskBrowser немедленно завершается, без ожидания завершения внутренних сервисов. В NDemia CashMatic обнаружена проблема: если приложение KioskBrowser.exe работает без службы NDemia CashMatic Kiosk (через внутренние драйверы), то при внутренней ошибке сервиса купюроприёмника (BillValidatorService, BVS) или принтера (PrinterService, PS) приложение KioskBrowser немедленно закрывается (прерывается процесс KioskBrowser.exe без каких-либо завершающих действий: почти ничего не записывается в логи, не удаляются временные файлы, и т.п.) Проблема частично устранена в релизе NDemia CashMatic v.2.7.2.329 — при ошибке внутреннего сервиса приложение всё равно немедленно закрывается, но с правильной обработкой закрытия: корректно закрываются внутренние сервисы, удаляются временные файлы, делаются соответствующие записи в логах. В дальнейшем предполагается заменить закрытие приложения на возбуждение отказов BillValidator/Printer. SUR0149: Устранение проблемы: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic пользовательский интерфейс NDemia CashMatic KioskBrowser переходит на экран отказа. В NDemia CashMatic обнаружена проблема: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic, запущенную одновременно с NDemia CashMatic KioskBrowser, после нажатия кнопок Ok или Применить приложение NDemia CashMatic KioskBrowser внезапно переходит на экран отказа («Терминал временно не работает...»). Далее, если всё настроено правильно, и купюроприёмник подключен и работает, то через несколько секунд приложение переходит на стартовый экран и продолжает нормально работать. При этом в отладочном логе приложения на момент отказа записываются строки «KBRM_BVSTATUS_FAILURE: состояние 00000008» «Возбуждается отказ "BillValidator"» Данная ситуация связана с тем, что при изменении некоторых параметров Панель управления NDemia CashMatic перезапускает службу NDemia CashMatic Kiosk, из-за этого приложение NDemia CashMatic KioskBrowser теряет связь со службой (и, таким образом, с оборудованием, в первую очередь с купюроприёмником), и реагирует на это как на сбой купюроприёмника. Проблема устранена в NDemia CashMatic v.2.7.2: при необходимости перезапустить службу NDemia CashMatic Kiosk Панель управления NDemia CashMatic сначала закрывает приложение NDemia CashMatic KioskBrowser, потом перезапускает службу, и потом снова запускает приложение уже после перезапуска службы. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Restart Order и присвоить ему ненулевое значение (см. SUR0216, см. тж SUR0151, SUR0190, SUR0191, SUR0192, SUR0212) SUR0150: Устранение проблемы: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic кнопки Ok и/или Применить не действуют как ожидается. В NDemia CashMatic обнаружена проблема: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic, запущенную одновременно с NDemia CashMatic KioskBrowser, после нажатия кнопок Ok или Применить приложение NDemia CashMatic KioskBrowser перезапускается, но Панель управления остаётся открытой (при нажатии Ok) и кнопка Применить остаётся действующей. Повторные нажатия Ok и Применить чаще всего приводят к такому же результату (включая перезапуск приложения на каждое нажатие), но кнопки срабатывают, если закрыть явно (вручную, по Alt+F4) приложение NDemia CashMatic KioskBrowser. Данная ситуация связана с тем, что при необходимости перезапустить NDemia CashMatic KioskBrowser с новыми настройками Панель управления ждёт запуска приложения не более 5 секунд. Если по каким-либо причинам приложение не успевает загрузиться за это время, то Панель управления считает результат запуска неудачным, поэтому Панель управления не закрывается, кнопки Ok и Применить не блокируются. При каждом повторном нажатии Панель управления снова пытается перезапустить приложение, и, если запуск не укладывается в 5 секунд, всё повторяется так же. Проблема устранена в NDemia CashMatic v.2.7.2: если Панель управления NDemia CashMatic не дожидается за 5 секунд запуска приложения NDemia CashMatic KioskBrowser, то на экран выдаётся окно с сообщением «Ожидание перезапуска приложения NDemia CashMatic KioskBrowser», которое автоматически закроется, когда приложение перезапустится, либо можно прервать ожидание кнопкой Отмена в этом сообщении (на что будет предложено попытаться перезапустить приложение ещё раз). В любом случае логика Панели управления игнорирует результат запуска, поскольку пользователь был полностью информирован. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0151: Устранение проблемы: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic происходит перезапуск приложения NDemia CashMatic KioskBrowser, после чего перестают работать купюроприёмник и/или принтер. В NDemia CashMatic обнаружена проблема: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic, запущенную одновременно с NDemia CashMatic KioskBrowser, после нажатия кнопок Ok или Применить приложение NDemia CashMatic KioskBrowser перезапускается, и после этого совсем перестаёт работать купюроприёмник, а также принтер (если подключен через COM-порт). При этом вообще ничего не записывается в логах оборудования (BVS – купюроприёмника и PS — принтера). Такое положение сохраняется и при последующих перезапусках KioskBrowser, до перезагрузки компьютера, или до выполнения теста купюроприёмника или принтера из Панели управления NDemia CashMatic, или до перезапуска вручную службы NDemia CashMatic Kiosk. Установлено, что такая ситуация может возникнуть в следующих обстоятельствах: Панель управления NDemia CashMatic работает одновременно с приложением NDemia CashMatic KioskBrowser, при этом на вкладке Интерфейс включили отключенную до того опцию «Использовать службу NDemia CashMatic Kiosk». Панель управления считает при этом необходимым запустить службу и перезапустить приложение, и делает это именно в таком порядке. В результате служба запускается раньше, чем завершается приложение. Приложение до этого работало без службы, через свои внутренние драйверы, которые до перезапуска приложения продолжают занимать (держать открытыми) порты и логи оборудования. В итоге служба запускается при занятых портах, и не может записать это в логи. Если после этого перезапускать только приложение (без перезапуска службы и без перезагрузки компьютера), то служба остаётся в том же положении (и не перезапускается). Проблема устранена в NDemia CashMatic v.2.7.2: в подобных ситуациях Панель управления NDemia CashMatic сначала закрывает приложение NDemia CashMatic KioskBrowser, потом запускает службу, и потом снова запускает приложение уже после запуска службы. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Restart Order и присвоить ему ненулевое значение (см. SUR0216, см. тж SUR0149, SUR0166, SUR0190, SUR0191, SUR0192, SUR0212) SUR0152: Устранение проблемы: на страницах неисправности и инкассации не работают гиперссылки с URL-протоколом "javascript:". В NDemia CashMatic обнаружена проблема: гиперссылки с URL-протоколом "javascript:", хотя и поддерживаются в KioskBrowser, но не работают на страницах неисправности и инкассации, поскольку приравниваются к адресам переходов, и поэтому блокируются как недопустимые адреса для особых состояний. Более подробно о контроле URL-адресов переходов см. здесь: http://ndemia.com/CashMatic/u-home/PG/navigation/urls-check.php В NDemia CashMatic данная проблема устранена. Адреса с URL-протоколом "javascript:" не считаются переходами и не проверяются на допустимость. В отладочном логе для них не записывается сообщение «Переход на адрес URL ...», вместо этого пишется текст вида: javascript URL: "Исходный Код" На страницах неисправности и инкассации такие адреса не блокируются. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Enable CheckNavigate javascript и присвоить ему ненулевое значение (см. SUR0216) SUR0153: Устранение проблемы: сообщение об ошибке 80004002 при открытии в KioskBrowser файлов PDF и других специальных форматов, отличных от HTML, но поддерживаемых в Internet Explorer. (доработка исправления SUR0075 от v.2.7.0) Обнаружена проблема (проявляется в версиях NDemia CashMatic v.2.6.1, v.2.6.2, v.2.7.0, v.2.7.1): если в KioskBrowser открывается документ формата, отличного от HTML (например, PDF), и это формат, поддерживаемый в Internet Explorer другой (отдельной) программой (например, в случае PDF: Acrobat Reader), то на экран выдаётся сообщение об ошибке со следующим текстом: NDemiaException Component Objects call error, code: 0x80004002 или такое: NDemia CashMatic KioskBrowser, встроенная отладка При выполнении функции CheckScriptErrorHandler произошла ошибка: "Ошибка вызова OLE/COM, код 80004002" В обоих вариантах сообщения записываются в лог-файл приложения. Сообщение выдаётся при любой попытке передать фокус ввода в окно KioskBrowser. Анализ проблемы показал, что ошибка связана с передачей фокуса в окно браузера в положении, когда активный документ не является HTML. Проблема решена в NDemia CashMatic v.2.7.2. Если текущий (активный) документ не является HTML, то фокус в него при открытии не передаётся. Совместимость: указанная доработка выпущена в релизе 2.7.2.317 SUR0154: Устранение проблемы: при сопоставлении адресов переходов с настройками, записанными в системном реестре Windows (failure и collect), иногда неправильно учитывается верхний-нижний регистр букв. В NDemia CashMatic обнаружена следующая проблема: при сопоставлении адресов переходов с настройками, записанными в системном реестре Windows, иногда неправильно учитывается верхний-нижний регистр букв. Речь идёт о разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\URL, параметры failure и collect - см. "Модель навигации" ( http://www.ndemia.com/CashMatic/u-home/PG/navigation ), "Специальные URL" ( http://www.ndemia.com/CashMatic/u-home/PG/navigation/special-urls.php ) Проблема состоит в том, что в некоторых случаях требуется точное соответствие верхнего-нижнего регистра букв в именах и путях существующих файлов Windows (на локальном компьютере или в локальной сети), а иногда допускается несоответствие регистра даже в адресах интернета (и то, и другое - неправильно). Проблема устранена, в именах и путях существующих файлов Windows верхний-нижний регистр букв не учитывается, в адресах интернета - учитывается. Совместимость: указанное исправление выпущено в релизе 2.7.2.323 SUR0155: Устранение проблемы: удаление компонента расширения вызовом RemoveExtender во многих случаях приводит к аварийному завершению программы. В NDemia CashMatic обнаружена проблема: вызовы функций ICashMaticTerminal:: RemoveExtender для удаления компонентов расширения ICashMaticTerminalExtender / ICashMaticTerminalExtender2 и ICashMaticSession:: RemoveExtender для удаления компонентов расширения ICashMaticSessionExtender / ICashMaticSessionExtender2 во многих случаях приводят к аварийному завершению программы KioskBrowser.exe (особенно если используется несколько компонентов расширения одновременно, и удаление происходит во время вызова метода одного из компонентов). В NDemia CashMatic v.2.7.2 полностью пересмотрена реализация установки, перечисления и удаления компонентов расширения, проблема устранена — устанавливать и удалять компоненты расширения можно в любой момент времени, в любом порядке. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0156: Устранение проблемы: в некоторых случаях вызов кода объектной модели CashMatic без видимых причин вбрасывает исключение "Отказано в доступе". В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях (начиная с v.2.6.1) - вызов из javascript кода объектной модели CashMatic иногда без видимых причин вбрасывает исключение "Отказано в доступе". Установлено, что данная ошибка возникает при следующих условиях: в момент вызова кода CashMatic из javascript активным элементом текущего HTML-документа является элемент FRAME/IFRAME, содержащий документ из домена, отличающегося от домена текущего элемента, при этом внутри вызова CashMatic происходит создание или удаление окон (включая скрытые окна), или выполняются другие действия, переключающие фокус ввода. Когда управление возвращается скрипту, Internet Explorer не позволяет CashMatic вернуть фокус "внутрь" фрейма из "чужого" домена. В NDemia CashMatic v.2.7.2 в этой ситуации ошибка подавляется, фокус передаётся элементу FRAME/IFRAME. Совместимость: указанная доработка выпущена в релизе 2.7.2.315 SUR0157: Устранение проблемы: утечки памяти при работе с фискальным регистратором. Обнаружена проблема в NDemia CashMatic версий ранее v.2.7.2: работа с фискальным регистратором (ФР) вызывает небольшую утечку памяти в KioskBrowser.exe при каждом обращении к методам драйвера ФР. При постоянной работе терминала эти утечки накапливаются, в результате может возникать огромный перерасход памяти процесса KioskBrowser.exe. Соответствующее исправление сделано в NDemia CashMatic v.2.7.2 (утечка памяти устранена). Совместимость: указанная доработка выпущена в релизе 2.7.2.317 SUR0158: Устранение проблемы: утечки памяти при явном ограничении диапазона принимаемых купюр (объект CashMaticCashSession). Обнаружена проблема в NDemia CashMatic версий ранее v.2.7.2: при использовании объекта CashMaticCashSession ( http://www.ndemia.com/CashMatic/u-home/PG/bv/SessionObjProps.php ) возникают небольшие утечки памяти при явном ограничении диапазона принимаемых купюр (запись свойств MinBill/MaxBill, вызов метода SetBillRange). При постоянной работе терминала эти утечки накапливаются, в результате может возникать огромный перерасход памяти процесса KioskBrowser.exe. Соответствующее исправление сделано в NDemia CashMatic v.2.7.2 (утечка памяти устранена). Совместимость: указанная доработка выпущена в релизе 2.7.2.317 SUR0159: Устранение проблемы: утечки памяти при ошибках в обработчиках событий сеанса купюроприёмника. Обнаружена проблема в NDemia CashMatic версий ранее v.2.7.2: если обработчики событий купюроприёмника задаются javascript-объектами или javascript-функциями (или другими способами, предусматривающими вызов через интерфейс IDispatch), то при ошибке (исключении, exception) в обработчике возможна небольшая утечка памяти (не освобождается память, выделенная под сообщение об ошибке). Соответствующее исправление сделано в NDemia CashMatic v.2.7.2.329 (утечка памяти устранена). SUR0160: Устранение проблемы: утечки памяти при ошибках в обработчиках ответа при асинхронных вызовах CashMaticCash.GetDeviceIdentification и CashMaticCash.GetDeviceProtocol. Обнаружена проблема в NDemia CashMatic версий ранее v.2.7.2: если делается вызов CashMaticCash.GetDeviceIdentification и CashMaticCash.GetDeviceProtocol, предполагающий отложенный (асинхронный) ответ через установку обработчика, реализующего интерфейс ICashMaticResultHandler, и если обработчик реализован как javascript-объект (или другим способом, предусматривающим вызов через интерфейс IDispatch),.и если внутри обработчика происходит ошибка (исключение, exception), то возможна небольшая утечка памяти (не освобождается память, выделенная под сообщение об ошибке). Соответствующее исправление сделано в NDemia CashMatic v.2.7.2.329 (утечка памяти устранена). SUR0161: Устранение проблемы: иногда при запуске второго экземпляра приложения NDemia CashMatic KioskBrowser или Панели управления NDemia CashMatic процесс второго эксземпляра зависает. В NDemia CashMatic обнаружена проблема: иногда при запуске второго экземпляра (при уже работающем первом) приложения NDemia CashMatic KioskBrowser или Панели управления NDemia CashMatic процесс второго эксземпляра (KioskBrowser.exe или CMControl.exe) зависает. Причём далее зависают уже все подряд попытки запустить программу, даже если закрыть самый первый экземпляр — до тех пор, пока зависший процесс (или все зависшие процессы) не будет принудительно завершён через Диспетчер задач Windows. Проблема проявляется при возникновении некоторой ситуации в системе (Windows), которая создаётся, возможно, сторонним программным обеспечением (некорректно работающим или зависшим). В NDemia CashMatic v.2.7.2.329 сделаны соответствующие доработки, данная проблема устранена. SUR0162: Устранение проблемы: при запуске второго экземпляра приложения NDemia CashMatic KioskBrowser или Панели управления NDemia CashMatic окно первого эземпляра активизируется, но не получает ввод с клавиатуры. В NDemia CashMatic обнаружена проблема: при запуске второго экземпляра (при уже работающем первом) приложения NDemia CashMatic KioskBrowser или Панели управления NDemia CashMatic окно первого эземпляра активизируется («всплывает» на передний план), но не получает ввод с клавиатуры (получает после клика мыши или касания сенсорного экрана). В NDemia CashMatic v.2.7.2.329 сделаны соответствующие доработки, при запуске второго экземпляра приложения NDemia CashMatic KioskBrowser или Панели управления NDemia CashMatic окно первого эземпляра активизируется полностью, в том числе получает ввод с клавиатуры. SUR0163: Устранение проблемы: Приложение NDemia CashMatic KioskBrowser не запускается при ошибке переключения на отдельный рабочий стол. В NDemia CashMatic обнаружена проблема: если приложение NDemia CashMatic KioskBrowser запускается в режиме отдельного рабочего стола, и по какой-либо причине отдельный рабочий стол не может быть создан или подключен, то на экран выдаётся сообщение «NDemiaException: Windows system call error (с дополнительной информацией)», после чего программа завершается (при этом в отладочный лог приложения вообще ничего не записывается). Указанная проблема устранена в NDemia CashMatic v.2.7.2 — если приложение KioskBrowser не может создать отдельный рабочий стол или перейти на отдельный рабочий стол, то оно запускается на основном рабочем столе (при этом в отладочный лог приложения записываются соответствующие комментарии). Совместимость: Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0164: Устранение проблемы: В некоторых случаях при запуске приложения NDemia CashMatic KioskBrowser невозможно передать фокус определённому HTML-элементу стартового экрана. В NDemia CashMatic обнаружена проблема: на некоторых компьютерах при запуске приложения NDemia CashMatic KioskBrowser в HTML стартового экрана невозможно в javascript передать фокус ввода какому-либо определённому HTML-элементу (например, полю ввода, если оно предусмотрено на стартовом экране). Другими словами: методы focus() и setActive() не работают в обработчике события onload стартового экрана. Данная проблема возникает, когда приложение KioskBrowser запускается в режиме «поверх всех окон» (см. Панель управления NDemia CashMatic, вкладка Интерфейс, флажок «Открывать поверх всех окон»). Данная проблема имеет место только при первом показе стартового экрана (т.е. сразу после запуска программы), при возвратах на старт с других экранов передача фокуса отрабатывается нормально. Указанная проблема устранена в NDemia CashMatic v.2.7.2. Совместимость: Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0165: Устранение проблемы: в некоторых случаях при недоступности стартового адреса приложение NDemia CashMatic KioskBrowser отображает пустое белое окно. В NDemia CashMatic обнаружена следующая проблема: если ошибочны или недоступны одновременно и стартовый URL-адрес, и URL-адрес страницы неисправности, то приложение KioskBrowser при запуске отображает пустое белое окно. Эта реакция отличается от ожидаемой, поскольку: если ошибочен или недоступен только стартовый URL-адрес страницы, то происходит переход на страницу неисправности; если ошибочен или недоступен URL-адрес страницы неисправности, но переход на неё происходит не в самом начале работы программы, то отображается обычное для Internet Explorer сообщение «Программа не может отобразить эту веб-страницу», а не пустое белое окно. В NDemia CashMatic v.2.7.2 уточнена инициализация браузера, при одновременной недоступности специальных URL start и failure отображается обычное для Internet Explorer сообщение «Программа не может отобразить эту веб-страницу». Дополнительный логгинг: 1. Если браузер сталкивается с ошибкой или недоступностью URL-адреса самого первого загружаемого HTML-документа, в отладочный лог приложения записывается сообщение: «Ошибка URL стартовой страницы. Возможно, требуется перенастройка или переустановка программы.» 2. Когда инициализация браузера окончательно завершается (при первой успешной загрузке любого HTML-документа), в отладочный лог приложения записывается сообщение: «Инициализация браузера успешно завершена» (до этого момента окно KioskBrowser не отображается на экране, контроль URL-адресов не противодействует никаким переходам). Указанная проблема устранена (уточнена инициализация браузера) в NDemia CashMatic v.2.7.2. Совместимость: Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0166: Устранение проблемы: в некоторых случаях после перезапуска приложения NDemia CashMatic KioskBrowser из Панели управления NDemia CashMatic прекращают записываться все или некоторые лог-файлы, и/или перестают работать купюроприёмник и/или принтер. (дополнительно к SUR0151) В NDemia CashMatic обнаружена проблема: в некоторых случаях при изменении настроек через Панель управления NDemia CashMatic, запущенную одновременно с NDemia CashMatic KioskBrowser, после нажатия кнопок Ok или Применить приложение NDemia CashMatic KioskBrowser перезапускается, и после этого могут произойти какие-либо из следующих программных сбоев: перестаёт записываться отладочный лог приложения; перестают записываться лог-файлы купюроприёмника; перестаёт работать купюроприёмник; перестают записываться лог-файлы принтера; перестаёт работать принтер, подключенный через COM-порт. Такое положение сохраняется до перезапуска KioskBrowser вручную (но может потребоваться перезапуск вручную службы NDemia CashMatic Kiosk или перезагрузка компьютера). Установлено, что перечисленные проблемы могут иметь место по следующей причине:если после изменения каких-либо опций и параметров Панель управления перезапускает KoskBrowser, то на некоторых компьютерах запуск «нового» процесса KioskBrowser выполняется быстрее, чем закрывающийся («старый») KioskBrowser успевает освободить захваченные ресурсы (логи, порты оборудования и т.п.). Таким образом, «новый» процесс может запуститься, не получив доступ к каким-либо нужным ему ресурсам. Если при перезапуске происходит также запуск ранее остановленной службы NDemia CashMatic Kiosk, то имеет место проблема SUR0151 — в этом случае требуется перезапуск службы вручную или перезагрузка компьютера. Проблема синхронизации освобождения ресурсов при закрытии процесса KioskBrowser.exe устранена в NDemia CashMatic v.2.7.2. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0167: Устранение проблемы: в некоторых случаях в приложении KioskBrowser после модального диалога (например, javascript alert) невозможно никуда перейти с текущего экрана. В NDemia CashMatic обнаружена проблема: если на некоторой HTML-странице пользовательский интерфейс выдаёт модальный диалог (например, javascript alert), и во время диалога происходит отказ, требующий перехода на страницу неисправности, то никакого перехода не происходит (поскольку интерфейс занят диалогом), зато после закрытия диалога вступает в действие контроль URL-адресов переходов, который противодействует переходам на любые адреса, кроме экрана неисправности. Данная проблема может быть решена прикладным программистом — можно после диалога сделать дополнительную проверку и явный переход на экран неисправности: Пример: alert(“Экранное сообщение”); //модальный диалог, во время которого произошёл отказ if(CashMatic.Terminal.Failure) //проверка наличия отказов после диалога navigate(“CashMatic:failure”); //при наличии отказов — явный переход на страницу неисправности. Указанная проблема устранена в NDemia CashMatic v.2.7.2 – в таких случаях переход на страницу неисправности происходит автоматически после закрытия модального диалога (а также переход на стартовую страницу после модального диалога на странице неисправности, во время которого произошло устранение отказа). Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable UI PostNavigate и присвоить ему ненулевое значение (см. SUR0216) SUR0168: Устранение проблемы: в некоторых случаях приложение KioskBrowser закрывается без предупреждений после закрытия модального диалога (например, javascript alert()). В NDemia CashMatic обнаружена проблема: замечено, что бывают случаи, когда после показа модального диалога (javascript фукнция alert(), или сообщение об ошибке javascript) приложение KioskBrowser внезапно закрывается без каких-либо предупреждений. Установлено, что данная ситуация может иметь место в следующих условиях: если в Панели управления NDemia CashMatic выполняются какие-либо изменения настроек, требующие перезапуска приложения KioskBrowser (после нажатия Ok или Применить), и в это время работает KioskBrowser, и пользовательский интерфейс KioskBrowser занят модальным диалогом, то окно KioskBrowser не закроется по команде Панели управления. Однако внешняя команда (от Панели управления) будет получена и запомнена, и будет выполнена, как только пользователь (администратор терминала) закроет модальный диалог, даже если это произойдёт через длительный промежуток времени (например, через несколько часов или дней). При применении настроек из Панели управления может сложиться ситуация, когда пользователь (администратор терминала) не заметил или не понял, что перезапуск KioskBrowser должен был произойти и не произошёл. Когда через некоторое (возможно, очень длительное) время пользователь (администратор терминала) заметит и закроет модальный диалог в KioskBrowser, приложение немедленно закроется — и связь этого с изменениями в Панели управления может оказаться совершенно неочевидной. В NDemia CashMatic v.2.7.2 данная проблема устранена. Если KioskBrowser закрывается внешней командой от другого приложения, и пользовательский интерфейс в это время занят модальным диалогом (или не может быть закрыт по каким-то другим причинам, делающим окно приложения неактивным в момент команды), то команда закрытия будет просто проигнорирована. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий для таких случаев, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Enable PostClose и присвоить ему ненулевое значение (см. SUR0216) SUR0169: Устранение проблемы: при скроллинге длинных страниц на экране иногда могут оставаться полосы неотрисованного изображения. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при скроллинге длинных страниц, размер которых существенно превышает размеры экрана, на экране могут оставаться небольшие полосы неотрисованного изображения (белые, если в обычной палитре). Совместимость: указанная доработка выпущена в релизе 2.7.2.317 SUR0170: Устранение проблемы: неправильное отображение текста всплывающих подсказок Панели управления NDemia CashMatic под некоторыми версиями Windows. В NDemia CashMatic обнаружена проблема: всплывающие подсказки в Панели управления NDemia CashMatic под некоторыми версиями Windows отображаются неправильно — используется шрифт без кириллицы, русскоязычный текст показывается нечитаемыми знаками (причём это проявляется, например, под русскоязычной версией Windows 7). В NDemia CashMatic v.2.7.2 изменён способ формирования всплывающих подсказок, русский текст отображается нормально. (Однако следует отметить — данное изменение касается только основных страниц (вкладок) Панели управления NDemia CashMatic, компоненты расширения (плагины), добавляющие собственные страницы и диалоги, сами отвечают за свои всплывающие подсказки). Информация для пользователей заказных сборок NDemia CashMatic: язык шрифта всплывающих подсказок основных страниц Панели управления NDemia CashMatic уточнён, начиная с релиза 2.7.2.323 (от 27.09.2012) SUR0171: Устранение проблемы: при работе с Windows Inernet Explorer 9 при ошибках обработчиков событий сеанса купюроприёмника (CashMaticCashSessionEvents) может быть выдано и/или записано в лог сообщение с пустым текстом ошибки. В NDemia CashMatic обнаружена проблема: при запусках под Windows Vista/7 с установленным Windows Internet Explorer 9 в случае ошибки в скрипте или объекте, реализующем обработчик ошибки сеанса купюроприёмника (интерфейс CashMaticCashSessionEvents) может быть выдано на экран и/или записано в лог сообщение с пустым текстом ошибки. Данная проблема связана с изменившимся в Inernet Explorer 9 способом предоставления информации об ошибке. Совместимость: соответствующая доработка NDemia CashMatic выпущена в релизе 2.7.2.329. SUR0172: Устранение проблемы: при закрытии окна по инициативе скрипта (javascript: window.close()) приложение KioskBrowser зависает. В NDemia CashMatic обнаружена проблема: если прикладной скрипт выполняет «самозакрытие» окна (вызов window.close()), то, после подтверждения пользователем закрытия окна, приложение KioskBrowser зависает или завершается с ошибками. В разных версиях (и в предварительных релизах v.2.7.2) это выглядит по разному, но общая характеристика одна — использование window.close() категорически противопоказано. В NDemia CashMatic v.2.7.2 данная проблема устранена: при вызове window.close() окно нормально закрывается. Подтверждение пользователя всё равно требуется — это встроенное поведение Internet Explorer, либо можно использовать какой-либо «трюк» javascript для обхода этого подтверждения. Пример обхода подтверждения пользователя (этот код нужно использовать вместо window.close(), возможно, сработает не на всех версиях Internet Explorer): window.open("","_self").close(); В предварительных релизах NDemia CashMatic v.2.7.2 при «самозакрытии» был получен любопытный режим: окно не закрывается, но интерфейс полностью «замирает» - ничего никуда не переходит, кнопки не нажимаются и т.п., однако последнее состояние окна нормально отображается, и окно работоспособно — без зависаний переключается по Alt+Tab и закрывается по Alt+F4. Приложение как бы превращается в собственный скриншот (и это практически так и есть — в этом состоянии браузер уже завершил работу, в окне отображается просто последняя сформированная им картинка). Режим представляется в некоторых случаях полезным для отладки прикладных скриптов. Если по какой-либо причине требуется восстановить такое поведение NDemia CashMatic KioskBrowser при самозакрытии окна, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Hold Closed Browser и присвоить ему ненулевое значение (см. SUR0216) SUR0173: Устранение проблемы: на некоторых компьютерах после закрытия NDemia CashMatic KioskBrowser добавляются временные файлы в ResponseDir. В некоторых прикладных решениях на платформе NDemia CashMatic встречается проблема: после закрытия окна приложения KioskBrowser добавляются неудалённые временные файлы в директории ответов службы NDemia CashMatic Kiosk (ResponseDir – см. http://ndemia.com/CashMatic/u-home/PG/tools/CONFIG.php#tools.CONFIG.ResponseDir ). Данная проблема может быть вызвана тем, что установленный компонент расширения (плагин) при вызове метода ICashMaticTerminalExtender::OnGuiExit() выдаёт на экран модальный диалог. Приложение NDemia CashMatic KioskBrowser периодически создаёт запросы для отслеживания состояния купюроприёмника. Временные файлы в ResponseDir создаются службой NDemia CashMatic Kiosk в ответ на запросы приложения. Перед вызовом OnGuiExit все запросы должны быть завершены. Однако, если OnGuiExit задерживается на модальном диалоге, то опрос статуса купюроприёмника возобновляется по таймауту, но после OnGuiExit уже не делается завершение мониторинга, поэтому последние запросы не дожидаются своих ответов, и поэтому временные файлы ответов остаются неудалёнными (они появляются через несколько секунд после действительного завершения работы программы). Данная проблема устранена в NDemia CashMatic v.2.7.2 — завершение мониторинга купюроприёмника выполняется после вызова ICashMaticTerminalExtender::OnGuiExit(). Совместимость: указанная доработка выполнена в релизе 2.7.2.329. SUR0174: Устранение проблемы: неправильно обрабатывается отрицательный ответ пользователя на подтверждение закрытия текущего документа окна KioskBrowser по запросу из обработчика события onbeforeunload. В NDemia CashMatic обнаружена проблема: если закрывается окно приложения KioskBrowser, и текущий прикладной скрипт пытается этому противодействовать — требует подтверждения пользователя, возвращая текст вопроса из обработчика события onbeforeunload, и пользователь отвечает отрицательно (не подтверждает закрытие окна), то окно всё равно закрывается, после чего процесс KioskBrowser.exe зависает, с максимальной загрузкой CPU. Данная проблема делает совершенно невозможным использование механизма запроса дополнительного подтверждения пользователя из onbeforeunload. Проблема устранена в NDemia CashMatic v.2.7.2 – отрицательный ответ пользователя принимается нормально, окно не закрывается, работа приложения продолжается без каких-либо ошибок. При этом в лог приложения записываются строки: «На основании состояния текущего документа решено продолжить работу (закрытие окна отменено)» «Окно KioskBrowser не закрылось» Совместимость: указанная проблема устранена в релизе 2.7.2.329. SUR0175: Устранение проблемы: на некоторых компьютерах после работы приложения NDemia CashMatic KioskBrowser остаётся пустой рабочий стол. В NDemia CashMatic обнаружена проблема: на некоторых компьютерах после работы приложения NDemia CashMatic KioskBrowser остаётся пустой рабочий стол (без каких-либо органов управления), который невозможно закрыть никаким способом. При наличии физической клавиатуры нажатие Ctrl-Alt-Del под Windows Vista и Windows 7 может помочь — будет показано системное меню, с которого можно хотя бы выйти из системы или выполнить перезагрузку. Под Windows XP не поможет даже Ctrl-Alt-Del, потребуется отключение питания или перезагрузка компьютера кнопкой Reset. Данная проблема возникает при следующих обстоятельствах: NDemia CashMatic KioskBrowser запускается в режиме отдельного рабочего стола (см. Панель управления NDemia CashMatic, вкладка Интерфейс, флажок «Отдельный рабочий стол»), KioskBrowser успешно создаёт свой отдельный рабочий стол и переключается на него, но в конце работы по каким-то причинам не может его закрыть, поэтому отдельный рабочий стол NDemia CashMatic остаётся текущим. Причина может быть в том, что при создании нового рабочего стола к нему «прикрепляются» другие програмы (например, средства рукописного ввода Windows 7). Закрытие KioskBrowser для других программ ничего не означает, поэтому они продолжают использовать рабочий стол, и KioskBrowser не может его удалить. Указанная проблема устранена в NDemia CashMatic v.2.7.2 — приложение KioskBrowser в режиме отдального рабочего стола при завершении своей работы сначала переключается на основной рабочий стол (точнее, на стартовый – который был активным в момент запуска), и только после этого пытается закрыть и удалить свой собственный (отдельный) рабочий стол. Если не удалось его удалить, в отладочный лог приложения делается соответствующая запись, отдельный рабочий стол NDemia CashMatic остаётся в памяти компьютера и может быть использован при следующем запуске NDemia CashMatic. Совместимость: Соответствующая доработка выпущена в релизе NDemia CashMatic v.2.7.2.329. SUR0176: Устранение проблемы: при установке после полного удаления восстанавливаются некоторые настройки и файлы от предыдущей установки (под Windows Vista и выше). В NDemia CashMatic обнаружена следующая проблема (только под Windows Vista и выше, только для версий NDemia CashMatic ранее v.2.7.2.323): если NDemia CashMatic удаляется в режиме полного удаления, и затем устанавливается заново (как новая установка), то могут вернуться некоторые файлы данных и настройки в реестре от предыдущей установки. Проблема связана с виртуализацией папки «Program Files» и раздела реестра HKEY_LOCAL_MACHINE при работе под Windows Vista (и выше) от имени обычного пользователя (без «повышения» (elevation), т. е. не-администратора). Программа удаления (Uninstall) всегда запускается с «повышением» (от имени администратора — благодаря Windows UAC Installer detection), и не удаляет виртуальные пути (VirtualStore), создавшиеся при работе от имени обычного пользователя. Проблема устранена в релизе NDemia CashMatic v.2.7.2.329 - Uninstall удаляет VirtualStore, создавшиеся при работе в режиме обычного пользователя (только для текущего пользователя) SUR0177: Устранение проблемы: в некоторых случаях при ограниченных правах устанавливающего пользователя установка программного продукта NDemia CashMatic выполняется неправильно или не полностью. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при установке программного продукта NDemia CashMatic, в случаях, когда для окончательной установки требуется перезагрузка компьютера, но устанавливающий пользователь не имеет права на перезагрузку, установка завершается без каких-либо сообщений, в результате файловые операции, отложенные на перезагрузку, не выполняются (точнее, выполняются только после перезагрузки, если/когда она будет выполнена). В NDemia CashMatic v.2.7.2 сделано соответствующее исправление. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0178: Устранение проблемы: при установке или удалении NDemia CashMatic сообщения об ошибках иногда выдаются в отдельных всплывающих окнах (без родительской связи с окном программы установки/удаления). В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при установке или удалении программного продукта NDemia CashMatic экранные сообщения об ошибках и предупреждениях, возникающие по ходу выполнения программы, иногда выдаются в отдельных всплывающих окнах, которые имеют собственные значки в Панели задач Windows и могут переключаться по Alt+Tab отдельно от окна программы установки/удаления. При переключении окон пользователем это может приводить к труднопонимаемым положениям экрана - в положении выдачи сообщения на экран можно переключиться на заблокированное окно программы установки/удаления (не видя при этом окна сообщения), причина блокирования окна будет неочевидна, ситуация воспринимается как зависание программы. В NDemia CashMatic v.2.7.2 сделано соответствующее исправление. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0179: Устранение проблемы: отмена (прерывание) установки или удаления NDemia CashMatic в некоторых случаях может вызвать перезагрузку компьютера без каких-либо предупреждений. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при установке или удалении программного продукта NDemia CashMatic, если копирование или удаление файлов и данных уже началось, но устанавливающий пользователь отменил (прервал) установку/удаление, то может произойти перезагрузка компьютера, без каких-либо предупреждений и без разрешения/подтвержения пользователя. В NDemia CashMatic v.2.7.2 сделано соответствующее исправление. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0180: Устранение проблемы: при переустановке NDemia CashMatic при наличии неправильно установленных компонентов расширения (плагинов) на экран выдаются сообщения о системных ошибках. В NDemia CashMatic v.2.7.0 и v.2.7.1 обнаружена проблема: при повторной установке (переустановке) программного продукта NDemia CashMatic при наличии в предыдущей установке неправильно установленных компонентов расширения (плагинов) на экран выдаются сообщения вида «Системная ошибка: запуск программы невозможен, так как на компьютере отсутствует ******.dll. Попробуйте переустановить программу» (где ******.dll — имя предположительно отсутствующего модуля). Проблема связана с введением в v.2.7.0 лога установки плагинов %ProgramFiles%\NDemia\CashMatic\SetupPlugins.txt. Соответствующие исправления сделаны в NDemia CashMatic v.2.7.2.329 — сообщения о невозможности загрузить модуль плагина записываются в лог установки плагинов и не выдаются на экран. При необходимости можно вернуть функциональность версии v.2.7.0: нужно в системном реестре Windows в разделе HKEY_CURRENT_USER\Software\NDemia\CashMatic\Debug создать параметр типа REG_DWORD, имя ErrorMode, значение 0. SUR0181: Устранение проблемы: ошибка 7030 в системном журнале Windows при установке службы NDemia CashMatic Kiosk под Windows Vista и выше. В NDemia CashMatic обнаружена проблема: при установке программного продукта под Windows Vista (и выше) при регистрации службы NDemia CashMatic Kiosk в системном журнале Windows (“Просмотр событий\Журналы Windows\Система”) появляется ошибка с кодом 7030 (источник: Service Control Manager), с формулировкой: «Служба "Служба NDemia CashMatic Kiosk" помечена как интерактивная. Однако в конфигурации системы интерактивные службы не допускаются. Возможна неправильная работа службы.». В NDemia CashMatic v.2.7.2 служба NDemia CashMatic Kiosk регистрируется как не-интерактивная, указанное сообщение об ошибке не возникает. Информация для пользователей заказных сборок NDemia CashMatic: служба NDemia CashMatic Kiosk регистрируется как не-интерактивная, начиная с релиза 2.7.2.323 (от 27.09.2012) SUR0182: Устранение проблемы: после установки или удаления NDemia CashMatic под Windows Vista/Windows 7 иногда появляется сообщение «Помощника по совместимости программ» Windows: «Эта программа, возможно, установлена неправильно». В NDemia CashMatic обнаружена проблема совместимости с Windows Vista/Windows 7: после установки или удаления NDemia CashMatic иногда появляется сообщение «Помощника по совместимости программ» (Program Compatibility Assistant) Windows: «Эта программа, возможно, установлена неправильно. Если программа не была установлена правильно, попробуйте переустановить её, используя параметры, совместимые с текущей версией Windows». При этом предоставляется выбор Переустановите, используя рекомендуемые параметры; Эта программа установлена правильно; Отмена. Данное сообщение может быть выдано в одной из следующих ситуаций: 1. Повторная установка (переустановка или обновление) поверх уже установленной программы; 2. Первичная установка, не дошедшая до конца — прерванная по команде пользователя или какой-либо другой причине; 3. Удаление программы, не дошедшее до конца — прерванное по команде пользователя или какой-либо другой причине. Никаких ошибок при этом на самом деле не выявляется, причиной является всего лишь то, что во всех перечисленных случаях по результату установки/удаления нет изменений в списке установленных программ (в соответствующем элементе в панели управления Windows). Проблема устранена в релизе NDemia CashMatic v.2.7.2.329. SUR0183: Устранение проблем совместимости «вниз» предварительного выпуска v.2.7.2.323: 1. при переустановке NDemia CashMatic версий ранее v.2.7.0 поверх установленной версии v. 2.7.2.323 неправильно определяется путь папки html; 2. компоненты расширения (плагины), разработанные для NDemia CashMatic версий ранее v.2.7.0, неправильно определяют путь папки html после установки v.2.7.2.323. В NDemia CashMatic обнаружена проблема, с которой могут стокнуться пользователи старых версий (ранее v.2.7.0) при попытке обновить NDemia CashMatic на предварительный выпуск v.2.7.2.323. Данная проблема проявляется в двух вариантах: 1. при переустановке NDemia CashMatic версий ранее v.2.7.0 поверх установленной версии v. 2.7.2.323 неправильно определяется путь папки html; 2. компоненты расширения (плагины), разработанные для NDemia CashMatic версий ранее v.2.7.0, неправильно определяют путь папки html после установки v.2.7.2.323 (переустановка более ранних версий не помогает). Инсталлятор v.2.7.2.323 прописывает в системном реестре Windows в разделе HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic параметр «Local HTML», тип REG_SZ, значение «%CashMatic%\html». Такая настройка является совершенно нормальной для NDemia CashMatic v.2.7.0 и v.2.7.1, но неправильной для более ранних версий. Версии ранее v.2.7.0 не поддерживают переменную среды “%CashMatic%”, и требуют, чтобы путь папки HTML указывался только относительно папки установки продукта («%ProgramFiles%\NDemia\CashMatic»), настройка пути берётся из реестра только в случае, если она там есть, иначе используется «html». Для устранения проблемы вручную достаточно просто удалить в реестре параметр «Local HTML» при установке старых версий NDemia CashMatic или при использовании плагинов, разработанных для старых версий (ранее v.2.7.0) Проблема устранена в релизе v.2.7.2.329 – инсталлятор по умолчанию прописывает «Local HTML» как «html» (т. е. правильный относительный путь), а если в реестре уже есть другая настройка, то инсталлятор вычисляет по этой настройке относительный путь и, при возможности и необходимости, изменяет данную настройку. SUR0184: Устранение проблемы: в предварительных выпусках NDemia CashMatic v.2.7.2 не работает мониторинг состояния купюроприёмника (не поддерживается инкассация, нет реакций на отказы купюроприёмника). В предварительных выпусках NDemia CashMatic v.2.7.2 обнаружена проблема: в программе KioskBrowser.exe не работает мониторинг купюроприёмника, поэтому программа не реагирует на отказы купюроприёмника, а также нет реакции на снятие/установку стекера купюроприёмника (из-за чего никак не поддерживается инкассация, не сбрасывается счётчик купюр и т. п.) Совместимость: указанное исправление выпущено в релизе 2.7.2.323 (от 27.09.2012). В версиях ранее 2.7.2 этой ошибки нет. Если по какой-либо причине требуется отключить мониторинг отказов купюроприёмника, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable CashFailureMonitor и присвоить ему ненулевое значение (см. SUR0216) Если по какой-либо причине требуется отключить мониторинг снятия и установки стекера купюроприёмника, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Disable StackerDisposeMonitor и присвоить ему ненулевое значение (см. SUR0216) SUR0185: Устранение проблемы: в предварительных выпусках NDemia CashMatic v.2.7.2 ошибки кода javascript не записываются в лог, и не срабатывает метод ICashMaticTerminalExtender2::OnScriptError. В предварительных выпусках NDemia CashMatic v.2.7.2 обнаружена проблема: в программе KioskBrowser.exe не подключена установка собственного обработчика ошибок javascript, поэтому: 1. сообщения об ошибках кода javascript отображаются на экране, но не записываются в лог; 2. при ошибках в коде javascript не срабатывает (не вызывается) метод интерфейса компонентов расширения ICashMaticTerminalExtender2::OnScriptError. Совместимость: указанное исправление выпущено в релизе 2.7.2.329. В версиях ранее 2.7.2 этой ошибки нет. SUR0186: Устранение проблемы: в предварительных выпусках NDemia CashMatic v.2.7.2 выполняется двойная запись в лог ошибок при обработке событий сеанса купюроприёмника. В предварительных выпусках NDemia CashMatic v.2.7.2 обнаружена проблема: если происходит ошибка в коде обработчика события сеанса купюроприёмника, то запись в лог-файл сообщения об одной ошибке в некоторых случаях происходит дважды. Совместимость: соответствующее исправление выпущено в релизе 2.7.2.329. В версиях ранее 2.7.2 этой ошибки нет. SUR0187: Решение проблемы: при замене или перепрошивке купюроприёмника тест купюроприёмника CCNET в Панели управления завершается с результатом BUSY. В NDemia CashMatic обнаружена следующая проблема: если программный продукт был ранее зарегистрирован (или лицензионный ключ был активирован), но по техническим причинам после этого была выполнена замена или перепрошивка (обновление прошивки) купюроприёмника CCNET, то приём купюр перестаёт работать, а тест купюроприёмника в Панели управления NDemia CashMatic на вкладке Купюроприёмник завершается отрицательно, с результатом "Не удалось принять купюру (ошибка 3 "BUSY")". При этом состояние лицензии показывается как нормальное (в Панели управления NDemia CashMatic на вкладке Лицензия), таким образом, нет никакой понятной диагностики причины отказа, и нет указаний о дальнейших действиях пользователя. При обновлении прошивки проблема вызвана тем, что при изменении прошивки частично изменяется идентификатор купюроприёмника CCNET (версия прошивки включена в идентификатор), поэтому перепрошивка купюроприёмника приравнивается к замене купюроприёмника — соответственно, требуется новая регистрация программного продукта или активация лицензионного ключа. В NDemia CashMatic v.2.7.2 версия прошивки купюроприёмника исключена из сопоставления лицензионных данных, поэтому при перепрошивке не требуется никаких дополнительных действий по регистрации программного продукта и активации лицензионного ключа. При замене купюроприёмника по результату теста купюроприёмника выдаётся дополнительное сообщение: "Идентификация купюроприёмника не соответствует лицензионным данным. Требуется активация лицензионного ключа. Запустить программу активации ключа?", при нажатии кнопки "Ok" вызывается соответствующая программа. Совместимость: доработка реакции на замену купюроприёмника выпущена в релизе 2.7.2.315, реакции на перепрошивку — в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic (касательно версии прошивки купюроприёмника), то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Check CCNET PartNumber и присвоить ему ненулевое значение (см. SUR0218) SUR0188: Устранение проблемы: при нештатном завершении сервиса купюроприёмника (BVS) аварийно завершается процесс службы NDemia CashMatic Kiosk (CMKiosk.exe). В NDemia CashMatic обнаружена проблема: если используется служба NDemia CashMatic Kiosk, и из-за внутренней ошибки в службе нештатно завершается сервис купюроприёмника (BVS), то при этом процесс службы (CMKiosk.exe) часто завершается аварийно, с ошибками доступа к памяти - сообщения об ошибках приложения (APPCRASH) выдаются на экран и/или записываются в журнал событий «Приложение», в зависимости от версии и настроек Windows. Проблема устранена в NDemia CashMatic v.2.7.2.329. SUR0189: Устранение проблемы: в некоторых случаях не выполняются тесты купюроприёмника и принтера в Панели управления NDemia CashMatic, даже при правильном подключении оборудования (“Windows last error 2”). В NDemia CashMatic обнаружена проблема: в некоторых случаях не выполняется тест купюроприёмника на вкладке «Купюроприёмник» в Панели управления NDemia CashMatic, причём в обстоятельствах, когда купюроприёмник не только нормально подключен и правильно настроен, но и нормально работает в NDemia CashMatic. При выполнении теста в окно результатов выдаётся следующий текст: «На время теста изменена настройка порта: COM1 Kiosk command IDENTIFY execution failed, Windows last error 2 Восстановлена настройка порта: COM1» (имя порта COM1 – только для иллюстрации, может отличаться) Аналогично в некоторых случаях сбивается тест принтера (правильно подключенного и настроенного, и нормально печатающего), в сообщении о результате теста выдаётся ошибка: «Ошибка: Kiosk command XPRINTOUT execution failed, Windows last error 2» Установлено, что проблема связана с неточной синхронизацией запуска службы NDemia CashMatic Kiosk (возможна ситуация, когда тест начинается раньше, чем закончится перезапуск службы для применения тестируемых настроек). В v.2.7.2.329 синхронизация запуска службы уточнена, указанная проблема устранена. SUR0190: Устранение проблемы: в некоторых случаях в Панели управления NDemia CashMatic не выполняются тесты купюроприёмника и принтера при правильном подключении и настройке (результаты OFFLINE или TIMEOUT). В NDemia CashMatic обнаружена проблема: в некоторых случаях не могут быть выполнены (выполняются с отрицательным результатом, ошибки OFFLINE и TIMEOUT) тесты купюроприёмника и принтера в Панели управления NDemia CashMatic (и никакие проблемы не записываются в логи оборудования (BVS и PS)). При этом всё оборудование может быть правильно подключено и правильно настроены все параметры, а купюроприёмник и принтер нормально работают даже в приложении NDemia CashMatic KioskBrowser. Данная ситуация связана с тем, что при выполнении тестов Панель управления NDemia CashMatic запускает службу NDemia CashMatic Kiosk, и если в это же время работает приложение NDemia CashMatic KioskBrowser, и не включён флаг «Использовать службу NDemia CashMatic Kiosk» (Панель управления, вкладка Интерфейс), то служба попадает в конфликт с приложением. Приложение заняло все порты и логи, поэтому служба не может ни получить доступ к оборудованию, ни записать проблему в лог файл. Проблема устранена в NDemia CashMatic v.2.7.2: при выполнении тестов в случае возможных конфликтов службы и приложения Панель управления NDemia CashMatic на время теста закрывает приложение NDemia CashMatic KioskBrowser, и потом снова его запускает после теста. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметры REG_DWORD Ignore App Services Ignore Restart Order и присвоить им ненулевые значение (см. SUR0216) "Ignore Restart Order" отключает перезапуск при отсутствии конфликтов; "Ignore App Services" отключает анализ конфликтов; см. тж SUR0149, SUR0151, SUR0191, SUR0192, SUR0210, SUR0212. SUR0191: Устранение проблемы: после выполнения теста купюроприёмника или принтера в Панели управления NDemia CashMatic служба NDemia CashMatic Kiosk остаётся запущенной. В NDemia CashMatic обнаружена проблема: если в Панели управления NDemia CashMatic выполнить тест на страницах Купюроприёмник или Принтер, то после теста остаётся запущенной служба NDemia CashMatic Kiosk. Для службы это запланированное поведение — она запускается по требованию один раз, и далее продолжает работать постоянно. Однако такой порядок создаёт проблемы для пользователей (администраторов, техников), выполняющих настройку или обслуживание оборудования. Запущенная служба захватывает порты купюроприёмника и принтера (независимо от того, какие тесты выполнялись), поэтому пользователь не может запустить никакое другое программное обеспечение, взаимодействующее с купюроприёмником или принтером — например, штатные тесты производителей оборудования. В NDemia CashMatic v.2.7.2 после выполнения тестов купюроприёмника или принтера служба NDemia CashMatic Kiosk запускается только в случае, если она была запущена до теста и если её запуск не вызовет конфликтов с текущим режимом приложения NDemia CashMatic KioskBrowser. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Restart Order и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0149, SUR0151, SUR0190, SUR0192, SUR0212. Если по какой-либо причине нужно игнорировать возможные конфликты с текущим режимом приложения NDemia CashMatic KioskBrowser, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore App Services и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0190, SUR0192, SUR0210. SUR0192: Устранение проблемы: в некоторых случаях при выполнении теста купюроприёмника или принтера в Панели управления NDemia CashMatic приложение NDemia CashMatic KioskBrowser переходит на экран отказа. В NDemia CashMatic обнаружена проблема: в некоторых случаях при выполнении теста купюроприёмника или принтера в Панели управления NDemia CashMatic, запущенной одновременно с NDemia CashMatic KioskBrowser, во время теста приложение NDemia CashMatic KioskBrowser внезапно переходит на экран отказа («Терминал временно не работает...»). Далее, если всё настроено правильно, и купюроприёмник подключен и работает, то через несколько секунд приложение переходит на стартовый экран и продолжает нормально работать. При этом в отладочном логе приложения на момент отказа записываются строки «KBRM_BVSTATUS_FAILURE: состояние 00000008» «Возбуждается отказ "BillValidator"» За один тест описанная ситуация может повториться дважды. Данная ситуация связана с тем, что при выполнении тестов Панель управления NDemia CashMatic перезапускает службу NDemia CashMatic Kiosk с временно изменёнными настройками, из-за этого приложение NDemia CashMatic KioskBrowser теряет связь со службой (и, таким образом, с оборудованием, в первую очередь с купюроприёмником), и реагирует на это как на сбой купюроприёмника. Проблема устранена в NDemia CashMatic v.2.7.2: при выполнении тестов Панель управления NDemia CashMatic на время теста закрывает приложение NDemia CashMatic KioskBrowser, и потом снова запускает приложение уже после завершающего перезапуска службы с восстановленными настройками. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется отключить перезапуск NDemia CashMatic KioskBrowser во время теста, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Restart Order и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0149, SUR0151, SUR0190, SUR0191, SUR0212. Если по какой-либо причине требуется игнорировать возможные конфликты с текущим режимом NDemia CashMatic KioskBrowser во время теста, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore App Services и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0190, SUR0191, SUR0210. SUR0193: Устранение проблемы: приложения пользовательского интерфейса (KioskBrowser, BVSTATMON) не замечают нормального завершения службы NDemia CashMatic Kiosk. В NDemia CashMatic обнаружена проблема: если используется служба NDemia CashMatic Kiosk, и во время работы приложения KioskBrowser служба завершается нормально (по команде администратора), то KioskBrowser «не замечает» этого, и пользовательский интерфейс не переходит на экран отказа немедленно. При этом KioskBrowser немедленно реагирует на нештатное завершение службы (которое может произойти из-за какой-либо внутренней ошибки). Другая форма проявления той же проблемы: интерфейсная команда BVSTATMON, отслеживающая событие STOP, не даёт правильной реакции на прекращение работы сервиса купюроприёмника при нормальном завершении службы CMKiosk.exe — вызов BVSTATMON завершается с результатом «4 CANCEL». При этом BVSTATMON немедленно реагирует на нештатное завершение службы (которое может произойти из-за какой-либо внутренней ошибки). Реакция на нормальное завершение службы не была предусмотрена, поскольку нет никаких разумных причин завершать службу командой администратора во время работы KioskBrowser. Но тем не менее, остановка службы командой принципиально возможна. Проблема устранена в NDemia CashMatic v.2.7.2.329. KioskBrowser реагирует на любое завершение службы (за исключением принудительного завершения процесса CMKiosk.exe – в этом случае KioskBrowser не успевает получить от CMKiosk.exe никаких сведений о работе службы) SUR0194: Устранение проблемы: в некоторых случаях лог купюроприёмника записывается в один непрерывный файл (BVSDebugLog.txt), без разбиения по датам (DebugLog(ГГГГ-ММ-ДД).txt). В NDemia CashMatic обнаружена следующая проблема: если на компьютере или терминале первоначально был установлен NDemia CashMatic версии ранее v.2.6.0, то лог купюроприёмника (%ProgramFiles%\NDemia\CashMatic\Logs\BVS) записывается в один непрерывный сплошной файл (как правило, очень большого размера), без разбиения лог-файлов по датам (как это принято в более поздних выпусках NDemia CashMatic). Это положение объясняется тем, что инсталлятор версий ранее v.2.6.0 прописывает имя лог-файла в системном реестре Windows как «BVSDebugLog.txt», более поздние версии — как «DebugLog*.txt» (где звёздочка показывает позицию подстановки текущей даты в формате «(ГГГГ-ММ-ДД)»). Инсталляторы обновлений не изменяют данную настройку от предыдущей установки. Лог-файлы, разбитые по датам, гораздо удобнее в эксплуатации и обслуживании: 1. ежедневные файлы имеют относительно небольшие размеры, их можно просматривать в обычном текстовом редакторе (например, в Блокноте Windows); 2. ежедневные файлы можно удалять по мере устаревания, вообще их не открывая. Проблема устранена в релизе v.2.7.2.329 – инсталлятор при переустановке проверяет имя лог-файла, и если оно задано как «BVSDebugLog.txt», то настройка изменяется на «DebugLog*.txt» (что обеспечивает разбиение лог-файлов по датам) SUR0195: Устранение проблемы: в некоторых случаях размер лога купюроприёмника постоянно увеличивается с огромной скоростью. В NDemia CashMatic обнаружена следующая проблема: если на компьютере или терминале первоначально (когда-то в прошлом) был установлен NDemia CashMatic версии ранее v.2.7.0.276, то лог купюроприёмника (%ProgramFiles%\NDemia\CashMatic\Logs\BVS) имеет огромный размер (точнее, огромную скорость роста — 50-100 Мб в день и более). Последующие обновления NDemia CashMatic на том же компьютере или терминале (установкой поверх предыдущей версии) не устраняют эту проблему. Огромный размер лог-файлов объясняется тем, что в системном реестре Windows инсталлятор версий ранее v.2.7.0.276 записывает отладочный флаг, который включает полную запись всего обмена с купюроприёмником, последующие обновления не отменяют эту настройку. Проблема устранена в релизе v.2.7.2.329 – инсталлятор при переустановке снимает все отладочные флаги, которые могут приводить к неоправданному росту логгинга купюроприёмника (при этом скорость роста размера лог-файлов уменьшается в 10-50 раз). SUR0196: Устранение проблемы: при нормальном выполнении теста купюроприёмника в лог записываются сообщения «Ошибка взаимодействия с устройством». В NDemia CashMatic обнаружена проблема: при нормальном (успешном) выполнении теста купюроприёмника из Панели управления NDemia CashMatic в отладочный лог купюроприёмника (%ProgramFiles%\NDemia\CashMatic\Logs\BVS\DebugLog*.txt) записываются множественные сообщения «Ошибка взаимодействия с устройством». На результатах теста пробема не сказывается, в обычной эксплуатации не встречается. Проблема вызвана слишком близкими по времени переключениями устройства при тестировании — сброс, опрос идентификации и переход в режим проверки купюры выполняются за время около 0.4 с.Все тестируемые операции выполняются нормально, однако конец каждой операции во времени несколько «наползает» на начало следующей операции - в реальной эксплуатации такого не бывает (строго говоря, такую ошибку можно получить, если в предыдущих версиях выполнить программный опрос идентификации купюроприёмника по протоколу CCNET во время активности сеанса приёма купюры или проверки купюры). Проблема устранена в релизе NDemia CashMatic v.2.7.2.329 – уточнено определение времени возможности программного опроса идентификации купюроприёмника. SUR0197: Устранение проблемы: переход в режим энергосбережения может привести к внезапному завершению работы службы NDemia CashMatic Kiosk или приложения NDemia CashMatic KioskBrowser. В NDemia CashMatic обнаружена проблема: в момент перехода компьютера в режим энергосбережения («ждущий» или «спящий» режим) или при восстановлении нормального питания после режима энергосбережения может произойти ошибка коммуникационного порта, которая не будет обработана должным образом, что приведёт к внезапному завершению работы службы NDemia CashMatic Kiosk (CMKiosk.exe) или даже к закрытию приложения NDemia CashMatic KioskBrowser. В отладочных логах сервисов купюроприёмника (BVS) или принтера (PS) такие ошибки записываются с сообщением «Сбой вызова ClearCommError, ошибка ...». В релизе NDemia CashMatic v.2.7.2.329 сделана соответствующая доработка: в подобных случаях при переключениях режима электропитания делаются повторные попытки обработать ошибку порта. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Port Power Down и присвоить ему ненулевое значение (см. SUR0216) SUR0198: Устранение проблемы: в режиме "Принтер не подключен" при печати чека по шаблону атрибуты форматирования удаляются из текста печати. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: если в Панели управления NDemia CashMatic на вкладке Принтер выставлен режим "Не подключен", то при программной печати чека по шаблону атрибуты форматирования удаляются из текста чека. Печать при неподключенном принтере NDemia CashMatic используется в таких решениях, где печать выполняется некоторым альтернативным способом, недоступным и неизвестным NDemia CashMatic(через драйвер Windows, через объект драйвера фискального регистратора, доступный напрямую для скрипта, и т.п.) Вызов CashMatic.Print.PrintOut() позволяет получить текст для печати по шаблону печати NDemia CashMatic, с обработкой всех макроблоков, макроимён и т.п. (этот текст после вызова CashMatic.Print.PrintOut() доступен через чтение свойства CashMatic.Print.Text), а затем использовать этот текст для печати альтернативным способом. Исправление, сделанное в NDemia CashMatic v.2.7.2, позволяет сохранить атрибуты форматирования в строке печати, если выставлен параметр печати "Использовать коды форматирования" http://www.ndemia.com/CashMatic/u-home/UG/setup/Printer/params.php Заметим, что диалог "Параметры вывода на печать" в текущей версии NDemia CashMatic не вызывается в режиме "Принтер не подключен", но можно вызвать его для режима Порт или Файл, и затем переключиться на "Не подключен". Совместимость: указанная доработка выпущена в релизе 2.7.2.317 SUR0199: Устранение проблемы: системная ошибка при обращении к COM-порту в сервисе купюроприёмника (BVS) или принтера (PS) может привести к внезапному завершению работы службы NDemia CashMatic Kiosk или приложения NDemia CashMatic KioskBrowser. В NDemia CashMatic обнаружена проблема: если при обращении к системным функциям поддержки COM-порта Windows произойдёт непредусмотренная ошибка (которая может быть вызвана аппаратной проблемой порта, в том числе временной и краткосрочной), то такая ошибка может привести к внезапному завершению работы службы NDemia CashMatic Kiosk (CMKiosk.exe) или даже к закрытию приложения NDemia CashMatic KioskBrowser. В отладочных логах сервисов купюроприёмника (BVS) или принтера (PS) такие ошибки записываются с сообщением «Сбой вызова ClearCommError, ошибка ...». (В случае ошибки, вызванной переходом в режим энергосбережения — см. SUR0197) В релизе NDemia CashMatic v.2.7.2.329 сделана соответствующая доработка: при непредусмотренных ошибках COM-порта нештатно завершается только соответствующий сервис (BVS или PS), без завершения процесса сервиса (CMKiosk.exe или KioskBrowser.exe). NDemia CashMatic всё равно становится неработоспособным, но это хотя бы позволяет пользовательскому интерфейсу нормально уйти в состояние ошибки. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Enable Port Error Abort и присвоить ему ненулевое значение (см. SUR0216) SUR0200: Устранение проблемы: команда cmkiosk/test не выдаёт экранное сообщение под Windows Vista и выше. В NDemia CashMatic обнаружена проблема: при установке программного продукта под Windows Vista (и выше) неправильно работает команда «cmkiosk/test». Файл cmkiosk.exe (входит в комплект NDemia CashMatic) – это исполняющий модуль службы NDemia CashMatic Kiosk. Команда «cmkiosk/test» используется для интерактивной проверки, запущена ли в данный момент служба. Если служба запущена (установлена, зарегистрирована и выполняется), то она должна выдать экранное сообщение (отдельное всплывающее окно). Обнаружилось, что под Windows Vista это сообщение подавляется. В NDemia CashMatic v.2.7.2 изменён способ выдачи экранного сообщения из службы, теперь под Windows Vista сообщение выдаётся так же, как и под предыдущими версиями Windows. Информация для пользователей заказных сборок NDemia CashMatic: экранное сообщение команды «cmkiosk/test» под Windows Vista (и выше) поддерживается в NDemia CashMatic, начиная с релиза 2.7.2.323 (от 27.09.2012) SUR0201: Устранение проблемы: под Windows Vista и выше при нештатном завершении (внутренней ошибке) службы NDemia CashMatic Kiosk в журнал событий «Система» записываются неправильные сообщения. Обнаружена проблема, проявляющаяся при аварийном (нештатном) завершении службы NDemia CashMatic Kiosk (CMKiosk.exe) (при работе под Windows Vista и выше). При аварийном (нештатном) завершении службы в журнал событий «Система» записывается сообщение с кодом 7024 (источник: Service Control Manager), текст (первая фраза): «Служба "Служба NDemia CashMatic Kiosk" завершена из-за внутренней ошибки». Далее под Windows XP записывается собственный код ошибки службы (в десятичном и шестнадцатеричном виде), а под Windows Vista и выше записывается текстовое сообщение, соответствующее коду ошибки по системному списку кодов ошибок Windows. Служба NDemia CashMatic Kiosk имеет собственные коды нештатного завершения, для которых не предусмотрено соответствие ошибкам Windows, в результате в журнал записываются странные диагностические сообщения, не имеющие отношения к действительности. Например, при неожиданном прекращении сервиса купюроприёмника (BVS) служба CMKiosk.exe завершается с кодом ошибки 52. При этом в журнал событий Windows «Система» записывается сообщение: под Windows XP: Служба "Служба NDemia CashMatic Kiosk" завершена из-за внутренней ошибки 52 (0x34). под Windows Vista и выше: Служба "Служба NDemia CashMatic Kiosk" завершена из-за внутренней ошибки Вы не подключены, поскольку такое же имя уже существует в этой сети. Для присоединения к домену откройте компонент панели управления "Система", измените имя компьютера и повторите попытку. Для присоединения к рабочей группе выберите другое имя рабочей группы.. (это сообщение в данном случае не имеет смысла и дезориентирует пользователя любой квалификации) Для устранения проблемы решено изменять знак кода завершения на отрицательный — тогда код ошибки не будет совпадать с зарезервированными кодами Windows. В этом случае под Windows Vista и выше: Служба "Служба NDemia CashMatic Kiosk" завершена из-за внутренней ошибки %%-52. Если по какой-либо причине требуется восстановить коды ошибок предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Positive ServiceSpecificExitCode и присвоить ему ненулевое значение (см. SUR0216) Совместимость: изменение знака кода нештатного завершения CMKiosk поддерживается в релизе 2.7.2.329 SUR0202: Устранение проблемы: в некоторых случаях не воспроизводятся звуковые сообщения NDemia CashMatic при работе под Windows Vista / Windows 7. В NDemia CashMatic обнаружена проблема: при использовании службы NDemia CashMatic Kiosk под Windows Vista / Windows 7 не вопроизводятся звуковые сообщения (не работают команда PLAY и объект CashMatic.Sound). Данная проблема устранена в NDemia CashMatic v.2.7.2. Для воспроизведения звуковых сообщений службе NDemia CashMatic Kiosk под Windows Vista / Windows 7 требуется дополнительный процесс, работающий в режиме пользователя: CMkiosk.umap (UMAP – User Mode Application Process), см. SUR0146. Под Windows XP этот процесс не запускается. Регулировка громкости звуков NDemia CashMatic в микшере аудио-приложений Windows Vista и выше относится к системным звукам. Совместимость: указанная проблема устранена в релизе NDemia CashMatic v.2.7.2.329. SUR0203: Устранение проблемы: копия программы удаления Uninstall.CashMatic.exe остаётся в папке временных файлов до перезагрузки Windows. В NDemia CashMatic обнаружена проблема: при удалении NDemia CashMatic «самоудаление» копии программы удаления в папке временных файлов (Uninstall.CashMatic.exe) происходит только после перезагрузки Windows (при этом пользователю не сообщается о необходимости перезагрузки, если все остальные файлы и папки программы успешно удалились). В NDemia CashMatic v.2.7.2.329 изменён порядок «самоудаления», временная копия программы удаления полностью удаляется после завершения своей работы. SUR0204: Устранение проблемы: при удалении NDemia CashMatic папка продукта иногда не удаляется даже после перезагрузки компьютера. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при удалении программного продукта NDemia CashMatic, в случаях, когда для окончательного удаления требуется перезагрузка компьютера, после перезагрузки корневая папка продукта ("\Program Files\NDemia\CashMatic") не удаляется (содержит некоторые файлы). В NDemia CashMatic v.2.7.2 сделано соответствующее исправление. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0205: Устранение проблемы: работа программы "Удаление NDemia CashMatic" не прерывается по команде Отмена в основной фазе выполнения. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: если при удалении NDemia CashMatic в основной фазе выполнения (при удалении файлов, папок и записей в системном реестре) нажать кнопку Отмена, и затем подтвердить отмену удаления ответом Да на вопрос "Прервать операцию?", то основная фаза удаления всё равно выполняется до конца. В NDemia CashMatic v.2.7.2 сделано соответствующее исправление, удаление программного продукта NDemia CashMatic можно прервать. Примечание: в текущей реализации удаление прерывается "безоткатно", т.е. данные, удалённые к моменту прерывания, не восстанавливаются. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0206: Устранение проблемы: при удалении NDemia CashMatic в окне выполнения не отображается удаление данных из системного реестра Windows. В NDemia CashMatic v.2.7.2 устранена проблема, обнаруженная в предыдущих версиях: при удалении программного продукта NDemia CashMatic в окне выполнения программы удаления не отображается удаление настроек и параметров, записанных в системном реестре. В NDemia CashMatic v.2.7.2 сделано соответствующее исправление. Совместимость: указанная доработка выпущена в релизе 2.7.2.321. SUR0207: Устранение проблемы: при установке предварительного выпуска v.2.7.2.323 поверх предыдущих версий под Windows Vista/7 в некоторых случаях требуется активация лицензионного ключа. В ходе разработки NDemia CashMatic v.2.7.2 установлена проблема: при установке под Windows Vista/7 предварительного выпуска NDemia CashMatic v.2.7.2.323 поверх предыдущих версий продукта, прошедшего регистрацию или активацию, в некоторых случаях требуется активация лицензионного ключа (причём, если ранее установленный продукт прошёл только регистрацию, то всё равно требуется именно активация ключа, повторная регистрация уже невозможна). Проблема вызвана доработками совместимости с Windows Vista/7 - изменился механизм проверки лицензии NDemia CashMatic, определение идентификатора жёсткого диска в некоторых случаях даёт другой результат, чем в предыдущих версиях. Проблема устранена: механизм проверки лицензии NDemia CashMatic пересмотрен ещё раз, предусмотрена допустимость идентификатора жёсткого диска, полученного в предыдущих версиях. Однако при даунгрейд-установке версии v.2.7.2.323 и ранее поверх более новой (от v.2.7.2.323) активация ключа всё равно может потребоваться. Совместимость: указанное исправление выпущено в релизе 2.7.2.329. SUR0208: Устранение проблемы: иногда в апплете панели задач (CMStartApp.exe) появляется ложное сообщение о необходимости регистрации программного продукта или активации лицензионного ключа. Обнаружена проблема в NDemia CashMatic версий ранее v.2.7.2: в апплете панели задач (CMStartApp.exe) может появиться ложное сообщение о необходимости регистрации программного продукта или активации лицензионного ключа, непосредственно после того, как регистрация или активация только что успешно выполнена (возможно, через несколько секунд). Такая возможность достаточно маловероятна и на практике случается очень редко, но, тем не менее, имеет место. Характерная особенность таких ложных соощений — часы реального времени стоят на месте (обычно, в нормальных сообщениях, считаются секунды). Причина проблемы — недостаточная синхронизация выдачи экранных сообщений с параллельно выполняющимся процессом отслеживания состояния лицензии. Пользователь может увидеть на экране «забытое» сообщение, от которого потеряна информация о необходимости его убрать. Соответствующие исправления сделаны в NDemia CashMatic v.2.7.2.329 («забытых» и «ложных» сообщений больше не должно быть). SUR0209: Устранение проблемы: программный продукт NDemia CashMatic в некоторых случаях не может быть зарегистрирован/активирован, если системный том Windows расположен на зеркалированном (RAID) жёстком диске. В NDemia CashMatic обнаружена проблема: программный продукт NDemia CashMatic в некоторых случаях не может быть зарегистрирован/активирован, если системный том Windows расположен на зеркалированном (RAID) жёстком диске. Проблема связана со сложной идентификацией «системного диска» - идентификатор системного диска вычисляется из списка номеров жёстких дисков, используемых в RAID-массиве. Данная проблема является главным образом теоретической — ни один пользователь пока не устанавливал NDemia CashMatic на зеркалированные диски. Проблема с составными идентификаторами устранена, однако в текущей реализации составной идентификатор RAID-массива связан только с одним определённым набором дисков, любые перестановки дисков потребуют повторно активировать лицензионный ключ продукта. Совместимость: указанное исправление выпущено в релизе 2.7.2.323. SUR0210: Устранение проблемы: в некоторых случаях при регистрации программного продукта или активации лицензионного ключа не удаётся получить идентификацию купюроприёмника. В NDemia CashMatic обнаружена проблема: если программа регистрации и активации NDemia CashMatic (CMRegUI.exe) запускается при работающем приложении NDemia CashMatic KioskBrowser, и приложение не настроено на использование службы NDemia CashMatic Kiosk (см. вкладку Интерфейс в Панели управления NDemia CashMatic), при регистрации программного продукта или активации лицензионного ключа не удаётся получить идентификацию купюроприёмника, работающего по протоколу CCNET (при этом сам купюроприёмник может быть правильно подключен и правильно настроен в NDemia CashMatic). Если пользователь игнорирует (пропускает) сообшение о невозможности определить идентификатор купюроприёмника, то регистрация или активация выполняется неправильно, в результате купюроприёмник после этого не принимает купюры (хотя и работает). Данная ситуация связана с тем, что CMRegUI получает идентификацию купюроприёмника через службу NDemia CashMatic Kiosk (CMKiosk). Если при этом запущен KioskBrowser, настроенный не использовать службу, то он использует внутренние драйверы, которые захватывают порт и лог купюроприёмника, поэтому CMKiosk не может ни открыть порт, ни записать, что не удалось его открыть. Проблема устранена в NDemia CashMatic v.2.7.2. Если CMRegUI собирается обратиться к службе CMKiosk и обнаруживает, что в это время работает KioskBrowser, то KioskBrowser закрывается, а служба перезапускается. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине нужно игнорировать возможные конфликты с текущим режимом приложения NDemia CashMatic KioskBrowser, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore App Services и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0190, SUR0191, SUR0192. SUR0211: Устранение проблемы: после работы программы регистрации и активации (CMRegUI.exe) служба NDemia CashMatic Kiosk (CMKiosk.exe) может быть запущена или остановлена. В NDemia CashMatic обнаружена проблема: после работы программы регистрации и активации (CMRegUI.exe), независимо от результата, служба NDemia CashMatic Kiosk (CMKiosk.exe) может остаться запущенной или остановленной, независимо от состояния до запуска CMRegUI — конечный статус запуска службы заранее не определим, никакая логика не прослеживается. Ситуация объясняется тем, что программа CMRegUI.exe, если запускала или перезапускала службу в ходе своей работы, то в конце пытается её закрыть. Установлено, что проблема связана с неточной синхронизацией запуска и остановки службы NDemia CashMatic Kiosk - возможна ситуация, когда служба перезапускается и сразу же закрывается, причём закрываться может начать раньше, чем закончится перезапуск, поэтому закрытие в итоге может не начаться из-за системной ошибки. Присутствует элемент случайности, поэтому конечное состояние не определено. В v.2.7.2.329 синхронизация запуска службы уточнена, указанная проблема устранена. SUR0212: Устранение проблемы: при регистрации программного продукта или активации лицензионного ключа приложение NDemia CashMatic KioskBrowser переходит на экран отказа. В NDemia CashMatic обнаружена проблема: если выполняется регистрация программного продукта или активация лицензионного ключа, и при этом запущено приложение NDemia CashMatic KioskBrowser, то в конце процедуры KioskBrowser внезапно переходит на экран отказа («Терминал временно не работает...»). При этом в отладочном логе приложения на момент отказа записываются строки «KBRM_BVSTATUS_FAILURE: состояние 00000008» «Возбуждается отказ "BillValidator"» Далее, если всё настроено правильно, и купюроприёмник подключен и работает, то через несколько секунд приложение может перейти на стартовый экран и продолжить нормально работать (но иногда требуется перезапуск KioskBrowser). Ситуация объясняется тем, что программа CMRegUI.exe при успешном выполнении регистрации программного продукта или активации лицензионного ключа перезапускает службу NDemia CashMatic Kiosk (CMKiosk.exe). Если приложение KioskBrowser в это время запущено (и настроено на использование службы), то оно теряет связь со службой (и, таким образом, с оборудованием, в первую очередь с купюроприёмником), и реагирует на это как на сбой купюроприёмника. Если после этого служба сможет запуститься (см. SUR0210), то приложение вернётся на стартовый экран, если нет — то экран отказа останется до перезапуска приложения. Проблема устранена в NDemia CashMatic v.2.7.2: при необходимости перезапустить службу NDemia CashMatic Kiosk программа CMRegUI.exe сначала закрывает приложение NDemia CashMatic KioskBrowser, потом перезапускает службу, и потом снова запускает приложение уже после перезапуска службы. Совместимость: указанная доработка выполнена в релизе 2.7.2.329. Если по какой-либо причине требуется восстановить поведение предыдущих версий NDemia CashMatic, то нужно в разделе системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\NDemia\CashMatic\Unfix создать параметр REG_DWORD Ignore Restart Order и присвоить ему ненулевое значение (см. SUR0216) см. тж SUR0149, SUR0151, SUR0190, SUR0191, SUR0192. SUR0213: Устранение проблемы: если апплет панели задач показывает сообщение о необходимости регистрации/активации NDemia CashMatic, то при открытии меню значка NDemia CashMatic обязательно запускается программа регистрации/активации. В NDemia CashMatic установлена проблема: если апплет NDemia CashMatic в панели задач Windows показывает сообщение о необходимости регистрации программного продукта или активации лицензионного ключа, то при попытке открыть меню значка NDemia CashMatic правой кнопкой мыши каждый раз запускается программа регистрации/активации (CMRegUI). Такое поведение программы не предусмотрено и требует доработки. Проблема устранена в NDemia CashMatic v.2.7.2.329. Сделаны следующие изменения: 1. уточнена обработка кнопок мыши при щелчкам по сообщениям и значку апплета панели задач NDemia CashMatic; 2. при открытом меню значка NDemia CashMatic всплывающие сообщения не выдаются. SUR0214: Устранение проблемы: ошибки при перезапуске службы NDemia CashMatic Kiosk после активации лицензионного ключа, если до активации служба не могла работать. В NDemia CashMatic обнаружена проблема: если при запуске программы активации лицензионного ключа служба NDemia CashMatic Kiosk по какой-либо причине не может быть запущена, то после активации лицензионного ключа будет сделана ещё несколько попыток запустить и перезапустить службу, при этом может произойти ошибка запуска службы - в NDemia CashMatic версий до v.2.7.0 включительно возможна ошибка 1056 («Одна копия службы уже запущена»), в NDemia CashMatic v.2.7.1 — возможна ошибка 1052 («Команда неуместна для данной службы»). Дополнительно при этом может не определиться идентификация купюроприёмника CCNET, даже если он нормально подключен и настроен. Причина этих ошибок установлена точно: при запуске службы не выполняется ожидание её полного запуска, из-за чего слишком быстро выполняется попытка получить идентификацию купюроприёмника, или слишком быстро делается попытка перезапустить службу Соответствующие исправления сделаны в NDemia CashMatic v.2.7.2.329 — при каждом запуске службы NDemia CashMatic Kiosk программа CMRegUI.exe дожидается полного запуска службы. SUR0215: Устранение проблемы: после ошибки при вводе лицензионных данных «вручную» не запускается служба NDemia CashMatic Kiosk. (дополнительно к SUR0062 от v.2.7.0) В NDemia CashMatic обнаружена проблема: если при лицензировании «вручную» ввести неправильный лицензионный ключ или файл лицензионных данных, то лицензионные данные становятся полностью нечитаемыми, однако служба NDemia CashMatic Kiosk при этом не запускается даже в ограниченном режиме (как было заявлено в NDemia CashMatic v.2.7.0, SUR0062). Установлено, что в этом случае в v.2.7.0/v.2.7.1 лицензионные данные не признаются недоступными (однако эти лицензионные данные не разрешают использование службы). Соответствующие исправления сделаны в NDemia CashMatic v.2.7.2.329 — при использовании неправильного лицензионного ключа или неправильного файла лицензионных данных разрешается запуск службы NDemia CashMatic Kiosk в ограниченном режиме, достаточном для нормального прохождения регистрации программного продукта или активации лицензионного ключа через интернет. SUR0216: Возможность отмены изменений, которые могут существенно повлиять на разработки, основанные на предыдущих выпусках NDemia CashMatic. Программный продукт NDemia CashMatic v.2.7.2 содержит большое количество изменений кода, связанных с устранением проблем, обнаруженных в предыдущих выпусках (в том числе проблем, обнаруженных в предварительных выпусках v.2.7.2). Некоторые исправления/изменения могут оказаться по каким-либо причинам нежелательны для прикладных разработок, основанных на предыдущих и предварительных выпусках. Поэтому в NDemia CashMatic v.2.7.2 предусмотрена возможность отменить определённые изменения (например, отключить некоторые функции NDemia CashMatic для совместимости с предыдущими выпусками, в которых эти функции не работали). ВНИМАНИЕ: все перечисленные ниже параметры не открывают новые возможности, а отключают исправления и возвращают старые проблемы. Не рекомендуется применять никакие из этих параметров без консультации со специалистом NDemia Ltd. Вводится новый раздел системного реестра Windows для NDemia CashMatic: HKEY_LOCAL_MACHINE\Software\NDemia\CashMatic\Unfix Раздел Unfix по умолчанию не создаётся, если существует при старте программы, то открыт постоянно. В разделе Unfix поддерживаются следующие параметры: 1. REG_DWORD "Check CCNET PartNumber" — при проверке лицензионных данных учитывать в идентификаторе купюроприёмника CCNET компонент PartNumber (см. SUR0187); 2. REG_DWORD "Disable AutoHide" — если задано ненулевое значение, то управление видимостью окна возвращается к v.2.7.0/v.2.7.1 – в начале работы окно не скрывается до загрузки браузера, в конце работы окно скрывается сразу, до фактического завершения скриптов текущей страницы (см. SUR0119); 3. REG_DWORD "Disable CashFailureMonitor" — если задано ненулевое значение, то не работает мониторинг состояния и ошибок купюроприёмника (см. SUR0184); 4. REG_DWORD "Disable CashFailureMonitor AutoRestart" — если задано ненулевое значение, то мониторинг состояния купюроприёмника не переходит в режим ожидания отказа при принудительном программном сбросе отказа “BillValidator” (см. SUR0140); 5. REG_DWORD "Disable CheckNavigate MainBrowser" — если задано ненулевое значение, то контроль URL-адресов переходов распространяется на вложенные HTML-документы (элементы frame и iframe) (см. SUR0121); 6. REG_DWORD "Disable CheckScriptErrorHandler" — если при открытии HTML-страницы задано ненулевое значение, то не устанавливается внутренний обработчик ошибок javascript (см. SUR0185); 7. REG_DWORD "Disable StackerDisposeMonitor" — если задано ненулевое значение, то не работает мониторинг снятия-установки стекера купюроприёмника (см. SUR0184); 8. REG_DWORD "Disable UI PostNavigate" — если задано ненулевое значение, то после закрытия модального диалога (например, javascript alert) не делаются автоматические переходы на страницу неисправности (если во время диалога произошёл отказ) и на стартовую страницу (если во время диалога на странице неисправности были устранены все отказы) (см. SUR0167); 9. REG_DWORD "Enable CheckNavigate javascript" — если задано ненулевое значение, то контроль URL-адресов переходов распространяется на гиперссылки с URL-протоколом "javascript:" (см. SUR0152); 10. REG_DWORD "Enable PostClose" — если задано ненулевое значение, то при поступлении внешней команды (от другого приложения) завершить работу команда не игнорируется, но запоминается и будет выполнена, как только окно приложения станет активным (см. SUR0168); 11. REG_DWORD "Enable Port Error Abort" — если задано ненулевое значение, то при непредусмотренной ошибке COM-порта закрыть процесс службы NDemia CashMatic Kiosk (CMKiosk.exe) или (при работе без службы) процесс KioskBrowser.exe (см. SUR0199); 12. REG_DWORD “Hold Closed Browser” - если задано ненулевое значение, то при самозакрытии браузера из javascript (window.close()) удерживать открытым окно с последним изображением, сформированным браузером (см. SUR0172); 13. REG_DWORD “Ignore App Services” - если задано ненулевое значение, и KioskBrowser настроен на работу без службы NDemia CashMatic Kiosk (CMKiosk), то игнорировать возможный конфликт доступа к оборудованию между KioskBrowser.exe и CMKiosk.exe. (см. SUR0190, SUR0191, SUR0192, SUR0210); 14. REG_DWORD “Ignore CashSession ActiveLock” - если задано ненулевое значение, то игнорировать недопустимые изменения свойства Active объекта CashMaticCashSession (не вбрасывать ошибку при недопустимом изменении). (см. SUR0139); 15. REG_DWORD "Ignore Port Power Down" — если задано ненулевое значение, и при обработке ошибки COM-порта в режиме пониженного электропитания произошла системная ошибка, то не делается повторных попыток обработать ситуацию (см. SUR0197); 16. REG_DWORD "Ignore PowerMode" — если задано ненулевое значение, то приложения и сервисы NDemia CashMatic не противодействуют энергосберегающему отключению питания, всплытию экранной заставки и т.п. (см. SUR0120); 17. REG_DWORD "Ignore Restart Order" — если задано ненулевое значение, то Панели управления NDemia CashMatic разрешается при необходимости сначала остановить или перезапустить службу NDemia CashMatic Kiosk, а потом остановить или перезапустить приложение NDemia CashMatic KioskBrowser (см. SUR0149, SUR0151, SUR0190, SUR0191, SUR0192, SUR0212); 18. REG_DWORD "Positive ServiceSpecificExitCode" — если задано ненулевое значение, и произошло нештатное завершение службы NDemia CashMatic Kiosk (CMKiosk.exe), то знак кода завершения (внутренней ошибки) службы не изменяется на отрицательный (см. SUR0201); 19. REG_DWORD "Session Reset on Exit" — если задано ненулевое значение, то при закрытии окна приложения KioskBrowser выполняется автоматический сброс платёжного сеанса (вызов CashMatic.Session.Reset()) (см. SUR0125). Совместимость: раздел реестра Unfix и указанные параметры поддерживаются в релизе 2.7.2.329.