Имя: Пароль:
1C
 
Регистр сведений, ограничение уникальности
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 измерениям.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший