![]() |
![]() |
![]() |
|
Как изменить записи независимого непериодического регистра сведений. | ☑ | ||
---|---|---|---|---|
0
Dizel
23.09.09
✎
00:49
|
В конфигурации УТ есть регистр сведений Штрихкоды. Я хочу у всех записей поменять значение измерения качества. Такой код не работает
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗапистей(); НаборЗаписей.Отбор.Качество.Установить(Справочники.Качество.Новый); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл Запись.Качество = Справочники.Качество.НайтиПоКоду("00002"); КонецЦикла; НаборЗаписей.Записать(); Выдает собщение: "Штрихкод: 2988888600186 уже имеет владельца Валенки" и на записи вылетает с ошибкой. Что не так делаю? |
|||
1
ТелепатБот
гуру
23.09.09
✎
00:49
|
||||
2
korolar
23.09.09
✎
00:55
|
модуль набора записей регистра смотри
|
|||
3
Dizel
23.09.09
✎
08:21
|
А как же правильно сделать
|
|||
4
butterbean
23.09.09
✎
08:28
|
(3) чего у тебя в модуле набора записей написано??
|
|||
5
Dizel
23.09.09
✎
08:30
|
Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл
Если ЗначениеЗаполнено(ТекущаяЗапись.ШтрихКод) Тогда Запрос = Новый Запрос(" |ВЫБРАТЬ ПЕРВЫЕ 1 | РегШтрихкоды.Владелец КАК Владелец, | РегШтрихкоды.ШтрихКод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК РегШтрихкоды |ГДЕ | РегШтрихкоды.ШтрихКод = &ШтрихКод |"); Запрос.УстановитьПараметр("ШтрихКод", ТекущаяЗапись.ШтрихКод); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Сообщить("Штрихкод: " + Выборка.ШтрихКод + " уже имеет владельца """ + СокрЛП(Выборка.Владелец) + """."); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЦикла; |
|||
6
butterbean
23.09.09
✎
08:33
|
ну воткни проверку на владельца еще
|
|||
7
butterbean
23.09.09
✎
08:34
|
(6)+ типа
|ГДЕ | РегШтрихкоды.ШтрихКод = &ШтрихКод | И РегШтрихкоды.Владелец <> &Владелец |
|||
8
Dizel
23.09.09
✎
08:35
|
У меня задача сделать это во внешней обработке
|
|||
9
butterbean
23.09.09
✎
08:36
|
(8) по другому не обойдешь имхо
|
|||
10
butterbean
23.09.09
✎
08:37
|
(9) ну еще как вариант - сбросить все в таблицу значений, очистить регистр, а потом загрузить в набор из этой таблицы
|
|||
11
SuperMario
23.09.09
✎
08:57
|
(10) ну весь рег то чистить не стоит. Достаточно удалить предварительно записи, которые нужно изменить, а потом повторно заполнить. Ест- но все значения, кроме "качество" нужно помнить.
|
|||
12
ASU_Diamond
23.09.09
✎
09:09
|
(8)
НД=РегистрыСведений.Регистр1.СоздатьНаборЗаписей(); выборка нужных записей перебор записей и их изменение НД.Записать() как-то так |
|||
13
ASU_Diamond
23.09.09
✎
09:11
|
(+12) хотя я делал через ТЗ как предлагает (10)
НД=РегистрыСведений.Регистр1.СоздатьНаборЗаписей(); выборка нужных записей ТЗ=НД.Выгрузить(); Для каждой Стр из ТЗ тут правим КонецЦикла НД.Загрузить(ТЗ); НД.Записать() |
|||
14
Dizel
23.09.09
✎
10:39
|
Спасибо. Сделал через ТЗ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |