Версия для печати темы (https://pro1c.org.ua/index.php?s=6d85bb1be367b6091518053ceac9ffc5&showtopic=67200)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование управляемых форм 1С 8.2 _ не могу проставить статус заказ наряда из задания на работу

Автор: 600w 15.03.23, 11:51

Добрый день форумчане
1С:Предприятие 8.3 (8.3.17.1549)

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


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


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

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

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

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

Автор: Vofka 16.03.23, 8:19

Подозреваю, что сюда надо передавать не строки, а какие-то перечисления:

|    И (ЗаданиеНаРаботуРаботы.Операция = ""Верстка""
|            ИЛИ ЗаданиеНаРаботуРаботы.Операция = ""Доставка"")

Автор: 600w 16.03.23, 9:38

Vofka @ Сегодня, 8:19 * ,
там точно строки - это уже проверил


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


Хотя делаешь выборку в консоли все ок

Автор: sava1 16.03.23, 9:51

600w @ Сегодня, 9:38 * ,

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

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


с параметром не напутали?

Автор: 600w 16.03.23, 10:14

sava1 @ Сегодня, 9:51 * ,


Начебто норм

Автор: Vofka 16.03.23, 10:14

А, тю.

Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() И Выборка.Сумма = 1 Тогда
    Возврат Истина;
Иначе
    Возврат Ложь;
КонецЕсли;

Автор: 600w 16.03.23, 10:27

Vofka @ Сегодня, 10:14 * ,
спасибо большое, сейчас попробую

Автор: 600w 16.03.23, 11:46

Vofka @ Сегодня, 10:14 * ,
отлично отработало)))
Спасибо большое

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua