0 / 0 / 0
Регистрация: 09.12.2013
Сообщений: 34
1

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

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

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

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

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

Удалить область в табличном документе программно
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2016, 16:54
Ответы с готовыми решениями:

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

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

Проблемы с кодировкой в табличном документе 1С
Здравствуйте Уважаемые формучане На основании макета формируется табличный документ,куда выводятся...

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

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

Решение

Ну от этого смысл моего сообщения не меняется. Значит нужно организовать вывод данных в отчет по-другому. А так это куча лишних действий - вывел удалил и т.д. Тем более, что итоговый табличный документ можно собирать как угодно по кускам, через присоединения и выводы. А чтобы все потом нормально соединялось нужно ячейки делать маленькими по размеру но много.
И да, я тупой. Из первого поста я ничего конкретного не понял, где и что удалять (хоть бы выделили ;( ). На картинке видно, что пропущено много строк (именно строк а не конкретных ячеек внутри строки). Поэтому так и написал...
1
Эксперт 1С
434 / 305 / 92
Регистрация: 28.05.2014
Сообщений: 1,247
26.03.2016, 22:14 6
Yanush, в моём примере было проще сделать так, чем разбивать область на подобласти и т.д. тем более надо было доработать именно эту строку, так что работал с тем что было)
1
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2016, 09:45
Помогаю со студенческими работами здесь

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

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

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

1с 8.3 Программное определение координат области в табличном документе
Всем привет! Возможно ли программно определить координаты левого верхнего угла области,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru