8.х сгруппировать колонки в печатной форме

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем 1Cnica, 7 июл 2009.

  1. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    Всем привет!
    Есть некий отчет по периоду. При нажатии кнопки сформировать в отчете выводятся все числа каждого месяца в зависимости от выбранного периода. Дело в том, что выводятся они некрасиво. см рисунок.
    Помогите, пожалуйста кто-нибудь :unsure:

    Вложения:

    • 777.GIF
      777.GIF
      Размер файла:
      10,9 КБ
      Просмотров:
      79
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    делал вот такую штуку.
    Может немного по-извращенски, но суть:
    сначала все выводится по строкам, после вывода всех строк проверяем в цикле нужные области (ячейки) на совпадение текста в них, если совпадает текущая и предыдущая - объединяем.

    Вложения:

    • 1.JPG
      1.JPG
      Размер файла:
      41,6 КБ
      Просмотров:
      68
  3. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    спасибо, попробую :unsure:
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    "1 апрель" - число и месяц отдельно получаются?
    Если да, группируй по ним, и получишь нужный результат.
    Если через СКД пишешь, то вообще проблем не должно быть.
  5. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    фигня какая-то получается(
    Stack_G, подкиньте пример кода пожалуйста, не получилось как Вы говорили
    LxS, делаю не с помощью СКД
  6. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    вот мой недоделанный код, чур ногами не бить... :unsure:

    Код:
    РабДни.Сортировать("ДатаКалендаря");
    Для Каждого СтрокаДня Из РабДни Цикл
    Область = Макет.ПолучитьОбласть("Шапка|День");
    ОблМес=макет.ПолучитьОбласть("Мес|День");
    Область.Параметры.День=День( СтрокаДня.ДатаКалендаря );
    ПечатнаяФорма.Присоединить(Область);
    //м=формат(месяц(СтрокаДня.ДатаКалендаря),"ДФ='ММММ'");
    мес=Формат(СтрокаДня.ДатаКалендаря, "ДФ='ММММ'"); 
    //область.НачатьАвтогруппировкуКолонок();
    
    ОблМес.Параметры.месяц=мес;
    ПечатнаяФорма.присоединить(ОблМес);	
    области=ОблМес.Области;
    
    //область.ЗакончитьАвтогруппировкуКолонок();
    
    
    //областьм=ПечатнаяФорма.НайтиТекст(мес);
    //Если ТипЗнч(областьм)=тип("Неопределено") тогда
    //иначе
    //	областьм.Объединить();
    //КонецЕсли;
    
    //обл=ПечатнаяФорма.Область("R2C3").Значение;
    //Если ПечатнаяФорма.Области.Найти(мес)<>Неопределено тогда
    //	ПечатнаяФорма.Области.
    //скока= РабДни.Количество();
    КонецЦикла;
    //для каждого стр из ПечатнаяФорма.Области цикл
    // стр);	
    //КонецЦикла;
    

    ЗЫ РабДни-результат запроса - ТаблицаЗначений

    такая печ форма выходит

    Вложения:

    • чтото.GIF
      чтото.GIF
      Размер файла:
      16,4 КБ
      Просмотров:
      45
  7. vitaly_mnpz
    Offline

    vitaly_mnpz Опытный в 1С

    Регистрация:
    15 фев 2009
    Сообщения:
    267
    Симпатии:
    0
    Баллы:
    26
    А использовать построитель отчета и делать две группировки колонок не подходит?
    Не говоря уж про СКД...
  8. TopicStarter Overlay
    1Cnica
    Offline

    1Cnica Опытный в 1С

    Регистрация:
    13 фев 2009
    Сообщения:
    416
    Симпатии:
    0
    Баллы:
    26
    для меня не подходит(...
  9. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Код:
    Если ТипЗаказа = "Покупателя" <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/тогда')">Тогда	</span>
    ПослСтрокаНом = 9+КолвоСтрокНоменклатурыМинусОдин;	
    ТЗоб = Новый ТаблицаЗначений;
    ТЗоб.Колонки.Добавить("Счетчик");
    Для Счетчик = 9 По ПослСтрокаНом Цикл
    ТекОбластьНом = ДокументРезультат.Область(Счетчик,2,Счетчик,2);
    ТекНом = СокрЛП(ТекОбластьНом.Текст);
    СледОбластьНом = ДокументРезультат.Область(Счетчик,2,Счетчик+1,2);
    СледНом = СокрЛП(СледОбластьНом.Текст);
    
    Если ТекНом = СледНом Тогда
    НовСтр = ТЗоб.Добавить();
    НовСтр.Счетчик = Счетчик;
    НовСтр = ТЗоб.Добавить();
    НовСтр.Счетчик = Счетчик+1;
    Иначе
    ОбъединитьЯчейки(ТЗоб,ДокументРезультат);
    КонецЕсли;
    
    КонецЦикла;
    
    Если ТЗоб.Количество() <> 0  Тогда
    ОбъединитьЯчейки(ТЗоб,ДокументРезультат,Истина);	
    КонецЕсли;
    КонецЕсли;
    
    Код:
    Процедура ОбъединитьЯчейки(аргТЗ,ПолеТабДок,Удалять = Ложь)
    Мин = 9999;
    Макс = 0;
    Для каждого стр Из аргТЗ Цикл
    Если стр.Счетчик < Мин Тогда
    Мин = стр.Счетчик; 
    КонецЕсли; 
    
    Если стр.Счетчик > Макс Тогда
    Макс = стр.Счетчик; 
    КонецЕсли;
    КонецЦикла;
    Если Удалять Тогда
    Макс= Макс-1;
    КонецЕсли; 
    
    Если Не ЗначениеНеЗаполнено(Мин) И НЕ ЗначениеНеЗаполнено(Макс) И Мин <> 9999 Тогда
    ПолеТабДок.Область(Мин,2,Макс,2).Объединить();
    ПолеТабДок.Область(Мин,3,Макс,3).Объединить();
    ПолеТабДок.Область(Мин,4,Макс,5).Объединить();
    //ПолеТабДок.Область(Мин,5,Макс,5).Объединить();
    ПолеТабДок.Область(Мин,6,Макс,6).Объединить();
    ПолеТабДок.Область(Мин,7,Макс,7).Объединить();
    ПолеТабДок.Область(Мин,8,Макс,8).Объединить();
    ПолеТабДок.Область(Мин,9,Макс,9).Объединить();
    ПолеТабДок.Область(Мин,10,Макс,10).Объединить();
    ПолеТабДок.Область(Мин,11,Макс,11).Объединить();
    //ПолеТабДок.Область(Мин,12,Макс,12).Объединить();
    КонецЕсли;
    аргТЗ.Очистить();
    КонецПроцедуры
    
    Может разберетесь, если нет - бросайте обработку... что-нить наваяю... уж больно аватарка хороша :)
  10. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    Вот..побалуйтесь..

    Вложения:

Похожие темы
  1. Vitaly
    Ответов:
    2
    Просмотров:
    1.177
Загрузка...

Поделиться этой страницей