Имя: Пароль:
1C
1С v8
тип Регистр сведений в табличном поле справочника
,
0 osuul
 
25.07.11
22:56
Всем привет, дайте пример какой нибудь или подскажите как сделать, есть регистр сведений, есть справочник в котором есть табличное поле с типом регистр сведений. Нужно что бы я туда вносил записи, они заносились в регистр, когда форму открываю нужно что бы они выводились.. делаю через "набор записей", через список не хочу.. спасибо
1 osuul
 
25.07.11
22:58
делал так, в общем модуле функция

Функция  ЗаписатьОбъектВРегистрКонтактнаяИнформация(ссылка,Значение) Экспорт
   
Для каждого элемент из Значение цикл    
НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Объект.Установить(ссылка);
НаборЗаписей.Отбор.ВидКонтактнойИнформации.Установить(элемент.ВидКонтактнойИнформации);
     

   //НовыйЭлемент                            = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи();
   НовыйЭлемент                            = НаборЗаписей.Добавить();
   НовыйЭлемент.Объект                        = ссылка;
   НовыйЭлемент.ВидКонтактнойИнформации    = элемент.ВидКонтактнойИнформации;
   НовыйЭлемент.Представление                = элемент.Представление;
   НовыйЭлемент.Коментарий                    = элемент.Коментарий;
   НаборЗаписей.Записать();
КонецЦикла;

КонецФункции


в модуле формы:
Процедура ПриЗаписи(Отказ)
   ОбщийМодуль.ЗаписатьОбъектВРегистрКонтактнаяИнформация(ссылка,НаборКонтактнойИнформации);
КонецПроцедуры

это для записи, но помоему это фигня..
2 Ник второй
 
25.07.11
22:59
Типовые смотреть не судьба ?
3 osuul
 
25.07.11
23:00
смотрел, изначально вообще криво делал
4 osuul
 
26.07.11
00:29
ап
5 Мимохожий Однако
 
26.07.11
06:56
Опиши подробнее регистр сведений. Подчиненность, измерения, какие ведущие, ресурсы...ИМХО, надо использовать отбор по текущему элементу. По кнопке Перейти всегда можно увидеть нужный код в типовой конфигурации.
6 Рэйв
 
26.07.11
07:01
(0)>>через список не хочу.

Это что еще за капризы?:-)

Делаешь таб поле с типом РегистрСведенийСписок, при открытии устанавливаешь отбор по Ссылка.
7 osuul
 
26.07.11
10:44
(5) непереодический, независисый, за измерения взял Объект (тип справочник Контрагенты, пока что только он)  и ВидКонтактнойИнформации ( тип справочник, ВидыКонтактнойИнформации) и ресурсы.. пока что Представление, комментарий..

(6) это не капризы :) просто глянул в типовой, там так сделано, подумал что так правильно будет + хочу разобраться..
8 osuul
 
26.07.11
10:46
ведущим сделал измерение "Объект"
9 osuul
 
26.07.11
11:27
апп
10 Reset
 
26.07.11
11:34
При открытии: установить отборы, прочитать набор.
При записи: Заполнить значения, заполняемые не интерактивно (в т.ч. включенные в отбор), записать набор.
11 Reset
 
26.07.11
11:35
Или надо за тебя весь (хоть и небольшой) код написать? Так ты ничему не научишься.
12 Mort
 
26.07.11
11:36
(6) И правильно что не хочет. Из формы редактировать списки это (а-ля быдлокод) быдлоинтерфейс
13 osuul
 
26.07.11
11:40
быдлоинтерфейс :))
14 osuul
 
26.07.11
11:48
(10) что значит прочитать набор?

отбор сделал так:

Процедура ПриОткрытии()
   ЭлементыФормы.АдресаИТелефона.Значение.Отбор.Объект.Установить(Ссылка);

КонецПроцедуры

только записи появляются только после того, как нажимаю кнопку "Обновить"
15 Reset
 
26.07.11
12:10
(14) Сделал через jопу.
Правильно:
АдресаИТелефона.Отбор.Объект.Установить(Ссылка);

**
"что значит прочитать набор?"
АдресаИТелефона.Прочитать()

**
АдресаИТелефонА <- чукча чтоль?
16 Mort
 
26.07.11
12:12
Читать набор нужно не в ПриОткрытии, а в ПриИзмененииДанных (для обычных форм) или ПриЧтенииНаСервере (для управляемых).
17 osuul
 
26.07.11
12:13
(15) ну ошибся:) че сразу чукча? хотя самому смешно :))
18 Reset
 
26.07.11
12:16
(17) Анекдот такой (тупой, детский). Заканчивается на "Телефона-телефона! Чукча кушать хочет".
19 Reset
 
26.07.11
12:19
(16) Согласен.
20 osuul
 
26.07.11
12:22
(15) (16) спасибо, работает

а записывать набор, я правильно делаю в (1) ?

и еще вопрос, если я пытаюсь для одного контрагента добавить две записи с одинаковыми значениями измерения "ВидКонтактнойИнформации", то почему то не добьавляет.. как сделать что бы добавлялась? добавляю как в (1)
21 Reset
 
26.07.11
12:44
(20)
"а записывать набор, я правильно делаю в (1) ?"
Неправильно.

"добавить две записи с одинаковыми значениями измерения...
то почему то не добьавляет.. как сделать что бы добавлялась?"
+
"непереодический, независисый, за измерения взял Объект...  и ВидКонтактнойИнформации...  и ресурсы...."
= Нельзя иметь две записи с одинаковыми измерениями.

RTFM
22 osuul
 
26.07.11
13:27
(21) делал по примеру

Как добавить запись в непериодический независимый регистр сведений?

НаборЗаписей = РегистрыСведений.ЗначенияСвойств.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);
НаборЗаписей.Отбор.Свойство.Установить(ТекущееСвойство);

НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись. Номенклатура = ТекущаяНоменклатура;
НоваяЗапись.Свойство = ТекущееСвойство;
НоваяЗапись.Значение = ТекущееЗначение;

НаборЗаписей.Записать();
23 0xFFFFFF
 
26.07.11
13:32
... там три клика мышой и две строчки кода, а он "не хочу". Закостенелый семерошник чтоль?
24 Reset
 
26.07.11
13:36
(23) Он неправ почти везде, кроме этого. Дополнительные сведения к элементу справочника действительно логичней организовавывать через набор и записывать вместе с записью элемента (а не непосредственно при редактировании).
25 Reset
 
26.07.11
13:39
(22) Ох ох ох.

Для каждого Запись из АдресаИТелефона цикл
Запись.Объект=Ссылка;
КонецЦикла;
АдресаИТелефона.Записать();

Можно обойтись без цикла, если ты будешь инициализировать измерение объект в обработчике табличного поле после добавления строки.
26 osuul
 
26.07.11
13:42
ок, щас попробую
27 osuul
 
26.07.11
13:46
(25) Все так просто..:) спасибо я понял, а что бы можно было добавлять одинаковые "ВидКонтактнойИнформации" нужно перенести измерение в ресурс.. я правильно понял?
28 Reset
 
26.07.11
14:00
(27) Нет, не правильно. Ты никаким образом не занесешь несколько разных значений с одинаковыми измерениями. Такова идеология РС.

Если нужно,используя РС, занести несколько одинаковых "видов", добавь измерение "подвид"(первый телефон, второй телефон,факс, дополнительный телефон etc). Смотри опять же типовые - там используются измерения ТипКонтактнойИнформации,ВидКонтактнойИнформации.
29 osuul
 
26.07.11
14:04
(27) да, уже глянул.. спасибо за помощь
30 osuul
 
26.07.11
14:04
(28)
31 0xFFFFFF
 
26.07.11
15:27
(24) Нда? Это чем же лучше? Нажатием кнопочки ок?
32 Mort
 
26.07.11
15:57
(31) Нет, нажатием кнопочки "Отмена" по которой пользователь вполне обоснованно ожидает что всё вернется обратно в т.ч. записи в табличке на форме.