Регистр сведений проверка на уникальность #754391


#0 by Vladislava-smile
Есть регистр сведений с 3-мя измерениями, Код(строка), номенклатура, строка. Сейчас идет проверка уникальности только по номенклатуре и по коду, надо сделать уникальной и строку. В свойствах что-то не нашла ничего ... Или перед записью нового элемента надо перебирать весь набор записей и проверять на соответствие?
#1 by krunm
, читайте 33 комментарий
#2 by Vladislava-smile
Спасибо, сделала уже так:
#3 by Альбатрос
=)
#4 by Vladislava-smile
И что это значит "=)"?
#5 by jurassic
вот бы придумали такой механизм, который сам бы контролировал уникальность записей в таблице по какому-то набору полей...
#6 by Vladislava-smile
- это намек, что такой способ есть или просто мысли в слух? ) Потому что я искала, ничего похожего не нашла ...
#7 by Альбатрос
Для начала запрос в цикле без "ГДЕ". Затем ты говоришь, что у тебя 3 измерения регистра. Платформа не даст сама тебе сделать запись с одинаоквыми ключевыми полями.
#8 by Альбатрос
именно намек.
#9 by Vladislava-smile
- это понятно, что не даст, но мне нужно чтобы не было во всем регистре одинаковых значений по измерению. - окей, еще поищу. Спасибо.
#10 by Vladislava-smile
Может ссылочкой кто поделится ...
#11 by Альбатрос
Ну так сделай его единственным измерением и все
#12 by jurassic
тогда у тебя одно измерение
#13 by Vladislava-smile
не вариант, так как уникальными должны быть 2 кода. Это делается для обмена. Код в первой базе и код во второй соответственно.
#14 by jurassic
выходит, у тебя два измерения. что за строка?
#15 by mehfk
Два измерения дают тебе отношение многие ко многим. Одно измерение и один ресурс дадут тебе отношение один к одному.
#16 by jurassic
щито? (изм1 - рес1, изм1 - рес2) - это один к одному?
#17 by Альбатрос
этот вариант невозможен, он правильно говорит
#18 by Vladislava-smile
И итог то какой в ваших дебатах, господа? ))
#19 by Альбатрос
Ну ищи запросом, только переделай. Можно еще разделить на 2 регистра
#20 by Vladislava-smile
Не, лучше запрос, а чем этот не вариант? У меня сначала так было: Запрос = Новый Запрос("ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1     СоответствиеНоменклатурыИнсталлКНР.КодИНСТАЛЛ ИЗ     РегистрСведений.СоответствиеНоменклатурыИнсталлКНР КАК СоответствиеНоменклатурыИнсталлКНР ГДЕ И второй, только к другому. Это лучше?
#21 by Альбатрос
В ГДЕ просто добавь ИЛИ и второго запроса не нужно. И все равно не комильфо, ибо запрос в цикле. Тем более запрос, который шерстит все записи по регистру.
#22 by magicSan
не проще срез последнеих в объектной модели по нужному измирению смотреть?
#23 by Альбатрос
вангую, что РС не периодический
#24 by ВедущийП
#25 by ВедущийП
#26 by ВедущийП
Идея в том, что мы не дергаем базу в цикле.
#27 by ВедущийП
Можно дальше оптимизировать, например передавать в запрос список реквизитов и смотреть на результат.
#28 by magicSan
тогда просто получить
#29 by magicSan
Вариант синтаксиса: Для непериодического регистра Синтаксис: Получить(<Отбор>) Параметры: Тип: Структура. Структура, содержащая отбор по измерениям регистра. В переданной структуре должны содержаться те измерения, по которым должны быть отфильтрованы записи. В элементе структуры задается имя и значение отбора. Должны указываться значения для всех измерений. Параметр обязателен для регистров, имеющих измерения. Структура дополнительно может иметь элементы, соответствующие разделителям регистра с уровнем разделения НезависимоИСовместно, в состав которых входит регистр. Если такой элемент структуры задан для используемого в сеансе разделителя, значение для этого элемента должно совпадать со значением разделителя, иначе будет вызвано исключение. Неиспользуемым в сеансе разделителям регистра в структуре должен соответствовать элемент с указанным значением отбора, так же, как для всех измерений, иначе будет вызвано исключение. Если параметр не указан, то отбор не используется. Возвращаемое значение: Тип: Структура. Структура, содержащая значения ресурсов. Описание: Получает ресурсы регистра сведений по указанным ключевым полям.
#30 by ВедущийП
В цикле это будет аналогично запросу.
#31 by magicSan
Только тут две строчки а с запросом 10ок
#32 by Альбатрос
не в строчках дело, а в оптимизации
#33 by Альбатрос
норм вармант
#34 by magicSan
смешно.
#35 by Альбатрос
И что же тебя рассмешило?
#36 by magicSan
гумно партянку выложили и рассуждаете о высоких материях оптимизации.
#37 by Альбатрос
Ну мы-то можем рассуждать, а вот тебе до понятия оптимзации по ходу далеко еще
#38 by magicSan
Я может чего не понял - нафига весь регистр перебирать? создавать таблицы значений искать в них - дурь какая-то.
#39 by Альбатрос
Как думаешь, в какой запрос трансформируется метод .Получить при обращении к БД?
#40 by magicSan
как думаешь что проще получить результат или индексировать создавать тзх и исктаь в ней?
#41 by Альбатрос
Если твой результат получается путем запроса как в в цикле, то нахрен он нужен. В нужно только отбор в запросе наложить и все
#42 by itlikbez
Забавно. Два уникальных ключа. Получается, нужно два справочника создавать. Или слепить два кода в один, что будет лучше.
#43 by itlikbez
А нет, слепить не получится. Только два справочника.
#44 by itlikbez
А и два справочника не нужно. Один индексированный реквизит в дополнение к коду решает проблему.
#45 by Vladislava-smile
Всем спасибо за такую отзывчивость, выберу что-нибудь, главное, что сейчас вариантов много )), доп. реквизиты плодить не хочется только ...
#46 by ЧеловекДуши
Все бред. Так и непонятно, для каких таких обменов нужна такая головомойка? :)
#47 by Krolik Bezobraznik
Вообще не понял из за чего сыр бор. Чем набор записей РС не угодил?
#48 by magicSan
Перед записью делаешь отбор по текущим данным - какой накуй цикл???
#49 by itlikbez
А это никакой не доп. реквизит. Самый что ни на есть основной. У тебя, как  понимаю, два кода и каждый должен быть уникальным. Первый код хранишь в коде, а второй в индексированном реквизите. Перед записью делаешь поиск по реквизиту. Вот собственно и все.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С