|
Регистр сведений, ограничение уникальности | ☑ | ||
---|---|---|---|---|
0
rowvg
naïve
26.03.21
✎
11:00
|
В SQL Server на таблицу можно наложить любое количество ограничений уникальности. Как такое же сделать для регистра сведений 1С? То есть есть РС с тремя измерениями, непериодический. Платформа 1С не позволит создать 2 записи с тремя одинаковыми ключевыми полями. А если мне нужно еще дополнительное ограничение уникальности, заключающееся в том чтобы нельзя было создать 2 записи с 2 совпадающими ключевыми полями. Как это можно сделать в 1С? В транзакции.
|
|||
1
Ненавижу 1С
гуру
26.03.21
✎
11:03
|
(0) никак, либо еще один регистр с ДВУМЯ измерениями, либо подумать, а зачем требовать уникальность ТРЕХ, если ДВА из них уже уникальны?
лучше подумать над второй альтернативой |
|||
2
Малыш Джон
26.03.21
✎
11:04
|
(0) 1. Если нельзя делать совпадающие по двум измерениям, значит их можно заменить одним, хранящим все сочетания этих двух
2. Если лень думать/лень делать/легаси, то делать запись , проверять задвоение, если есть, то удалять |
|||
3
fisher
26.03.21
✎
11:05
|
(0) Никак. Но требование странное. Возможно, тебе нужен РС с двумя измерениями и третьим полем в качестве реквизита.
|
|||
4
fisher
26.03.21
✎
11:07
|
Многие новички часто воспринимают РС в качестве самого простого объекта, максимально близкого к "простой табличке".
Это не так. РС достаточно специфичен. Ближе всего к "простой табличке" справочник. |
|||
5
rowvg
naïve
26.03.21
✎
11:11
|
(2) Требования поменялись к существующему РС. Легче всего наложить еще одно ограничение уникальности и все. Так делается в SQL Server. Иначе придется менять структуру РС.
|
|||
6
rowvg
naïve
26.03.21
✎
11:13
|
(2) А как это сделать в транзакции? Чтобы не удалять потом запись, а отменять саму транзакцию?
|
|||
7
Малыш Джон
26.03.21
✎
11:15
|
(6) в транзакции тебе такой метод даст кучу блокировок
|
|||
8
rowvg
naïve
26.03.21
✎
11:17
|
Спасибо, тогда придется переносить одно измерение в ресурс.
|
|||
9
rowvg
naïve
26.03.21
✎
11:18
|
(7) А какие блокировки: на ожидании или взаимоблокировки? И почему?
|
|||
10
Ёпрст
26.03.21
✎
11:22
|
(8) надо не в ресурс , а в реквизит тогда уж
|
|||
11
Ёпрст
26.03.21
✎
11:22
|
хотя..монопенисуально будет
|
|||
12
rowvg
naïve
26.03.21
✎
11:24
|
Подумал немного - нельзя убрать третье измерение. Тогда затрутся записи прежних лет когда пустые наборы записывать буду с отбором только по двум измерениям.
|
|||
13
rowvg
naïve
26.03.21
✎
11:25
|
12+ Вернее вся логика работы РС полетит.
|
|||
14
rowvg
naïve
26.03.21
✎
11:27
|
Спасибо всем, надо подумать
|
|||
15
acht
26.03.21
✎
11:29
|
(12) Выставить отказ из обработчика перед записью?
|
|||
16
hhhh
26.03.21
✎
11:29
|
(12) ну это и ежу понятно. Что надо сначала создать ресурс, потом обработкой скопировать измерение в ресурс, а потом уже удалять измерение.
|
|||
17
Ёпрст
26.03.21
✎
11:30
|
(12) че тут думать то ? Пихай в третье измерение всегда одинаковое значение, хоть пустуюссылку, хоть предопределенное значение справочника и привет. Вот и будет тебе всегда уникальность по 2 измерениям.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |