[ОТВЕТИТЬ]
17.07.2007 10:37
Dim
 
А почему не поставить Кассовый модуль отдельно от Сервера СМ куда-нибудь на операторский компьютер?
17.07.2007 10:49
Vovantus
 
Цитата:
Dim А почему не поставить Кассовый модуль отдельно от Сервера СМ куда-нибудь на операторский компьютер?
.. не хочу завязывать функцию выгрузки на одного человека/компьютер. Вариант с ММС самый рациональный, но мне не хватает знаний чтоб подключиться через неё к кассовику Этот вопрос уже больше винды, чем СМ. Думаю, нуна тему отдельную создавать!
17.07.2007 10:56
Dim
 
Цитата:
Vovantus .. не хочу завязывать функцию выгрузки на одного человека/компьютер. Вариант с ММС самый рациональный, но мне не хватает знаний чтоб подключиться через неё к кассовику Этот вопрос уже больше винды, чем СМ. Думаю, нуна тему отдельную создавать!
А терминально к серверу подключиться и выгрузить?
20.08.2007 06:15
Vovantus
 
В общем, реализовал я свою мысль и сделал систему выгрузок/приёмок данных с сервера/на кассы в ручном режиме по требованию. Всё работает, но есть некоторые мелкие нюансы, которые не дают мне покоя. Например, если за день ни разу не было ни выгрузок на кассы ни приёма оперсводки, то после того как кто-нить поставит в очередь заявку на обработку оперсводки, то приходится очень долго ждать, пока сервак сначало выгрузит данные из базы и только потом начинает принимать оперсводку в виде нескольких сотен чеков. Поэтому, почитал ещё раз тему и нашёл сообщение:

Цитата:
kadr Либо просто в табличке smdepotschedule выставлять необходимое время начала выгрузки, интервал, время окончания (с таким учётом чтобы выгрузка происходила один раз), а потом перезапускать службу, чтобы подхватились новые параметры. Когда опять понадобиться выгрузка изменяешь данные, перезапускаешь кассовый модуль и он сам выгружает.
Можно поподробнее расписать эту мысль? Как я понял, все настройки кассового сервера, связанные с временем, сохраняются в таблице. Т.е. в моём случае можно попробовать изменить время выгрузки таким образом, чтобы при старте кассового сервера выгрузки не было вообще, а обработалась только оперсводка! Это реально?
20.08.2007 07:41
kadr
 
Цитата:
Vovantus Можно поподробнее расписать эту мысль? Как я понял, все настройки кассового сервера, связанные с временем, сохраняются в таблице. Т.е. в моём случае можно попробовать изменить время выгрузки таким образом, чтобы при старте кассового сервера выгрузки не было вообще, а обработалась только оперсводка! Это реально?
Чтобы писать поподробнее нужен более подробный вопрос.
А настройки действительно все хранятся в базе и можно настроить так что пункт выгрузка будет просто отключен, соотвественно при включении кассового модуля никакой выгрузки не будет.
20.08.2007 09:03
Vovantus
 
Цитата:
kadr А настройки действительно все хранятся в базе и можно настроить так что пункт выгрузка будет просто отключен, соотвественно при включении кассового модуля никакой выгрузки не будет.
Вот! Это идеальный вариант! Именно так и нужно зделать. Если будет запрос на обработку только оперативных данных, то какой смысл выгружать данные ИЗ базы.. А каким образом можно это реализовать? Подскажите в какую сторону копать?
20.08.2007 09:52
kadr
 
Похоже я немного ошибся, не нашёл где в БД хранится флаг выгружать/не выгружать (но есть очень похожий на это раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Service Plus\SuperMag2000\Categories\SMCash\Server\Databases\<SID>).
Нет желания играться на рабочих базах, проверь сам как, поведёт себя СуперМаг если у него совсем не будет расписания для выгрузки. Может он тогда ничего и не будет выгружать
20.08.2007 10:15
Vovantus
 
