|
v7: Почему метод УдалитьСтроку() удаляет сразу и сначала и с конца ТЧ? | ☑ | ||
---|---|---|---|---|
0
23th
18.06.12
✎
18:12
|
Тов.ВыбратьДокументы(Дата1,Дата2);
Пока Тов.ПолучитьДокумент()=1 Цикл ном = 0; номстрок = 1; СколькоСтрок = Тов.КоличествоСтрок(); Пока номстрок <= СколькоСтрок цикл Тов.ПолучитьСтрокуПоНомеру(номстрок); номстрок = номстрок + 1; Если Тов.ТипТранз = 11 тогда СписокПараметров.УдалитьВсе(); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.НомерДок)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.ДатаДок)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.СчетКредита)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар.Код)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар.VIN)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.ТипТранз)+"'"); СписокПараметров.ДобавитьЗначение(Строка(Тов.Количество)+"'"); СписокПараметров.ДобавитьЗначение(Строка(Тов.Всего)); СтарКол=Тов.Количество; СтарВсего = Тов.Всего; Стр=СписокПараметров.ВСтрокуСРазделителями(); Текст.ДобавитьСтроку(Стр); ном = ном+1; ИначеЕсли Тов.ТипТранз = 12 тогда Текст.УдалитьСтроку(ном); ИначеЕсли Тов.ТипТранз = 17 тогда СписокПараметров.УдалитьВсе(); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.НомерДок)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.ДатаДок)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.СчетКредита)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар.Код)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар.VIN)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.Товар)+"'"); СписокПараметров.ДобавитьЗначение(СокрЛП(Тов.ТипТранз)+"'"); СписокПараметров.ДобавитьЗначение(Строка(СтарКол)+"'"); СписокПараметров.ДобавитьЗначение(Строка(СтарВсего-Тов.Всего)); Стр=СписокПараметров.ВСтрокуСРазделителями(); Текст.УдалитьСтроку(ном); Текст.ДобавитьСтроку(Стр); Иначе СписокПараметров.УдалитьВсе(); КонецЕсли; ; Сообщить(Тов.НомерДок); КонецЦикла; КонецЦикла; Текст.Записать(ИмяФайла) |
|||
1
23th
18.06.12
✎
18:13
|
Сразу скажу метод Пока Тов.ПолучитьСтроку() = 1 я уже пробовал эффект один и тот же
|
|||
2
Shved_72
18.06.12
✎
18:16
|
удаляем из ТЧ или из текста всетаки?
|
|||
3
23th
18.06.12
✎
18:17
|
из текстовика
|
|||
4
NS
18.06.12
✎
18:17
|
(3) Чтоб удалять из Текста, туда сначала нужно добавить? Или нет?!
|
|||
5
23th
18.06.12
✎
18:18
|
там же он по очереди добавляет, как я понял из отладчика
|
|||
6
Партизан
18.06.12
✎
18:18
|
gjnjve xnj ujdyjrjl
|
|||
7
23th
18.06.12
✎
18:19
|
ну да, просто есть одинаковые строки идущие друг за другом и вот предыдущие надо удалить и оставить последнюю.
|
|||
8
Voronve
18.06.12
✎
18:19
|
(7) а не добавлять такую строку ?
|
|||
9
23th
18.06.12
✎
18:20
|
я сначала удаляю старою строку, а затем на ее место ставлю новую.
|
|||
10
NS
18.06.12
✎
18:20
|
(7) То есть ты добавляешь в конец списка, а где-то в начале при этом удаляешь?
Круто! |
|||
11
NS
18.06.12
✎
18:20
|
(9) А надо - удалить все строки, а потом добавить только нужные.
|
|||
12
23th
18.06.12
✎
18:22
|
почему я добавляю в конец и удаляю с конца
|
|||
13
КонецЦикла
18.06.12
✎
18:22
|
Может просто не нужно добавлять то что нужно потом удалить? Ну это так, в порядке бреда
Либо в ТЗ добавить все, потом отсортировать по признаку удаления и нужный блок поместить в текстовик |
|||
14
23th
18.06.12
✎
18:23
|
и тем более как я могу удалить из документа эти "ненужные" мне строки, остальным то они очень нужны.
|
|||
15
23th
18.06.12
✎
18:24
|
так как видно из кода, отсортировать не получиться, т.к. там идут взаимосвязь с предыдущей строкой.
|
|||
16
NS
18.06.12
✎
18:24
|
(14) Ты никаких строк из документа не удаляешь.
|
|||
17
23th
18.06.12
✎
18:25
|
"000001'","03.01.12'","41.2'","59833'","406.1005033'","????????? ??????????? ???? 406'","11'","1'","250"
"000001'","03.01.12'","41.2'","35524'","406.1006170-10'","??????????? ???? ?????? 406'","11'","1'","25" "000001'","03.01.12'","41.2'","53449'","406-1006160-10'","??????????? ???? ??????? 406'","11'","1'","30" "000001'","03.01.12'","41.2'","35522'","406.1006150-10'","??????????? ???? ??????? 406-1006150-10'","11'","1'","20" "000001'","03.01.12'","41.2'","77054'","4052'","??????? ?????????????? ?????? 406??. (? ?????????????)'","11'","1'","692" "000001'","03.01.12'","41.2'","61790'","3163-8110020-96'","???????????????? 3163'","11'","1'","1900" "000001'","03.01.12'","41.2'","69217'","???007'","??????? ???????? ??? (2 ????.)L=120?? ??????'","11'","1'","90" вот примерный выход в текстовик |
|||
18
NS
18.06.12
✎
18:25
|
(12) ну-ну.
|
|||
19
23th
18.06.12
✎
18:27
|
и помещай не помещай в отдельную ТЗ ничего от этого не измениться.
|
|||
20
23th
18.06.12
✎
18:35
|
самое что интересное, он если удаляет именно 5ю строку, то в с конца он удаляет правильную только с конца текстовика 5ю строку! прям чудеса да и только!
|
|||
21
GreyK
18.06.12
✎
18:42
|
(20) Позовите программиста.
|
|||
22
23th
18.06.12
✎
18:47
|
это не ответ, так как по идее все гладко.
|
|||
23
23th
18.06.12
✎
18:48
|
NS
16 - 18.06.12 - 18:24 (14) Ты никаких строк из документа не удаляешь. они то как раз и удаляются |
|||
24
GreyK
18.06.12
✎
18:52
|
(22) Где движения по тексту?
|
|||
25
NS
18.06.12
✎
18:52
|
(23) Какая строка в коде удаляет строки из документа?
|
|||
26
GreyK
18.06.12
✎
18:54
|
+(24) Откуда растут ноги у этих строчек?
ИначеЕсли Тов.ТипТранз = 12 тогда Текст.УдалитьСтроку(ном); |
|||
27
23th
18.06.12
✎
18:56
|
это я удаляю строку в текстовике под номером переменной ном из цикла
|
|||
28
23th
18.06.12
✎
18:58
|
а там как раз номер строки предыдущей, то есть последней
|
|||
29
GreyK
18.06.12
✎
18:59
|
(27) > (24)
|
|||
30
NS
18.06.12
✎
19:00
|
Если тебе нужно удалить предыдущую строку - то
Текст.УдалитьСтроку(ном); ном=ном-1; |
|||
31
NS
18.06.12
✎
19:00
|
Ты кассу чтоли обрабатываешь? Только сейчас просек.
|
|||
32
23th
18.06.12
✎
19:02
|
да-да это отчет о продажах с транзакциями
|
|||
33
Злопчинский
18.06.12
✎
19:56
|
Уберите дятла от кассы! а то надолбит!!!
|
|||
34
Скользящий
18.06.12
✎
20:06
|
Зачем, за ним потом можно это все разгрести за вдвое большие бабки.
|
|||
35
23th
19.06.12
✎
04:51
|
Ура я сделал!!! только через ТЗ!!!
|
|||
36
Simod
19.06.12
✎
05:38
|
Надо еще посмотреть, что ты там "сделал"...
|
|||
37
Касандер72
19.06.12
✎
12:22
|
Медленно, но надежно:
Для Счетчик = -Тов.КоличествоСтрок() По - 1 Цикл Тов.ПолучитьСтрокуПоНомеру(-Счетчик); Если Тов.ТипТранз = 12 Тогда Тов.УдалитьСтроку(-Счетчик); КонецЕсли; КонецЦикла; |
|||
38
Касандер72
19.06.12
✎
12:32
|
+(37) сор не в ту степь)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |