Имя: Пароль:
1C
1С v8
Не переносить строку тч, если в базе приемника она не найдена
0 ANDRU48
 
28.10.14
13:08
На данный момент получаются пустые строки в тч, остальные столбцы по данной строке заполняются. Хочу, чтобы если строка.номенклатура в приемнике не найдена, тогда не переносить всю строку полностью. Как условие на отказ написать в ПКГС?
1 Гёдза
 
28.10.14
13:09
только удалять строки потом
2 ANDRU48
 
28.10.14
13:13
(1) можно и удалять, главное, чтобы строки с пустой номенклатуры не было
3 France
 
28.10.14
13:14
в "ПриЗагрузке" удалять лишние..
4 ANDRU48
 
28.10.14
13:56
Сделал так ПослеЗагрузки Для Каждого Строка Из Объект.ОС Цикл
    Если Не ЗначениеЗаполнено(Строка.ОсновноеСредство) Тогда
        Объект.ОС.Удалить(Строка);
    КонецЕсли;
КонецЦикла;

Но все равно появляются при загрузке строки с пустыми ос.
5 France
 
28.10.14
13:56
Что там было про выборку при удалении строки?
6 ANDRU48
 
28.10.14
14:05
Up
7 ANDRU48
 
28.10.14
15:08
Если делать через внешнюю обработку

Для Каждого Строка Из Объект.ОС Цикл
    Если Не ЗначениеЗаполнено(Строка.ОсновноеСредство) Тогда
        Объект.ОС.Удалить(Строка);
    КонецЕсли;
КонецЦикла;


Тогда удаление проходит, но хотелось бы через правила сделать.
8 Михаил Козлов
 
28.10.14
15:10
(7) Удаляете криво: итератор может проскакивать.
9 ANDRU48
 
28.10.14
15:14
Основное средство переносится по правилу, в этом правиле стоит галочка не создавать новый объект, если он не найден.
Прошел отладчиком в тч строка.ос значение пустое.
10 Chameleon1980
 
28.10.14
15:19
с конца тч удалять через цикл
а не

Если Не ЗначениеЗаполнено(Строка.ОсновноеСредство) Тогда
    Объект.ОС.Удалить(Строка);
КонецЕсли;

конечно итератор улетает
11 Гёдза
 
28.10.14
15:24
За неумение удалять строки из ТЗ - двойка
12 France
 
28.10.14
15:26
До 100 дойдем?
13 Chameleon1980
 
28.10.14
15:26
мну?
можно и сверху удалить
14 13_Mult
 
28.10.14
15:36
Через произвольный алгоритм ПВД, я бы сделал.
15 ANDRU48
 
28.10.14
16:02
Спасибо за мысль, все получилось.

    Сч = 0;
    Пока Сч < Объект.ОС.Количество() Цикл
        Строка = Объект.ОС[Сч];
        Если Не ЗначениеЗаполнено(Строка.ОсновноеСредство) Тогда
            Объект.ОС.Удалить(Строка);
        Иначе
            Сч = Сч + 1;
        КонецЕсли;
    КонецЦикла;
16 France
 
28.10.14
16:09
Мда..