|
Вывод по условию на печатную форму | ☑ | ||
---|---|---|---|---|
0
fomes
19.04.22
✎
09:50
|
Здравствуйте!
Есть проблемка. На печать нужно выводить не всю таблицу, а только те строки, где количество не равно нулю. Код выглядит так: >> если Строка(Шапка.Параметры.Количество)="0" тогда ОбластьСтрока=ТабДок.Область("R4"); ОбластьСтрока.Видимость=ложь; конецесли; На пустом макете работает, а если сверху таблицы ещё что-то есть, начинает выкидывать фокусы. Скрывает ненулевое количество, не скрывает нулевое, в общем, что угодно делает, но не то, что нужно. Все свои "Если" вставляю после строки вывода шапки в цикле разделителя страниц. Сверху ещё заголовок с картинкой, шапка с датой, номером и шаблонами. Области уже на каждый чих отдельные, не помогает. |
|||
1
bolder
19.04.22
✎
09:54
|
(0) Кошмар...Почему запросом не фильтруете?
|
|||
2
Михаил Козлов
19.04.22
✎
09:54
|
Почему бы не пропускать вывод ненужных строк при формировании табличного документа?
Странное условие Строка(Шапка.Параметры.Количество)="0": а если там "0.00"? |
|||
3
fomes
19.04.22
✎
11:35
|
(2) Ноль там задан жёстко, он всегда выглядит только так.
|
|||
4
Гипервизор
19.04.22
✎
11:40
|
Вам уже ответили, просто не выводите область. А у вас сначала вывод, а потом попытка скрыть.
|
|||
5
hhhh
19.04.22
✎
11:41
|
(3) задавайте нормально Шапка.Параметры.Количество=0
зачем эта хрень со строками? |
|||
6
fomes
19.04.22
✎
11:50
|
(5) Цепляетесь не к тому :D
Без разницы, есть строка или нет, работает одинаково. Эта строка выползла как попытка решить проблему, она ничего не меняет. |
|||
7
fomes
19.04.22
✎
11:52
|
(4) На пустом макете работает именно в таком виде... Но я попробую поменять порядок.
|
|||
8
fomes
19.04.22
✎
12:12
|
Тупая перестановка ТабДок.Вывести под список условий не сработала, надо как-то иначе?
|
|||
9
Гипервизор
19.04.22
✎
12:42
|
Пока Выборка.Следующий() Цикл
Если Выборка.Количество <> 0 Тогда ТабДок.Вывести(Область); КонецЕсли; КонецЦикла; Вы как-то иначе переставляете? |
|||
10
fomes
19.04.22
✎
13:02
|
(9) У меня не таблица, эти количества - отдельные реквизиты документа, поэтому я их выборкой вытаскиваю все:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Документ1.Количество1, | Документ1.Количество2... (и тд) | ИЗ | Документ.Документ1 как Документ1 |ГДЕ |Документ1.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Шапка = Макет.ПолучитьОбласть("Шапка"); //(это конструктор породил) Шапка.Параметры.Заполнить(Выборка); если Шапка.Параметры.Количество1=0 тогда ОбластьСтрока=ТабДок.Область("R5"); ОбластьСтрока.Видимость=ложь; конецесли; //и так 20 раз ТабДок.Вывести(Шапка, Выборка.Уровень()); |
|||
11
Гипервизор
19.04.22
✎
13:10
|
(10) Источник это не принципиально. Если вы пример из (9) не можете адаптировать к своему сценарию, то это совсем печально.
И вообще в вашем интересном случае можно и без запроса обойтись. В чём будет разница между Шапка.Параметры.Количество1 и Ссылка.Количество1? |
|||
12
fomes
19.04.22
✎
13:29
|
(11) Про запущенный случай вы верно подметили. Действительно не могу адаптировать. Если б своих знаний хватало, вопросов бы не было)
|
|||
13
Гипервизор
19.04.22
✎
13:39
|
(12) Тогда задачу подробнее опишите. Ваши 20 реквизитов в одну строку выводятся, каждый в своей колонке?
|
|||
14
fomes
19.04.22
✎
14:14
|
(13) Это двадцать строк. Деталь такая-то, штук столько, на другой строке - другая деталь.
На форме оператор выбирает модель, получает список деталей под замену. Не выбирает из справочника по одной, а видит готовый перечень, такую вот поставили задачу. Разные модели - разные детали, какие-то пересекаются, какие-то уникальны. Во всех деталях (включая скрытые по условию модели) стоят нули по умолчанию. Где надо, оператор меняет ноль на другое количество (у полей списки выбора). Как оператор всё заполнит, нужно вывести на печать, но только те детали, которым нужна замена, т.е. те, где оператор поставил отличное от нуля количество. В макете представлены строками все возможные детали. Сначала я их туда загоняю, а потом прячу ненужные. Если я своим кривым методом вывожу в пустой макет, где только одна область, в которой эти мои детали, то всё работает, как должно. А если сверху другая область, в которой номер, дата, собственник и т.д., уже не хочет работать. |
|||
15
Гипервизор
19.04.22
✎
14:25
|
И как связана форма с моделями и деталями и документ с 20 реквизитами "Количество"?
|
|||
16
fomes
19.04.22
✎
14:33
|
(15) Через форму заполняются значения тех реквизитов документа, которые нам нужны для макета. Заполняются не только лишь все, а макет один для всех моделей.
У документа 20 реквизитов "количество1", "количество2" ... "количество20". |
|||
17
Гипервизор
19.04.22
✎
14:45
|
(16) Как связаны количество с деталями? В форме заполнили реквизиты документа, а документ записывается?
|
|||
18
lEvGl
гуру
19.04.22
✎
14:54
|
(16) бугага
|
|||
19
fomes
19.04.22
✎
14:54
|
(17) А никак не связаны! Они просто расположены напротив. Сами реквизиты названия, количества и номеров деталей никак не объединены между собой.
Записываются документы, да. |
|||
20
lEvGl
гуру
19.04.22
✎
14:55
|
(19) сделайте документ через табличную часть, а не отдельными реквизитами
|
|||
21
fomes
19.04.22
✎
15:01
|
(20) Ох, я бы с радостью. Это бы очень облегчило мне жизнь. Но я не знаю, как с помощью таблицы выполнить поставленные условия.
А именно: 1) не заставлять оператора выбирать детали под замену из справочника, а выдавать ему готовый список под выбранную модель; 2) не давать оператору писать что угодно в количество, а ограничить выбор, но у разных деталей разное максимальное количество (от 2 до 4). Первый пункт подразумевает, что если я делаю табличную часть и добавляю её на форму, то оператор видит пустую таблицу и заполняет её, а надо, чтоб видел перечень деталей под выбранную ранее модель. Второй пункт подразумевает, что в одну колонку таблицы надо заносить количество с разными условиями, но я могу в свойствах задать только одно общее ограничение. |
|||
22
lEvGl
гуру
19.04.22
✎
15:07
|
(21) так же как и сейчас это сделано, только для ТЧ. все связи/обработчики для поля ввода у таблицы такие же, потому что это то же самое ПолеВвода
ТЧ облегчает жизнь, гарантия 102 процента |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |