Из справочника записать данные в регистр сведений

1. user1612760 20.09.21 13:07 Сейчас в теме
Добрый день

Что-то не могу разобраться как создавать записи в независимый регистр сведений. Есть справочник, в нем есть вкладка с дополнительной информацией о человеке (это табличное поле с типом регистрСведенийНаборЗаписей), необходимо чтобы при вводе там различных данных по этому человеку, все записывалось в регистрСведений. Структура регистра следующая: измерения: человек(справочникСсылка и критерий(перечисление); Ресурсы: значение ( просто строка).

Пишу код в модуле справочника "ПередЗаписью", видимо вообще все не так делаю

Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ДопДанныеПоКонтрагенту.Контрагент КАК Контрагент,
		|	ДопДанныеПоКонтрагенту.Критерий КАК Критерий,
		|	ДопДанныеПоКонтрагенту.Значение КАК Значение
		|ИЗ
		|	РегистрСведений.ДопДанныеПоКонтрагенту КАК ДопДанныеПоКонтрагенту
		|ГДЕ
		|	ДопДанныеПоКонтрагенту.Контрагент = &Ссылка";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	НаборЗаписей = РегистрыСведений.ДопДанныеПоКонтрагенту.СоздатьНаборЗаписей();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		НаборЗаписей.Отбор.Контрагент.Установить(НаименованиеПолное);
		НаборЗаписей.Добавить().Контрагент = НаименованиеПолное;
		НаборЗаписей.Добавить().Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
		
	КонецЦикла;
	НаборЗаписей.Записать();
Показать
По теме из базы знаний
Найденные решения
3. -AI- 20.09.21 13:19 Сейчас в теме
(1)

1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
НаборЗаписей.Отбор.Человек.Установить(объект.ссылка)


2. Добавлять данные в цикле надо так:

зап=НаборЗаписей.Добавить(); // тут запись добавляется, а далее заполняется:
зап.Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
зап.Значение = Значение;
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Swetlana 25 20.09.21 13:15 Сейчас в теме
(1) Сообщение об ошибке можете приложить?
5. user1612760 20.09.21 17:08 Сейчас в теме
(2) нет никаких ошибок, просто не сохраняется ничего в регистр сведений и на форме в справочнике ( то есть заново открываешь форму и там ничего нет)
3. -AI- 20.09.21 13:19 Сейчас в теме
(1)

1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
НаборЗаписей.Отбор.Человек.Установить(объект.ссылка)


2. Добавлять данные в цикле надо так:

зап=НаборЗаписей.Добавить(); // тут запись добавляется, а далее заполняется:
зап.Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
зап.Значение = Значение;
6. Fox-trot 158 20.09.21 19:36 Сейчас в теме
(1) правильнее использовать событие ПриЗаписи, если верить хелпу
4. soft_wind 20.09.21 16:37 Сейчас в теме
(1) то что вы написали, правильно работать не будет.
смотрите форму, закладку с допданными, как там добавляются новые строчки

по идее, в событии приокончанииредактирования строки
такой код можно использовать (только свои наименования подставьте)
(НаСервере)

НаборЗаписей = РегистрыСведений.ДопДанныеПоКонтрагенту.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Контрагент.Установить(Объект.Ссылка);
НаборЗаписей.Загрузить(ДопСведения.Выгрузить());
НаборЗаписей..Записать.();

весь код
7. STELEICE 21.09.21 13:21 Сейчас в теме
Я Данную запись делал в процедуре формы после записи с соответствующими проверками
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот