Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Удаление строк таблицы по условию

Удаление строк таблицы по условию
Я
   Mucmep_Mapuo
 
28.02.18 - 04:51
Подскажите как удалить строки из ТЗ, в которых значение колонки "Закупочная цена" ниже той, что введена в ПолеВода2(((
 
 
   Mucmep_Mapuo
 
1 - 28.02.18 - 04:52
Наименов = Справочники.Номенклатура.Выбрать();
        Пока Наименов.Следующий() Цикл
        НоваяСтрока = ТабличноеПоле1.Добавить() ;
        НоваяСтрока.Наименование = Наименов.Ссылка;
            Масс = Справочники.ТипыЦенНоменклатуры.Выбрать();
            Пока Масс.Следующий() Цикл
                Запрос = Новый Запрос;
                Запрос.УстановитьПараметр("ТипЦены",Масс.Наименование);
                Запрос.УстановитьПараметр("НаименованиеНум",Наименов.Наименование);
                Запрос.Текст = "ВЫБРАТЬ
                | ЦеныНоменклатуры.Цена КАК Цена ИЗ
                | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
                | ГДЕ ЦеныНоменклатуры.ТипЦен.Наименование = &ТипЦены
                | И ЦеныНоменклатуры.Номенклатура.Наименование = &НаименованиеНум
                |
                |";
                РезультатЗапроса = Запрос.Выполнить();
                Выборка = РезультатЗапроса.Выбрать();
                    Пока Выборка.Следующий() Цикл
                    Цена = Выборка.Цена;
                    КонецЦикла;
                НоваяСтрока[Масс.Наименование] = Цена;    
            КонецЦикла;
            ***************************    
    КонецЦикла;
   VladZ
 
2 - 28.02.18 - 05:04
(1) Не получать эти данные. Добавь в запрос "где ЦеныНоменклатуры.Цена > &НижнийПредел
   Джексон
 
3 - 28.02.18 - 05:26
(2) Не угадал. Запрос выполняется после того, как строка уже добавлена.

Еще предложения?
   Галахад
 
4 - 28.02.18 - 05:32
Предлагаю побить автора.
   smilemanrus
 
5 - 28.02.18 - 05:36
(2) Если в запросе указать, то строка все равно будет добавляться, наверно надо будет ещё добавить строку
Если РезультатЗапроса.Пустой() Тогда
ТабличноеПоле1.Удалить(ТабличноеПоле1.Количество() - 1);
КонецЕсли;
НоваяСтрока[Масс.Наименование] = Цена;

Да и цикл Пока ВыборкаСледующий() не нужен, по видимому достаточно просто написать ВыборкаСледующий(), если запрос возвращает только одну запись
   VladZ
 
6 - 28.02.18 - 05:40
(3) Общий смысл не изменяется: "Если данные не нужны - сразу их фильтровать (не получать)". В (1) написан бред (запрос в цикле). Этот бред удалить, написать правильно.
   VladZ
 
7 - 28.02.18 - 05:42
ну и, предварительно, сделать (4).  :)
   Diman000
 
8 - 28.02.18 - 06:21
Справочник.Выбрать раз и полный перебор...
Внутри Справочник.Выбрать два и полный перебор...
Мама, роди меня обратно...
   catena
 
9 - 28.02.18 - 06:36
(8)Установление параметров по наименованию и запись в ТЗ ссылки по ссылке уже, видимо, прошли мимо на фоне)))
   VladZ
 
10 - 28.02.18 - 06:38
(8) Для полного счастья нужно было сделать третий перебор: поиск цены в регистре ЦеныНоменклатуры.
 
 Рекламное место пустует
   Diman000
 
11 - 28.02.18 - 06:40
Да, мне первых двух переборов хватило, дальше я закрыл глаза и заплакал.
   VladZ
 
12 - 28.02.18 - 06:46
А вообще, код шикарен! Скопирую себе. Буду при приеме на работу прогов спрашивать, что они думают про этот код, есть ли замечания / предложения по коду. Стоит ли его исправить или оставить как есть? :)
   Сти
 
13 - 28.02.18 - 06:49
(12) Конечно надо! там же синтаксическая ошибка в виде ***************************
   Mucmep_Mapuo
 
14 - 28.02.18 - 09:55
Всем огромное спасибо)))) Неужели все сразу в первый день программирования на 1С стали Гуру?) Лично я только вчера узнал чем функция отличается от процедуры, и что такое "Запрос" в принципе)) но побить так побить, пробуйте)) обещаю отбиваться)
   Cool_Profi
 
15 - 28.02.18 - 10:29
(14) "Лично я только вчера узнал чем функция отличается от процедуры"

Я такое различие узнал в 8м классе... )))
   catena
 
16 - 28.02.18 - 10:38
(14)Ну тут же не в 1С дело. Сперва добавить, а потом удалять строку в одной портянке кода - за это на любом языке побьют.
   piter3
 
17 - 28.02.18 - 10:40
(12) На кол,потом сжечь
   piter3
 
18 - 28.02.18 - 10:41
(14) В поиск

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует