Имя: Пароль:
1C
1С v8
Добавление новой записи в регистр через динамический список на УФ.
0 Беата Смит
 
26.03.19
20:13
Добрый вечер! Есть регистр сведений РегистрВладельцев, содержащий поле контрагент - ссылка на справочник Контрагенты. На форму элемента справочника Контрагенты выводится этот регистр с отбором по контрагенту в виде динамического списка. Вместе с динамическим прицепилась стандартная командная панель с кнопкой "создать". Подскажите, пожалуйста, как нужно дописать код, чтобы при нажатии на эту кнопку открывалась форма новой записи регистра не пустая, а с уже заполненным полем Контрагент - разумеется, текущим? Заранее спасибо.
1 Garykom
 
гуру
26.03.19
20:21
Попробуй через владельца формы добраться
2 Garykom
 
гуру
26.03.19
20:34
ЭтаФорма.ВладелецФормы.Родитель.Объект.Ссылка
3 palsergeich
 
26.03.19
21:03
(2) Мсье знает толк в извращениях.
Галка заполнять из данных заполнения в метаданных регистра поставь, этого достаточно
4 Garykom
 
гуру
26.03.19
22:00
(3) Речь не про штатный механизму присобачивания вкладок связанных рс а в основной форме сделать.
Через динамический список с запросом и параметром.
5 palsergeich
 
26.03.19
22:03
(4) Какие вкладки, о чем вы?
Про параметры в задаче ни слова.
Там говорится про отбор.
А все ключи отбора идут в значения заполнения.
6 palsergeich
 
26.03.19
22:04
(4) Все элементы отбора, уточню.
И галка заполнять из данных заполнения была сделана как раз для того что бы объекты, создаваемые из ДС предзаполнялись значениями отборов этого ДС.
7 Garykom
 
гуру
26.03.19
22:11
(5) (6) Да стормозил, забыл про этот дебильный отбор, ведь делал же уже такое но сильно давно.
Согласен все работает.

Но вот если вместо отбора параметр в произвольный запрос (динамического списка) то придется извращаться.
8 palsergeich
 
26.03.19
22:12
(7) тут я не спорю.
9 Garykom
 
гуру
26.03.19
22:13
Хм а в каких случаях отбором не выйдет обойтись и придется в запросе условие(я)?
10 palsergeich
 
26.03.19
22:14
(9) когда нужно сравнение отличное от равенства
11 Garykom
 
гуру
26.03.19
22:16
(10) Угу например иерархический справочник и хочется все подчиненные показать у родителя.
12 palsergeich
 
26.03.19
22:19
Потому что основной сценарий это
ОтрытьФорму(ФормаДС, Новый Структура("отбор", Новый Структура("Контрагент",Ссылка на контрагента)))
Отбор переносится в компановщик с видом сравнения равно.
И тогда да зполнять из данных заполнения самый сок.
(11) В этом случае другой вид сравнения и в значения заполнения такого ключа не будет, оно и логично, потому что в общем случае значений будет больше чем одно. И тогда да, только кодом.
13 palsergeich
 
26.03.19
22:24
(12) или будет но с НЕОПРЕДЕЛЕНО, сейчас уже не помню)
14 Беата Смит
 
27.03.19
12:57
Я, видимо, плохо сформулировала, потому что все равно не поняла, как мне решить мою задачу. И да, в идеале, кроме контрагента мне при создании новой записи в регистре хорошо бы еще пару значений по умолчанию вписать...
Отбор, который выводит выводит динамический список на форму, у меня тупо такой:
    
     ЭлементОтбора = КонтрагентыСписок.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
     ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");
     ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
     ЭлементОтбора.Использование = Истина;
     ЭлементОтбора.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
     ЭлементОтбора.ПравоеЗначение = Объект.Ссылка;
15 Garykom
 
гуру
27.03.19
13:03
(14) Поставь "ведущее" для измерения Контрагент в РС и "заполнять из данных заполнения"
16 Беата Смит
 
30.03.19
16:29
(15) Спасибо. В итоге остальные поля, которых на форме нет, а записать в регистр по умолчанию надо, я привязала к событию "создание формы" для записи регистра сведений. Типа если контрагент заполнен и еще кое-какие условия, он подтягивает эти поля, откуда мне нужно. Кривой метод, наверное, но работает)