Удалить проводки в ТЧ по условию... #629581


#0 by листопад
БП 2.0 Подскажите, почему не срабатывает условие: надо в ТЧ док-та удалить все проводки Дт20-Кт70, у которых СуммаБУ=0, СуммаНУ - непустая, СуммаВР - непустая. Пишу: Удаляет все Дт20-Кт70
#1 by mikecool
используй НайтиСтроки
#2 by vmv
не читал твой г-код, но дам совет по условию собирают строки в мУдалемыеСтроки потом оходят этот массив, а не коллекцию строк и удаляют вшивых из коллекции
#3 by mikecool
это и делает НайтиСтроки, только одной строкой )
#4 by vmv
+ если отбор не реален в случае получения выборки запросом и кривой типизацией, то используй в переборе в условиях ЗначениеЗаполнено и будет счастье. да я не видел, шо он технологию блюл
#5 by Aprobator
не взлетит
#6 by Aprobator
есть условие не на равенство.
#7 by листопад
Ничего не поняла (((
#8 by vmv
да тема вообще дурацкая, я не буду спорить о тривиальных вещах, предполагаю, что тс просто пьян и озвучил чуш
#9 by mikecool
варум?
#10 by Reset
"СуммаНУ - непустая, СуммаВР - непустая" НайтиСтроки - без танцев с бубнами не взлетит. А танцы нафиг не нужны, поэтому просто цикл
#11 by Aprobator
проблемы пока не видим.
#12 by mikecool
+9 а, блин, все не читал, как всегда )))
#13 by Eugene_life
Перебирай Таб часть с конца и сразу удаляй в ней строки по условию. не собирай в массив вообще :)
#14 by salvator
Удаляются именно 20/70?
#15 by vmv
автор похож и на Варум и на кавказскую пленицу - надо позвать товарища Сааахова для решения ее насущных проблем
#16 by Aprobator
сдается мне, что проблема нефига не в этой функции. Отладчик в помощь.
#17 by salvator
И почему опять ДокументОбъект? ЭтотОбъект надо писать, если кнопка на форме!!!
#18 by vmv
Если Строка.СчетДт=Счет26 И Строка.СчетКт=Счет70 И Строка.Сумма=0 И Строка.СуммаНУ<>0 И Строка.СуммаВР<>0 Тогда я убегаю курить когда вижу такие перлы
#19 by Eugene_life
Примерно так:
#20 by Eugene_life
+ Забыл.. вот так:
#21 by vmv
тебя бы повесить за такой код)
#22 by Eugene_life
Давай свой вариант
#23 by Aprobator
маразм крепчал. Процедурка сама откуда вызывается? И что такое документ объект? Если все происходит в модуле формы документа, то обращание к ТЧ идет тупо п ее миени.
#24 by Aprobator
обращение к ТЧ по имени.
#25 by Aprobator
не у всех так быстро вечные циклы получаются.
#26 by vmv
код чего - банального перебора и банального удаления? там проблема в источниках и условии - шерифа это не волнует)
#27 by Eugene_life
Я так давно не писал уже - вот и потерял сноровку :)
#28 by Aprobator
в условии то где проблема?
#29 by Eugene_life
Дай девочке образец кода как удалить строки ТЧ по нескольким условиям. Чтобы было красиво, быстро, безупречно.
#30 by vmv
я считаю глупо забивать девочке голову всякой ерундой
#31 by Aprobator
код у девочки вполне нормальный, если не считать замечания по обращению к ТЧ через ДокументОбъект. ИМХО, проблема не в коде.
#32 by Eugene_life
слив защитан
#33 by salvator
#34 by Aprobator
никогда не понимал использования ЭтотОбъект в модуле формы не для передачи контекста в общие модули. Просвети - нафиг он тут нужен?
#35 by Aprobator
-> конечно же.
#36 by листопад
Все равно лишние проводки Дт20-Кт70 удаляются!!!
#37 by Aprobator
Вот тут сделай контрольку .....        Если Строка.СчетДт=Счет26 И Строка.СчетКт=Счет70 И Строка.Сумма=0 И Строка.СуммаНУ<>0 И Строка.СуммаВР<>0 Тогда .......
#38 by salvator
Согласен, если в модуле формы, то тупо по имени ТЧ.
#39 by Aprobator
Судя по ....(Кнопка) код именно в модуле формы.
#40 by Aprobator
БП под рукой нет. Строка.Сумма - точно сумма БП, а не какая-нибудь управленческая?
#41 by Eugene_life
Ищи ошибку в условии. По какому-то из них у тебя всегда срабатывает удаление строки.
#42 by Aprobator
сейчас счастье придет )
#43 by листопад
Написала, как Вы, только условие свое добавила: Выдает ошибку: Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента.Форма(1903,15)}: Ошибка в выражении    Пока Индекс ><<?>> = 0 Цикл  (Проверка: Толстый клиент (обычное приложение))
#44 by листопад
Да
#45 by salvator
Да что ж такое. Пробел убери между > и =
#46 by Aprobator
укушу счас. Грят те проверь по , а есть ли строки не попавшие под удаление то.
#47 by salvator
И вместо ТабЧасть пиши ОтражениеВУчете. И первую строчку вообще убери.
#48 by Aprobator
если уж отладчиком вообще лениво пользоваться то.
#49 by листопад
Условие не меняется: Если СтрокаТЧ .СчетДт=Счет26 И СтрокаТЧ .СчетКт=Счет70 И СтрокаТЧ .Сумма=0 И СтрокаТЧ .СуммаНУ<>0 И СтрокаТЧ .СуммаВР<>0 Тогда
#50 by Aprobator
>= в коде пишется слитно. Но роли это не сыграет.
#51 by листопад
Убрала пробел, теперь пишет ошибку: Документ.ОтражениеЗарплатыВРеглУчете.Форма.ФормаДокумента.Форма(1901)}: Поле объекта не обнаружено (Колонки)    СтаршийИндексКолонок = ТабЧасть.Колонки.Количество - 1;
#52 by Aprobator
вот млин. По проверила? Есть попадание в Иначе?
#53 by листопад
Да, пишет: были не удаляемые строки
#54 by salvator
В + написан перебор строк и удаление по условию. Только нужно обращаться к ТЧ напрямую по имени как она задана на форме документа. Проверь условие, пройдись отладчиком и посмотри, что творится.
#55 by Aprobator
следующий этап. В отладчике ставишь точку останова на КонецПроцедуры. По остановке смотришь отладчиком, что у тебя осталось в ТабЧасть.
#56 by Aprobator
но, ИМХО, проблема не в этой процедуре. Строки в какой момент исчезают то из ТЧ? Сразу после отработки процедуры или при записи документа?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С