Вход | Регистрация
 

Регистр сведений, ограничение уникальности

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.