Удаление строк из ТЧ документа с внешней обработки

1. user1663629 14.09.21 16:19 Сейчас в теме
Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос=новый запрос;
запрос.Текст="ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ(&Ссылка)";
запрос.УстановитьПараметр("Ссылка",ПолеВвода1);
СписокТовары=запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка") ;
НачатьТранзакцию();
// Вставить содержимое обработчика.,
для каждого мДок из Метаданные.Документы цикл
СписокТЧ=новый СписокЗначений;
для Каждого мТЧ из мДок.ТабличныеЧасти цикл
если не мТЧ.Реквизиты.Найти("Товар")=Неопределено тогда
СписокТЧ.Добавить(мТЧ.имя);
КонецЕсли;
КонецЦикла;
если СписокТЧ.Количество()>0 тогда
выборка=Документы[мДок.Имя].Выбрать();
пока выборка.Следующий() цикл
док=выборка.ПолучитьОбъект();
надоЗапис=0;
для каждого тч из СписокТЧ цикл
СписокУдалСтр=новый Массив;
для каждого стр из выборка[тч.Значение] цикл
если СписокТовары.найти(стр.товар)<>Неопределено тогда
надоЗапис=1;
СписокУдалСтр.Добавить(стр);
КонецЕсли;
КонецЦикла;
для каждого стр из СписокУдалСтр цикл
док[тч.Значение].удалить(стр);
КонецЦикла;
КонецЦикла;
если надоЗапис=1 тогда
док.Записать(?(док.проведен,РежимЗаписиДокумента.Проведение,РежимЗаписиДокумента.Запись));
КонецЕсли;


КонецЦикла;

КонецЕсли;


КонецЦикла;
ЗафиксироватьТранзакцию();
КонецПроцедуры


Не удаляет строки из документа. Ошибка : Колонка не принадлежит коллекции.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. FatPanzer 14 14.09.21 16:22 Сейчас в теме
Кровь из глаз. Догадываться о том в какой строке выскакивает ошибка - предлагаете нам самостоятельно?
7. user1663629 15.09.21 08:50 Сейчас в теме
(2)
я ищу решение проблемы.
3. user606894_schana1w3 14.09.21 16:31 Сейчас в теме
Здравствуйте, ну во первых.
с процедуры нажатия кнопки, запрос не сработает, там клиентский вызов.
надо сделать процедуру на сервере

Я так понимаю вы хотите запросом вытащить товары которые надо удалить во всех документах, учитывая что не у всех есть т.ч. Товары

что отладчик говорит?, я подозреваю вы где-то к колонке обращаетесь и пытаетесь ее удалить какое-то значение из списка.
4. user5300 709 14.09.21 16:33 Сейчас в теме
(3)
там клиентский вызов

Судя по всему у него обычные формы
8. user1663629 15.09.21 11:26 Сейчас в теме
я не на сервере нахожусь. У нас старая база.
5. user1461477 14.09.21 16:57 Сейчас в теме
примечательное открытие транзакции
повбывавбы
(сорри, ничего личного, товарищ автор.
эмоции чисто по конкретному кастомному наследию от братьев-франчайзей)
6. user1663629 15.09.21 08:49 Сейчас в теме
(3) Я пытаюсь удалить определённый товар с ТЧ. В отладчике видно что он находит этот товар , но не удаляет его при нажатии . Выходит ошибка. А про сервер я вообще не знал.
(5)
Код писал не я, это готовый код. Если можешь помочь то помогай.
9. user1461477 15.09.21 13:23 Сейчас в теме
обрамить транзакцией только запись пакета логически связанных, предварительно (вне транзакции) заполненных объектов
10. user1461477 15.09.21 13:24 Сейчас в теме
(9) в кишках (событиях) записи каждого объекта внимательно смотреть на наличие вложенных транзакций (попыток)
11. user952544 16.09.21 15:44 Сейчас в теме
(1)
вместо
для каждого стр из выборка[тч.Значение] цикл
пиши
для каждого стр из Док[тч.Значение] цикл
Ошибку получаешь потому что из документа-объекта удаляешь не строки документа-объекта, а строки документа-выборки. Вроде и тип у них одинаковый, и документ тот же, но разница есть.
12. user1663629 17.09.21 08:41 Сейчас в теме
(11) спасибо, забил на этот код уже. Пишу щас свою обработку для удаления определенных товаров. Скоро выложу на сайт. Код кривой может но обработка будет работать как над)
Оставьте свое сообщение
Вопросы с вознаграждением
Вакансии
Программист 1С
Новосибирск
зарплата от 90 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата от 100 000 руб. до 150 000 руб.
Полный день

Программист 1С
Москва
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Программист 1С
Москва
зарплата от 100 000 руб. до 140 000 руб.
Полный день

Программист 1С
Хабаровск
зарплата от 130 000 руб. до 160 000 руб.
Полный день