| 
    
        
     
     | 
    
    
  | 
Внешняя обработка на изменения норм часов | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        example221    
     30.12.19 
            ✎
    08:27 
 | 
         
        Подскажите в чем может быть проблема
 
        Процедура КнопкаВыполнитьНажатие(Кнопка) //Защита картера ДВС с/у Работа = Новый СписокЗначений; Работа.Добавить(Справочники.Автоработы.НайтиПоКоду("ЦБ00021506")); //Номер.Добавить("0,200"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказНарядРаботы.Ссылка КАК Ссылка, | ЗаказНарядРаботы.Работа КАК ВидРаботы, | ЗаказНарядРаботы.Коэффициент КАК Коэффициент |ИЗ | Документ.ЗаказНаряд.Работы КАК ЗаказНарядРаботы |ГДЕ | ЗаказНарядРаботы.Работа В(&Работа)"; Запрос.УстановитьПараметр("Работа", Работа); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Объекта = Выборка.Ссылка.ПолучитьОбъект(); Для каждого Выборка из Объекта.Работы Цикл Если Выборка.Коэффициент = 0.200 Тогда Объекта.Коэффициент = 1.000; КонецЕсли; КонецЦикла; Попытка Объекта.Записать(); Сообщить(Выборка.Ссылка) Исключение Сообщить("НормЧасы " + Выборка.Ссылка + " не изменены."); КонецПопытки; КонецЦикла; КонецПроцедуры  | 
|||
| 
    1
    
        Aleksey    
     30.12.19 
            ✎
    08:30 
 | 
         
        тебе виднее в чем проблема.
 
        Что за ошибка, что не получается?  | 
|||
| 
    2
    
        example221    
     30.12.19 
            ✎
    08:30 
 | 
         
        (1) Вроде считывает,но по задумке неизменяет значение норм часов.     
         | 
|||
| 
    3
    
        JeHer    
     30.12.19 
            ✎
    08:31 
 | 
         
        (1) Наверное, тут ошибка
 
        >>> Для каждого Выборка  | 
|||
| 
    4
    
        example221    
     30.12.19 
            ✎
    08:33 
 | 
         
        (3) ОО возможно,спсибо щас проверю     
         | 
|||
| 
    5
    
        example221    
     30.12.19 
            ✎
    08:37 
 | 
         
        (3) Начал жаловаться что итератор не определен     
         | 
|||
| 
    6
    
        example221    
     30.12.19 
            ✎
    08:40 
 | 
         
        Закрыто     
         | 
|||
| 
    7
    
        example221    
     30.12.19 
            ✎
    12:53 
 | 
         
        Извиняюсь за плодение веток.
 
        Но Обясните что от меня хотят Сообщение в котором говорят что изменить (Смотри, ты в запросе выбираешь номер строки. Теперь вместо цикла с обходом строк ты пиши сразу Объект.Работы.(номер строки - поищи как правильно указывать).Коэффициент = ...) Сам Код Процедура КнопкаВыполнитьНажатие(Кнопка) //Защита картера ДВС с/у Работа = Новый СписокЗначений; Работа.Добавить(Справочники.Автоработы.НайтиПоКоду("ЦБ00021506")); //Номер.Добавить("0,200"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказНарядРаботы.Ссылка, | ЗаказНарядРаботы.Работа, | ЗаказНарядРаботы.Коэффициент, | ЗаказНарядРаботы.НомерСтроки |ИЗ | Документ.ЗаказНаряд.Работы КАК ЗаказНарядРаботы |ГДЕ | ЗаказНарядРаботы.Работа В(&Работа)"; Запрос.УстановитьПараметр("Работа", Работа); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Объект = Выборка.Ссылка.ПолучитьОбъект(); Для каждого Стр из Объект.Работы Цикл Если Выборка.Коэффициент = 0.500 Тогда стр.Коэффициент = 0.600; КонецЕсли; Попытка Объект.Записать(); Исключение Сообщить("НормЧасы " + Объект + " не изменены."); КонецПопытки; КонецЦикла; КонецЦикла; КонецПроцедуры Я Туповат да  | 
|||
| 
    8
    
        NcSteel    
     30.12.19 
            ✎
    12:53 
 | 
         
        Процедура КнопкаВыполнитьНажатие(Кнопка)
 
        //Защита картера ДВС с/у Работа = Новый СписокЗначений; Работа.Добавить(Справочники.Автоработы.НайтиПоКоду("ЦБ00021506")); //Номер.Добавить("0,200"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказНарядРаботы.Ссылка, | ЗаказНарядРаботы.Работа, | ЗаказНарядРаботы.Коэффициент, | ЗаказНарядРаботы.НомерСтроки |ИЗ | Документ.ЗаказНаряд.Работы КАК ЗаказНарядРаботы |ГДЕ | ЗаказНарядРаботы.Работа В(&Работа) |Итоги ПО ЗаказНарядРаботы.Ссылка"; Запрос.УстановитьПараметр("Работа", Работа); Результат = Запрос.Выполнить(); ВыборкаЗН = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаЗН.Следующий() Цикл Объект = ВыборкаЗН.Ссылка.ПолучитьОбъект(); ВыборкаДетали = ВыборкаЗН.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока ВыборкаДетали.Следующий() Цикл ИндексСтроки = ВыборкаДетали.НомерСтроки - 1; стр = Объект.Работы[ИндексСтроки]; стр.Коэффициент = 0.600; КонецЦикла; Попытка Объект.Записать(); Исключение Сообщить("НормЧасы " + Объект + " не изменены."); КонецПопытки; КонецЦикла; КонецПроцедуры  | 
|||
| 
    9
    
        example221    
     30.12.19 
            ✎
    12:54 
 | 
         
        (8) Угу Спасибо,щас проверю     
         | 
|||
| 
    10
    
        example221    
     30.12.19 
            ✎
    12:56 
 | 
         
        (8) Но тут опять цикл в цикле получается,одним циклом это не провернуть?     
         | 
|||
| 
    11
    
        hhhh    
     30.12.19 
            ✎
    13:05 
 | 
         
        (10) зачем это всё? Есть же типовая ГрупповаяОбработкаСправочниковИДокументов. Идеально подходит для данного случая, и вообще ничего писать не надо.     
         | 
|||
| 
    12
    
        NcSteel    
     30.12.19 
            ✎
    13:24 
 | 
         
        (10) Так оптимальнее.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |