Имя: Пароль:
1C
1C 7.7
v7: Кривой регистр, который не может закрыться по определению...
0 MWWRuza
 
гуру
12.10.20
10:33
Добрый день!
Тут к теме замены измерений в регистре прямым запросом, отношения не имеет, только косвенно, там хорошо все, и даже Злопчинский подвел итог: (27) галактеко вздохнуло с облегчением. темный император повержен

Но... Попробовал обработку в действии, и в "процессе эксплуатации" вылез другой косяк, на который раньше просто не обращал внимания...
Я так рассчитывал, что достаточно поменять задвоенную номенклатуру в RA, и выполнить пересчет итогов, час работы с перекурами... Все так, но пересчет итогов в этой "подопытной базе" затягивается на долгие часы...
Стал разбираться - оказалось, есть регистр, никакого отношения не имеющий к моим "экспериментам", "СкидкиКлиентам". Регистр остатков.
Не знаю, есть ли он в типовой ТиС, думаю нет, во всяком случае в таком виде.
Сразу хочу сказать - не кидайтесь тапочками, это не мое поделие, это "тяжелое наследство" от ККС... Какой му**к это делал, руки бы ему отшибить...
Куча измерений в регистре, ни одного реквизита, и два документа, которые двигают его.
Один документ - ОтчетПоСкидкам, второй документ - "СписаниеНакопленныхСкидок"... Куча косяков. Например, первый док двигает регистр по измерению "Номенклатура", во втором документе даже упоминания о ней нет, и таких еще несколько...
Естественно, регистр не закрывается. RA его - 35 мб, RG - 360 мб!!! Это за год от последней свертки... Вот и пересчитывает он его "до посинения".
В принципе, с этим регистром работают всего два документа и один отчет.
Возникла идея, исправить это недоразумение. Если эти измерения, по которым нельзя "собрать все в кучу", перенести в реквизиты, а измерения удалить? Ну, соответственно отчет поправить.
Должно это исправить положение?
Или все равно толку будет мало, т.к. движения прихода по этому регистру происходят каждый день(вместе с закрытием смены ОтчетПоСкидкам формируется), а расход делается раз в год, а то и вообще не делается(у кого как - кто-то копит скидки по жизни, кто-то раз в год обнуляет и начинает с нуля), он так и так в течении этого периода будет не закрытым - ?
Нужен совет - стоит ли заморачиваться, или оставить как есть(гимороя много, а есть ли смысл?), просто свертку делать периодически(можно в принципе по этому регистру конкретно, если полную не охота) - ?
1 Холст
 
12.10.20
10:51
можно переписать отчет так чтобы он обращался к документам напрямую, а не к кривому регистру , после того как увидишь что отчет верно заработал, можно перестать документами писать в него движения, а после свертки грохнуть регистр совсем,
2 MWWRuza
 
гуру
12.10.20
10:54
(1) Тоже вариант... Надо подумать. Спасибо за идею!
3 MWWRuza
 
гуру
12.10.20
11:08
+(2) А где тогда хранить суммы накопленных клиентом покупок? Каждый раз считать? Они используются не только для отчетов, а в фронт выгружается процент скидки для клиента, в зависимости от того, сколько он накопил... С регистра это получается мгновенно, а с докуметов будет пересчитывать по каждому клиенту при выгрузке каждый раз... Так не пойдет.
4 zenik
 
12.10.20
11:13
(3) Оборотный регистр - его закрывать не надо.
5 MWWRuza
 
гуру
12.10.20
11:28
(4) Получать оборот за период "с испокон веков" до текущего времени? Насколько это будет быстро работать? Период, я так понимаю, придется "день" делать. Итоги накоплений по клиенту, могут при каждом закрытии смены меняться.
6 Mikeware
 
12.10.20
11:34
(5) ну и посчитай "с испокон веков" - у тебя там "испокон" лет пять, при одном итоге на клиента - будет суммирование значений 60 строк.
считай прямым запросом прямо по итогам, без виртуальных таблиц
7 Mikeware
 
12.10.20
11:35
(0) "ККС" - это кто/что?
8 zenik
 
12.10.20
11:38
(5) зачем день? месяц, год... Да и обычно для скидок применяется система, которая берет некие обороты за определенный период. Оборот 5 лет для расчета "скидки сейчас" - по моему не нужен.
9 Kigo_Kigo
 
12.10.20
11:38
Я думаю так, завести новыйрегистр оборотов, переписать все на него, сделать ввод отатков на основании старого регистра, старый грохнуть, для этих целей доки каждый раз пересчитывать - не вариант
10 Kigo_Kigo
 
12.10.20
11:39
по крайней мере у меня шкальная система скидок сделана так, за 10 лет нароботки все летает
11 Lazy Stranger
 
12.10.20
11:39
а зачем там все эти измерения? может их все выкинуть кроме клиента?
12 Андрей_Андреич
 
naïve
12.10.20
11:45
(11) Сначала надо разобраться с принципом скидки. И поговорить с манагерами - оно может им сто лет не надо или надо уже другое.
13 MWWRuza
 
гуру
12.10.20
12:08
(7) https://ccrs.ru/ Производители ККТ "Спарк". Так получилось, что их клиенты отошли с программами на 7.7 ко мне. со всеми косяками и гимороями.

(11) Вот и я так подумал. Изначально в теме была такая мысль. Достаточно одного измерения - "Клиент". Ну, можно "Фирму" оставить, она все равно у меня в большинстве случаев одна. Все остальное - "Номенклатура", "Склад", "ККМ", можно перенести в реквизиты. На всякий случай, может в отчете пригодятся. Должны накапливаться суммы по клиентам, от списания до списания накопленного, все остальное - значения не имеет, эсли только для какого-то, никому не нужного анализа.
Отдельная песня со "СхемаСкидок". Тут, надо анализировать этот реквизит доков, и двигать регистр остатков только если схема имеет тип накопительная. Всякие "праздничные", "временнЫе"  и т.п. "без клиентские", вообще не должны двигать этот регистр. В принципе, для их анализа, при желании можно оборотный регистр прикрутить, с периодом месяц, и если скидка такого типа, то двигать его...
14 Kigo_Kigo
 
12.10.20
12:10
(13) Тогда у тебя получается балловая система? тогда оборотный тут не канает
15 MWWRuza
 
гуру
12.10.20
12:16
(14) Ну, типа того. Есть шкала, в строках которой суммы накоплений от и до, и привязанные к ним проценты. Раз в год накопления обнуляются, и все идет "с нуля". Но, есть клиенты, у которых обороты маленькие, они не обнуляют накопления по покупателям. Там они копятся и копятся, и всем пофик...
16 MWWRuza
 
гуру
12.10.20
12:30
(11) Вопрос собственно в том, что если оставить только одно измерение "Клиенты", и обнулять накопленные суммы раз в год... Или совсем не обнулять. Будет ли RG так пухнуть, и безобразно тормозить при пересчете итогов?
17 Lazy Stranger
 
12.10.20
12:32
мне кажется таблица остатков регистра с одним измерением не должна заметно отличаться по размеру от таблицы соответствующего справочника (в данном случае контрагентов)
18 Mikeware
 
12.10.20
12:39
(13) понял
(14) оборотный вполне вписывается.
(17) закрываемого, либо оборотного - будет даже меньше.
(15)(16) не парь мозг, напиши  запрос, достающий из итогов оборотного регистра,  измени тип на оборотный, пересчитай этот регистр - и забей на остальное. на серверной базе это, на файловой может пару часов...
19 MWWRuza
 
гуру
12.10.20
12:41
(17) Понятно.
Теперь с реквизитами... Ну, "Склад" и "ККМ" - с ними все понятно. Один документ, одна строка движения - сумма по чеку, эти реквизиты не помешают.
А вот "Номенклатура" - ? В чеке может быть несколько строк, с одинаковым измерением, но разными реквизитами "Номенклатура"... Как это может повлиять?
Совсем убирать "Номенклатуру" не хочется, вдруг хозяин магаза захочет посмотреть, что "Вася Пупкин" чаще всего покупает...
20 MWWRuza
 
гуру
12.10.20
12:41
(18) Попробую...
21 Андрей_Андреич
 
naïve
12.10.20
12:42
(19) Отчета о продажах в разрезе покупателей-товароы ы конфе нет?
22 Mikeware
 
12.10.20
12:45
(19) изменив на оборотный - ты сможешь получить и в разрезе номенклатуры, и в разрезе складов, и как угодно. Только иногда чуть дольше, чем с регистром остатков
23 Андрей_Андреич
 
naïve
12.10.20
12:48
(22) У меня один разрез учета просто в табличку скульную закинут - показалось проще и быстрее как по быстродействию, так и по написанию. Роди это не комильфо?
24 Ёпрст
 
12.10.20
12:50
Регстр в 35 метров, если он закрывается, персчитается в дбф за минуту, ну максимум 1,5 минуты или быстрее
25 MWWRuza
 
гуру
12.10.20
13:01
(21) Если и есть что-то такое, то типовое из ТиС. Этот регистр только в этом одном отчете: https://cloud.mail.ru/public/4HZC/2AyDpMYmf используется, ну и самое главное - при выгрузке на кассы, вот это используется - Рег.СводныйОстаток(,,,ТекКл,,,"Сумма"); где "Рег", это регистр "СкидкиКлиентам".
(24) "если он закрывается"
В том то и дело, что не закрывается.
26 MWWRuza
 
гуру
12.10.20
13:02
Тьфу блин, в облако вместо фоток картинку засунул...
27 Ёпрст
 
12.10.20
13:04
(25) исправить такой мелкий регистр..еще минута.
Короче, на все..3 минуты
28 Ёпрст
 
12.10.20
13:09
Если не нужна какая то аналитика в остатках, ее кинуть в реквизит регистра. Можно даже не апдейтить ra  потом, а просто поменять мд и словарик, в котором измерения станут реквизитами. Грохнуть rg и пересчитать итоги только по одному этому регистру
29 MWWRuza
 
гуру
12.10.20
13:14
(27) Исправить - не проблема. Тем более, с прямыми запросами, благодаря тебе, я более-менее разобрался, по крайней мере, в том объеме, который для этого может понадобится.
Но, дальше то что? Как правильнее переделать учет по нему, что-бы он или закрывался, или все-таки переделать на оборотный?
(29) Во!!! Понятно.
А если списывать накопленные суммы продаж со скидками, будут раз в год, или вообще не будут... Это ведь все равно приведет к тому, что RG распухнет? Или с одним-двумя измерениями, на таком объеме будет не критично?
30 Ёпрст
 
12.10.20
13:16
(29) если период хранения месяц, то не критично
31 Ёпрст
 
12.10.20
13:17
Да и для 5 дней тоже. Всегда можно замерить
32 Ёпрст
 
12.10.20
13:19
Да, в той поделке..непонятно, почему реквищиты шапки и тч меняются не прямым запромом, как и все остальное. Да и есои переписать запросы на соответствие индексам, будет быстрее
33 MWWRuza
 
гуру
12.10.20
13:32
(30) Да, месяц.
(32) Я это скопировал из обработки под SQL, как есть, не меняя. В принципе, и так работает мгновенно, куда уже быстрее. Если переделывать, то только ради "тренировки". А как инструмент для исправления косяков клиента, меня более чем устраивает.
34 Злопчинский
 
13.10.20
23:39
(5) а вы не задумывались что лежит в табличке ИТОГОВ по оборотному регистру?
я вот задавл вопрос. но никто из гуру так и не смог внятно и однозначно ответить.
.
я вот например тупо считаю что в регистре итогов по оборотному регистру лежит ИТОГ по ОБОРОТАМ за период. соотвнетсвенно если отчет по итогам кратно месяцам - тупо воберет итоги по оборотам из итого. если некратно - доберет движениями (в плюс или минус) от ближайшего итгога...
35 Mikeware
 
14.10.20
07:25
(34) именно так.