Имя: Пароль:
1C
1С v8
печать области с условием
0 cvrnvge
 
23.06.20
13:26
Привет! Нужно печатать текст, если у Номенклатура.Реквизит = НужноеЗначение, если НенужноеЗначение, то пустой реквизит, значения всего 2, в заказе может быть номенклатура и с тем и с тем реквизитом, как проверить, что в ТЧ только НужноеЗначение и тогда печатать и если есть Ненужное, то печатать не нужно

Если ДанныеПечати.Ссылка.Товары[0].Номенклатура.Реквизит1 = НужноеЗначение тогда

ОбластьМакета.Параметры.Параметр = "Нужный текст";

Иначе

ОбластьМакета.Параметры.Параметр = " ";

КонецЕсли

Но это проверяется только 1ая строка, как проверить все строки и если есть НеНужное, то не печатать текст ?
1 ДенисЧ
 
23.06.20
13:27
Циклы для кого придумали?
2 cvrnvge
 
23.06.20
13:29
(1) ну, я не совсем пойму как тут правильно проверять
3 Kigo_Kigo
 
23.06.20
13:29
(1) Зачем? мы первое проверим и решим, нужное это или не нужное )))
4 cvrnvge
 
23.06.20
13:31
(3) (1) Да я понимаю, что Т обойти надо, но как условие написать, что если есть в ТЧ НужноеЗначение и НеНужное, то текст не нужен, если есть только НеНужное, то не нужен и если есть только Нужное, то текст нужен
5 dka80
 
23.06.20
13:36
НуженТекст = Истина;
Для Каждого Строка Из ДанныеПечати.Ссылка.Товары Цикл
НуженТекст =НуженТекст  И Строка.Номенклатура.Реквизит1=НужноеЗначение (вот тут за Номенклатура.Реквизит1 некоторые могут начать кидаться ссаными тряпками, но мне как-то пох в рамках данной задачи)
КонецЦикла;
Если НуженТекст Тогда
ОбластьМакета.Параметры.Параметр = "Нужный текст";
КонецЕсли;
6 Kigo_Kigo
 
23.06.20
13:37
Для СтрокаТЧ из ДанныеПечати.Ссылка.Товары Цикл

Если СтрокаТЧ .Номенклатура.Реквизит1 = НужноеЗначение тогда

ОбластьМакета.Параметры.Параметр = "Нужный текст";

Иначе

ОбластьМакета.Параметры.Параметр = " ";

КонецЕсли
КонецЦикла;
7 Kigo_Kigo
 
23.06.20
13:38
(5) опередил), а для "Каждого" забыл))
8 dka80
 
23.06.20
13:39
(6) не пойдет. Текст нужно выводить только если ВО ВСЕХ строках нужное значение, если я правильно понял (4)
9 cvrnvge
 
23.06.20
13:39
(6) а если СтрокаТЧ.Номенклатура.Реквизит1 = НужноеЗначение
а следующая строка будет Реквизит1 = НенужноеЗначение, то он всё равно же напечатает
10 Kigo_Kigo
 
23.06.20
13:42
(9) а ты не догоняешь, что после этого область макета надо все таки вывести? что бы ее обнулить?
11 cvrnvge
 
23.06.20
13:43
(10) видимо не догоняю
12 cvrnvge
 
23.06.20
13:46
(10) поможешь догнать? Я так и не понял что мне нужно сделать
13 dka80
 
23.06.20
13:46
(10) нужно сам макет видеть. Я исходил из того, что у него область макета выводится один раз, а не несколько
14 cvrnvge
 
23.06.20
13:47
(13) сча попробую
15 cvrnvge
 
23.06.20
13:54
(5) большое спасибо
16 Kigo_Kigo
 
23.06.20
13:54
ТабДокумент.Вывести(ОбластьМакета);
17 cvrnvge
 
23.06.20
13:56
(16) это к чему? у меня область и так выводится в любом случае, мне только заполнение параметра
18 Kigo_Kigo
 
23.06.20
14:11
Ну вообще в подобных случаях область выводится поэтапно
Шапка

СтрокаТЧ
СтрокаТЧ
СтрокаТЧ
СтрокаТЧ  и т.д, до конца ТЧ

Подвал
19 trooba
 
23.06.20
15:09
(0) Читай НайтиСтроки()
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой