Имя: Пароль:
1C
 
Отбор по РегиструСведений без Периодичности
0 МишельЛагранж
 
29.12.10
21:34
Добрый вечер!
Я тут уже спрашивал по поводу неправильного удаления из регистра, а теперь другой случай.
Есть зависимый непериодический регистр сведений. В нем несколько измерений (Номер, Материал, Поле - всего 7). Предполагалось, что будет уникальный ключ по 7 измерениям + само собой по регистратору (ведь зависимый же!).
А ничего не вышло. Как только совпали 7 измерений (два разных документа - проводят одно и то же), регистраторы разные, а регистр пишет все тоже - "Запись с такими ключевыми полями существует!".
Теперь записать новый документ можно только после полного удаления старого (теперь, конечно же, корректно!).
Как теперь сделать "множественность" по регистраторам? чтобы можно вводить разные регистраторы с одинаковым набором данных. а регситр все же отслеживал уникальность.
Пытался перевести регситр в положение "зависимый периодический по регситратору" - так теперь не записывает по старому РС.Отбор.Регистратор - типа, не находит больше ничего.
Ввести измерение "ДокументРегистратор" и перепровести заново?
1 craxx
 
29.12.10
22:03
Первое, что приходит на ум - сделать регистр периодическим.
2 craxx
 
29.12.10
22:05
периодический до секунды
3 Живой Ископаемый
 
29.12.10
22:16
да, ввести измерение ДокументРегистратор, сказать ему ведущее. Если это 8.2, то среди дивжений документов, которые по кнопке перейти, будет и твой РС
4 МишельЛагранж
 
30.12.10
10:07
(3) т.е. периодическим его делать необязательно? а то проводки после перехода на период не делаются по этому регистру. И запись не движениями, а напрямую у меня в регистр - НаборЗаписей создать - Отбор по Регистратору (т.к. зависимый) - добавить запись.
Делаю Периодическим - эта конструкция перестает работать.
5 Mitriy
 
30.12.10
10:14
(4) если предполагается совпадение по измерениям, то обязательно...
6 Mitriy
 
30.12.10
10:14
(4) период заполняешь?
7 Mitriy
 
30.12.10
10:15
(6) и вообще, за слова "не работает" без подробностей надо табуреткой по пальцам... рук и ног... раз десять...
8 МишельЛагранж
 
30.12.10
10:45
(5) предполагалось, что набор измерений будет уникальным. А получается, период тоже надо?
(6) в Отборе? так мне Период не нужен для алгоритма работы.
(7) не работает - это не работает: нет записи при "ОК" в регистр после смены Непериодический на "Периодический по регистратору" (код для НаборЗаписей тоже не менялся, Отбор только по Регистратору остался).
9 Лефмихалыч
 
30.12.10
10:47
(0) нормальное поведение непериодического регистра сведений
10 Лефмихалыч
 
30.12.10
10:48
+(9) нужно сделать регистр периодическим по позиции регистратора
11 Mitriy
 
30.12.10
10:48
(8) при чем тут отбор? в наборе записей период заполнять надо...
12 Живой Ископаемый
 
30.12.10
10:49
2(4) Если один документ не сможет сделать две записи (по твоей задумке) с одинаковым набором полей - то необязательно... Впрочем, если документ таки может сделать две одинаковые записи, то даже если он будет периодическим, нужно еще добавлять измерение, типа НомерСтроки
13 Mitriy
 
30.12.10
10:51
(12) а если два разных регистратора захотят записать одинаковые записи в непериодический регистр?
14 Живой Ископаемый
 
30.12.10
10:53
2(13) Я предполагаю что у него будет ведущее измерение Регистратор -см.(3)
15 Живой Ископаемый
 
30.12.10
10:54
разве что второй документ регистратор пожелает в качестве регистратора подставить первого... Тогда да, у него так не получится... :)
16 Mitriy
 