Цитата:
kadr Нет желания играться на рабочих базах, проверь сам как, поведёт себя СуперМаг если у него совсем не будет расписания для выгрузки. Может он тогда ничего и не будет выгружать
у меня тоже нет желания эксперементировать на рабочем сервере. Максимум что себе позволил - это поменял значение HKEY_LOCAL_MACHINE\SOFTWARE\Service Plus\SuperMag2000\Categories\SMCash\Server\Databases\<SID>\flags c 1 на 0. В итоге при старте сервера действительно не было ни приёма ни передачи данных. Тупо все места хранения прописаны и всё. Но это не вариант, хотелось бы знать как можно включать/выключать приём/передачу данных
20.08.2007 11:37
kadr
 
Цитата:
Vovantus у меня тоже нет желания эксперементировать на рабочем сервере.
"Ну на "нет" и суда нет"
20.08.2007 12:06
Vovantus
 
.. я это к тому, что правка реестра в приведённом выше разделе, похоже, не поможет.. если параметру flags присвоить значение 0 - кассовый сервер вообще действий ни какаих не будет производить, поэтому смысл что-то там менять. Буду рыть в другом направлении.
20.08.2007 12:41
kadr
 
а я не про реестр говорил когда предлагал лишить кассовый модуль расписания выгрузки
21.08.2007 14:08
Vovantus
 
что-то я мысль потерял о чём говорили Нужно каким-то образом управлять функцией включения/выключения выгрузки/приёмки данных. Провёл простой эксперимент. Запустил монитор реестра, открыл настройки кассового сервера, включил лог в мониторе. Результат: при включении/выключении выгрузки/приёмки данных кассовым сервером, в реестре НИ ЧЕГО НЕ ПРОИСХОДИТ, т.е. настройки нужно искать в самой базе. Кто подскажет, в какую сторону рыть?
21.08.2007 15:16
kadr
 
а ты мониторил что происходит при остановке/запуске кассового сервера? у меня закрадывается подозрение, что при включении читается реестр, а при выключении пишется
22.08.2007 01:50
Vovantus
 
Цитата:
kadr а ты мониторил что происходит при остановке/запуске кассового сервера? у меня закрадывается подозрение, что при включении читается реестр, а при выключении пишется
.. нет. Изначально цель ставилась другая. Изложу мысль. Если поставить в настройках кассового сервера интервал выгрузки равный, к примеру, 3 мин., то каждые три минуты, как и задумано, сервак выгружает данные. НО! Если не останавливая кассового сервера, отжать кнопку "выгрузка/приём", то нифига не будет выгружаться/приниматься. Вот этот момент я и отслеживал в реестре. Собственно, интересовало куда ставится метка, соответствующая нажатой/отжатой кнопке "выгрузка/приём". Как писалось выше, монитор реестра не отследил никаких обращений в этот момент. А если нажать на кнопку "перечитать", вот тогда уже происходит очень много обращений к реестру, там уже не только кассовик обращается, но и сервис оракла лезет. Таже картина наблюдается и при изменении настоек времени. Ещё заметил такой момент: если при включенном кассовом сервере отжать кнопку выгрузка/приём, то после перезагрузки кассовика, она автоматом включаются. В общем это были мысли вслух, ни какой полезной информации я не усвоил, вопрос остаётся в подвешенном состоянии..
22.08.2007 05:25
Sullen
 
Я может что-то не понял, но какую метку вы ищете?
Представьте, что это не кнопка, а флажок. При наступлении события (установленный интервал времени), запускается функция приема/выгрузки. Если флажок "истина" (нажата кнопка), то функция отрабатывает свои обязанности, в противном случае ничего не происходит. И не нужны нигде никакие метки.... *171
22.08.2007 05:44
Vovantus
 
.. ищу где именно проверяется этот флажок и как можно его изменять не используя MMC!
22.08.2007 06:31
akonev
 
Цитата:
Vovantus ... если при включенном кассовом сервере отжать кнопку выгрузка/приём, то после перезагрузки кассовика, она автоматом включаются. В общем это были мысли вслух, ни какой полезной информации я не усвоил, вопрос остаётся в подвешенном состоянии..
здесь вся полезная информация есть.
похоже, что нигде не сохраняются значения этих флажков.
это просто программные переменные.
22.08.2007 06:39
Vovantus
 
спасибо за мысль, возможно, что так и есть на самом деле
22.08.2007 07:11
kadr
 
Цитата:
Vovantus .. я это к тому, что правка реестра в приведённом выше разделе, похоже, не поможет.. если параметру flags присвоить значение 0 - кассовый сервер вообще действий ни какаих не будет производить, поэтому смысл что-то там менять. Буду рыть в другом направлении.
поставь значение = 3 и тогда у тебя при активизации БД будет активна только зарузка. Эти параметры в реестр записываются если на самой базе в кассовом модуле из контекстного меню выбрать "Все задачи"-"Параметры" и поставить соотвествующие флаги.
22.08.2007 07:36
Vovantus
 
Цитата:
kadr поставь значение = 3 и тогда у тебя при активизации БД будет активна только зарузка. Эти параметры в реестр записываются если на самой базе в кассовом модуле из контекстного меню выбрать "Все задачи"-"Параметры" и поставить соотвествующие флаги.
Спасибо, чувак, ты гений! Всё зашибись работает! Если поставить 5, то идёт только выгрузка данных, а приём неактивен. Спасибо ещё раз, очень ценная информация
22.08.2007 07:44
OlegON
 
Кстати, нельзя забывать, что mmc-надстройка управляет сервисом ;) Т.е. в данном случае кассовик работает COM-объектом со свойствами, среди которых, как я помню, есть и выгрузка. Сразу скажу, что описания готового у меня нет, но когда расковыривал, вроде что-то видел.
22.08.2007 08:02
Vovantus
 
знаний, связанных с COM-объектами, у меня нет Поэтому буду тупо менять значение реестра в зависимости от того что требуется, приёмка или выгрузка Только что проверил на рабочем серваке - всё отлично работает!
25.06.2008 16:46
Mihon
 
Подниму старую тему...
Что мы умеем:
1. Запускать/останавливать службу КМ (можно удаленно)
2. Настраивать расписание выгрузки/приема (выгрузки - можно в опред. время)
Не сумели, насколько я понял, научиться делать принудительную выгрузку "прямо сейчас".
Есть в кассовом модуле кнопка "Выгрузить!" - с двумя вариантами (частичная, полная).
Есть подозрения, что после нажатия кнопки в БД в какую-нибудь табличку рисуется флажок, типа "выгружаем сейчас". Или результат нажатия кнопки это внутренняя процедура самого КМ?
Хочется написать программку с кнопочкой "Выгрузить!", которая делала бы тоже самое.
Прошло время, может быть кто столкнулся и разобрался?
25.06.2008 17:44
kadr
 
я вот не помню писал или нет
Цитата:
UPDATE SUPERMAG.SMCASHDESKS TMAIN SET TMAIN.STATUS = 1 WHERE TMAIN.STATUS = 5
выставление статуса в 1 для того чтобы у активных касс выставился признак "следующая выгрузка полная".
ну соотв. потом поправить время следующей выгрузки в расписании и вуаля - имеем полную выгрузку по нашему желанию, средствами КМ без нажатия на кнопку "Выгрузить" и выбора опции "полная"
После выгрузки КМ сам скинет этот флаг, таким образом можем и проконтролировать была ли полная выгрузка.
26.06.2008 09:16
Mihon
 
Цитата:
kadr я вот не помню писал или нет

выставление статуса в 1 для того чтобы у активных касс выставился признак "следующая выгрузка полная".
ну соотв. потом поправить время следующей выгрузки в расписании и вуаля - имеем полную выгрузку по нашему желанию, средствами КМ без нажатия на кнопку "Выгрузить" и выбора опции "полная"
После выгрузки КМ сам скинет этот флаг, таким образом можем и проконтролировать была ли полная выгрузка.
Надо, чтобы в прикладной программе по кнопочке "выгрузить" сразу начаналась выгрузка на кассы (не важно, полная и ли нет, по желанию).
Если просто менять расписание в КМ, то, насколько я знаю, чтобы изменения вступили в силу, требуется перезапуск службы КМ.
Может быть, кто-нибудь знает другой способ?
26.06.2008 09:30
kadr
 
не совсем понял в чём сейчас проблема, вот твои слова
Цитата:
Mihon Что мы умеем:
1. Запускать/останавливать службу КМ (можно удаленно)...
А принудительной выгрузки "Прямо сейчас" не существует даже в КМ от С+, там так честно и пишется "команда поставлена в очередь на выполнение" (дословно не помню).

По поводу другого способа - может стоить дать доступ к управлению КМ от С+ пользователям, там ведь всё есть и ничего изобретать не надо, хотя этот способ и отклоняется от темы топика.
26.06.2008 10:20
Mihon
 
Цитата:
kadr не совсем понял в чём сейчас проблема, вот твои слова
Ага. Умеем. Но это не есть правильно. Все равно что делать стоп/старт базы. Ну не для этого случая. Вот.

Цитата:
kadr А принудительной выгрузки "Прямо сейчас" не существует даже в КМ от С+, там так честно и пишется "команда поставлена в очередь на выполнение" (дословно не помню).
Именно так. В таком случае, существует или табличка, или папочка, или еще что-то, где находится эта очередь, и должен быть способ добавить туда задание. Иначе писалось бы "расписание подкорректировано, чтобы выгрузка началась с минуты на минуту. вот вот сейчас.."

Цитата:
kadr По поводу другого способа - может стоить дать доступ к управлению КМ от С+ пользователям, там ведь всё есть и ничего изобретать не надо, хотя этот способ и отклоняется от темы топика.
Операторы дубы. И мороки полно. Легче тогда вообще ничего не делать. Вариант-то он вариант, и работать будет прекрасно, но, к сожалению, не подходит...
26.06.2008 10:30
kadr
 
Цитата:
Mihon ...
ОФФ: Прошу прощения, но дубов кто набирает? Значит в СМ они могут работать, а нажать 2-3 кнопки в кассовом модуле не смогут? Может ещё и ошибки почтового обмена вы тоже самостоятельно разгребаете?

По теме: Зачем КМ хранить инфу в базе о том что ему кнопку в морде тыкнули? Считал расписание и по нему лезет в БД за данными для касс, ткнули кнопку - полез в БД помимо расписания. Не сервер БД делает выгрузку, а экзешник, который и формирует файлы в указанном тобой каталоге, значит и сама процедура зашита в экзешник, а не хранится в БД. Из этих знаний/предположений я делаю вывод что то что ты хочешь будет новым КМ взамен того что идёт в комплекте от С+.

P.S. можно сделать клиент-серверное приложение (кто-то уже заморачивался, но по другому) - оператор у себя тыкает кнопку в клиентской части, она передаёт сообщение о том что ей ткнули кнопку на серверную часть, которая в свою очередь тыкает кнопку в открытом окне консоли КМ
26.06.2008 10:40
Mihon
 
Цитата:
kadr ОФФ: Прошу прощения, но дубов кто набирает? Значит в СМ они могут работать, а нажать 2-3 кнопки в кассовом модуле не смогут? Может ещё и ошибки почтового обмена вы тоже самостоятельно разгребаете?
Вот у нас так вот. Иначе вообще без операторов сидели бы. А ошибки почтовика действительно мы разгребаем:)

Цитата:
kadr По теме: Зачем КМ хранить инфу в базе о том что ему кнопку в морде тыкнули? Считал расписание и по нему лезет в БД за данными для касс, ткнули кнопку - полез в БД помимо расписания. Не сервер БД делает выгрузку, а экзешник, который и формирует файлы в указанном тобой каталоге, значит и сама процедура зашита в экзешник, а не хранится в БД. Из этих знаний/предположений я делаю вывод что то что ты хочешь будет новым КМ взамен того что идёт в комплекте от С+.
Неужели никак нельзя выцепить эту процедуру?
Может, dll-ные процедуры, или API какое-нибудь... должно же быть что-то...

Цитата:
kadr P.S. можно сделать клиент-серверное приложение (кто-то уже заморачивался, но по другому) - оператор у себя тыкает кнопку в клиентской части, она передаёт сообщение о том что ей ткнули кнопку на серверную часть, которая в свою очередь тыкает кнопку в открытом окне консоли КМ
эт уже изврат


Опции темы


Часовой пояс GMT +3, время: 15:58.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.