![Фотография](https://vse.kz/uploads/av-7746.jpg?_r=0)
Работа с таблицами в 1С7реализация 2-х колонок на одной странице
#1
Отправлено 17.02.2006, 09:45:50
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Приблизительно так.
сейчас а надо
-------- начало страницы|-----------------------------
|1.Товар | |1.Товар |4.Товар
|2.Товар | |2.Товар |5.Товар
|3.Товар | |3.Товар |6.Товар
-------- конец страницы-|------------------------------
|4.Товар | |7.Товар
|5.Товар | |8.Товар
|6.Товар |
|7.Товар |
Подскажите как сие реализовать если можно примером.
#3
Отправлено 17.02.2006, 10:48:09
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
преобразовать в 2 колонки, не трогая код обработки\отчета\печати дока
решение1:
все перетащить в Ексель и там ручками
решение 2:
1)прочитать mxl-таблицу
2) подсчитать число ячеек с инфо (непустых) методом Область(i,j).Текст
3)вывести в 2 колонки
цикл чтения внутренний по строкам, внешний по столбцам
внутри цикл в цикле вывода: внешний по строкам, внутренний по столбцам от 1 до 2
и все
#4
Отправлено 18.02.2006, 13:29:16
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
обычно в 1с отчет идет вниз перескакивая на слудуюшую страницу. дапустим вывести цикл от 1 до 100 а мне нужно чтоб на одной стронице было две колонки тоесть доходит допусти строчка 50 до конца страницы она должна не переходить на следующуюю страницу а во второй столбец на этой же странице.
Ели можно примером.
#5
Отправлено 18.02.2006, 13:34:33
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
И таблицу я не читаю из mxl файла а создаю сам.Немного не так вы меня понели , мой пример просто отобразился не правильно.
обычно в 1с отчет идет вниз перескакивая на слудуюшую страницу. дапустим вывести цикл от 1 до 100 а мне нужно чтоб на одной стронице было две колонки тоесть доходит допусти строчка 50 до конца страницы она должна не переходить на следующуюю страницу а во второй столбец на этой же странице.
Ели можно примером.
Вообшем обычный отчет.
Хотя я может неправильно понел.
#7
Отправлено 20.02.2006, 00:19:29
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
Затем делишь общее колво строк ОКС(например ОКС =120) на НС , получаешь количество колонок в твоей таблице(нет ограничений на колво колонок)
создаешь ТЗ(Таблицу значений) вида (для понимания, можно ограничиться НС и ОКС)
001|051|101
002|052|102
003|053|103
......|......|......
......|......|......
......|......|120
050|100|
Потом цикл по этой ТЗ по строкам i
внутри цикл ТЗ по столбцам j
Знач = ТЗ (i,j)
Если первый столбец тогда
Таб. ВывестиСекцию("Знач")
иначе
Таб. ПрисоединитьСекцию("Знач")
все.
Сообщение отредактировал tooshiba: 20.02.2006, 00:27:02
#8
Отправлено 16.03.2006, 14:43:45
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
сам-то понял чо написал?))Определяешь сколько тебе надо строк НС на странице (в данном случае НС=50)
Затем делишь общее колво строк ОКС(например ОКС =120) на НС , получаешь количество колонок в твоей таблице(нет ограничений на колво колонок)
создаешь ТЗ(Таблицу значений) вида (для понимания, можно ограничиться НС и ОКС)
001|051|101
002|052|102
003|053|103
......|......|......
......|......|......
......|......|120
050|100|
Потом цикл по этой ТЗ по строкам i
внутри цикл ТЗ по столбцам j
Знач = ТЗ (i,j)
Если первый столбец тогда
Таб. ВывестиСекцию("Знач")
иначе
Таб. ПрисоединитьСекцию("Знач")
все.
#9
Отправлено 17.03.2006, 00:12:59
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
сам-то понял чо написал?))
Определяешь сколько тебе надо строк НС на странице (в данном случае НС=50)
Затем делишь общее колво строк ОКС(например ОКС =120) на НС , получаешь количество колонок в твоей таблице(нет ограничений на колво колонок)
создаешь ТЗ(Таблицу значений) вида (для понимания, можно ограничиться НС и ОКС)
001|051|101
002|052|102
003|053|103
......|......|......
......|......|......
......|......|120
050|100|
Потом цикл по этой ТЗ по строкам i
внутри цикл ТЗ по столбцам j
Знач = ТЗ (i,j)
Если первый столбец тогда
Таб. ВывестиСекцию("Знач")
иначе
Таб. ПрисоединитьСекцию("Знач")
все.
Лично я 100% понял что он хотел сказать
#11
Отправлено 04.04.2006, 23:41:36
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
В общем есть горизонтальные секции "Шапка" (ну тут понятно шапка она и в африке шапка), "Блюдо" (Наименование блюда, например шашлык), "Продукты" (состав блюда - подчиненный справочник, напр. в данном случае мясо, лук, уксус), "ИтогПоБлюду" (сколько чего там туда сюда) и сам "итог". Так вот, Блюдо, Продукты и ИтогПоБлюду сами по себе узкие и надо бы чтоб как бы оно то того, во вторую колонку перемещало а после уж и на вторую страничку.
Думаю мож вертикальную теперь сделать. В общем свежую голову надо.
З.Ы.
Таб.ВывестиСекцию("Шапка");
СуммаИТ = 0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Таб.ВывестиСекцию("Блюдо");
СписокПродуктов.ИспользоватьВладельца(Блюда);
СписокПродуктов.ВыбратьЭлементы();
Пока СписокПродуктов.ПолучитьЭлемент() > 0 Цикл
КоличПрод =0;
СуммаПрод = 0;
Продукт=СписокПродуктов.ТекущийЭлемент().Продукты;
ОстатокПрод = Ит.СКД("201",3,,Продукт);
Колво = СписокПродуктов.ТекущийЭлемент().Количество;
КоличПрод = Колво*Количество;
Если КоличПрод > ОстатокПрод Тогда
Сообщить("Внимание! Недостаточно продукта "+Продукт+"Нехватает "+(КоличПрод-ОстатокПрод));
СуммаПрод = 0;
Иначе
ЦенаПрод = Ит.СКД("201",,,Продукт)/ОстатокПрод;
СуммаПрод = КоличПрод*ЦенаПрод;
КонецЕсли;
Таб.ВывестиСекцию("Продукты");
Сумма = Сумма + СуммаПрод;
КонецЦикла;
Цена = СуммаПрод/Количество;
СуммаИТ = СуммаИТ + Сумма;
Таб.ВывестиСекцию("ИтогБлюдо");
КонецЦикла;
Таб.ВывестиСекцию("Итог");
#16
Отправлено 12.04.2006, 22:32:37
![](https://vse.kz/public/style_images/osnovnoi34/post_offline.png)
По идее надо СоздатьОбъект ТЗ, но!
Как быть ведь она (ТЗ) должна содержать Блюдо, Продукт, ЦенуПродукта, КоличествоПродукта, КоличествоБлюда. Выходит что Блюдо 1 а Продуктов куча. А свернуть ТЗ по Блюду не получица, веть продукт не числожить.
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0