Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/32: Рейтинг темы: голосов - 32, средняя оценка - 4.72
Рита20
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 34
1

Удалить область в табличном документе программно

25.03.2016, 16:54. Просмотров 6190. Ответов 6
Метки нет (Все метки)

Ребята, подскажите кто знает, делаю условие на вывод строк только с отрицательным итогом.
Вот условие:

Если ЭтотОбъект.Отрицательные = Истина И Итого>0 Тогда
Табдок.УдалитьОбласть(Табдок.Область("R"+НомерМакета+"C1:R"+НомерМакета+"C"+(10+2*КоличествоНовыхСтолбцов)), ТипСмещенияТабличногоДокумента.ПоВертикали);
Номер = Номер -1;
КонецЕсли;

Смещение не происходит, может я что-то неправильно понимаю...

Удалить область в табличном документе программно
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2016, 16:54
Ответы с готовыми решениями:

Присоединить область в табличном документе
Пытаюсь вывести колонками в ТД через присоединение областей и при выводе выводит после каждой...

Сворачивание записей в табличном документе
Всем доброго времени суток. :) Совсем недавно начала изучать Предприятие 1с 7.7, столкнулась с...

Не печатает нули в табличном документе
В обработке куча строк, но интересующий фрагмент кода ВыводОтчета = Ложь; Если...

Эксель по русски или даешь расчет в табличном документе
Постановка задачи возможно кривая, буду рад уточняющим вопросам. Итак, есть набор формул (штук...

Очистка строк в табличном документе
Событие Команды &НаКлиенте Процедура Команда1(Команда) НаСервере(); КонецПроцедуры ...

6
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,134
25.03.2016, 17:38 2
Рита20, если поможет я делал так
выводил область, проверял условие и задавал область для удаления, затем удалял её.
1C
1
2
3
4
5
 ТабличныйДокумент.Вывести(ОбластьШапка);
   Если НЕ ВыводитьНаПечатьГрузополучателя тогда
       ОбластьСтрока = ТабличныйДокумент.Область("R15");
       ТабличныйДокумент.УдалитьОбласть(ОбластьСтрока, ТипСмещенияТабличногоДокумента.ПоВертикали);
   КонецЕсли;
Добавлено через 38 секунд
удалял не нужную строку из макета
1
Yanush
159 / 156 / 61
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
25.03.2016, 17:53 3
А зачем выводить области, а потом удалять часть из них по условию?! Почему нельзя перед выводом проверку сделать и если не подходит просто не выводить.
1
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,134
26.03.2016, 20:49 4
Yanush, потому что эта строка находится внутри области, это не отдельная область.
1
Yanush
159 / 156 / 61
Регистрация: 28.09.2013
Сообщений: 288
Завершенные тесты: 1
26.03.2016, 22:09 5
Лучший ответ Сообщение было отмечено Рита20 как решение

Решение

Ну от этого смысл моего сообщения не меняется. Значит нужно организовать вывод данных в отчет по-другому. А так это куча лишних действий - вывел удалил и т.д. Тем более, что итоговый табличный документ можно собирать как угодно по кускам, через присоединения и выводы. А чтобы все потом нормально соединялось нужно ячейки делать маленькими по размеру но много.
И да, я тупой. Из первого поста я ничего конкретного не понял, где и что удалять (хоть бы выделили ;( ). На картинке видно, что пропущено много строк (именно строк а не конкретных ячеек внутри строки). Поэтому так и написал...
1
Phil
Эксперт 1С
404 / 281 / 86
Регистрация: 28.05.2014
Сообщений: 1,134
26.03.2016, 22:14 6
Yanush, в моём примере было проще сделать так, чем разбивать область на подобласти и т.д. тем более надо было доработать именно эту строку, так что работал с тем что было)
1
Рита20
0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 34
28.03.2016, 09:45  [ТС] 7
Спасибо всем)) пришлось итог считать вначале, там просто есть одна тонкость из-за которой его в запросе сразу не получается вывести, удаление области только очищало строки, поэтому такие пропуски на макете, пожелания по выводу только с отрицательным итогом поступили уже после того как отчет был готов) Но несмотря на все проблема решена)
Вот кусочек кода:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Итого = Остаток - ВыборкаСырье.ПланируемыйРасход;
//выводим все
Если ЭтотОбъект.Отрицательные = Ложь Тогда
        Номер = Номер + 1;
        ОбластьСтрокаСырье.Параметры.Номер = Номер;
        Табдок.Вывести(ОбластьСтрокаСырье);
        ОбластьСтрокаОстаток.Параметры.Остаток = Остаток;       
        Табдок.Присоединить(ОбластьСтрокаОстаток);
//выводим только отрицательные
ИначеЕсли ЭтотОбъект.Отрицательные = Истина И Итого <= 0 Тогда
    Номер = Номер + 1;
    ОбластьСтрокаСырье.Параметры.Номер = Номер;
    Табдок.Вывести(ОбластьСтрокаСырье);
    ОбластьСтрокаОстаток.Параметры.Остаток = Остаток;       
    Табдок.Присоединить(ОбластьСтрокаОстаток);
КонецЕсли;
0
28.03.2016, 09:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2016, 09:45

Как программно вставить область в поле табличного документа?
Есть поле табличного документа (который аналог листа Екселя), туда пользователем тупо вставляются...

Программно удалить большие отступы в документе Word
Добрый вечер. Ситуация такая: есть документ ворда на 1000 страниц, но такое количество страниц...

В табличном документе таблица не умещается по ширине
Добрый день, делаю внешнюю печатную форму, как мне сделать, если таблица не помещается в ширину,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru