Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не могу проставить статус заказ наряда из задания на работу
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
600w
Добрый день форумчане
1С:Предприятие 8.3 (8.3.17.1549)

Управління невеликою фірмою для України, редакція 1.6 (1.6.9.1)
общий модуль самописный


подскажите что то не выходит


ситуация такая при проведении задания на работу(у каждой работы есть свой признак это верстка и доставка) с состоянием завершено проставляется состояние заказ наряда - допустим выполнена доставка или выполнена верстка
все отрабатывает отлично
но когда понадобилось прикрутить такую штуку при приведении задания на работу он проверяет - если все работы с состояние завершено - в заказ наряде должно стать "заказ готов"

Выборка не отрабатывает правильно - возвращает одно значение, хотя в консоли делаешь выборку все норм
что то подзапутался

Процедура УстановитьСостояниеЗаказНарядаПриЗаписи(Источник, Отказ) Экспорт
    
    Если Источник.Состояние = Справочники.СостоянияСобытий.НайтиПоНаименованию ("Завершено") тогда
    
        
        СписокЗаказов = Новый СписокЗначений;
        Для Каждого СтрокаТЧ Из Источник.Работы Цикл
            Если ЗначениеЗаполнено(СтрокаТЧ.Заказчик) Тогда
                Если СписокЗаказов.НайтиПоЗначению(СтрокаТЧ.Заказчик) = Неопределено Тогда
                    СписокЗаказов.Добавить(СтрокаТЧ.Заказчик);
                    Если Не ПроверитьЗаказЗавершено(СтрокаТЧ.Заказчик) Тогда
                        УстановитьСтатусЗавершено(СтрокаТЧ.Заказчик,СтрокаТЧ.Операция, Источник.ТТН);
                    Иначе
                        УстановитьСтатусЗавершено(СтрокаТЧ.Заказчик,"Завершено",Источник.ТТН);
                    КонецЕсли;    
                КонецЕсли;    
            КонецЕсли;
        КонецЦикла;
        
        
    КонецЕсли;    

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

|    И (ЗаданиеНаРаботуРаботы.Операция = ""Верстка""
|            ИЛИ ЗаданиеНаРаботуРаботы.Операция = ""Доставка"")
600w
Vofka @ Сегодня, 8:19 необходимо зарегистрироваться для просмотра ссылки ,
там точно строки - это уже проверил


с выборки возвращает только значение истина и все


Хотя делаешь выборку в консоли все ок
sava1
600w @ Сегодня, 9:38 необходимо зарегистрироваться для просмотра ссылки ,

    |    ЗаданиеНаРаботуРаботы.Заказчик = &Заказ

    
    Запрос.УстановитьПараметр("Заказ",ЗаказСсылка);


с параметром не напутали?
600w
sava1 @ Сегодня, 9:51 необходимо зарегистрироваться для просмотра ссылки ,


Начебто норм
Vofka
А, тю.

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Сумма = 1 Тогда
    Возврат Истина;
Иначе
    Возврат Ложь;
КонецЕсли;
600w
Vofka @ Сегодня, 10:14 необходимо зарегистрироваться для просмотра ссылки ,
спасибо большое, сейчас попробую
600w
Vofka @ Сегодня, 10:14 необходимо зарегистрироваться для просмотра ссылки ,
отлично отработало)))
Спасибо большое
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.