Имя: Пароль:
1C
1С v8
Помогите разобраться
0 Dididi
 
04.04.14
10:18
Ошибка Преобразование значения к типу Число не может быть выполнено
            
Запись.МинимальнаяТарифнаяСтавка = Выборка.МинимальнаяТарифнаяСтавка+Выборка.МинимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;


Код программы
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.Период,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ПодразделениеОрганизации,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.Должность,
                   |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка, 0) КАК МинимальнаяТарифнаяСтавка,
                   |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка, 0) КАК МаксимальнаяТарифнаяСтавка,
                   |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.УстановленнаяТарифнаяСтавка, 0) КАК УстановленнаяТарифнаяСтавка,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ТарифныйРазряд,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки,
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.УсловияТруда
                   |ИЗ
                   |    РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних КАК ШтатноеРасписаниеОрганизацийСрезПоследних
                   |ГДЕ
                   |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки = &ВидТарифнойСтавки
                   |    И ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок > 0";
                  
                  
    Запрос.УстановитьПараметр("ВидТарифнойСтавки", Перечисления.ВидыТарифныхСтавок.Месячная);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    
    
    НаборЗаписей = РегистрыСведений.ШтатноеРасписаниеОрганизаций.СоздатьНаборЗаписей();

    НаборЗаписей.Прочитать();
    Для каждого Запись из НаборЗаписей Цикл
        Если Запись.ВидТарифнойСтавки = Перечисления.ВидыТарифныхСтавок.Месячная Тогда
            Запись.МинимальнаяТарифнаяСтавка = Выборка.МинимальнаяТарифнаяСтавка+Выборка.МинимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.МаксимальнаяТарифнаяСтавка = Выборка.МаксимальнаяТарифнаяСтавка+Выборка.МаксимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.УстановленнаяТарифнаяСтавка = Выборка.УстановленнаяТарифнаяСтавка+Выборка.УстановленнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.ВалютаТарифнойСтавки = Выборка.ВалютаТарифнойСтавки;
            Запись.ВидТарифнойСтавки = Выборка.ВидТарифнойСтавки;
            Запись.ГрафикРаботы = Выборка.ГрафикРаботы;
            Запись.Должность = Выборка.Должность;
            Запись.КоличествоСтавок = Выборка.КоличествоСтавок;
            Запись.Период = ЭлементыФормы.ДатаЗаписи;
            Запись.ПодразделениеОрганизации = Выборка.ПодразделениеОрганизации;
            Запись.ТарифныйРазряд = Выборка.ТарифныйРазряд;
            Запись.УсловияТруда = Выборка.УсловияТруда;
        КонецЕсли;  
    КонецЦикла;
    НаборЗаписей.Записать();
1 Godofsin
 
04.04.14
10:18
На какой строчке то?
2 Dididi
 
04.04.14
10:20
(0) Запись.МинимальнаяТарифнаяСтавка = Выборка.МинимальнаяТарифнаяСтавка+Выборка.МинимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.МаксимальнаяТарифнаяСтавка = Выборка.МаксимальнаяТарифнаяСтавка+Выборка.МаксимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.УстановленнаяТарифнаяСтавка = Выборка.УстановленнаяТарифнаяСтавка+Выборка.УстановленнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100;    
            Запись.ВалютаТарифнойСтавки = Выборка.ВалютаТарифнойСтавки;
3 salvator
 
04.04.14
10:20
Что в ЭлементыФормы.Процент.Значение?
4 Godofsin
 
04.04.14
10:21
Выборка.МинимальнаяТарифнаяСтавка
Выборка.МаксимальнаяТарифнаяСтавка
Выборка.УстановленнаяТарифнаяСтавка

Что-то из них NULL
5 Godofsin
 
04.04.14
10:21
А может и все
6 Dididi
 
04.04.14
10:22
(3) Число - процент
7 salvator
 
04.04.14
10:22
Мля. Выбрать.Следующий() Пушкин будет писать?
8 salvator
 
04.04.14
10:23
+(7) * Выборка.Следующий()
9 Dididi
 
04.04.14
10:23
(4) Я в запросе использовала ЕстьNull
10 Wobland
 
04.04.14
10:23
(5) ставлю на Неопределено ;)
11 butterbean
 
04.04.14
10:24
(0) сначала запрос к регистру, потом перебор набора записей и все с одним и тем же отбором по ВидТарифнойСтавки... вопрос —накуа????
12 salvator
 
04.04.14
10:35
(11) Круто же - запрос использовал )
13 starV
 
08.04.14
10:17
Народ помогите
я думала всем увеличивают зарплату оказалось что только половине вручную нереально забивать
подскажите???
Процедура ЗаписьПрограммно()
    
    
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.Период,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.Должность,
    |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.МинимальнаяТарифнаяСтавка, 0) КАК МинимальнаяТарифнаяСтавка,
    |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.МаксимальнаяТарифнаяСтавка, 0) КАК МаксимальнаяТарифнаяСтавка,
    |    ЕСТЬNULL(ШтатноеРасписаниеОрганизацийСрезПоследних.УстановленнаяТарифнаяСтавка, 0) КАК УстановленнаяТарифнаяСтавка,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ТарифныйРазряд,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ГрафикРаботы,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВалютаТарифнойСтавки,
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.УсловияТруда
    |ИЗ
    |    РегистрСведений.ШтатноеРасписаниеОрганизаций.СрезПоследних(&ДатаАктуальности, ) КАК ШтатноеРасписаниеОрганизацийСрезПоследних
    |ГДЕ
    |    ШтатноеРасписаниеОрганизацийСрезПоследних.ВидТарифнойСтавки = &ВидТарифнойСтавки
    |    И ШтатноеРасписаниеОрганизацийСрезПоследних.КоличествоСтавок > 0";
    
    

    
    
    ФормаДата=Элементыформы.ДатаЗаписи;
    
     Если   Дата(ФормаДата.Значение) = Дата("01.01.0001 0:00:00") и   ЭлементыФормы.Процент.Значение=0 тогда
      Сообщить("Необходимо ввести планируемую дату завершения ремонта");
        Предупреждение ("Необходимо ввести  дату и Ввести процент");
       Отказ=истина; Возврат;
      
   КонецЕсли;

Если Дата(ФормаДата.Значение) = Дата("01.01.0001 0:00:00") тогда
       Сообщить("Необходимо ввести планируемую дату завершения ремонта");
        Предупреждение ("Необходимо ввести  дату");
       Отказ=истина; Возврат;
      
   КонецЕсли;

    Если     ЭлементыФормы.Процент.Значение=0 тогда
        Предупреждение("Введите процент");
        Возврат;
    КонецЕсли;
    
                 
    Запрос.УстановитьПараметр("ВидТарифнойСтавки", Перечисления.ВидыТарифныхСтавок.Месячная);
    Запрос.УстановитьПараметр("ДатаАктуальности", ДатаЗаписи);
    

    
    Выборка = Запрос.Выполнить().Выбрать();
    
    НаборЗаписей = РегистрыСведений.ШтатноеРасписаниеОрганизаций.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Период.Установить(ДатаЗаписи);
    
    Пока Выборка.Следующий() Цикл
        
        Запись = НаборЗаписей.Добавить();  
                 

        Запись.МинимальнаяТарифнаяСтавка = Окр(Выборка.МинимальнаяТарифнаяСтавка+Выборка.МинимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100, 0, РежимОкругления.Окр15как10 );
        Запись.МаксимальнаяТарифнаяСтавка = Окр(Выборка.МаксимальнаяТарифнаяСтавка+Выборка.МаксимальнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100, 0, РежимОкругления.Окр15как10);    
        Запись.УстановленнаяТарифнаяСтавка = Окр(Выборка.УстановленнаяТарифнаяСтавка+Выборка.УстановленнаяТарифнаяСтавка*ЭлементыФормы.Процент.Значение/100, 0, РежимОкругления.Окр15как10);    
        
        
        Запись.ВалютаТарифнойСтавки = Выборка.ВалютаТарифнойСтавки;
        Запись.ВидТарифнойСтавки = Выборка.ВидТарифнойСтавки;
        Запись.ГрафикРаботы = Выборка.ГрафикРаботы;
        Запись.Должность = Выборка.Должность;
        Запись.КоличествоСтавок = Выборка.КоличествоСтавок;
        Запись.Период = ДатаЗаписи;
        Запись.ПодразделениеОрганизации = Выборка.ПодразделениеОрганизации;
        Запись.ТарифныйРазряд = Выборка.ТарифныйРазряд;
        Запись.УсловияТруда = Выборка.УсловияТруда;
            КонецЦикла;
    
    НаборЗаписей.Записать(истина);      
    
    
    
    
КонецПроцедуры
14 starV
 
08.04.14
10:18
Не надо увеличивают зарплату к 17 отделу с исключениями
15 Godofsin
 
08.04.14
10:20
Новую тему заведи
16 Godofsin
 
08.04.14
10:20
И вопрос развернутее
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший