13.11.2013 18:51
Роллан
 
Привет всем!
Set Retail 05.02.80.0.13
1С Рарус
проблема такая, позавчера, когда пришел на работу, увидел что робот кристалла грузит полностью все товары на кассы. Это походу запустил один из операторов-приемщиков по ошибке.
Были загружены товары на 82%, я его отменил, т.к. сервер жутко висел.
Проблема началась позже, на кассах когда пробивают товар, цена, ШК и код товара верны, но название вообще другое. На одной кассе если селедка проходит как селедка, то на другой как тазик квадратный! :(
Стали инвалидировать товары по чуть - чуть и грузить на кассы, но все опять встало. Стал грузить товары на каждую кассу отдельно, но думаю это не вариант, грузится ооочень долго и на кассах покупатели не будут ждать.
Как можно решить данную проблему по другому? Есть варинаты?
13.11.2013 21:11
vitamin
 
В настройках сервера постерминалов есть пункт размер пакета, не в confutil. Аля плавная загрузка.
Или стянуть с "правильной" кассы справочники товаров и ш\к мувером, а потом раскидать по остальным
13.11.2013 21:47
Роллан
 
не подскажете точный путь? не найду я его что то, нашел только в конфутил :)
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 821
Размер:	91.4 Кб
ID:	2755  
14.11.2013 10:41
vitamin
 
:connie_testwall: я ж написал не в Confutil. Откройте в 1С список оборудования, откройте на изменение ваш "Cервер Pos терминалов...", над кнопкой закрыть есть размер пакета, введите туда новое значение. Я прописываю 500-1000 в зависимости от настроения. При загрузке в строке состояния будет видно, формирую задание ... (пакет ...)
14.11.2013 10:51
Роллан
 
т.е. прописываю кол-во пакета и нажимаю на полную перезагрузку?
14.11.2013 11:48
Роллан
 
теперь появилась проблема другая: не загружаются товары с 1С в Сет, для проверки загрузки товаров прописываю этот скрипт в скуле:
--после всего перезагрузись службы


--- * - для transfercmd
--- ** - для transfertype
--- *** - для transfertargets
USE ses
---
SELECT
'Всего' 'JobsQueue',
DeviceType 'Тип',
count(*)'Заданий ',
sum(jobrows)'Строк '
FROM jobsqueue (NOLOCK)
GROUP BY devicetype

SELECT
'' 'JobsQueue',
DeviceType 'Тип',
DeviceId 'Устройство',
Status 'Статус',
count(*)'Заданий ',
sum(jobrows)'Строк ',
convert(varchar,min(createat),112) 'min Operday'
FROM jobsqueue (NOLOCK)
GROUP BY devicetype,deviceid,status
ORDER BY devicetype,deviceid
---
SELECT count(*)'ChequeHead - count(*) (taken=0)' FROM chequehead (NOLOCK) WHERE taken=0
---
SELECT count(*)'TrCMD - count(*)*' FROM transfercmd (NOLOCK)
---
SELECT
cmd.transfertype 'Тип*',
CASE WHEN tp.description IS NULL THEN '-' ELSE tp.description END 'Описание по типу**',
count(*) 'Количество*'
FROM transfercmd cmd (NOLOCK)
LEFT JOIN transfertype tp ON tp.id = cmd.transfertype
GROUP BY cmd.transfertype,tp.description
ORDER BY cmd.transfertype,tp.description
---
SELECT
cmd.transfertype 'Тип*',
CASE WHEN tp.description IS NULL THEN '-' ELSE tp.description END 'Описание по типу**',
cmd.targetid 'ID* ',
CASE trg.TargetType
WHEN '1' THEN 'Касса'
WHEN '2' THEN 'Весы'
WHEN '3' THEN 'Принтер'
ELSE 'ERP'
END AS 'Оборудование***',
trg.TargetID 'Номер***',
count(*) 'Количество*',
convert(varchar,min(cmd.datacreate),120) 'min(Опер.день)*',
convert(varchar,max(cmd.datacreate),120) 'max(Опер.день)*',
CASE WHEN (convert(int,max(getdate()),112) - convert(int,min(cmd.datacreate),112)) > 3 THEN ' =!=' ELSE '' END 'Просрочка > 3*'
FROM transfercmd cmd (NOLOCK)
LEFT JOIN transfertype tp ON tp.id = cmd.transfertype
LEFT JOIN transfertargets trg ON trg.id = cmd.targetid
GROUP BY cmd.transfertype,tp.description,cmd.targetid,trg.TargetType,trg.TargetID
ORDER BY cmd.transfertype,tp.description,trg.TargetID,trg.TargetType,cmd.targetid

--- чистка TransferCMD
--DELETE FROM transfercmd WHERE targetid IN (76,91) AND transfertype IN (100) AND convert(varchar,datacreate,112) < '20090701'
--DELETE FROM transfercmd WHERE convert(varchar,datacreate,112) < '20090701'

--- чистка JobsQueue
--update jobsqueue set status=0 where devicetype=1 and deviceid=1
--delete from jobsqueue where devicetype=1 and deviceid in (36)
--delete from jobsqueue where devicetype=1 and convert(varchar,createat,112) < '20091024'
--delete from jobsqueue where devicetype=2 and deviceid in (36)
--delete from jobsdata where datatype=2 and s3 <> ''
--delete top (1000) from jobsqueue where devicetype=1 and deviceid in (1) --если много и сильно тормозит
--delete from jobsqueue where devicetype in (1,2,3) and status=0 and jobrows=0 or errtype <> '0'

--- чистка базы
--truncate table jobsqueuelog
--truncate table jobsdatalog
--truncate table errorlog
--backup log ses with no_log --после чего shrink
--backup log ses_archive with no_log --после чего shrink

у меня должно показывать кол-во товаров которые грузятся на кассы, но не показывает. если товары гружу прямо с сета, то после скрипта появляются список товаров и список касс куда грузятся.

еще проблема, сет страшно висит, если отключать службу транспорта, то сет отвисает.
14.11.2013 12:27
vitamin
 
Можно . Просто какая ситуация получается, ваш список на загрузку 30000 товаров, пошла полная перезагрузка -формируется массив из 30000 товаров (код товара+наименование++++) 30000 или более ш\к +цены+ еще чтото.+ группы. Все это надо собрать в единую конструкцию из разных таблиц, а когда маленькими пакетами, оно и меньше времени на обработку тратится и будет быстрей грузиться.
14.11.2013 12:28
vitamin
 
скорей всего чеки в архив не ушли
14.11.2013 12:46
Роллан
 
тем больше пакетов (например 10 000), тем меньше товаров в 1 пакете и быстрее формируется список? или наоборот?
14.11.2013 13:10
Роллан
 
у меня есть обработка, называется инвалидировать по чуть-чуть))
получается это тоже самое, только в нем можно указывать кол-во товаров которых нужно прогрузить на кассы, и даже можно указать в счетчике то кол-во на котором можно остановиться и продолжить дальше если понадобится.
сама обработка во вложении
Часовой пояс GMT +3, время: 09:41.

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