Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Один и тот же код работает в событии формы приоткрытии и не работает в событии ПриИзменени

Один и тот же код работает в событии формы приоткрытии и не работает в событии ПриИзменени
Я
   Fleapse
 
13.12.18 - 09:53
написал код который при наличии 2х ссылок обращается к базе и берет от туда 3 числа и 1 значение перечисления.
в событие приОткрытии он работает, но когда в новом документе вводишь второе поле он выдаёт ошибку, что значение из базы невозможно преобразовать в число. вот код:
Процедура ПриОткрытии(Отказ)
    Если    ЗначениеЗаполнено(Объект.Потребность) и  ЗначениеЗаполнено(Объект.Предложение) тогда
        //Сообщить("*");    
        РезультатЗапроса = ЗапросНаСервере(Объект.Ссылка);
        // 1 поле
        СтоимостьУслугПокупателя = РезультатЗапроса[1]/100*3;
        Объект.СтоимостьУслугПокупателя = СтоимостьУслугПокупателя;
        //2 поле
        Если  РезультатЗапроса[3] = "Квартира" тогда
            СтоимостьУслугПродавца = 36000 + РезультатЗапроса[1]/100;
        ИначеЕсли РезультатЗапроса[3] = "Земля" тогда
            СтоимостьУслугПродавца = 30000 + РезультатЗапроса[1]/100*2;
        ИначеЕсли РезультатЗапроса[3] = "Дом" тогда
            СтоимостьУслугПродавца = 30000 + РезультатЗапроса[1]/100;
        КонецЕсли;
        Объект.СтоимостьУслугПродавца = СтоимостьУслугПродавца;
        //3 поле
        ОтчисленияРиэлторуПокупателя = СтоимостьУслугПокупателя/100*РезультатЗапроса[0];
        Объект.ОтчисленияРиэлторуПокупателя = ОтчисленияРиэлторуПокупателя;
        //4 поле
        ОтчисленияРиэлторуПродавца = СтоимостьУслугПродавца/100*РезультатЗапроса[2];
        Объект.ОтчисленияРиэлторуПродавца = ОтчисленияРиэлторуПродавца;
        //5 поле
        ОтчисленияКомпании = СтоимостьУслугПокупателя + СтоимостьУслугПродавца -(ОтчисленияРиэлторуПокупателя + ОтчисленияРиэлторуПродавца);
        Объект.ОтчисленияКомпании = ОтчисленияКомпании;
    Иначе
        Сообщить("ААААААА");
    КонецЕсли;
КонецПроцедуры


&НаСервере    
Функция ЗапросНаСервере(Ссылка)
            
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Сделка.Потребность.Риэлтор.ДоляОтКомиссии КАК ДоляОтКомиссииПокупатель,
        |    Сделка.Предложение.Цена КАК Цена,
        |    Сделка.Предложение.Риэлтор.ДоляОтКомиссии КАК ДоляОтКомиссииПродавец,
        |    Сделка.Предложение.ОбъектНедвижимости.ТипНедвижимости КАК ТипНедвижимости
        |ИЗ
        |    Документ.Сделка КАК Сделка
        |ГДЕ
        |    Сделка.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Цена = ВыборкаДетальныеЗаписи.Цена;
    ДоляОтКомиссииПокупатель = ВыборкаДетальныеЗаписи.ДоляОтКомиссииПокупатель;
    ДоляОтКомиссииПродавец = ВыборкаДетальныеЗаписи.ДоляОтКомиссииПродавец;
    ТипНедвижимости = ВыборкаДетальныеЗаписи.ТипНедвижимости;
    КонецЦикла;


    Массив = Новый Массив(4);
    Массив[0] = ДоляОтКомиссииПокупатель;
    Массив[1] = Цена;
    Массив[2] = ДоляОтКомиссииПродавец;
    Если ТипНедвижимости = перечисления.ТипНедвижимости.Квартира тогда    
        Массив[3] = "Квартира";
    ИначеЕсли  ТипНедвижимости = перечисления.ТипНедвижимости.Земля тогда
        Массив[3] = "Земля";
    ИначеЕсли  ТипНедвижимости = перечисления.ТипНедвижимости.Дом тогда
        Массив[3] = "Дом";
    КонецЕсли;
    
    Возврат Массив;
    
    
КонецФункции
 
 
   catena
 
1 - 13.12.18 - 10:03
Не вижу кода, который отрабатывает при "когда в новом документе вводишь второе поле" и точного текста ошибки.
   ZDenis
 
2 - 13.12.18 - 10:07
(0) В новом документе еще нет ссылки, пока он не записан. поэтому у тебя запрос ничего не получает.
   Fleapse
 
3 - 13.12.18 - 10:30
{Документ.Сделка.Форма.ФормаДокумента.Форма(118)}: Преобразование значения к типу Число не может быть выполнено
        СтоимостьУслугПокупателя = РезультатЗапроса[1]/100*3;




это код ошибки
   Fleapse
 
4 - 13.12.18 - 10:32
(2) спасибо отредактирую запрос
   Eiffil123
 
5 - 13.12.18 - 16:07
(3) тут нужно либо убирать запрос, либо делать запись перед его выполнением. Иначе данные будут некорректные.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует