Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Обработка табличного документа 2 страниц V   1 2 >          
Agapov_Stas Подменю пользователя
сообщение 12.06.13, 15:34
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Подскажите возможно ли такое :
Есть
ТабДокумент = Новый ТабличныйДокумент;

заполняю его по ситуации
ТабДокумент.Вывести(ОбластьМакета);

Вопрос
Возможно ли перебрать весь табличный документ построчно
Необходимо проанализировать есть ли в соседних ячейках одинаковые значения и если есть то объединить их
Это необходимо выполнить то кода
ТабДокумент.Показать()

Метод заполнения табличного документа сложный и вычислить зарание есть ли в соседних ячейках одинаковые значения невозможно
...возможен такой вариант что строка состоит из 16 ячеек и все их нужно будет объединить ...



XBrut Подменю пользователя
сообщение 12.06.13, 15:41
Сообщение #2

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

Ну так перебирайте себе области smile.gif и анализируйте.

Agapov_Stas Подменю пользователя
сообщение 12.06.13, 15:58
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Цитата(XBrut @ 12.06.13, 16:41) *
Ну так перебирайте себе области smile.gif и анализируйте.

Код перебора подскажите? а то как то не получается ПЕРЕБРАТЬ области

XBrut Подменю пользователя
сообщение 12.06.13, 16:06
Сообщение #4

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

не глядя в литературу...объект-табличный документ
У него наверняка есть либо метод либо свойство "Область" . Получить область наверняка можно по координатам (надеюсь и по имени тоже).
У объекта область есть и текст и значение и расшифровка smile.gif

Agapov_Stas Подменю пользователя
сообщение 12.06.13, 16:08
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Спасибо - такого метода там нет
Есть свойство области - но там ничего нет - количество 0 !
Вообщем вопрос остается открытым

XBrut Подменю пользователя
сообщение 12.06.13, 16:14
Сообщение #6

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

ТабличныйДокумент.Область (SpreadsheetDocument.Area)
ТабличныйДокумент (SpreadsheetDocument)
Область (Area)
Вариант синтаксиса: По имени

Синтаксис:

Область(<ИмяОбласти>)
Параметры:

<ИмяОбласти> (обязательный)

Тип: Строка.
Имя области или адрес в формате "R1C1:R2C2", где число после "R" обозначает номер строки, число после "C" - номер колонки, символом ":" (двоеточие) разделяются координаты левого верхнего и правого нижнего угла области. В качестве имени также можно передавать пересечение двух областей, записываемое как "<Имя области 1> | <Имя области 2>".
Вариант синтаксиса: По адресу

Синтаксис:

Область(<НомерПервойСтроки>, <НомерПервойКолонки>, <НомерПоследнейСтроки>, <НомерПоследнейКолонки>)

Agapov_Stas Подменю пользователя
сообщение 12.06.13, 16:16
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

спасибо - это я знаю - но перебирать по координатам не вариант - отчет динамический и координаты его каждый раз разные

Vofka Подменю пользователя
сообщение 12.06.13, 16:17
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Agapov_Stas, вы же сами тут пользуетесь методом Область().

XBrut Подменю пользователя
сообщение 12.06.13, 16:18
Сообщение #9

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

можно именовать области. можно запоминать каждый раз, в какой координате что написано.
шо Вы капризничаете smile.gif

Agapov_Stas Подменю пользователя
сообщение 12.06.13, 16:22
Сообщение #10

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Цитата(Vofka @ 12.06.13, 17:17) *
Agapov_Stas, вы же сами тут пользуетесь методом Область().

Поэтому и написал что это я знаю )
Но если Вы заметили - я его постоянно присоединяю !!!
т.е. не известно какой будет результат отчета по ширине и по высоте
А цикл я привел как пример
в отчете количество строк и столбцов зависит от данных


Цитата(XBrut @ 12.06.13, 17:18) *
можно именовать области. можно запоминать каждый раз, в какой координате что написано.
шо Вы капризничаете smile.gif

Макет отчета состоит из 4х !!! ячеек а на экран он выводится примерно 23 на 10 ячейки ( каждый раз по разному - читайте выше)
Он динамический и собирается из кусочков
Поэтому
именовать - у 90% областей одинаковое будет имя
Запоминать - неизвестно сколько нужно запоминать - т.к. макет отчета не фиксирован
поэтому и прошу подсказать -
возможно ли перебрать уже сформированный табличный документ перед его выводом ?

XBrut Подменю пользователя
сообщение 12.06.13, 16:58
Сообщение #11

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

кхе кхе ..
по-вашему, сформированный табличный документ нельзя перебрать по ячейкам, потому что не известно заранее, какой он будет ширины и высоты?
Я несогласен crazy.gif

