|
РегистрыСведений.Назв.СоздатьНаборЗаписей() 1с83 ОФ УПП | ☑ | ||
---|---|---|---|---|
0
Casper211
11.04.16
✎
11:35
|
Добрый день!
В табличной части на форме, изменяю значение поля и хочу изменить данные 1 поля в регистре сведений, делаю отбор: НаборЗаписей = РегистрыСведений.Доставка.СоздатьНаборЗаписей(); НайденаяСсылка = РегистрыСведений.Доставка.Выбрать(); НаборЗаписей.Отбор.ЗаказПокупателя.Использование = Истина; НаборЗаписей.Отбор.ЗаказПокупателя.ВидСравнения =ВидСравнения.Равно; НаборЗаписей.Отбор.ЗаказПокупателя.Значение = ЭлементыФормы.СписокДокументов.ТекущаяСтрока.Ссылка; НоваЗапись = НаборЗаписей.Добавить(); НоваЗапись.НомерТТН = Элемент.Значение; НаборЗаписей.Записать(); Но так не хочет записывать.{Форма.ОсновнаяФорма.Форма(1184)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(); по причине: Запись не верна! Значение поля не соответствует установленному отбору: Доставка: , (Регистр сведений: Доставка; Номер строки: 1; Поле: ЗаказПокупателя) Как сделать чтобы изменить (переписать) только 1 поле в регистре?? |
|||
1
1sanekmaloi1
11.04.16
✎
11:42
|
Либо прочитай набор и обходи записи меняя поле, либо устанавливай значения измерений, набор у тебя с отбором по "заказПокупателя", а новаязапись.ЗаказПокупателя = "пустая ссылка"
|
|||
2
Casper211
11.04.16
✎
11:46
|
(1)
НаборЗаписей = РегистрыСведений.Доставка.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ЗаказПокупателя.Использование = Истина; НаборЗаписей.Отбор.ЗаказПокупателя.ВидСравнения =ВидСравнения.Равно; НаборЗаписей.Отбор.ЗаказПокупателя.Значение = ЭлементыФормы.СписокДокументов.ТекущиеДанные.Ссылка; НаборЗаписей.Отбор.Контрагент.Использование = Истина; НаборЗаписей.Отбор.Контрагент.ВидСравнения =ВидСравнения.Равно; НаборЗаписей.Отбор.Контрагент.Значение = ЭлементыФормы.СписокДокументов.ТекущиеДанные.Контрагент; НаборЗаписей.Прочитать(); //обходи записи меняя поле НоваЗапись = НаборЗаписей.Добавить(); НоваЗапись.НомерТТН = Элемент.Значение; НаборЗаписей.Записать(); Извини, а как их обойти? |
|||
3
1sanekmaloi1
11.04.16
✎
11:50
|
Для каждого запись из НаборЗаписей
запись.номерттн = элемент.значение; КонецЦикла Набор.записать(); |
|||
4
Casper211
11.04.16
✎
11:56
|
(3) Большое спасибо. Все получилось
Еще раз спасибо. НаборЗаписей = РегистрыСведений.Доставка.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.ЗаказПокупателя.Использование = Истина; НаборЗаписей.Отбор.ЗаказПокупателя.ВидСравнения =ВидСравнения.Равно; НаборЗаписей.Отбор.ЗаказПокупателя.Значение = ЭлементыФормы.СписокДокументов.ТекущиеДанные.Ссылка; НаборЗаписей.Отбор.Контрагент.Использование = Истина; НаборЗаписей.Отбор.Контрагент.ВидСравнения =ВидСравнения.Равно; НаборЗаписей.Отбор.Контрагент.Значение = ЭлементыФормы.СписокДокументов.ТекущиеДанные.Контрагент; НаборЗаписей.Прочитать(); Для каждого НоваяЗапись из НаборЗаписей Цикл НоваяЗапись.НомерТТН = Элемент.Значение; КонецЦикла; НаборЗаписей.Записать(); |
|||
5
ДенисЧ
11.04.16
✎
11:58
|
А просто
НаборЗаписей.Отбор.Контрагент.Установить(ЭлементыФормы.СписокДокументов.ТекущиеДанные.Контрагент); не катит? |
|||
6
Casper211
11.04.16
✎
12:01
|
(5)И так работает,и вам большое спасибо за оптимизацию кода. И за помощь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |