|
Удаление строк таблицы по условию | ☑ | ||
---|---|---|---|---|
0
Mucmep_Mapuo
28.02.18
✎
04:51
|
Подскажите как удалить строки из ТЗ, в которых значение колонки "Закупочная цена" ниже той, что введена в ПолеВода2(((
|
|||
1
Mucmep_Mapuo
28.02.18
✎
04:52
|
Наименов = Справочники.Номенклатура.Выбрать();
Пока Наименов.Следующий() Цикл НоваяСтрока = ТабличноеПоле1.Добавить() ; НоваяСтрока.Наименование = Наименов.Ссылка; Масс = Справочники.ТипыЦенНоменклатуры.Выбрать(); Пока Масс.Следующий() Цикл Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТипЦены",Масс.Наименование); Запрос.УстановитьПараметр("НаименованиеНум",Наименов.Наименование); Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатуры.Цена КАК Цена ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ГДЕ ЦеныНоменклатуры.ТипЦен.Наименование = &ТипЦены | И ЦеныНоменклатуры.Номенклатура.Наименование = &НаименованиеНум | |"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Цена = Выборка.Цена; КонецЦикла; НоваяСтрока[Масс.Наименование] = Цена; КонецЦикла; *************************** КонецЦикла; |
|||
2
VladZ
28.02.18
✎
05:04
|
(1) Не получать эти данные. Добавь в запрос "где ЦеныНоменклатуры.Цена > &НижнийПредел
|
|||
3
Джексон
28.02.18
✎
05:26
|
(2) Не угадал. Запрос выполняется после того, как строка уже добавлена.
Еще предложения? |
|||
4
Галахад
гуру
28.02.18
✎
05:32
|
Предлагаю побить автора.
|
|||
5
smilemanrus
28.02.18
✎
05:36
|
(2) Если в запросе указать, то строка все равно будет добавляться, наверно надо будет ещё добавить строку
Если РезультатЗапроса.Пустой() Тогда
Да и цикл Пока ВыборкаСледующий() не нужен, по видимому достаточно просто написать ВыборкаСледующий(), если запрос возвращает только одну запись |
|||
6
VladZ
28.02.18
✎
05:40
|
(3) Общий смысл не изменяется: "Если данные не нужны - сразу их фильтровать (не получать)". В (1) написан бред (запрос в цикле). Этот бред удалить, написать правильно.
|
|||
7
VladZ
28.02.18
✎
05:42
|
ну и, предварительно, сделать (4). :)
|
|||
8
Diman000
28.02.18
✎
06:21
|
Справочник.Выбрать раз и полный перебор...
Внутри Справочник.Выбрать два и полный перебор... Мама, роди меня обратно... |
|||
9
catena
28.02.18
✎
06:36
|
(8)Установление параметров по наименованию и запись в ТЗ ссылки по ссылке уже, видимо, прошли мимо на фоне)))
|
|||
10
VladZ
28.02.18
✎
06:38
|
(8) Для полного счастья нужно было сделать третий перебор: поиск цены в регистре ЦеныНоменклатуры.
|
|||
11
Diman000
28.02.18
✎
06:40
|
Да, мне первых двух переборов хватило, дальше я закрыл глаза и заплакал.
|
|||
12
VladZ
28.02.18
✎
06:46
|
А вообще, код шикарен! Скопирую себе. Буду при приеме на работу прогов спрашивать, что они думают про этот код, есть ли замечания / предложения по коду. Стоит ли его исправить или оставить как есть? :)
|
|||
13
Сти
28.02.18
✎
06:49
|
(12) Конечно надо! там же синтаксическая ошибка в виде ***************************
|
|||
14
Mucmep_Mapuo
28.02.18
✎
09:55
|
Всем огромное спасибо)))) Неужели все сразу в первый день программирования на 1С стали Гуру?) Лично я только вчера узнал чем функция отличается от процедуры, и что такое "Запрос" в принципе)) но побить так побить, пробуйте)) обещаю отбиваться)
|
|||
15
Cool_Profi
28.02.18
✎
10:29
|
(14) "Лично я только вчера узнал чем функция отличается от процедуры"
Я такое различие узнал в 8м классе... ))) |
|||
16
catena
28.02.18
✎
10:38
|
(14)Ну тут же не в 1С дело. Сперва добавить, а потом удалять строку в одной портянке кода - за это на любом языке побьют.
|
|||
17
piter3
28.02.18
✎
10:40
|
(12) На кол,потом сжечь
|
|||
18
piter3
28.02.18
✎
10:41
|
(14) В поиск
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |