|
Автоматическая подстановка данных 8.3 | ☑ | ||
---|---|---|---|---|
0
cesaku
29.09.21
✎
10:48
|
Всем привет.
Суть проблемы: имеется документ НачисленияСотрудникам с табличной частью Начисления с реквизитами: Сотрудник (СправочникСсылка.Сотрудники), Должность (СправочникСсылка.Должность), Оклад (число), Премия (число). Так же имеется оборотный регистр накопления Продажи с измерением Бариста (СправочникСсылка.Сотрудники) и ресурс Стоимость (число). Что нужно сделать: при выборе сотрудника в табличной части должна проставляться сумма ресурса Стоимость в реквизит Премия в том случае, если его должность Бариста, если кто-то другой, то в Премию проставляется 0. |
|||
1
acht
29.09.21
✎
10:51
|
Какая часть непонятна?
|
|||
2
cesaku
29.09.21
✎
11:00
|
Не понятно как именно вытащить сумму ресурса Стоимость для конкретного баристы.
|
|||
3
mikecool
29.09.21
✎
11:03
|
(2) запросом
|
|||
4
acht
29.09.21
✎
11:05
|
(2) Необходимо написать запрос к виртуальной таблице оборотов регистра, задав в параметрах таблицы отбор по значению измерения. Или воспользоваться объектным механизмом - использовать метод Обороты менеджера регистра. Подробности - в синтакс помощнике.
|
|||
5
cesaku
29.09.21
✎
11:07
|
(4) Хорошо, сейчас попробую.
|
|||
6
Ненавижу 1С
гуру
29.09.21
✎
11:14
|
(0) это курсовая про барист?
|
|||
7
cesaku
29.09.21
✎
11:16
|
(6) Почти, тему диплома взял из практики с 3 курса :)
|
|||
8
cesaku
29.09.21
✎
11:19
|
(4) На сколько понимаю, так должно получиться?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СУММА(ЕСТЬNULL(ПродажиОбороты.СтоимостьОборот, 0)) КАК СтоимостьОборот |ИЗ | РегистрНакопления.Продажи.Обороты(, , , Бариста = &Бариста) КАК ПродажиОбороты |ГДЕ | ПродажиОбороты.Бариста.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Бариста", Сотрудник); Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Если Выборка.Следующий() Тогда СуммаПродаж = Выборка.СтоимостьОборот; Если СуммаПродаж = 0 Тогда Премия = 0; Иначе Премия = СуммаПродаж / 100 * 10; КонецЕсли; Возврат Премия; КонецЕсли; |
|||
9
acht
29.09.21
✎
11:32
|
(8) > |ГДЕ ПродажиОбороты.Бариста.Ссылка = &Ссылка";
>... > Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); Что это значит в терминах предметной области? > Если Выборка.Следующий() Тогда > ... Если Выборка.Следующий() Тогда Возврат Выборка.СтоимостьОборот / 100 * 10; КонецЕсли; Возврат 0; |
|||
10
cesaku
29.09.21
✎
11:40
|
(9) Если вы говорите про деление на 100 и умножение, то я из данной функции вытаскиваю 10% от ресурса (решил установить премию - 10% от продаж).
|
|||
11
acht
29.09.21
✎
11:40
|
(10) Я всего лишь оптимизировал твой код.
|
|||
12
cesaku
29.09.21
✎
11:44
|
(11) Я понял это. Я говорю про ваше замечание "Что это значит в терминах предметной области?".
Кстати, не знаете почему Выборка передается пустая (хотя не должна, даже нуля нет)? Из-за этого ругается на невозможность преобразования к типу Число. |
|||
13
acht
29.09.21
✎
11:49
|
(12) Фрагмент кода:
>|ГДЕ ПродажиОбороты.Бариста.Ссылка = &Ссылка"; >... > Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); Расскажи, что ты пытаешся сделать этим. В терминах предметной области - сотрудники/баристы/деньги/документы и т.п. |
|||
14
acht
29.09.21
✎
11:49
|
Выборка пустая потому что у тебя нет данных
|
|||
15
acht
29.09.21
✎
11:50
|
Вернее потому что у тебя запрос написан так, что он не возвращает данные
|
|||
16
cesaku
29.09.21
✎
11:52
|
(13) Я пытаюсь тут обратиться к конкретному Баристе, используя реквизит Ссылка. Нужно мне это для того, чтобы, при выборе в документе НачисленияСотрудникам конкретного баристы, премия проставлялась именно его, а не чья-то другая.
|
|||
17
cesaku
29.09.21
✎
11:53
|
(15) Тогда можете помочь в исправлении запроса, если вам не тяжело?
|
|||
18
acht
29.09.21
✎
12:10
|
(17) Нет. Я хочу чтобы ты понял, что где используешь.
К конкретному баристе ты уже обратился, когда установил по нему фильтр. Что такое у тебя Объект и что ты пытаешся сделать наложением дополнительного отбора по значению Объект.Ссылка? |
|||
19
cesaku
29.09.21
✎
12:14
|
(18) Да, понял, зря обращался. Все заработало, спасибо большое за помощь.
|
|||
20
Anton1307
29.09.21
✎
17:55
|
>>> Не понятно как именно вытащить сумму ресурса Стоимость для конкретного баристы
Результат = СУММА(КонкретныйБариста.Стоимость) Не благодари. |
|||
21
acht
29.09.21
✎
23:24
|
(7) > тему диплома
А, то есть сейчас дипломы вот так вот пишутся, да? https://forum.infostart.ru/forum9/topic269905/ https://forum.infostart.ru/forum9/topic269890/ https://www.cyberforum.ru/1c-standard/thread2877065.html Автоматическая подстановка данных 8.3 ... Как далеко прогресс шагнул, раньше думать надо было. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |