Из справочника записать данные в регистр сведений
Добрый день
Что-то не могу разобраться как создавать записи в независимый регистр сведений. Есть справочник, в нем есть вкладка с дополнительной информацией о человеке (это табличное поле с типом регистрСведенийНаборЗаписей), необходимо чтобы при вводе там различных данных по этому человеку, все записывалось в регистрСведений. Структура регистра следующая: измерения: человек(справочникСсылка и критерий(перечисление); Ресурсы: значение ( просто строка).
Пишу код в модуле справочника "ПередЗаписью", видимо вообще все не так делаю
Что-то не могу разобраться как создавать записи в независимый регистр сведений. Есть справочник, в нем есть вкладка с дополнительной информацией о человеке (это табличное поле с типом регистрСведенийНаборЗаписей), необходимо чтобы при вводе там различных данных по этому человеку, все записывалось в регистрСведений. Структура регистра следующая: измерения: человек(справочникСсылка и критерий(перечисление); Ресурсы: значение ( просто строка).
Пишу код в модуле справочника "ПередЗаписью", видимо вообще все не так делаю
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Текст =
"ВЫБРАТЬ
| ДопДанныеПоКонтрагенту.Контрагент КАК Контрагент,
| ДопДанныеПоКонтрагенту.Критерий КАК Критерий,
| ДопДанныеПоКонтрагенту.Значение КАК Значение
|ИЗ
| РегистрСведений.ДопДанныеПоКонтрагенту КАК ДопДанныеПоКонтрагенту
|ГДЕ
| ДопДанныеПоКонтрагенту.Контрагент = &Ссылка";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
НаборЗаписей = РегистрыСведений.ДопДанныеПоКонтрагенту.СоздатьНаборЗаписей();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НаборЗаписей.Отбор.Контрагент.Установить(НаименованиеПолное);
НаборЗаписей.Добавить().Контрагент = НаименованиеПолное;
НаборЗаписей.Добавить().Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
КонецЦикла;
НаборЗаписей.Записать();
ПоказатьПо теме из базы знаний
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Исправление регистра сведений "Распределение запасов" по данным регистра накопления "Товары на складах" после перехода с ред. 2.4 на ред. 2.5 для конфигураций УТ, КА, ЕРП
- Регистры сведений для аналитиков
- Заполнение регистра сведений "Фамилия, имя, отчество физического лица" (ERP 2.5, КА 2.5, ЗУП 3.1)
- DaJet Stream: потоковый обмен данными
Найденные решения
(1)
1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
2. Добавлять данные в цикле надо так:
1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
НаборЗаписей.Отбор.Человек.Установить(объект.ссылка)
2. Добавлять данные в цикле надо так:
зап=НаборЗаписей.Добавить(); // тут запись добавляется, а далее заполняется:
зап.Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
зап.Значение = Значение;
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
2. Добавлять данные в цикле надо так:
1. "НаборЗаписей.Отбор." надо вынести за пределы цикла.
и задавать Отбор по неизменяемому полю (измерению), в вашем случае - человек(справочникСсылка)
НаборЗаписей.Отбор.Человек.Установить(объект.ссылка)
2. Добавлять данные в цикле надо так:
зап=НаборЗаписей.Добавить(); // тут запись добавляется, а далее заполняется:
зап.Критерий = Перечисления.СТМ_КритерийДопДанныхПоКонтрагенту;
зап.Значение = Значение;
(1) то что вы написали, правильно работать не будет.
смотрите форму, закладку с допданными, как там добавляются новые строчки
по идее, в событии приокончанииредактирования строки
такой код можно использовать (только свои наименования подставьте)
(НаСервере)
весь код
смотрите форму, закладку с допданными, как там добавляются новые строчки
по идее, в событии приокончанииредактирования строки
такой код можно использовать (только свои наименования подставьте)
(НаСервере)
НаборЗаписей = РегистрыСведений.ДопДанныеПоКонтрагенту.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Контрагент.Установить(Объект.Ссылка);
НаборЗаписей.Загрузить(ДопСведения.Выгрузить());
НаборЗаписей..Записать.();
весь код
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот