Запись в регистр сведений происходит только на последней строчке

1. andadra 30.11.16 16:45 Сейчас в теме
Здравствуйте, есть такой интересный код, хотя вру, ничего там интересного нет, есть различие между ожиданием и реальностью, и это настораживает. Не буду распинаться, вот код:
ЗнСв = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ВидПеревозки");
	ЗнСв.Значение = ВидПеревозки;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("МаркаАвтомобиля");
	ЗнСв.Значение = МаркаАвтомобиля;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ГосНомерАвтомобиля");
	ЗнСв.Значение = ГосНомерАвтомобиля;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("МаркаПрицепа");
	ЗнСв.Значение = МаркаПрицепа;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ГосНомерПрицепа");
	ЗнСв.Значение = ГосНомерПрицепа;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Водитель");
	ЗнСв.Значение = Водитель;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Перевозчик");
	ЗнСв.Значение = Перевозчик;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("СрокДоставки");
	ЗнСв.Значение = СрокДоставки;
	ЗнСв.Записать();
	ЗнСв.Объект = Документ;
	ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ЛицензионнаяКарточка");
	ЗнСв.Значение = ЛицензионнаяКарточка;
	ЗнСв.Записать();
Показать

Возникает проблема, записывается в доп свойство только ЛицензионнаяКарточка, соответственно, если её убрать, будет записываться СрокДоставки. Путем нелегких, порой обессиливающих рассуждений было выявлено:Записывается только последняя запись(извиняюсь за туфту). В чем подвох, дорогие форумчане?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. kuzev 48 30.11.16 16:51 Сейчас в теме
(1) забыли про
ЗнСв = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();

А лучше переделать на СоздатьНаборЗаписей() (см. https://its.1c.ru/db/metod8dev/content/2486/hdoc).
3. andadra 30.11.16 17:00 Сейчас в теме
(2)Всмысле забыл? Вот же у меня первая строка как у вас)
4. kuzev 48 30.11.16 17:02 Сейчас в теме
(3) а потом после Записать()? =)
Xershi; andadra; корум; alex-l19041; ipoloskov; +5 Ответить
5. dusha0020 1115 30.11.16 17:34 Сейчас в теме
ЗнСв = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Это ОДИН менеджер для ОДНОЙ записи.
Вы хотите, чтобы в одну запись добавилось 10?:) Нет. Это одна запись будет просто 10 раз перезаписана, пока не останется последняя. Нужно каждый раз пересоздавать менеджер типа так:
ЗнСв = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗнСв.Объект = Документ;
    ЗнСв.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ВидПеревозки");
    ЗнСв.Значение = ВидПеревозки;
    ЗнСв.Записать();
    //Здесь создадим новый менеджер для новой записи
    ЗнСв2 = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗнСв2.Объект = Документ;
    ЗнСв2.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("МаркаАвтомобиля");
    ЗнСв2.Значение = МаркаАвтомобиля;
    ЗнСв2.Записать();
Показать

А если не быдлокодить, то в этой ситуации необходимо пользоваться набором записей как Вам написали в (2)
ВладимирVolodya; Xershi; andadra; +3 Ответить
7. andadra 01.12.16 08:50 Сейчас в теме
(5)А не подскажете, как мне тогда офрмить таблицу значений?Я думаю надо примерно вот так:
Табл = Новый ТаблицаЗначений;
Таб.Колонки.Добавить("Свойство");
Таб.Колонки.Добавить("Значение");

стр = Таб.Добавить();
стр.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("ВидПеревозки");
стр.Значение = ВидПеревозки;


Верное направление?
8. andadra 01.12.16 08:56 Сейчас в теме
(5)Все получилось, как я писал в (7), но вот вопрос. Все равно же быдло код)В таблицу ручками каждый раз добавляю.Или это лучше?)
9. dmt 67 01.12.16 09:20 Сейчас в теме
(8) Катя, можно как-то так:

Для Каждого Эл Из МассивРеквизитов Цикл

стр = Таб.Добавить();
стр.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(Эл);

Выполнить("Рез = Эл");

стр.Значение = Рез;
Показать
6. andadra 01.12.16 08:46 Сейчас в теме
Все понял, огромное спасибо.
Оставьте свое сообщение

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