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

Хранилище

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

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



> Печатные формы , форматирование табличного документа          
Salex Подменю пользователя
сообщение 26.04.11, 23:10
Сообщение #1

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Добрые люди! Помогите пожалуйста.
Суть проблемы:
упрощенно выглядит так:
в табличный документ вывожу 2 поля рядом друг с другом "Продукция" и "Материалы" (на одно наименование продукции идет несколько наименований материалов)
решаю так: первая область имеет 2 параметра (<Продукция> и <Материалы>), следующие области присоединяю с одним параметром (<Материалы>)
Бухгалтеру нужно чтобы ячейки в столбике "Продукция" пообъединялись на количество строк в столбике "Материалы". Как это сделать - ума не приложу
Помогите!!!

Графически нужно что-то такое
___________________________________________
| Продукция1 |Материал1
| |Материал2
| |Материал3
| |Материал4
| |Материал5
| |Материал6
__________________________________________
| Продукция2 |Материал1
|
|

И ячейка с продукцией должна быть объединенной


Заранее благодарен

Salex Подменю пользователя
сообщение 26.04.11, 23:13
Сообщение #2

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Табличка поехала: материалы должны быть под материалами, а ячейки под продукцией- объединиться с первой непустой
___________________________________________
| Продукция1 |Материал1
| |Материал2
| |Материал3
| |Материал4
| |Материал5
| |Материал6
__________________________________________
| Продукция2 |Материал1
|
|

Ardi Подменю пользователя
сообщение 26.04.11, 23:35
Сообщение #3

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

x
Причина редактирования: http://pro1c.org.ua/index.php?showtopic=2284


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

Salex Подменю пользователя
сообщение 26.04.11, 23:42
Сообщение #4

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Цитата(Ardi @ 26.04.11, 23:35) *
Нарисуй это тупо рамками. Без реального объединения.


Это первое, что мне пришло на ум. Так и сделал сразу - не прокатило. Не пойму, что они с этим документом дальше делают, но уперлись "объедини да объедини..."

По ходу там у продукции наименование длинное, и если просто рамками делать - строчка с продукцией увеличивается и на печати некрасиво получается (это мои догадки)

Ardi Подменю пользователя
сообщение 26.04.11, 23:47
Сообщение #5

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

Цитата(Salex @ 27.04.11, 0:44) *
строчка с продукцией увеличивается и на печати некрасиво получается

Блин.


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

Salex Подменю пользователя
сообщение 27.04.11, 0:01
Сообщение #6

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Все
Спать пошел, утро ночи мудренее, мож завтра кто-нить чего-нить и подскажет....

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

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(Salex @ 27.04.11, 1:01) *
Все
Спать пошел, утро ночи мудренее, мож завтра кто-нить чего-нить и подскажет....


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

ЗЫ: Насколько я помню 8-ка это позволяет, если нет с тем же успехом через скажем OLE использовать Excel, там точно можно.
А вообще изврат ИМХО. Хотя и не такое приходилось делать smile.gif


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

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

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Цитата(DartRomanius @ 27.04.11, 7:35) *
В процедуре вывода в таблицу запоминать начальные и конечные строки для разделов
которые надо объединить (в данном случае строки и столбцы продукции).


и как запоминать?
вот например код:
ТабДокумент=Новый Табличный документ;
Макет = ПолучитьМакет("Макетик");
...
ОбластьСтрока=Макет.ПолучитьОбласть("Строка");

...
//???как определить текущие координаты на ТабДокументе?

Сч=1;
Для каждого СтрокаМатериалы из Материалы Цикл
   Если Сч=1 Тогда
        ОбластьСтрока.Параметры.Продукция=Продукция;
   КонецЕсли;
  
   ОбластьСтрока.Параметры.Материал=СтрокаМатериалы.Номенклатура;
   Сч=Сч+1;
   ТабДокумент.Вывести(ОбластьСтрока);
КонецЦикла;

...


В принципе я счетчиком подсчитаю сколько строк я вывел, НО как мне определить координаты перед выводом областей строк?

Batchir Подменю пользователя
сообщение 28.04.11, 10:41
Сообщение #9

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

А я вообще не понял сути проблемы.
Если хотите выводить все последующие материалы под продукцией, то создайте отдельную строку макета и выводите в том виде как вам надо, а не мудрите с объединением.

Обычно такие задачи делаются немного по другому алгоритму:
1. Выводится элемент верхней группировки
2. выполняется команда начала группы строк
3. Выводятся элементы нижней группировки
4. Выполняется команда конца группы строк

группы строк можем выводить как в свернутом, так и в развернутом виде, вот быстро сваял пример кода.
С выборкой запроса сделал специально (а не выложил готовый код для Вас) , что бы Вы увидели и применили к своему случаю, лучше саму разобраться.

ВыборкаВерхнейГруппы = РЗ.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ВерхняяГруппа");
Пока ВыборкаВерхнейГруппы.Следующий Цикл

      // заполняем параметры и выводим строку табличного документа верхней группировки

      ТабДок.НачатьАвтогруппировкуСтрок();
      ТабДок.НачатьГруппуСтрок(,Ложь); // второй параметр указывает на то будет ли по умолчанию раскрыта группировка строк
      ВыборкаНижнейГруппы = ВыборкаВерхнейГруппы.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"НижняяГруппа");
      Пока ВыборкаНижнейГруппы.Следующий Цикл

            // заполняем параметры и выводим строку табличного документа нижней группировки

      КонецЦикла;
      ТабДок.ЗакончитьГруппуСтрок();
      ТабДок.ЗакончитьАвтогруппировкуСтрок();


КонецЦикла;


Если применить к вашей задаче, то получится отчет по продукциям, а если нужно посмотреть в разрезе материалов то, достаточно будет в отчете изменить уровень группировки строк или нажать на "+" для отдельной интересующей продукции

Salex Подменю пользователя
сообщение 29.04.11, 21:36
Сообщение #10

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Цитата(Batchir @ 28.04.11, 10:41) *
Обычно такие задачи делаются немного по другому алгоритму:


Уважаемые коллеги! Если бы я столкнулся с обычной задачей, я бы не выносил вопрос на обсуждение на форуме! Я считаю что эта тема нестандартная и многим могла бы быть интересной.

Цитата(Batchir @ 28.04.11, 10:41) *
А я вообще не понял сути проблемы.


Объясняю: генеральный директор моего заказчика - авторитарный тип. Он нарисовал определенный вид отчета и требует от подчиненных неукоснительного соблюдения формы. Сейчас работники получают данные из 1Ски стандартными отчетами и рисуют ему этот отчет ручками в Экселе. Заказчику легче заплатить программисту денег, чем переубедить шефа изменить форму отчета.

Цитата(Batchir @ 28.04.11, 10:41) *
Если хотите выводить все последующие материалы под продукцией
.

не хочу выводить "под продукцией", я такого не писал. Я писал:
"в табличный документ вывожу 2 поля рядом друг с другом "Продукция" и "Материалы" " - это значит 2 блока рядом друг с другом и в первом блоке требуется объединить ячейки на высоту второго блока.

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

Ardi Подменю пользователя
сообщение 29.04.11, 22:01
Сообщение #11

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

Область = ТабДок.Область(2,2,3,3);
Область.Объединить();


ОбластьШапкаТаблицы.Область(1,2,1,9+КоличествоКолонокПодЗаказ).Объединить();
ОбластьШапкаТаблицы.Область(1,2,1,9+КоличествоКолонокПодЗаказ).ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);


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

Zaval Подменю пользователя
сообщение 29.04.11, 22:17
Сообщение #12

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Упс... это уже интересно.

Предложены пути решения. Что не устраивает?
Картинку реализации результата и свои претензии - в студию!

Если продолжаем истерить - платить программисту, добро пожаловать в Стол Заказов.

Batchir Подменю пользователя
сообщение 30.04.11, 10:50
Сообщение #13

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Цитата(Zaval @ 29.04.11, 23:17) *
Упс... это уже интересно.

Предложены пути решения. Что не устраивает?
Картинку реализации результата и свои претензии - в студию!

Если продолжаем истерить - платить программисту, добро пожаловать в Стол Заказов.


А ещё лучше показать сам экселевский файл, тот который делают ручками, а хотят видеть в 1С-ке, потому что их первого поста непонятно что нужно, и выглядит это именно так что хотите видеть материл под продукцией

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

Говорящий
Иконка группы
Группа: Местный
Сообщений: 66
Из: Харьков
Спасибо сказали: 113 раз
Рейтинг: 0

Спасибо всем!

За неуклюжее изображение на первом посте прошу прощения, когда рисовал - все пробелами подогнал, а после отправления все пробелы ужались и получилось как будто материалы под продукцией.

решил проблему через использование:

Область.Объединить()

а высоту вычислял используя метод:

до вывода
НачПоз=ТабДокумент.ВысотаТаблицы;

после вывода снова :
КонПоз=ТабДокумент.ВысотаТаблицы;

и потом:
ТабДокумент.Область(НачПоз,6,КонПоз,6).Объединить();


Всем кто помогал спасибо, надеюсь мой опыт будет еще кому-нибудь полезен

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


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

 

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