Vofka Подменю пользователя
сообщение 12.06.13, 18:39
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Agapov_Stas, готового кода сейчас не приведу,попытаюсь объяснить на пальцах. У ТабДокумента есть метод Область(). Так? Так. И к какой-то конкретной области (ячейке) можно обратиться задав параметры типа ТабДокумент.Область(1, 1, 0, 0) (точный синтаксис не вспомню сейчас). Так вот, делаете цикл с какого-то номера строки, например 2, т.к. условно считаем, что выше - это заголовок и крутите этот цикл пока не дойдете до первой пустой области (считаем, если попадается пустая ячейка - отчет закончился). Внутри этого цикла делаете цикл, который идет не в высоту, а в ширину.

Ardi Подменю пользователя
сообщение 12.06.13, 19:56
Сообщение #13

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

А ещё в ячейки таблицы значений можно всовывать таблицы значений. И вложенные таблицы значений можно свёртывать.

Ну а потом уже выводить в таблицу.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

XBrut Подменю пользователя
сообщение 12.06.13, 20:56
Сообщение #14

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

Vofka, там должна быть где то высота и ширина табличного документа smile.gif

Оце якось загадали мені зробити документ, але щоб діалогова форма в нього була у вигляді таблиці , схожої на ексель.
Копався я копався і зробив висновок, що не така вже стройна об'єктна модель з тими таблицями.
Наприклад : неможна іменувати вкладені області , щоб звернутися потім :
ТабличныйДокумент.ИмяОбласти1.ИмяОбласти2

Правда було це давно. Може на останніх релізах таке можна робити... хто його зна ...

logist Подменю пользователя
сообщение 13.06.13, 5:46
Сообщение #15

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Agapov_Stas @ 12.06.13, 17:16) *
отчет динамический и координаты его каждый раз разные

Простите, что встреваю, а как это динамический отчет в табличном документе? Каким бы сложным не был отчет, его данные необходимо формировать и анализировать до вывода. Идея перебирать сформированный табдок, что бы анализировать данные - скорее говорит о не правильном понимании задачи, или недостаточного опыта для ее реализации.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

XBrut Подменю пользователя
сообщение 13.06.13, 7:48
Сообщение #16

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

logist, мне тоже приходилось такое делать ИНОГДА. Представьте отчет с группировкой показателя по периодам вбок (в колонках) колонки показателя следует сверху объединить под общим названием. Я засекал координаты и объединял маленькие ячейки. Неужели можно сделать как-то по другому?
Готовая секция вроде как не подходит : мы не знаем ее размеров заранее.

Vofka Подменю пользователя
сообщение 13.06.13, 8:10
Сообщение #17

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Цитата(XBrut @ 13.06.13, 8:48) *
а как это динамический отчет в табличном документе? Каким бы сложным не был отчет, его данные необходимо формировать и анализировать до вывода.

Например вывести остатки по всем складам: в строках номенклатура, в колонках склад. И вот тут хз сколько будет складов. Конечно, СКД этот вопрос решает, но мне приходилось делать нечто подобное с хитрыми вычислениями, поэтому делал без СКД. Я так понял - это и есть "динамический отчет".

Petre Подменю пользователя
сообщение 13.06.13, 8:29
Сообщение #18

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Для СчСтр = 1 По ТабДок.ВысотаТаблицы Цикл
Для СчКол = 1 По ТабДок.ШиринаТаблицы Цикл
...


или от меня ускользнула основная мысль...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 13.06.13, 9:19
Сообщение #19

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13958
Из: Киев
Спасибо сказали: 4524 раз
Рейтинг: 3647.7

Цитата(Petre @ 13.06.13, 9:29) *
Для СчСтр = 1 По ТабДок.ВысотаТаблицы Цикл
Для СчКол = 1 По ТабДок.ШиринаТаблицы Цикл
...


или от меня ускользнула основная мысль...

Я это же имел ввиду, когда выше про циклы рассказывал. А про порверки на пустую ячейку - тупанул, забыл, что у табличного документа в самом деле есть свойства Высота и Ширина. faceoff.gif

Agapov_Stas Подменю пользователя
сообщение 13.06.13, 9:47
Сообщение #20

Завсегдатай
****
Группа: Пользователи
Сообщений: 217
Из: Днепропетровск
Спасибо сказали: 18 раз
Рейтинг: 0

Про циклы - мысль стоящая
Только вот как мне перебрать в цикле ячейки ?
Просто координаты ячейки могут быть разные ... одна ячейка может состоять из двух объединенных ячеек а может и быть разбита пополам ...
Знать координаты могу только первой ячейки каждой строки и то если она не объединена или не разбита пополам ...

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 21.06.24, 2:13
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!