|
Удалить данные в строке таблицы значений |
☑ |
0
Alekzander
27.06.13
✎
22:56
|
Задача такова: нужно почистить регистр накопления "ТоварыОрганизацийКПередаче" (УТ 11), убрав из строчек номера ГТД. Делаю запрос (на правильность кода не претендую):
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыОрганизацийКПередаче.НомерГТД КАК НомерГТД,
| ТоварыОрганизацийКПередаче.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ТоварыОрганизацийКПередаче КАК ТоварыОрганизацийКПередаче";
Выборка = Запрос.Выполнить().Выбрать();
НаборЗаписей = РегистрыНакопления.ТоварыОрганизацийКПередаче.СоздатьНаборЗаписей();
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
ТЗ = НаборЗаписей.Выгрузить();
СтрокаПоиска = Новый Структура("НомерГТД", Выборка.НомерГТД);
МассивТЗ = ТЗ.НайтиСтроки(СтрокаПоиска);
Для Каждого СтрокаТЗ Из МассивТЗ Цикл
// см. ниже - как правильно?
СтрокаТЗ.НомерГТД.Очистить();
КонецЦикла;
НаборЗаписей.Загрузить(ТЗ);
КонецЦикла;
НаборЗаписей.Записать();
Собственно про строчку очищения у меня и вопрос: номера ГТД не очищаются, а значит, код неверный. Подскажите, как правильнее будет написать удаление данных в строке ТЗ?
|
|
1
philll
27.06.13
✎
22:59
|
СтрокаТЗ.НомерГТД="";
может так?
|
|
2
Фокусник
27.06.13
✎
22:59
|
(0) СтрокаТЗ.НомерГДТ = Неопределено;
|
|
3
zippygrill
27.06.13
✎
23:00
|
НаборЗаписей = РегистрыНакопления.ТоварыОрганизацийКПередаче.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
|
|
4
Alekzander
27.06.13
✎
23:01
|
(3) мне не весь регистр очистить надо, лишь значения одного измерения
|
|
5
Alekzander
27.06.13
✎
23:05
|
(1) (2) не получается, обоими способами попробовал. Может где ещё ошибка?
|
|
6
zippygrill
27.06.13
✎
23:08
|
Выборка у тебя конечно какая-то странная и непонятно почему ставишь отбор по регистратору. Я бы на твоем месте взял бы все записи, прошелся бы по ним удадяя ГТД и обратно бы записал все целиком. Может быть я не прав;
|
|
7
Фокусник
27.06.13
✎
23:10
|
(5) а что именно не получается? Сделай отладочные сообщения:
Сообщить(СтрокаТЗ.НомерГТД);
СтрокаТЗ.НомерГТД = Неопределено;
Сообщить(СтрокаТЗ.НомерГТД);
Что выводит?
|
|
8
Alekzander
27.06.13
✎
23:11
|
(6) ругается обработка, мол, не установлен отбор по регистратору, если оный не установить.
|
|
9
Фокусник
27.06.13
✎
23:11
|
(7)+ а может в цикл не заходит?
|
|
10
Alekzander
27.06.13
✎
23:14
|
(9) оп-па, точняк, чёт в цикл Для Каждого не заходит (внутри которого как раз та строчка)
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший