Версия для печати темы (https://pro1c.org.ua/index.php?s=76457892f9bc779d438de34d21ce805b&showtopic=19522)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Объединить ячеки в табличном документе

Автор: kosalex 27.08.14, 9:30

Есть табличный документ:


В колонке "Период", дата должна быть одна на все строки. Т.е. нужно объединить ячейки.
Код:

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

    ОбластьДаты = ТабДок.Область("ОбластьПериод");
    ОбластьДаты.Объединить();
    ОбластьДанныеТаблицы2.Параметры.Период = Дата;
    //ОбластьДанныеТаблицы2.ТекущаяОбласть.Формат = "ДФ=dd.MM.yyyy hh:mm:ss";


Не получается! Помогите с кодом.



Автор: logist 27.08.14, 9:39

Для уже сформированного табдока область задается диапазоном (типа R1C1:R3C1), а не именем, имя используется для работы с макетом.

Автор: kosalex 27.08.14, 11:18

Цитата(logist @ 27.08.14, 9:39) http://pro1c.org.ua/index.php?act=findpost&pid=90637
Для уже сформированного табдока область задается диапазоном (типа R1C1:R3C1), а не именем, имя используется для работы с макетом.


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

ОбластьДаты = ТабДок.Область("R11C1:R"+ (11 + ТЧБигБегов.Количество()) + "С1");
ОбластьДаты.Объединить();



{Документ.ОтгрузкаНаСГП.МодульОбъекта(68)}: Ошибка при вызове метода контекста (Область)
ОбластьДаты = ТабДок.Область("R11C1:R"+ (11 + ТЧБигБегов.Количество()) + "С1");
по причине:
Область не найдена: R11C1:R13С1

Автор: Petre 27.08.14, 11:28

Еще надо отминусовать единицу.

Автор: kosalex 27.08.14, 11:38

Получилось, вот код:

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

ВсегоСтрок = ТЧБигБегов.Количество()-1;
ОбластьДаты = ТабДок.Область(11,1,(11 + ВсегоСтрок),1);
ОбластьДаты.Объединить();

ОбластьДаты.Текст = Дата;

Автор: Svetas_2024 05.01.24, 10:04

kosalex @ 27.08.14, 11:38 * ,
icon_beer17.gif
спасибо, Ваша тема очень помогла.
но как после объединения областей обратиться к картинке? Объединённая область по координатам не видит параметра Рисунки. Хотя до объединения каждая область выводила Рисунки

ТабДок.Вывести(ОбластьШапка1);

НомерСтроки=5;

Для каждого строка из аа Цикл
    
    
     Запрос = Новый Запрос;
         Запрос.Текст =;
           
    Запрос.УстановитьПараметр("ИмяФайла", строка[0].сылка_картинка);
        Результат = Запрос.Выполнить();
        Выборка = Результат.Выбрать();
        Пока Выборка.Следующий() Цикл
           Изображение1 = Выборка.Хранилище.Получить();
    КонецЦикла;  
      
    ОбластьКартинка11.Рисунки.Картинка1.Картинка =  Изображение1;

       Запрос = Новый Запрос;
       Запрос.Текст ="";
       Запрос.УстановитьПараметр("ИмяФайла", строка[1].сылка_картинка);
       Результат = Запрос.Выполнить();
       Выборка = Результат.Выбрать();

    Пока Выборка.Следующий() Цикл
        Изображение2 = Выборка.Хранилище.Получить();
    КонецЦикла;  
      
    ОбластьКартинка22.Рисунки.Картинка2.Картинка =  Изображение2;
    
        Для i = 1 По строка[0].свойства.Количество() Цикл
            
            если  строка[0].свойства[i-1].выбор=Истина  Тогда  
                    
               ОбластьПараметр1.Параметры.ИмяДопПоля=строка[0].свойства[i-1].наименование;
               ОбластьПараметр1.Параметры.ЗначениеДопПоля=строка[0].свойства[i-1].значение;
              
               ТабДок.Вывести(ОбластьПараметр1);
               ТабДок.Присоединить(ОбластьКартинка11);
              
               ОбластьПараметр2.Параметры.ИмяДопПоля=строка[1].свойства[i-1].наименование;
               ОбластьПараметр2.Параметры.ЗначениеДопПоля=строка[1].свойства[i-1].значение;

               ТабДок.Присоединить(ОбластьПараметр2);
               ТабДок.Присоединить(ОбластьКартинка22);
        
            конецесли;        
                
        КонецЦикла;
              НомерСтроки_н=НомерСтроки;
              НомерСтроки=НомерСтроки+строка[0].свойства.Количество();
              НомерСтроки_к=НомерСтроки;
    
              ОбластьКартинка01 = ТабДок.Область(НомерСтроки_н,3,НомерСтроки_к,3);
              ОбластьКартинка01.Объединить();
              ОбластьКартинка1= ОбластьКартинка01;
                           
            [highlight] ОбластьКартинка1.Рисунки.Картинка1.Картинка =  Изображение1;[/highlight]

                ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н,6,НомерСтроки_к,6);
              ОбластьКартинка02.Объединить();
              
             [highlight]ОбластьКартинка2.Рисунки.Картинка2.Картинка =  Изображение2;[/highlight]
        
     конеццикла;    

ТабДок.Вывести(ТабДок);
ТабДок.Показать();

Автор: Svetas_2024 06.01.24, 18:39

Svetas_2024 @ Вчера, 10:04 * ,
спасибо вопрос уже закрыт


Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua