|   |   | 
| 
 | v7: Попытка присвоить значение недоступной для записи переменной | ☑ | ||
|---|---|---|---|---|
| 0
    
        max02021989 04.07.12✎ 13:33 | 
        такая вот ошибка появилась
  если доставка=1 тогда форма.Всего=Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1); иначе форма.Всего=Окр(Итог("Сумма")*(100-Скидка)/100,2,1); конецесли; форма.Всего=Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1); {Документ.Заказ.Форма.Модуль(2562)}: Попытка присвоить значение недоступной для записи переменной (Всего) пробовал присваивать без указания формы, но реквизиту значение не присваивалось | |||
| 1
    
        1Сергей 04.07.12✎ 13:34 | 
        Всего - реквизит шапки, табличной части или формы?     | |||
| 2
    
        max02021989 04.07.12✎ 13:38 | 
        реквизит шапки     | |||
| 3
    
        1Сергей 04.07.12✎ 13:38 | 
        если доставка=1 тогда
  Всего=Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1); иначе Всего=Окр(Итог("Сумма")*(100-Скидка)/100,2,1); конецесли; | |||
| 4
    
        max02021989 04.07.12✎ 13:41 | 
        на форме присутствует поле со значением реквизита "Всего" и при таком варианте значение не меняется, функция сообщить говорит что оно изменилось на форме изменений нет     | |||
| 5
    
        1Сергей 04.07.12✎ 13:42 | 
        (4) удали свой реквизит с формы. Потом меню Вставить - Реквизиты... поставь галку у "Всего", потом подвинь куда надо     | |||
| 6
    
        1Сергей 04.07.12✎ 13:43 | 
        (5)* ...поставь галку у "Всего" и нажми Вставить     | |||
| 7
    
        max02021989 04.07.12✎ 13:45 | 
        вот так и сделал но изменений нет     | |||
| 8
    
        max02021989 04.07.12✎ 13:48 | 
        может как то разрешить изменение переменной     | |||
| 9
    
        1Сергей 04.07.12✎ 13:48 | 
        (7) а где этот код выполняется, в какой процедуре/функции?     | |||
| 10
    
        max02021989 04.07.12✎ 13:48 | 
        реквизита, правда когда его запретили не понятно     | |||
| 11
    
        ДенисЧ 04.07.12✎ 13:49 | 
        Форма.Всего - это не данные. Это ссылка на реквизит формы.. Естественно, ему ничего не присвоить...     | |||
| 12
    
        Гость2 04.07.12✎ 13:49 | 
        Форма.Обновить(1);     | |||
| 13
    
        1Сергей 04.07.12✎ 13:50 | 
        (10) этого же реквизита?     | |||
| 14
    
        max02021989 04.07.12✎ 13:55 | 
        да этого же реквизита, форма.обновить(1) тоже не помогло     | |||
| 15
    
        1Сергей 04.07.12✎ 13:56 | 
        Чего-то недоговариваешь     | |||
| 16
    
        max02021989 04.07.12✎ 13:57 | 
        чистой воды правду говорю, пишу, вот полная процедура
  Процедура НаценкаЗаДоставку() если доставка=1 тогда Всего=Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1); иначе Всего=Окр(Итог("Сумма")*(100-Скидка)/100,2,1); конецесли; КонецПроцедуры | |||
| 17
    
        Ёпрст гуру 04.07.12✎ 13:57 | 
        телепатирую
  форма.Всего.Заголовок(Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1)); | |||
| 18
    
        max02021989 04.07.12✎ 13:58 | 
        вызывается при нажатии на галочку     | |||
| 19
    
        1Сергей 04.07.12✎ 14:00 | 
        (18) а говорил того же реквизита. Всего - это поле ввода или просто текст?     | |||
| 20
    
        1Сергей 04.07.12✎ 14:00 | 
        или галка? тогда (17)+1     | |||
| 21
    
        max02021989 04.07.12✎ 14:05 | 
        всего это поле ввода , (17) не работает     | |||
| 22
    
        1Сергей 04.07.12✎ 14:06 | 
        (21) а галка откуда взялась?     | |||
| 23
    
        Ёпрст гуру 04.07.12✎ 14:07 | 
        (21) уже лучше..
  в код в (16) воткни Форма.Обновить(0) в конец процедуры. | |||
| 24
    
        max02021989 04.07.12✎ 14:11 | 
        галка это реквизит шапки доставка, если есть доставка тогда цена увеличивается на наценку константа.Доставка
  попробовать вставить (23) не помогло | |||
| 25
    
        Ёпрст гуру 04.07.12✎ 14:11 | 
        (24) вставлял то куда хоть ?
  Проца эта откуда вызывается ? Сообщить(Всего) туда воткни, кажет че ? | |||
| 26
    
        max02021989 04.07.12✎ 14:13 | 
        сообщает как раз норм посчитанное, а вызыватся из галочки доставка     | |||
| 27
    
        1Сергей 04.07.12✎ 14:14 | 
        Процедура НаценкаЗаДоставку()
  Если (доставка = 1) Тогда Всего = Окр(Итог("Сумма")*(100-Скидка+константа.Доставка)/100,2,1); Иначе Всего = Окр(Итог("Сумма")*(100-Скидка)/100,2,1); КонецЕсли; Форма.Обновить(0); КонецПроцедуры так? | |||
| 28
    
        Zmich 04.07.12✎ 14:17 | 
        Так не бывает.
  Разве что предположить маловероятный вариант, что на форме висит текст с формулой вычисления Всего без учета Доставки. | |||
| 29
    
        max02021989 04.07.12✎ 14:20 | 
        Так посмотрю щас     | |||
| 30
    
        1Сергей 04.07.12✎ 14:22 | 
        а вообще, так считать доставку неправильно     | |||
| 31
    
        max02021989 04.07.12✎ 14:30 | 
        а как правильно, решилось, дело было в (28), извиняюсь за невнимательность всем спасибо!!!!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |