Имя: Пароль:
1C
1С v8
Присвоение значений
0 ignatfool
 
19.09.13
08:04
Здравствуйте
Самописная конфа
Есть условие "Если тогда С=Х иначе С=У конецесли". потом этот реквизит используется в выражении типа "А=Б+В-С", через отладку видно что выражение считается правильно С=Х и при С=У, но вот на форме А отображается верно только когда результат первого условия - Х(когда У - показывает предыдущий результат и не изменяется с изменением У). Тип значения всех переменных - число. Вопрос - где я туплю?
1 cw014
 
19.09.13
08:06
Попей воды, нифига не понятно:
1) Если тогда С=Х - если что?
2) С=Х и при С=У, но вот на форме - "А похоже паровоз..."
2 LehhaK
 
19.09.13
08:08
На вскидку: Форма.Обновить(); после присвоения Y
3 goleaff2006
 
19.09.13
08:08
Где условие то, а?
4 ignatfool
 
19.09.13
08:09
(1) Если Объект.МотоСчетчик = 0 Тогда
        Объект.МашиноЧасыВозвр = Объект.Пробег + Объект.МашиноЧасы;
        Объект.РасходПоНорме = Объект.Пробег*НормаРасхода + Объект.РаботаОтопителя*НормаРасходаОтопителя + 1/10*Объект.РаботаОтопителя*НормаРасходаОтопителя;// последнее - допуски на прогрев двигателя    
    Иначе
        Объект.МашиноЧасыВозвр = Объект.МотоСчетчик + Объект.МашиноЧасы;
        Объект.РасходПоНорме = Объект.МотоСчетчик*НормаРасхода + Объект.РаботаОтопителя*НормаРасходаОтопителя + 1/10*Объект.РаботаОтопителя*НормаРасходаОтопителя;// последнее - допуски на прогрев двигателя    
    КонецЕсли;
        Объект.РасходПоФакту = 0;
    
    Объект.РасходПоФакту = Объект.ВыездОстатокГСМ+Объект.ВыданоГСМ-Объект.ОстатокГСМФакт;
    
    Объект.ОстатокГСМНорма = Объект.ВыездОстатокГСМ+Объект.ВыданоГСМ-Объект.РасходПоНорме;

А = Объект.ОстатокГСМНорма
5 ЧеловекДуши
 
19.09.13
08:09
(0) ДНК?
(2) А теперь расшифруй с учетом в (0) :)
6 ignatfool
 
19.09.13
08:11
(2) а почему при X форму обновлять не нужно?
7 ignatfool
 
19.09.13
08:12
(5) А - Объект.ОстатокГСМНорма
C=X - Объект.РасходПоНорме = Объект.Пробег*НормаРасхода + Объект.РаботаОтопителя*НормаРасходаОтопителя + 1/10*Объект.РаботаОтопителя*НормаРасходаОтопителя

C=У - Объект.РасходПоНорме = Объект.МотоСчетчик*НормаРасхода + Объект.РаботаОтопителя*НормаРасходаОтопителя + 1/10*Объект.РаботаОтопителя*НормаРасходаОтопителя
8 ignatfool
 
19.09.13
08:15
(2)+ ЭтаФорма.ОбновитьОтображениеДанных(); результата не дало.
9 ЧеловекДуши
 
19.09.13
08:34
(8) Если я правильно понял, у тебя есть форма, на которой отображаются ряд данных.
У тебя так же есть объект, некий элемент справочника (я предположил).  

При попытки изменить значения у Объекта, у тебя не изменяются значения в диалоге?
Я нечего не упустил? :)
10 ЧеловекДуши
 
19.09.13
08:36
+(8) А ты Записал изменения, прежде чем обновлять?
11 Sabbath
 
19.09.13
08:44
Мне кажется, что-то с типами, или в переменных или в полях на форме. А, может быть, тип число, но отличается в разрядности. Короче как-то так..
12 ignatfool
 
19.09.13
10:03
(9) Есть документ, у него реквизиты вышеописанные (поэтому через "Объект." обращение), есть форма, на форме есть поле Мотосчетчик, МашиноЧасыВозвр, ОстатокГСМНорма. Пробег считается по формуле из данных вводимых на форме. Поле  ОстатокГСМНорма В зависимости от условия считается из данных 1 поля или другого, когда от "Пробег" - изменения отображаются, а когда от "Мотосчетчик" - не отображаются.
+ Сначала нет, после твоего поста записал - картина та же.
(11) Разрядность привел к единообразию - картина та же.
13 catena
 
19.09.13
10:06
(12)А событие пересчета на изменение второго реквизита привязано?
14 ignatfool
 
19.09.13
10:16
(13) Пересчет происходит ПередЗаписью. Но попробую засунуть его в изменения реквизитов...
15 catena
 
19.09.13
10:22
(14)Второе поле связано с реквизитом документа?
16 ignatfool
 
19.09.13
10:34
(15) Для каждого поля - свой реквизит документа. Засунул Пересчет в изменения полей. убрал пересчет из Перед записью. Все работает за исключением того, что при записи пересчет все равно происходит как и раньше. Процедуры ПриЗаписи, ПередЗаписью и ПослеЗаписи не заданы. Откуда тогда он знает как нужно пересчитывать?
17 ignatfool
 
19.09.13
10:37
(16)+ нашел откуда ноги растут - пересчет еще есть в обработкепроведения, только я понять не могу зачем при записи отрабатывает ОбработкаПроведения?
18 ignatfool
 
19.09.13
10:47
Всем спасибо, не считая "зачем при записи отрабатывает ОбработкаПроведения?" тема закрыта
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс