|
Барабашка? | ☑ | ||
---|---|---|---|---|
0
Интрудер
14.11.12
✎
15:20
|
Возможно у меня в голове... Известно что в системе две РеализацияТоваровУслугТовары, в каждой по две строки с сылкой на нужный заказ покупателя. Код удаляет только первую строку и выходит из цикла "Для каждого"
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | РеализацияТоваровУслугТовары.Ссылка |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.ЗаказПокупателя = &ЗаказПокупателя | И РеализацияТоваровУслугТовары.Ссылка.Проведен"; Запрос.УстановитьПараметр("ЗаказПокупателя", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Объект = Выборка.Ссылка.ПолучитьОбъект(); Для каждого СтрокаТовар Из Объект.Товары Цикл Если СтрокаТовар.ЗаказПокупателя = Ссылка Тогда Объект.Товары.Удалить(СтрокаТовар); КонецЕсли; КонецЦикла; КонецЦикла; глюки? |
|||
1
France
14.11.12
✎
15:20
|
ща набегут - беги
|
|||
2
Amra
14.11.12
✎
15:21
|
(1) Тссс, не спугни
|
|||
3
shuhard
14.11.12
✎
15:21
|
(0) да, это они - тараканы в голове
|
|||
4
France
14.11.12
✎
15:21
|
(2) кхм, может одумается))
|
|||
5
PR
14.11.12
✎
15:22
|
(0) Может не Объект написать, а Объект2, например?
|
|||
6
Интрудер
14.11.12
✎
15:22
|
млин после цикла добавляю еще один
Для каждого СтрокаТовар Из Объект.Товары Цикл Если СтрокаТовар.ЗаказПокупателя = Ссылка Тогда Объект.Товары.Удалить(СтрокаТовар); КонецЕсли; КонецЦикла; удаляет обе строки |
|||
7
Фокусник
14.11.12
✎
15:22
|
(0) удаляемые строки добавляешь в массив, потом обход этого массива для удаления каждой строки
|
|||
8
France
14.11.12
✎
15:23
|
блин.. ну вот, не успел сказать "Кто первым проговорится"... а ведь все так хорошо начиналось))
|
|||
9
Интрудер
14.11.12
✎
15:24
|
(5) после двух подряд циклов убеждаюсь, что Объект = нужная реализация, строки в ней удалены.
|
|||
10
MrStomak
14.11.12
✎
15:25
|
Есть более хитрый вариант!
Для Счетчик=-Объект.Товары.Количество() по 0 Цикл Если Объект.Товары[-Счетчик].ЗаказПокупателя = Ссылка Тогда Объект.Товары.Удалить(Объект.Товары[-Счетчик]); КонецЕсли; КонецЦикла; |
|||
11
antixrus
14.11.12
✎
15:25
|
ТЧ.очистить :)
|
|||
12
Интрудер
14.11.12
✎
15:25
|
(7) дык скока раз подобный код вроде использовал без кеша, работало всегда. таки барабашка...
|
|||
13
pwei
14.11.12
✎
15:27
|
Виталик, скажи честно. Тебе деньги платят за 1С8?
|
|||
14
tdm
14.11.12
✎
15:27
|
(0) перебираете строки и тут же при переборе её удаляете)))
"Для каждого СтрокаТовар Из Объект.Товары Цикл" т.е. сначала первая строка, её удаляем; затем перескакиваем на вторую - а её нет, конецЦикла) простите, но это быдлоКод =))) (11) +100500 |
|||
15
Интрудер
14.11.12
✎
15:28
|
(10) -> (12)
понятно, откуда барашка,, должно работать же (13) Нееее, я альтруист) |
|||
16
tdm
14.11.12
✎
15:28
|
(12) прислушайтесь - он вам дело говорит) ваш же код с большими таб.частями и разными заказами будет творить вообще непредсказуемое)))
|
|||
17
Spieluhr
14.11.12
✎
15:30
|
конфигурация 1С:Барабашка
|
|||
18
PR
14.11.12
✎
15:30
|
(9) Может в объекте английские буквы есть?
|
|||
19
asady
14.11.12
✎
15:30
|
(0) В войске Чингисхана был закон - боевое подразделение за неудачи и по другим причинам подвергали децимации - перед общим строем казнили каждого десятого из этого подразделения.
Как ты думаешь как это было реализовано: 1. Берут 10-го выводят из строя и убивют, отсчитывают теперь 20-го выводят и т.д. 2. Берут сначала выводят из строя 10-го, 20-го, 30-го и т.д и затем их казнят |
|||
20
Интрудер
14.11.12
✎
15:30
|
(14)так и думал, но что-то в мозгах сидит что где то работало. видимо так работало... по ходу (10). Спасибо
|
|||
21
Aprobator
14.11.12
✎
15:31
|
(0) сразу в запросе отобрал ненужные (номера) строки. Отсортировал в обратном порядке. Итоги по Ссылка. И удаляй сразу при обходе результата запроса.
|
|||
22
PR
14.11.12
✎
15:31
|
Блин, не взлетела веточка :))
|
|||
23
Spieluhr
14.11.12
✎
15:32
|
(0) решение: переход на 7.7, там не было таких бесовских конструкций языка типа Для Каждого Из
|
|||
24
Aprobator
14.11.12
✎
15:32
|
садист
|
|||
25
France
14.11.12
✎
15:32
|
(22) да, Дмитрий поторопился))
|
|||
26
НЕА123
14.11.12
✎
15:32
|
не пятница, конечно, но скажу:
убери РАЗЛИЧНЫЕ! |
|||
27
Интрудер
14.11.12
✎
15:33
|
(21) о как... красиво. тока пока так не умею(
|
|||
28
Reset
14.11.12
✎
15:33
|
Для каждого СтрокаТовар Из Объект.Товары.НайтиСтроки(Новый Структура("ЗаказПокупателя",Ссылка)) Цикл
Объект.Товары.Удалить(СтрокаТовар); КонецЦикла; |
|||
29
tdm
14.11.12
✎
15:33
|
(22) чего над семёрошниками издеваться)))
|
|||
30
tdm
14.11.12
✎
15:34
|
+(29) они и так 1с-ом обижены))))
|
|||
31
Интрудер
14.11.12
✎
15:34
|
(26) в запросевыборке будет 4 строки, смысл?
|
|||
32
НЕА123
14.11.12
✎
15:34
|
(21)
прибил, завалил ветку |
|||
33
Интрудер
14.11.12
✎
15:34
|
(30)+1
|
|||
34
Reset
14.11.12
✎
15:35
|
(26) Тогда повторяться буду реализации - выборка идет из таб части
|
|||
35
myk0lka
14.11.12
✎
15:35
|
(20) В (19) тебе подробно объяснили как нужно делать.
|
|||
36
DexterMorgan
14.11.12
✎
15:35
|
Вечный вопрос по удалению строк из ТЗ=)
|
|||
37
DexterMorgan
14.11.12
✎
15:36
|
(19) зачет)
|
|||
38
Aprobator
14.11.12
✎
15:37
|
не по удалению, а по их внезапному исчезновению )
|
|||
39
НЕА123
14.11.12
✎
15:53
|
(34)
да. но удалится все что нужно. |
|||
40
НЕА123
14.11.12
✎
15:55
|
(39)
+ оптимально для автора сделать (28) |
|||
41
Интрудер
14.11.12
✎
16:17
|
(21)
|УПОРЯДОЧИТЬ ПО | НомерСтроки УБЫВ |ИТОГИ ПО | Ссылка"; Запрос.УстановитьПараметр("ЗаказПокупателя", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Как будет выглядеть второй параметр в "Выбрать()" (40) разве не то-же самое, но оптимальней? вместо перебора со сравнением делаем отбор по найти. кажется. вторую строку все равно не удалит(14) |
|||
42
Интрудер
14.11.12
✎
16:20
|
(41)+ не перебирал итоги никогда(
|
|||
43
Aprobator
14.11.12
✎
16:23
|
только сначала пройдись отладчиком в тестовом режиме без изменений проверь правильно ли сортировка отрабатывает. |
|||
44
НЕА123
14.11.12
✎
16:23
|
(41)
не смотри на (40). (21) самое верное. не помню, попробуй без параметров. выглядеть должно типа Пока Выборка.Следующий() Цикл ВЫборкаНомер = Выборка.Выбрать(); Пока ВЫборкаНомер.Следующий() Цикл |
|||
45
Aprobator
14.11.12
✎
16:24
|
(42) У меня сын тоже Сталкером зачитывался в свое время ). Прикольная книжка.
|
|||
46
Интрудер
14.11.12
✎
16:30
|
(43)то что искал. Спасибо, Aprobator.
|
|||
47
Aprobator
14.11.12
✎
16:33
|
на здоровье.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |