Имя: Пароль:
1C
1C 7.7
v7: обновление эл-тов подчиненного справочника
,
0 monsterZE
 
26.01.13
20:20
попросили сделать - кто каких документов принес, какие должен принести.
у спр.клиенты подчиненный справочник ДокументыИИхСтатусы. реквизиты (отдел,видДокумента,статус)
отдел и статус - перечисления, видДокумента - справочник
обернул в тз на форме клиента.. думаю как обновлять подчиненный справочник.

в тз_старая элементы + пустышки(с пустыми реквизитами)
в тз_новая то, что выбрал юзер
--------------
обход тз_новая
ищем в тз_старая совпадения
если есть
удаляем из старой
иначе
пишем во временную
Конец

(в старой - то, чего нет в новой) к удалению
(во временной - то чего нет в старой) к добавлению

обход временной по мин(записей в таблицах)
берем из старой свободный элемент справочника
из временной новое значение
сохранаяем
конец

если остались строки во временной
надо создать новые элементы
иначеесли остались строки в старой
эти элементы надо очистить
конец
--------------
очищать все подчиненные элементы
заполнять их по тз_новая
если не хватает - добавлять
--------------
удалять(1) все подчиненные элементы
создавать по тз_новая
1 КонецЦикла
 
26.01.13
20:26
Ну если монстр, то это элементарно делается одним запросом (необходимость обновления/добавления)
2 ДенисЧ
 
26.01.13
20:50
или я пьян... или автор....
Нифга не понял
3 monsterZE
 
26.01.13
20:55
(1) про запросом я как-то и не думал =)
создавать новый элемент справочника 1с-ы?
(2) забей ;-)
4 monsterZE
 
26.01.13
21:03
(1) и как должно выглядеть условие такого запроса? чет а я даже представить себе не могу =)
5 monsterZE
 
26.01.13
21:12
еще к (1) допустим выбрал я табличку подчиненного справочника по владельцу
мне надо (если обновлять все записи)
изменить все существующие на те, которые выбрал юзер
если их не хватает - добавить
а, если юзер уменьшил список - удалить
и все одним запросом? =)
запросом по каждой строке нового списка или може вобще ОДНИМ запросом?
6 КонецЦикла
 
26.01.13
21:14
(5) Добавлять штатно из результата запроса можно
Обновлять там где есть расхождения в значениях полей можно и штатно, можно и апдейтом (только надо чтобы формы были закрыты)
Обычное левое соединение
7 КонецЦикла
 
26.01.13
21:16
Ну не одним, так тремя, зато будет читабельно :)
Список добавленных, удаленных, измененных
8 monsterZE
 
26.01.13
21:23
(7) =) ДО
я вобще больше любопытствовал как реализуется само хранение произвольного количества элементов подчиненного справочника..
в стандартных нет подобного? т.е. элементы из подчиненных справочников вобще не удаляются?
а чего я в (0) написал, это типа варианты, чтобы элементы справочника "максимально полезно использовать"
9 КонецЦикла
 
26.01.13
22:07
(8) Так же как и обычного, только есть одно поле дополнительное индексированное
10 monsterZE
 
26.01.13
22:16
(9) да не на уровне табличек 1с =)
ну видимо никто подобным не загоняется.. чтобы повторно ненужные записи использовать.
нужет новый подчиненный элемент - создается
не нужет - помечается на удаление или отдельным реквизитом макируется как не актуальный