Имя: Пароль:
1C
1С v8
Переменная не определена? Подскажите,пожалуйста
,
0 Sytrek
 
26.05.23
12:22
Процедура ВычислитьСумму(СтрокаТаблицы)Экспорт
СтрокаТаблицы.Сумма=СтрокаТаблицы.Количество*СтрокаТаблицы.Цена;
КонецПроцедуры


&НаКлиенте
Процедура изделияКоличествоПриИзменении()
// Вставить содержимое обработчика.
СтрокаТаблицы=Элементы.Изделия.ТекущиеДанные;
СобытияДокументов.ВычислитьСумму(СтрокаТаблицы);
КонецПроцедуры

Выдаёт ошибку
{Документ.ПриходнаяНакладная.Форма.ФормаДокумента.Форма(6,1)}: Переменная не определена (СобытияДокументов)
<<?>>СобытияДокументов.ВычислитьСумму(СтрокаТаблицы); (Проверка: Тонкий клиент)
1 Волшебник
 
26.05.23
12:23
надо определить переменную СобытияДокументов
2 kubik_live
 
26.05.23
12:25
(0) Это Общий Модуль видимо
3 KJlag
 
26.05.23
12:25
(0) в этот модуль можно стучатся с клиента то хоть?
4 Sytrek
 
26.05.23
12:32
Это общий модуль
5 Sytrek
 
26.05.23
12:33
А как определить переменную СобытияДокументов
6 Волшебник
 
26.05.23
12:34
(4) В свойствах общего модуля снимите флаг "Глобальный"
7 Donkey_hot
 
26.05.23
12:34
(6) Шта?)
8 Мультук
 
гуру
26.05.23
12:35
(0)

В любой типовой конфигурации (УТ 11, БП 3, Розница 3) есть куча примеров, где буквально разжевано, как нужно делать такие вещи в управляемых формах.
Гончарова кучу книжек написала
В ИТС есть куча примеров.

Sytrek, из клиента к какому общему модулю с какими флажками можно обращаться?
И какие флажки стоят у вашего общего модуля

https://its.1c.ru/db/v8std/content/469/hdoc
9 Волшебник
 
26.05.23
12:36
(7) Надо снять флаг "Глобальный", тогда общий модуль станет доступен по имени. Переменная появится
10 Donkey_hot
 
26.05.23
12:36
Если первая процедурка тоже в модуле Вашей формы, то зачем обращаться к модулю?
11 Donkey_hot
 
26.05.23
12:38
(9) Ну во-первых, готов держать пари на любую комфортную сумму, что у данного модуля флаг "Глобальный" снят. Более того, нет уверенности, что такой модуль в принципе есть в конфе у ТС-а
12 Donkey_hot
 
26.05.23
12:39
(11) А во-вторых, если завтра в рамках другой задачи он напишет без указания модуля, просто ВычислитьСумму(...), будем советовать вернуть флаг "Глобальный"?)
13 Мультук
 
гуру
26.05.23
12:39
(11)

А я ставлю на то, что у этого общего модуля стоит флаг "Сервер", а "ВызовСервера" - нет.
14 Donkey_hot
 
26.05.23
12:41
(13) Либо так, либо модуля нет вообще. В любом случае, ТС определил процедуру вычисления суммы в самой форме, нафига ему модуль... И вообще, это подозрительно напоминает пример из Радченко.
15 Sytrek
 
26.05.23
12:41
Спасибо все работает.Нужно было поставить к флагу сервер флаг клиент,а Глобальный по умолчанию не стоял
16 Волшебник
 
26.05.23
12:41
(11) Если бы флаг был снят, то ошибка была бы другая, например, "процедура не обнаружена" из-за отсутствия флага "Клиент", например.
Давай пари на 10 рублей, что этот генератор кода сломается на чём-то простом.
17 Волшебник
 
26.05.23
12:43
(15) Для перемножения двух чисел не надо создавать отдельную процедуру. Уберите её
18 Donkey_hot
 
26.05.23
12:45
(17) Это в Радченко просят, чтобы продемонстрировать, как из нескольких форм документов вызывать один и тот же алгоритм.
19 Donkey_hot
 
26.05.23
12:46
(17) Если модуль чисто серверный, без возможности вызова, то в контексте клиента он по имени не будет найден точно так же, как и глобальный, мне кажется.
20 Волшебник
 
26.05.23
12:47
(18) Радченко плохому научит.
Жаль, что пари не получилось. Нуб сознался, что всё дело было в флажках общего модуля. Я чуть было не срубил с Вас 10 руб. Но ничего, в следующий раз получится.
21 Sytrek
 
26.05.23
12:47
Дали задание сделать по этому примеру
22 Donkey_hot
 
26.05.23
12:48
(20) Я с Вас чуть-чуть не срубил) Флаг "Глобальный" был снят)
23 Волшебник
 
26.05.23
12:49
(21) Добавьте колонку НДС, рассчитайте его по ставке для каждой строки, но учтите эффект округления, когда сумма НДС по строкам может не дать НДС от всего документа. Разница составит всего лишь 1 копейку. Для этого нужно оперировать последней строкой документа, уменьшить или увеличить НДС на одну копейку.
24 Sytrek
 
26.05.23
12:55
А сколько кто возьмёт чтобы сделать по этому примеру,только на тему Автомобильного сервиса?
25 Волшебник
 
26.05.23
12:56
(24) Публикация вакансий у нас платная, 3000 руб. Для Вас скидка 1%
26 Sytrek
 
26.05.23
12:59
А это так работает
27 kubik_live
 
26.05.23
13:07
(23) Для это в Бухии пользовался функцией РаспределитьПропорционально(........)
28 Donkey_hot
 
26.05.23
13:08
(24) Перемножить два числа, но на тему автомобильного сервиса?)
29 Волшебник
 
26.05.23
13:27
(28) Палево...
30 Fish
 
26.05.23
14:17
(28) Легко:
СуммаАвторабот = КоличествоАвторабот*ЦенаАвторабот;

:)
31 Dotoshin
 
26.05.23
14:49
(28) (30) Лучше поясните, что означает формула 4х4 и откуда она взялась?
32 НафНаф
 
26.05.23
14:57
(23) эффект округления может быть гораздо больше одной копейки
33 Волшебник
 
26.05.23
15:13
(31) КолёсВсего х ВедущихКолёс = Проходимость
34 Волшебник
 
26.05.23
15:14
(32) Да-да. И ещё надо учитывать, что последней строкой может быть позиция с нулевой ценой, например, бесплатная доставка, тогда в ней не может быть НДС
35 experimentator76
 
26.05.23
15:19
насерверебезконтекста надо было делать процедуру и уже из нее серверный модуль.
но полагаю конфа учебная какая-то
36 experimentator76
 
26.05.23
15:19
СтрокаТаблицы сделать структурой
37 НафНаф
 
26.05.23
15:56
(34) я про то, что разница в подсчете НДС из-за округления может быть сколь угодно большой
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.