Имя: Пароль:
1C
1С v8
Проверка ТабЧасти на заполненность
0 jinny84
 
12.05.21
20:01
Добрый вечер. Подскажите кто сможет.
Есть реквизит у документа в зависимости от заполненности реквизита табчасти он должен меняться:
Если в табчасти реквизит заполнен во всех строках то должно стоять у реквизита документа "заполнено"
Если реквизит заполнен не во всех строчках то должно стоять "частично заполнено"
1 ДенисЧ
 
12.05.21
20:18
Про циклы рассказывают на первых уроках программирования...
2 jinny84
 
12.05.21
20:25
(1) Циклом проверяю реквизит во если всех строках заполнен, а вот если не во всех, как правильно написать в цикле??
3 jinny84
 
12.05.21
20:25
(1) Для Каждого стр из Объект.МТЦ цикл
          Если ЗначениеЗаполнено(стр.Выбор) тогда
              Объект.СтатусЗаявки = ЧастичноВработе();
          КонецЕсли
      КонецЦикла;
4 jinny84
 
12.05.21
20:45
Не ужели некто не подскажет)
5 GedKo
 
12.05.21
21:08
подсказываю: это не твое. меняй проф.ориентацию.
6 FIXXXL
 
12.05.21
21:29
Для Каждого стр из Объект.МТЦ цикл
          Если ЗначениеЗаполнено(стр.Выбор) тогда
              Объект.СтатусЗаявки = ЧастичноВработе();
ИНАЧЕ  Объект.СтатусЗаявки = НЕ ЧастичноВработе(); ПРЕРВАТЬ;
          КонецЕсли
      КонецЦикла;
7 jinny84
 
13.05.21
09:12
(5) тебе конечно спасибо) но если сам не знаешь как сделать зачем оскорблять)
8 jinny84
 
13.05.21
09:13
(6) Спасибо, но сделал по другому
Вдруг кому поможет:

ТЗ=Объект.МТЦ.Выгрузить();
     ТЗ.Свернуть("Выбор", );
     Если ТЗ.Количество()=1 Тогда
         Если ЗначениеЗаполнено(ТЗ[0].Выбор) Тогда
             Объект.СтатусЗаявки = ВРаботе();
         Иначе
             Объект.СтатусЗаявки = Перечисления.СтатусЗаявок.НетОтветственных;
         КонецЕсли;
     ИначеЕсли ТЗ.Количество()>1 Тогда
         Объект.СтатусЗаявки = ЧастичноВработе();
     КонецЕсли;
9 acht
 
13.05.21
09:15
(8) > сделал по другому
Как будто ты это сам написал, а не скопировал, то что тебе прислали на инфостарте
10 jinny84
 
13.05.21
09:16
(9) я этого и не скрывал)
11 jinny84
 
13.05.21
09:17
здесь в основном оскорбления, подсказок много))))
12 Megas
 
13.05.21
09:47
(8) Чёто сложна.
Можно что то типа:

Если Объект.МТЦ.Найти(<Значение>, "Выбор")) = неопределено тогда
Объект.СтатусЗаявки = ВРаботе();
иначе
Объект.СтатусЗаявки = ЧастичноВработе();
КонецЕсли;

<Значение> - это не заполнено значение должно быть. (пустая ссылка, ложь, неопределено, ну для твоего типа)

Интереснее что быстрее работает?
13 Dmitrii
 
гуру
13.05.21
09:52
(8) А ты понимаешь, что приведенное решение не соответствует задаче в (0)?
В задаче требуется только два варианта ответа - "заполнено"/"не заполнено".
В решении вариантов три - "заполнено"/"не заполнено"/"частично заполнено".

Если требовалось именно то, что в ответе, то как ты рассчитывал получить правильный ответ, задавая неправильный вопрос?
14 lodger
 
13.05.21
09:52
(12) выгрузить и свернуть - 2 цикла.
найти - 1 цикл.