Имя: Пароль:
1C
1С v8
удалить колонку из ТабДока
0 dvrk
 
05.08.22
08:01
Привет, вот вывожу на печать, открывается табдок, там выделяю столбец и удаляю его полностью - нормально смещаются остальные колонки, а если не заполняю в коде его просто, то все колонки криво съезжают, как программно выполнить действие "Выделить ненужный столбец, нажать ПКМ и нажать удалить" ?
1 Галахад
 
гуру
05.08.22
08:05
УдалитьОбласть
2 ChiginAV
 
05.08.22
08:05
Каждую колонку сделать отдельной областью и ненужные просто не присоединять
3 dvrk
 
05.08.22
08:07
(2) так тоже делал, криво смещается если что-то не присоединять
4 dvrk
 
05.08.22
08:07
(1) криво смещается
5 Ryzeman
 
05.08.22
08:09
(4) код в студию
6 dvrk
 
05.08.22
08:09
(5) какой
7 Ryzeman
 
05.08.22
08:10
(6) Которым задаёшь область столбца и удаляешь. Плюс,  макете по которому ты табдок заполняешь у тебя нет объединённых ячеек в удаляемом столбце?
8 dvrk
 
05.08.22
08:11
(7) объединённые это Типа|Так ? такие есть
9 dvrk
 
05.08.22
08:13
(1) ну точнее удалить область я вообще не могу Ошибка при вызове метода контекста (УдалитьОбласть)
    ТабДокумент.УдалитьОбласть("Описание", ТипСмещенияТабличногоДокумента.ПоГоризонтали);
по причине:
Несоответствие типов (параметр номер '1')
10 dvrk
 
05.08.22
08:15
https://ibb.co/G7xmkzc область вон сверху
11 Галахад
 
гуру
05.08.22
08:18
Область в первом параметре:

Обл = Область(, НомерКолонки, , НомерКолонки);
12 dvrk
 
05.08.22
08:24
(11) а как всю колонку удалить
13 Ёпрст
 
05.08.22
08:27
(12) это и есть вся колонка, но можешь и так написать Область("R2");
14 dvrk
 
05.08.22
08:29
(13) ну вот на скрине в (10) область "Описание" как узнать её "имя"? колонки этой
15 Ryzeman
 
05.08.22
08:29
(9) Ты путаешь область макета и область табдока.
16 Ryzeman
 
05.08.22
08:31
Тебе (11) написал как это правильно сделать
17 dvrk
 
05.08.22
08:32
(16) ну я не понимаю какие туда параметры сунуть, у меня колонка 5 судя по скрину..
18 Галахад
 
гуру
05.08.22
08:33
НомерКолонки = 5;
19 dvrk
 
05.08.22
08:34
(18) я понял что 5, а как правильно написать? Область(, 5, , 5) ?
20 Ryzeman
 
05.08.22
08:36
(19) Тебя в СП забанили?... Или пятница?

ТабличныйДокумент (SpreadsheetDocument)
Область (Area)
Вариант синтаксиса: По имени
Синтаксис:
Область(<ИмяОбласти>)
Параметры:
<ИмяОбласти> (обязательный)
Тип: Строка.
Имя области или адрес в формате "R1C1:R2C2", где число после "R" обозначает номер строки, число после "C" - номер колонки, символом ":" (двоеточие) разделяются координаты левого верхнего и правого нижнего угла области. В качестве имени также можно передавать пересечение двух областей, записываемое как "<Имя области 1> | <Имя области 2>".
Вариант синтаксиса: По адресу
Синтаксис:
Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>)
Параметры:
<НомерПервойСтроки> (необязательный)
Тип: Число.
Номер первой строки области таблицы.
Если отсутствует, то указывается область, состоящая из колонок.
<НомерПервойКолонки> (необязательный)
Тип: Число.
Номер первой колонки области таблицы.
Если отсутствует, то указывается область, состоящая из строк.
<НомерПоследнейСтроки> (необязательный)
Тип: Число.
Номер последней строки области таблицы.
Если выделяется область из колонок (параметр <НомерПервойСтроки> не задан), то указывается номер строки, из которой берется формат строк.
<НомерПоследнейКолонки> (необязательный)
Тип: Число.
Номер последней колонки области таблицы.
21 Ryzeman
 
05.08.22
08:37
(19) Откуда мы знаем что ты там в табдоке наприсоединял. Может у тебя нужная тебе область 25-я, а может первая.
22 dvrk
 
05.08.22
08:41
(21) у меня выводится всё так как на скрине на макете
23 Ryzeman
 
05.08.22
08:50
(22) Честно говоря, я немного в афиге. Даже просто зайти в СП, там предельно понятные примеры как именно это надо использовать, тебе сказали что и как делать. Вместо этого ты ждёшь код) И ладно бы если задача сложной была - тут же блин просто посмотреть в СП. Я думал так только ливингстар\найтхантер делает. Ну ок, раз ты НАСТОЛЬКО ленив, две строчки кода мне не жалко, в честь пятницы:

ОбластьКУдалению = ТабДокумент.Область("R2");
ТабДокумент.УдалитьОбласть(ОбластьКУдалению, ТипСмещенияТабличногоДокумента.ПоГоризонтали);
24 Ryzeman
 
05.08.22
08:50
в твоём случае
ОбластьКУдалению = ТабДокумент.Область("R5");
25 dvrk
 
05.08.22
08:57
(24) я так пробовал, не получилось, поэтому думал неправильно что-то сделал
26 dvrk
 
05.08.22
08:57
(24) Если СсылкаНаОбъект.Организация.Код = "00002" Тогда
    
    Область = ТабДокумент.Область("R5");
ТабДокумент.УдалитьОбласть(Область, ТипСмещенияТабличногоДокумента.ПоГоризонтали);

    КонецЕсли;
           Возврат ТабДокумент;
27 Ryzeman
 
05.08.22
08:58
(26) Пройдись отладчиком, что у тебя в переменной область.
Обойди коллекцию ячеек, то ли там вообще
28 Ryzeman
 
05.08.22
08:59
(27) ну и не получилось - что именно не так? На что то ругается или удаляет не то\не там?
29 dvrk
 
05.08.22
09:00
(28) да ничего не удаляет, а что я в отладчике увижу что в Область? ну там ОбластьЯчеекТабличного документа
30 Ryzeman
 
05.08.22
09:01
(29) ну так посмотри что в ней внутри
31 dvrk
 
05.08.22
09:02
(30) я извиняюсь, я тупой, а что внутри мне посмотреть? там много чего,
АвтоВысотаСтроки    Истина    Булево
АвтоОтметкаНезаполненного    Ложь    Булево
АвтоОтступ    0    Число
ВертикальноеПоложение        Неопределено
32 ptiz
 
05.08.22
09:05
(0) "открывается табдок, там выделяю столбец и удаляю его полностью - " - ты ведь это делаешь после вывода ВСЕГО табличного документа. Так и программно делай.
33 dvrk
 
05.08.22
09:06
(32) ага, вот я и спрашиваю как это сделать
34 Ryzeman
 
05.08.22
09:09
(31) Если у тебя всё по умолчанию, чмотри что в тексте. Если тыкнута галка использоватьзначение - то что в значении.

Через Shift+F9
Область.Текст
Ну или по ячейкам
ТабДокумент.Область("R5С1");

Хотя я уже понял в чём проблема) Область C5, а не R5...
35 Ryzeman
 
05.08.22
09:10
В общем, прочитал бы сам внимательно СП, сделал бы и всё получилось
36 dvrk
 
05.08.22
09:11
(35) почему С5?
37 dvrk
 
05.08.22
09:12
(34) у меня эти колонки пустые, ну и в отладчике тоже Область.Текст    ""    Строка
38 Ryzeman
 
05.08.22
09:12
Потому что R - Row - Строка. C - Column - Столбец
39 Ryzeman
 
05.08.22
09:13
(37) а ты в какой момент то удаляешь вообще это всё? Ты табдок уже сформировал?
40 dvrk
 
05.08.22
09:15
(39) удаляю перед Возврат ТабДок
41 dvrk
 
05.08.22
09:18
(39) пере выводом тоже удалял
42 dvrk
 
05.08.22
09:20
мне что угодно подойдёт, и видимость ложь и ширина 0 и удалить
ничего не получается
43 Ryzeman
 
05.08.22
09:21
Ну, я не знаю чем ещё тебе помочь :-D Области табдока у тебя якобы пустые, но выводятся они точь-в-точь как на макете - не пустые. При этом точка останова у тебя перед возвратом. Ну, такого просто не бывает. Либо ты смотришь не то или не там.
44 dvrk
 
05.08.22
09:22
(43) не, они выводятся пустые по условие если организация, для которой я сейчас и делаю, я убрал вывод этих колонок т.к. в колонке картинка - она не в ячейку выводится а 'поверх' ячейки и чтобы при смещении картинка не залезла на другую колонку я просто сделал если организация 1 тогда параметр заполняется иначе конецесли
45 dvrk
 
05.08.22
09:26
(43) ты имеешь ввиду мне нужно заполнять параметр и а отладчике посмотреть нужную ли колонку я получаю в Область?