|
Ссылки и программная запись документа
| ☑ |
0
lanc2233
24.03.15
✎
12:55
|
Есть задача - пройтись по помеченных на удаление товарах, и удалить их из определенного вида документов.
Запрос.УстановитьПараметр("Номенклатура",СсылкаНаУдаляемыйТовар);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Об = Выборка.Ссылка.ПолучитьОбъект();
Для Каждого СтрДок Из Об.Номенклатура Цикл
Если СтрДок.Номенклатура = СсылкаНаУдаляемыйТовар Тогда
Об.Номенклатура.Удалить(СтрДок.НомерСтроки-1);
КонецЕсли;
КонецЦикла; // по табчасти документа
Об.Записать();
КонецЦикла; // запрос по документам
Данный код удаляет номенклатуру строки из табчасти. Если зайти в документ, строки действительно получаются удаленными. Но штатный поиск ссылок на объекты, все равно показывает, что такая номенклатура есть в документе.
А если вручную зайти в документ и перезаписать его, то только тогда пропадает из поиска ссылок.
Как его программно удалить по нормальному?
|
|
1
hhhh
24.03.15
✎
12:58
|
с конца тч двигайтесь, чтобы не сбивалось
|
|
2
fisher
24.03.15
✎
13:04
|
Документы проведенные?
|
|
3
palpetrovich
24.03.15
✎
13:05
|
Об.Записать(режипроверения.провести); как-то так
|
|
4
fisher
24.03.15
✎
13:05
|
Есть ли у документа другие табличные части?
|
|
5
lanc2233
24.03.15
✎
13:06
|
Часть проведенных, часть нет.
Другие табчасти есть.
|
|
6
Ник второй
24.03.15
✎
13:08
|
в движениях по документу ссылки остались.
|
|
7
lanc2233
24.03.15
✎
13:09
|
Спасибо.
Так помогло :
Р = ?(Выборка.Проведен,РежимЗаписиДокумента.Проведение,РежимЗаписиДокумента.Запись);
Об.Записать(Р);
|
|
8
palpetrovich
24.03.15
✎
13:09
|
(5) если проведен тогда
Об.Записать(РежимЗаписиДокумента .Проведение );
иначе
Об.Записать(РежимЗаписиДокумента .Запись );
|
|
9
palpetrovich
24.03.15
✎
13:10
|
(7) угумс
|
|