Имя: Пароль:
1C
1C 7.7
v7: Хранение цепочки значений в документе
0 bas28000
 
09.01.14
16:39
Есть документ, в нем нужно как-то сохранить цепочку значений, которые представляют из себя настройку скидок. На бумаге в договоре это выглядит например так:

Закупка на:
0 - 20 000 руб: 1%
20 000 - 100 000 руб: 1.5%
100 000 - 500 000 руб: 2.5%

Ну или типа того, цепочка может быть разной длины, с разными значениями скидок и диапазонов для них. ТЗ документа использовать нельзя, там содержится список номенклатуры, на которые распространяется эта цепочка скидок.

Как наилучшим образом сохранить и редактировать в документе подобную цепочку?
1 supremum
 
09.01.14
16:41
Вариант.
Подчиненный справочник договору.
2 bas28000
 
09.01.14
16:45
(1) И что в этом справочнике хранить?
3 viktor_vv
 
09.01.14
16:46
(2) Твою цепочку значений. ревизиты типа

От
До
Процент

можно независимый справочник с дополнительным рекизитом документ, с отбором.
4 supremum
 
09.01.14
16:46
(2) Договор, диапазон суммы, процент скидки.
5 Barmalei
 
09.01.14
16:47
(1) я бы даже сказал единственный верный вариант. так же делал в свое время.
6 viktor_vv
 
09.01.14
16:48
Только с удобстом "редактировать в документе" будут некоторые проблемы, так как в документе с ним работать через ТЗ.
7 Irbis
 
09.01.14
16:49
Чем ТЧ документа не устраивает?
Номенклатура От До %
Да строчек много но и скидок тоже много на самом деле.
8 supremum
 
09.01.14
16:50
Можно подчиненный документ + регистр.
9 bas28000
 
09.01.14
16:53
(3) А если несколько групп товаров, на которые подобные скидки? А потом еще и очередной договор появится - не, слишком запутанно будет даже в случае редактирования, а уж обрабатывать это вообще ужас.
10 supremum
 
09.01.14
16:54
(9) Регистр.
11 bas28000
 
09.01.14
16:54
(7) ТЧ уже занята, и там не получится так вот как ты описываешь хранить, вернее получится, но это не самый прямой вариант, да и этот документ для нескольких видов скидок используется, и только в этой скидке ТЧ будет так криво использоваться.
12 patapum
 
09.01.14
16:57
(11) а таблица скидок должна в документе храниться, или в договоре?
13 bas28000
 
09.01.14
16:59
(12) В документе, так как в документе задается список номенклатуры, на который это все применяется.
14 bas28000
 
09.01.14
16:59
(10) Ой, только не это, да и может умереть уже база - переполнена всякими регистрами, документами и прочим самописным дерьмом.
15 patapum
 
09.01.14
16:59
(13) то есть, по одному договору, в разных документах, эта таблица может быть разной?
16 bas28000
 
09.01.14
17:02
(15) Да.
17 supremum
 
09.01.14
17:03
(13) От еще одного регистра не помрет.
18 patapum
 
09.01.14
17:05
+ (15) что-то мне подсказывает, что с постановкой задачи у тебя кривовато, но дело твое, спорить с тобой лень. по сохранению данных покури ЗначениеВСтроку и ЗначениеИзСтроки. контроль ссылочной целостности, правда, на этих данных отрабатывать не будет
19 Irbis
 
09.01.14
17:11
(12) Ну у тебя вариантов не много. Либо одна плоская таблица (документ, регистр и т. п.) Или несколько с ключом по номенклатуре, или ещё чему
20 an-korot
 
09.01.14
17:13
(0) если возможно будет куча переменных лучше создать подчиненный справочник и в него вгонять всё что нужно...

если как сейчас 3-5 переменных, то я бы создал список значений и загнал бы его в строку и  в эту переменную.
примерно так...


СписокСкидок = СоздатьОбъект("СписокЗначений");
СписокСкидок.ДобавитьЗначение("1","0 - 20 000 руб");
СписокСкидок.ДобавитьЗначение("1.5","20 000 - 100 000 руб");
СписокСкидок.ДобавитьЗначение("2.5","100 000 - 500 000 руб");

Процедура ПриЗаписи()
СписокСкидокСтрока = ЗначениеВСтрокуВнутр(СписокЗаявок);
КонецПроцедуры

Процедура ПриОткрытии()
    СписокСкидок = ЗначениеИзСтрокиВнутр(СписокСкидокСтрока);
КонецПроцедуры //
21 viktor_vv
 
09.01.14
17:16
(20) Че-то мне имхается ему это хозяйство тягать постоянно надо будет при оформлении документов.
Таки лучше в нормальном виде хранить.
22 ptiz
 
09.01.14
17:20
(8) +100
23 Mashinist
 
09.01.14
17:21
Как по мне так два новых объекта
1) Справочник Варианты шкал скидок и его в шапку документа
2) Значения шкалы скидки - подчиненный 1)

В документе в ТЗ отображать просто ну и при желании редактирование легко сделать. Три кнопки +/-/Р

т.е. все видно в документе и одинаковые шкалы можно использовать в разных документах
24 an-korot
 
09.01.14
17:39
(21) за тыс доли секунды вытягивает.
25 Torquader
 
10.01.14
00:13
Решение (1) Верно только тогда, когда мы изначально задаём скидки - после того, как скидка в документе задана - она должна там оставаться, как бы не менялся справочник.
Другое дело, что сумма документа тоже не меняется.
26 bas28000
 
10.01.14
12:05
(20) Вариант наверное самый подходящий, так как шкал постоянных не будет, а городить еще один справочник, регистр или что-то подобное - это ад в нашей базе. Всем спасибо!