30.12.10
10:55
(14) а... не обратил внимание... но масло масляное, а? :)
17 Живой Ископаемый
 
30.12.10
10:57
:) да я уже давно не думаю что для какой-то ситуации есть единственное верное решение... Так что мы предлагаем варианты, автор с ними знакомиться, проводит эксперименты, выбирает то что понравилось... Может пройдет полгода-год и он все переделает по другому варианту.
18 МишельЛагранж
 
30.12.10
11:00
(12) номер строки уже есть с самого начала. Там 7 измерений. Именно что (13) два регистратора делают одни и те же записи в непериодический регистр, а смена на Периодический - при ОК старые записи по документу удаляются (стоит Стереть отбор). а новые не появляются! Я про Период не понял - где его в НабореЗаписей заполнять надо? Вот есть после РегистрыСведений.Материалы.СоздатьНаборЗаписей() - Отбор.Регистратор.Установить, далее - ставить Отбор.Период что ли?
19 Mitriy
 
30.12.10
11:02
(18) дальше у тебя набор заполняется, вот там и заполняй, как измерения и ресурсы заполняешь...
20 МишельЛагранж
 
30.12.10
11:04
(12) чтобы документ не делал две одинаковых записи - у меня 7 измерений на ключ брошено :).
Т.е. я ставлю сейчас новое измерение Регистратор, делаю его ведущим, и все? и лишь заполняю новое измерение?
21 МишельЛагранж
 
30.12.10
12:31
А почему у меня нет галочки "Включить в основной отбор" у измерения?
22 Mitriy
 
30.12.10
12:35
(21) воруют...
23 МишельЛагранж
 
30.12.10
12:46
(22) кто? :) верните на место :)
А получается, что я изначально неверно выбрал путь: надо было делать независимый регситр и ставить ведущее измерение "Регистратор", и программно все писать (соотв., при удалении документа-регистратора - автоматом удаляются записи в регистре), а я понадеялся на подчинение Регистратору (зависимый сделал), записи-то удаляются при удалении регистратора, а вот уникальность по регистратору не проверяется - нужно указывать Период, в пределах которого будет дополнительно к измерениям контролироваться уникальность записей (и без регистратора, он в контроле уникальности, получается, сбоку-припеку).
А интересно, если сделать ведущими несколько измерений (а они в свою очередь будут ссылками на объекты) - запись будет удаляться при удалении любого из них или только всех сразу?
24 Mitriy
 
30.12.10
12:49
(23) любого...
25 МишельЛагранж
 
30.12.10
12:57
(21) а, Основной отбор появляется, если регистр Независимый, и нужен для атоотбора при обмене - в РИБ по-умолчанию (если не задан принудительный отбор) обмен идет порциями, отобранными по признаку этой самой установленной галочки.
Вона чего...
(24) т.е. удалишь один - и все, записи хана?! это ж здорово :)
26 Mitriy
 
30.12.10
12:58
(25) думаю так... потому что, если не так, то как бы смысла нет ставить несколько ведущих... но вообще не проверял...
27 BadTouch
 
30.12.10
13:00
Я бы добавил сейчас измерение с регистратором, в модуле набора записей прописал перед записью проверять, что новое поле равно регистратору, если нет, то приравнивать. Потом можно получить полный набор записей, прочитать и записать (ну конечно если их там не дофига и больше), тогда и перепроводить не надо...
28 МишельЛагранж
 
30.12.10
13:07
Вот те раз, вписал новое измерение "Регистратор", сменил режим записи на "Независимый" - а новое измерение исчезло! Меняю в обратном порядке...
"И сколько нам приколов чудных готовит Одинэса дух..."
(27) в смысле, программно прочитал старое - записал уже с заполненным полем Регистратор? А на 1560 доков х 15 записей - сколько времени уйдет на это?
29 Mitriy
 
30.12.10
13:10
(28) ну не знаю... может, секунд 15-20... плюс минус на железо...
30 МишельЛагранж
 
30.12.10
13:12
(29) у вас, похоже, сервак 12-ти ядерный на каждый из 2-х процов .... :)
31 МишельЛагранж
 
30.12.10
13:13
На обычном Xeon 5050 это намного дольше?
32 BadTouch
 
30.12.10
13:13
(28) 20К записей влегкую должен записать.
33 BadTouch
 
30.12.10
13:14
(31) в любом случае это быстрее чем перепроводить доки. Ограничение - это память, но на 20 К записей ограничения не будет
34 BadTouch
 
30.12.10
13:18
Не получиться как я написал в (27), нужен отбор по регистратору:(
35 BadTouch
 
30.12.10
13:20
Хотя и в таком случае тоже наверно по времени выгоднее не перепроводить, а получать наборы и их перезаписывать...
36 МишельЛагранж
 
30.12.10
13:28
(34) ну да, там отбор ТОЛЬКО по регистратору у зависимого, измерений нет..
37 Mitriy
 
30.12.10
13:28
(30) да фиг его знает, если честно, но по-любому не долго...
Делаешь выборку по регистраторам регистра, а потом в цикле получаешь наборы по каждому регистратору, правишь и записываешь...
38 BadTouch
 
30.12.10
13:32
(37) Угу, все  равно быстрее чем перепроводить
39 Протез
 
30.12.10
13:34
Чем обусловлен выбор регистра сведений? Почему не оборотный регистр например?
40 Mitriy
 
30.12.10
13:39
(39) что-то как-то не в тему... вряд ли ему нужен приход-расход, если он регистр сведений сделал...
41 МишельЛагранж
 
30.12.10
14:40
(39) потому что данные нужны все, а не только последние. Регистр используется как хранилище изменяемой информации, а не как накопительный склад. Если для этих целей использовать РН - то там был бы один сплошной приход без расхода, и никакими преимуществами РН (остатки-обороты) воспользоваться нельзя, а актуальность, напротив, на уровне регистра не проверишь, поэтому РН не для этих целей создавался :)
Хотя тоже таблица, тоже в базе, тоже реляционная :)
42 МишельЛагранж
 
30.12.10
14:42
(39) вы наверное, подумали, что это для склада Материалов :)
Нет, это для расчета характеристик этих самых материалов и изделий из них.
43 МишельЛагранж
 
30.12.10
16:56
А вот еще такой вопрос - если удалить РС из конфигуратора совсем, прежние таблицы с данными из базы удаляются или остаются в виде мусора?
44 МишельЛагранж
 
30.12.10
17:50
(19) специально попробовал - Зависимый регистр, периодичность по регистратору:
заполняется только Движениями, вручную (через СоздатьНаборЗаписей) никак.
"Запись.Период = Дата" была с самого начала, но вручную зависимый регистр заполняется только если нет периодичности (с чего начал тему), ставишь периодичность - все, только движениями.
45 МишельЛагранж
 
30.12.10
17:50
мило так беседую сам с собой :)....
46 МишельЛагранж
 
30.12.10
18:20
(44) не, все еще хитрей - если есть Движения, записывающие данные с определенной ТЧ дока в регистр (например, ранее по ОК были проводки со строго определенной таблицы дока в РС через движения) - то и вручную будет потом записывать/перезаписывать эти же строчки (т.е. по уже существующим в таблице регистра.
А если движений не предусмотрено для таблицы дока - то и вручную ничего не пишет, только команда Очистить срабатывает из всей "ручной" записи..
47 Живой Ископаемый
 
30.12.10
18:41
(43)если при сохранении тебе 1с сказала что реструктуризирует чего-то, то удаляются
48 МишельЛагранж
 
30.12.10
18:46
Говорит только - "данные из регистра будут удалены" при сохранении конфы.
Кстати, если преобразовывать РС из независимого в зависимый - данные в регистре затираются, если наоборот (из зависимого в независимый) - то нет.