Имя: Пароль:
1C
 
Добавить скидочный купон, если количество позиций больше 20
↓Ø (Волшебник 24.09.2024 07:44)
0 vismo
 
23.09.24
14:17
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Ошибка при вызове метода контекста (Итог)
{Документ.Заявка.МодульОбъекта(4)}:ВсегоПозиций = Позиции.Итог("КоличествоСтрок");

[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Недопустимое значение параметра (параметр номер '1') (Колонка не принадлежит коллекции)
[ОшибкаИспользованияВстроенногоЯзыка]

Мне нужно вытащить итоговое количество строк из табличной части и записать это в реквизит.

Задача звучит так: при количестве позиций
больше 20 указывается, что необходимо в заказ
положить скидочный купон

Как данные по количеству строк вынести в отдельный реквизит?
1 yurikmellon2
 
23.09.24
14:18
(0) ну ты код то свой покажи. В понедельник у штатного телепата выходной
2 vismo
 
23.09.24
14:19
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    ИтоговаяСумма = Позиции.Итог("Сумма");
    ИтоговыйВес = Позиции.Итог("Вес");
    ВсегоПозиций = Позиции.Итог("КоличествоСтрок");
    Если Позиции.Итог("КоличествоСтрок") > 20 Тогда
        СкидочныйКупон = Истина;
    Иначе
        СкидочныйКупон = Ложь;
    КонецЕсли
КонецПроцедуры
3 Ненавижу 1С
 
23.09.24
14:19
Позиции.Количество()
4 Ненавижу 1С
 
23.09.24
14:20
(2) завтра скажут не 20, а 25 - будешь менять код?
5 yurikmellon2
 
23.09.24
14:26
(2) нет у тебя колонки с таким именем, проверяй отладчиком
6 ass1c
 
23.09.24
14:26
ВсегоПозиций = Позиции.Количество()
7 vismo
 
23.09.24
14:27
(4) стоит конкретная задача такая, что будет завтра - то будет завтра. Пощади студента(
8 ass1c
 
23.09.24
14:27
(3) +
9 vismo
 
23.09.24
14:27
(3) Помогло, спасибо
10 Волшебник
 
23.09.24
14:31
ВсегоПозиций = Позиции.Количество();
СкидочныйКупон = ВсегоПозиций > 20; // лучше вынести в константу
11 ass1c
 
23.09.24
14:31
(4) ну конечно. потом как надоест - какую-нибудь константу заведет. Потом чтение значений константы напишет из модуля с с повторным использованием возвращаемых значений и т.д. Потихоньку. С опытом.
12 Ненавижу 1С
 
23.09.24
14:32
(8) а количество различных позиций?
13 ass1c
 
23.09.24
14:36
(12) Да может у него это уже реализовано на клиенте, что нельзя добавить одну и ту же позицию в тч к примеру (задублировать). Или перед записью из формы проверки сделал и т.д. Мы ж не знаем. Ну либо потом по шапке получит и исправит.
14 Мультук
 
23.09.24
14:54
(0)


P.S.

Документ.Заявка

Это снова очередная конфигурация из курсов "изучи 1С за 24 часа и 200к в месяц твои" ?
15 yurikmellon2
 
23.09.24
14:59
(14) да и пусть его. Чем больше накосорезит выпускник таких "курсов", тем проще будет спецу обосновать свои цены за исправления
16 vismo
 
23.09.24
14:59
(14) это типичная траектория обучения в универе
17 KJlag
 
23.09.24
15:00
(1) думаешь Гена по понедельникам отдыхает?
18 Ненавижу 1С
 
23.09.24
15:01
(13) а никто не просит такое ограничение вводить. Строки могут быть с повторяющимся товаром, но возможно условие требует 20 различных по номенклатуре позиций
19 Мультук
 
23.09.24
15:04
(16)

Но рано или поздно студент попадёт в реальный мир,
увидит типовые "СкидкиНаценки" в УТ или в Розница 30

и его мир уже не будет таким как раньше.
20 Ненавижу 1С
 
23.09.24
15:07
(19) это правда
21 yurikmellon2
 
23.09.24
15:35
(17) у Гены дар (или огромный опыт, что зачастую одно и то же) по обрывкам путанных объяснений в ЗУП выдавать верный ответ, а тут всё же, УТ. Хоть вопрос, по сути, никак с конфой не связан, но его магия лучше работает в ЗУПе
22 Гена
 
23.09.24
19:45
(21) А в данной ветке и не нужна магия. Это к нам с запада пришло. "Самый длинный чек" называется. Чтобы отсечь мелочь пузатую - ей даже талон не дают на участие. А здесь талонщики потом регистрируются в акции на сайте компании и как-то что-то выигрывают )

Поэтому не заморачивайтесь дублями. Есть 20 строк - получи талон. А далее уже при акции разберутся )
23 Гена
 
23.09.24
20:07
Не знаю как у нас, но на западе работает неплохо. Там туева хуча тупых потребителей. Как узнают об акции - скупают по одной штуке чуть ли не весь ассортимент, чтоб чек был метровый... чтоб выиграть СРАЗУ главный приз тысяч в 10 долларов )
24 Волшебник
 
23.09.24
23:26
(22) (23) Просили программный код вообще-то...
25 Волшебник
 
23.09.24
23:27
Гена, ты не умеешь программировать. Признай это!