Имя: Пароль:
1C
1C 7.7
v7: Принадлежность объекта учета периоду - обеспечить уникальность...
0 Злопчинский
 
29.12.11
04:55
Как-то вот оно не получается красиво... может, туплю...
Итак: есть продажи (опт).
Требуется рассчитать премию клиенту в зависимости от оборота (ну например тупо процент от оборота).
Премия для разных клиентов рассчитывается по РАЗНЫМ (произвольным!) периодам; премия считается для связки "клиент-договор"
а) Делаем справочник "Периоды", реквизиты ДатаН и ДатаК, наименование - формируем из реквизитов, тут вроде понятно...
б) делаем док типа "РасчетПремии", в тч дока "подбираем" документы продаж, задаем клиент+договор; далее задаем период из спр.Периоды - и тут хочется после ввода периода !!быстро!! поиметь "инфу" о том, что данный кортеж "клиент-договор-период" - есть уникальные, при этом период не должен пересекаться с другими периодами (полностью или частично не включать в себя другие периоды и не быть самому включаемым в другие периоды)... и тут я застрял... или схема кривая выбрана или иначе никак... Проверять на уникальность при проведении дока - хз... как-то мне это не хочется (но видимо придется) - при проведении планируется в регистр оборотов писать клиент-договор-документ как измерения и при проведении проверять что такой документ еще не присутсвовал в этом регистре оборотов...
.
??? мнения, плиз.
1 Дядя Васька
 
29.12.11
04:58
стареешь...
2 Злопчинский
 
29.12.11
05:45
(1) вот не поверишь - информации в товем сообщении - никакой ;-)
3 IvanovIV
 
29.12.11
06:12
В номер документа через разделитель КодКонтрика, КОдДоговора, ДатаНач, ДатаКон


Но сама схема премирования не правильная ... что ж лучший покупатель недели, не м.б. лучним покупателем месяца или года?
4 vah1
 
29.12.11
06:25
один док нуна, типа "Договора клиентов" с датами и прочей лабудой
5 Злопчинский
 
29.12.11
06:30
(3) ну.. на крайняк и так можно...
6 Злопчинский
 
29.12.11
06:30
(4) ??
7 Злопчинский
 
29.12.11
06:32
(3) может быть. но по умолчанию док заполняется продажами за отчетный период, которые не были еще в "премиях"; манагер может произвольно добавить доки из других отчетных периодов (ранее упущенные, на переходящих/стыке периодов) - они будут относится в премию УКАЗАННОГО периода.
.
тут не "лучшие" покупатели - тут сети, у них может быть что угодно, вплоть до бонуса на премию.. ;-)
8 Злопчинский
 
29.12.11
06:33
(4) имеется в виду, что расписать "график" премий... - как вариант, подумаем...
9 vah1
 
29.12.11
06:36
имелось ввиду программно указанный док формировать
ЗЫ ночью когда все спят, что бы никто не видел
10 OnCheck
 
29.12.11
06:51
(0) а что если использовать накопительный регистр в который накидывать обороты с периодом, из него заполнять документ начисление премии, при начислении премии просто закрывать эти записи. Отслеживать уникальность кортежей клиент-договор-период отпадает потребность, а еще получаешь страховку от работы задним числом.
11 Злопчинский
 
29.12.11
06:51
(9) чтобы его ночью формировать - это все равно сначала "график" нужен.. и вдобавок, все равно нет подстраховки от необходимости ввести "незапланированный" период
12 IvanovIV
 
29.12.11
06:54
(7) а упущенных быть не должно .. ТЧ заполнять автоматом при вводе периода

Но я тут хз .. как у вас там вообще процесс
13 Злопчинский
 
29.12.11
06:56
(12) да, примерно так!
14 Злопчинский
 
29.12.11
06:57
(12) упущенные почему могут быть - клиент если не оплатил - возможно, что премия ему не положена... - но на данный момент это соображение непринципиально...
15 Мимохожий Однако
 
29.12.11
06:59
Хорошо помогает при анализе примерчик расчетов, в котором есть все возможные варианты расчета. Обороты по клиенту есть всегда. Нет смысла считать их отдельно. Процент от оборота можно закинуть в договор. В договоре есть начало и окончание договора. А вот принцип "быстро.. поиметь инфу..", на мой взгляд, неправильно. Инфа должна быть по итогам завершенного периода.
16 Злопчинский
 
29.12.11
06:59
(10) думал я примерно над таким вариантом, пока что отложил в сторону - не нравится - появляется лишняя сущность - у мну "обороты" по премиям и так накапливаются в оборотном регистре "продажи"...
17 Злопчинский
 
29.12.11
07:02
(15) процент от оборота - известен, "проблем" нет.
"по итогам завершенного пери ода" - так и есть, период закрыли - премию посчитали.  Но если не предусмотреть контроль "неуникального "периода - это потенциальная дырка, в которую если проскользнет сумма - истребовать ее назад весьма геморрно...
18 Злопчинский
 
29.12.11
07:04
просто тупо хочу т ипа  если введены "некорректные" данные при выборе ериода - чтобы тут же ругнулось типа "ай яй яй, ужо есть такой-то документ, который -принадлежит- выбранному периоду.."
.
типа как в типовой ТиС фиг введешь за месяц второй документ формирования книги продаж.
19 OnCheck
 
29.12.11
07:05
(16) хорошо, если есть регистр с полями Клиент - Договор - !!Период!! - Документ, то какие проблемы с быстрым получением информации по уникальности? я забыл метод регистра, посмотри, как это делается в форме подбора МПЗ со складов в ТИС. Поле "Остаток на складе". О, СводныйОстаток(<?>,), только надо будет рассчитывать регистр на "задние" документы.
20 OnCheck
 
29.12.11
07:06
+(19) только надо придумать, как его закрывать....
21 OnCheck
 
29.12.11
07:08
хм, хотя планируется регистр оборотов, у него нет такого метода. Тогда СводныйИтог(), пойдет?
22 Злопчинский
 
29.12.11
07:09
(19) мну не нравится сам тупой подход..
13.11.11-20.11.11 пересекается с 01.11.11 - 30.11.11
- это бежать по всем записям и тупо смотреть.
.
тогда уже лучше в регистр в качестве измерения пихать отдельно ДатаН и ДатаК - проще тогда анализировать будет
23 OnCheck
 
29.12.11
07:10
(22) забыл про то что периоды в справочнике периодов могут пересекаться
24 Злопчинский
 
29.12.11
07:10
(21) кардинально не хочетс ярегистр остатков делать под эту фигню... объем не сильно большой, а периоды - длинные могут быть - поболее месяца, и квартала - будет тотально незакрыто регистро при смене периода в базе...
25 Злопчинский
 
29.12.11
07:11
(23) угу.. это я уже скакнул вперед...  тут, блин, получается дубль проверки - и при заполнении документа и при его проведении... бяка..
26 OnCheck
 
29.12.11
07:15
справочник с периодическими значениями, на период, который уже был рассчитан установить значение 1?
27 OnCheck
 
29.12.11
07:19
или расчетом так же перекрывать период, затем смотреть в журнал расчетов, ест ли у этого клиента расчеты на требуемый период?
28 Злопчинский
 
29.12.11
07:29
(26) а смысл - все равно по датаН и датаК проверять надо...
29 Злопчинский
 
29.12.11
07:30
можно ли каким-то образом свести пару ДатаН-ДатаК к какому-нить "примтивному" значению, которое бы при сравнении с другим примитивным аналогичным значением (по другому периоду) -позволяло бы сразу понять - что трабла!!?
30 Aleksey
 
29.12.11
07:31
"премия считается для связки "клиент-договор" " - контрагент здесь явно лишний
31 Злопчинский
 
29.12.11
07:34
(30) непринципиально, можно и сократить..
32 Aleksey
 
29.12.11
07:34
(7) При такой схеме не все ли равно какой период? Просто смотри чобы доки были уникальны. Типа за этот док уже было начисление
33 OnCheck
 
29.12.11
07:34
(29) наврятли, а чем не нравится по ДатаН и ДатаК парсить. Делаешь ЗначениеНаДату, смотришь, что на начало; ВыбратьЗначения(<ДатаНачала>,<ДатаКонца>) есть ли перемены.
34 Злопчинский
 
29.12.11
07:43
(32) а действительно!
35 Dump
 
29.12.11
07:56
Я так понимаю, справочник "Периоды" будет подчиненным спр. Договоры? А если для всех КА и договоров сделать по 365 периодов по 1 дню и проставлять плюсики типа "использован"?
36 Злопчинский
 
29.12.11
08:03
пекриоды стопудово не подчинен договорам.
плюсики на каждый день - это вместо сравнения двух периодов надо сравнить гораздо больше периодов...
.
и вообще - пора объявить конкурс на самый быстрый и элегантный способ определения пересечения двух временных отрезков.
37 Dump
 
29.12.11
08:09
"вместо сравнения двух периодов надо сравнить гораздо больше периодов" - да, но в момент выбора юзером ДатыКонца идет проверка на вхождение в период дней с пометкой "использован". Зато у все КА+договор одинаковые периоды и легко выдать пропущенные - за которые не рассчитана премия.
"пекриоды стопудово не подчинен договорам" - а почему, если "Премия для разных клиентов рассчитывается по РАЗНЫМ (произвольным!) периодам; премия считается для связки "клиент-договор" ?
38 Злопчинский
 
29.12.11
08:19
(37) можно уменьшить до "договор" вместо "клиент+договор"
39 Злопчинский
 
29.12.11
08:20
(37) "...в момент выбора юзером ДатыКонца идет проверка на вхождение в период дней с пометкой "использован".
.
подумаем...
40 Dump
 
29.12.11
08:24
можно уменьшить до "договор" вместо "клиент+договор" - это не важно, договор - ниже по уровню, поэтому и предложил подчинить ему. Плюсы - все проверки проводятся в момент подготовки дока, когда док уже заполнен - ничего проверять не надо. Галочку "использован" проставляем в момент проведения дока.
41 Dump
 
29.12.11
08:26
+ "манагер может произвольно добавить доки из других отчетных периодов" - при добавлении дока проверяем его дату на "использован"
42 Злопчинский
 
29.12.11
08:26
кардинально мне не нравится (вообще) когда проведение в справочник что-нить пишет... но идея ясна, подумаю...
43 Злопчинский
 
29.12.11
08:27
(41) дата дока тут - не то, док, регистрирующий расчет премии лежит м.б. вне отчетного периода премий
44 Dump
 
29.12.11
08:29
(43) - я, наверное, не так понял - думал, добавляются доки реализации
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.