|
8.1 выбрать первые строки | ☑ | ||
---|---|---|---|---|
0
informts
21.11.11
✎
22:12
|
Есть документ корректировка конструкторов условий без колонки количества, в котором меняю цену номенклатуры и коэффициент в зарплату продавцу. Запросом добился заполнения тч товарами по номенклатурной группе и сортировкой по проценту накрутки. Вопрос в следующем, после заполнения нужно нажатием кнопки выбрать первые 30 процентов товара и установить на него определенный коэффициент, потом на остальные товары так же. Как определить максимально количество строк, колонок с количеством нету, есть только номера строки??
|
|||
1
mikecool
21.11.11
✎
22:15
|
выбрать первые 30
... где коэффициент = 0 |
|||
2
lubja
21.11.11
✎
22:19
|
у тч есть метод количество(), который возвращает количество строк в тч. а там уже плясать...
если запросом, то выбрать первые 30 выбираемые поля из.... |
|||
3
mikecool
21.11.11
✎
22:21
|
(2) чо вы там с сантой? зажгли?? ))
|
|||
4
informts
22.11.11
✎
19:26
|
а как выбрать из товары первые 30 процентов строк, потом вторые 30 процентов, потом третьи 25 процентов и последние 15, т.е в процентах??
|
|||
5
lubja
22.11.11
✎
19:29
|
(3) в какой ветке? =)
(4) ну здрасьте... количество строк - это 100%. а как найти 30% ? это ж простое уравнение! ))) |
|||
6
informts
22.11.11
✎
19:32
|
да я определяю сто процентов, потом присваиваю 4 переменным нужный процент. как потом к ним обратится?
|
|||
7
informts
22.11.11
✎
19:34
|
Для каждого м из товары Цикл
к=к+1; Мин = 0; Сред = 0; Макс = 0; СуперМакс = 0; Мин = ОКР(к/100*33); Сред = ОКР(к/100*33); Макс = ОКР(к/100*28); СуперМакс = ОКР(к/100*6); Как к стокам МИН обратится теперь?? |
|||
8
lubja
22.11.11
✎
19:38
|
что за 33, 28 и 6 ?
|
|||
9
informts
22.11.11
✎
19:45
|
это процент
|
|||
10
lubja
22.11.11
✎
19:54
|
а почему бы до цикла не узнать сколько строк составляет 30%, 25% и 15%. а в цикле проверять уже номер строки, так сказать, в какую группу попадает и проставлять соответствующий коэффициент.
что-то типа Проц_30 = Окр(0,3 * Товары.Количество()); Проц_25 = Окр(0,25 * Товары.Количество()); Проц_15 = Окр(0,15 * Товары.Количество()); Для Каждого стр Из Товары Цикл Если стр.НомерСтроки <= Проц_30 Тогда стр.<Поле с коэффициентом> = Коэффициент_1; ИначеЕсли стр.НомерСтроки <= (Проц_30 + Проц_30) Тогда стр.<Поле с коэффициентом> = Коэффициент_2; ИначеЕсли стр.НомерСтроки <= Проц_25 Тогда ... ну и так далее КонецЕсли; КонецЦикла; ну как-то так... это если я правильно поняла задачу... |
|||
11
informts
22.11.11
✎
20:01
|
а если в таблице нет колонки количество?
|
|||
12
lubja
22.11.11
✎
20:03
|
(11) да что ж ты так привязался к этой колонке?! )))
товары.Количество() - это МЕТОД, который возвращает количество строк в таблице!!! |
|||
13
informts
22.11.11
✎
20:04
|
понял, щас попробую ))
|
|||
14
informts
22.11.11
✎
20:50
|
Коэф_1=Справочники.КонструкторыУсловийПродаж.НайтиПоКоду("000000001");
Коэф_2=Справочники.КонструкторыУсловийПродаж.НайтиПоКоду("000000002"); Проц_30 = Окр(0,3 * Товары.Количество()); Проц_25 = Окр(0,25 * Товары.Количество()); Проц_15 = Окр(0,15 * Товары.Количество()); Для Каждого стр Из Товары Цикл Если стр.НомерСтроки <= Проц_30 Тогда стр.КонструкторУсловий = Коэф_1; ИначеЕсли стр.НомерСтроки <= (Проц_30 + Проц_30) Тогда стр.КонструкторУсловий = Коэф_2; КонецЕсли; КонецЦикла; При нажатии вообще ничего не происходит, что не так? |
|||
15
lubja
22.11.11
✎
21:05
|
а отладчик что говорит? смотрел?
|
|||
16
lubja
22.11.11
✎
21:06
|
и где ты используешь Проц_25 и Проц_15?
|
|||
17
informts
22.11.11
✎
21:08
|
ОО, ну я ваще..
|
|||
18
informts
22.11.11
✎
21:18
|
блин, пусто выдает.
|
|||
19
lubja
22.11.11
✎
21:19
|
(18) по отладчику посмотри, что происходит, чему равны Проц_30, Проц_25, Проц_15, вообще, количество строк...
|
|||
20
informts
22.11.11
✎
21:22
|
они равно нулю
|
|||
21
lubja
22.11.11
✎
21:23
|
(20) количество строк чему равно?
|
|||
22
informts
22.11.11
✎
21:25
|
ТОвары.количество = 42
|
|||
23
informts
22.11.11
✎
21:26
|
Без Если стр.НомерСтроки движение происходит, а с Если нет
|
|||
24
lubja
22.11.11
✎
21:29
|
(22) исправь 0,3 0,25 0,25 на 0.3 0.25 0.15 то есть вместо запятых точки поставь (это мой косяк...)
|
|||
25
informts
22.11.11
✎
21:31
|
Ептить, это чудо Леночка, работает )))
|
|||
26
informts
22.11.11
✎
21:31
|
Спасибо большое!!
|
|||
27
lubja
22.11.11
✎
21:31
|
(25) не во что, потом отдашь! ;)
|
|||
28
informts
28.11.11
✎
19:28
|
Помогите еще разобраться, стоит задача подсчета количества купонов для выдачи.
Критерии выдачи таковы: Выдаем купоны по следующей схеме: 1коэ-20% от стоимости 2коэ-30% от стоимости 4коэ-40% от стоимости 6коэ-50% от стоимости 7коэ-20% от стоимости 8коэ-20% от стоимости 10коэ-50% от стоимости Делаю так: мСтрокаТЧ = ЭлементыФормы.Товары.ТекущиеДанные; Отбор = Новый Структура; Отбор.Вставить("Номенклатура", мСтрокаТЧ.Номенклатура); Отбор.Вставить("Склад", Склад); Конструктор = РегистрыСведений.ПоказателиКонструкторовУслоувий; Коэфф = Конструктор.ПолучитьПоследнее(ТекущаяДата(), Отбор); Для каждого т из товары цикл Если (Коэфф.КонструкторУсловий.Наименование="1") ИЛИ (Коэфф.КонструкторУсловий.Наименование="7") ИЛИ (Коэфф.КонструкторУсловий.Наименование="8") Тогда КолКуп_20 = ОКР(мСтрокаТЧ.цена/100*20/200); КонецЕсли; Если Коэфф.КонструкторУсловий.Наименование="2" Тогда КолКуп_30 = ОКР(мСтрокаТЧ.цена/100*30/200); КонецЕсли; Если Коэфф.КонструкторУсловий.Наименование="4" Тогда КолКуп_40 = ОКР(мСтрокаТЧ.цена/100*40/200); КонецЕсли; Если Коэфф.КонструкторУсловий.Наименование="10" Тогда КолКуп_50 = ОКР(мСтрокаТЧ.цена/100*50/200); КонецЕсли; КонецЦикла; И с моим опытом для меня тупик, как теперь посчитать общее кол-во? И что тут я не так делаю?? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |