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

Хранилище

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

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



> Макет шаблона для выбора пользователем его наполнения          
Svetas_2024 Подменю пользователя
сообщение 03.01.24, 13:02
Сообщение #1

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

Добрый день, уважаемые форумчани. Прошу помощи
1С:Предприятие 8.3 (8.3.15.1869), "Управление производственным предприятием для Украины", редакция 1.3 (1.3.66.1) , формы обычные (не управляемые)

вопрос

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

[необходимо зарегистрироваться для просмотра ссылки]


согласно пожеланиям пользователя получается
[необходимо зарегистрироваться для просмотра ссылки]

но такой макет не работает.

проблемма не виден параметр ИмяДопПоля и ЗначениеДопПоля
ОбластьПараметр1.Параметры.ИмяДопПоля=свойства_мас.наименование;
               ОбластьПараметр1.Параметры.ЗначениеДопПоля=свойства_мас.значение;



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

ТабДок = Новый ТабличныйДокумент;
ТабДок.Очистить();

Макет = ЭтотОбъект.ПолучитьМакет("МакетКаталогПоЭлементам");

ОбластьШапка1= Макет.ПолучитьОбласть("ШапкаСтока|Шапка1");
ОбластьШапка2= Макет.ПолучитьОбласть("ШапкаСтока|Параметры1");
ОбластьШапка3= Макет.ПолучитьОбласть("ШапкаСтока|Шапка2");
ОбластьШапка4= Макет.ПолучитьОбласть("ШапкаСтока|Параметры2");


ОбластьКартинка11= Макет.ПолучитьОбласть("параметр|Шапка1");
ОбластьКартинка1= Макет.ПолучитьОбласть("СписокКартинка|Шапка1");

ОбластьПараметр1= Макет.ПолучитьОбласть("параметр|Параметры1");
ОбластьКартинка22= Макет.ПолучитьОбласть("параметр|Шапка2");

ОбластьКартинка2= Макет.ПолучитьОбласть("СписокКартинка|Шапка2");
ОбластьПараметр2= Макет.ПолучитьОбласть("параметр|Параметры2");

ОбластьШапка4.Параметры.Дата = ТекущаяДата();

ТабДок.Вывести(ОбластьШапка1);
ТабДок.Присоединить(ОбластьШапка2);
ТабДок.Присоединить(ОбластьШапка3);
ТабДок.Присоединить(ОбластьШапка4);


Для каждого строка из аа Цикл
    
    
    Для каждого свойства_мас из строка[0].свойства Цикл  //1 єлемент левый
        Если      свойства_мас.выбор=Истина  Тогда
               ОбластьПараметр1.Параметры.ИмяДопПоля=свойства_мас.наименование;
               ОбластьПараметр1.Параметры.ЗначениеДопПоля=свойства_мас.значение;
               ТабДок.Вывести(ОбластьПараметр1);
           КонецЕсли;    
        
    конеццикла;    

        
     Запрос = Новый Запрос;
     Запрос.Текст =
        "ВЫБРАТЬ
    |ХранилищеДополнительнойИнформации.Ссылка КАК Ссылка,
    |ХранилищеДополнительнойИнформации.ВерсияДанных КАК ВерсияДанных,
    |ХранилищеДополнительнойИнформации.ПометкаУдаления КАК ПометкаУдаления,
    |ХранилищеДополнительнойИнформации.Наименование КАК Наименование,
    |ХранилищеДополнительнойИнформации.ВидДанных КАК ВидДанных,
    |ХранилищеДополнительнойИнформации.ИмяФайла КАК ИмяФайла,
    |ХранилищеДополнительнойИнформации.Объект КАК Объект,
    |ХранилищеДополнительнойИнформации.Хранилище КАК Хранилище,
    |ХранилищеДополнительнойИнформации.ТекстФайла КАК ТекстФайла,
    |ХранилищеДополнительнойИнформации.Предопределенный КАК Предопределенный,
    |ХранилищеДополнительнойИнформации.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
    |Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
    |ХранилищеДополнительнойИнформации.Ссылка = &ИмяФайла";
    
         
    Запрос.УстановитьПараметр("ИмяФайла", строка[0].сылка_картинка);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Изображение1 = Выборка.Хранилище.Получить();
    КонецЦикла;  
      
    ОбластьКартинка1.Рисунки.Картинка1.Картинка =  Изображение1;
          
    ТабДок.Присоединить(ОбластьКартинка1);
    
        
     Для каждого свойства_мас из строка[1].свойства Цикл  //1 єлемент правій
         Если      свойства_мас.выбор=Истина  Тогда
               ОбластьПараметр1.Параметры.ИмяДопПоля=свойства_мас.наименование;
               ОбластьПараметр1.Параметры.ЗначениеДопПоля=свойства_мас.значение;
               ТабДок.Присоединить(ОбластьПараметр2);
  
                    
        КонецЕсли;    
    конеццикла;    

    
      Запрос = Новый Запрос;
      Запрос.Текст =
        "ВЫБРАТЬ
    |ХранилищеДополнительнойИнформации.Ссылка КАК Ссылка,
    |ХранилищеДополнительнойИнформации.ВерсияДанных КАК ВерсияДанных,
    |ХранилищеДополнительнойИнформации.ПометкаУдаления КАК ПометкаУдаления,
    |ХранилищеДополнительнойИнформации.Наименование КАК Наименование,
    |ХранилищеДополнительнойИнформации.ВидДанных КАК ВидДанных,
    |ХранилищеДополнительнойИнформации.ИмяФайла КАК ИмяФайла,
    |ХранилищеДополнительнойИнформации.Объект КАК Объект,
    |ХранилищеДополнительнойИнформации.Хранилище КАК Хранилище,
    |ХранилищеДополнительнойИнформации.ТекстФайла КАК ТекстФайла,
    |ХранилищеДополнительнойИнформации.Предопределенный КАК Предопределенный,
    |ХранилищеДополнительнойИнформации.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
|ИЗ
    |Справочник.ХранилищеДополнительнойИнформации КАК ХранилищеДополнительнойИнформации
|ГДЕ
    |ХранилищеДополнительнойИнформации.Ссылка = &ИмяФайла";
    
         
      
    Запрос.УстановитьПараметр("ИмяФайла", строка[1].сылка_картинка);
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
        Изображение2 = Выборка.Хранилище.Получить();
    КонецЦикла;  
      
    ОбластьКартинка2.Рисунки.Картинка2.Картинка =  Изображение2;
    ТабДок.Присоединить(ОбластьКартинка2);
        
     конеццикла;    

ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Вывести(ТабДок);
ТабДок.Показать();


прошу помощи, можете подсказать как такой макет заставить работать?
помогите пожалуйста.

Сообщение отредактировал Vofka - 03.01.24, 15:52

Svetas_2024 Подменю пользователя
сообщение 03.01.24, 18:01
Сообщение #2

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

Svetas_2024 @ Сегодня, 13:02 * ,
Vofka - можете хоть что-то подсказать. Спасибо.

sava1 Подменю пользователя
сообщение 03.01.24, 18:19
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

Цитата(Svetas_2024 @ 03.01.24, 13:02) *
как такой макет заставить работать?


Вам написать рабочий отчет?

что не работает?

Svetas_2024 Подменю пользователя
сообщение 03.01.24, 18:26
Сообщение #4

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

sava1 @ Сегодня, 18:19 * ,
не знаю как совместить в макете область картинки , которая содержит контейнер картинки, и построчный вывод параметров (число которых задаёт пользователь). я понимаю что макет на картинке 2 не верный, но как его можно было бы сделать рабочим?



проблемма не виден параметр ИмяДопПоля и ЗначениеДопПоля

sava1 Подменю пользователя
сообщение 03.01.24, 18:45
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

Svetas_2024 @ Сегодня, 18:26 * ,

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

эти все действия - программно

Svetas_2024 Подменю пользователя
сообщение 03.01.24, 18:48
Сообщение #6

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

sava1 @ Сегодня, 18:45 * ,
а как нибудь поконкретнее можно..

sava1 Подменю пользователя
сообщение 03.01.24, 18:58
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

Цитата(Svetas_2024 @ 03.01.24, 18:48) *
а как нибудь поконкретнее можно..


как вывести строки?

sava1 @ Сегодня, 18:51 * ,

цикл по доп.свойствам
Для сч =1 по количествоСвойств
    // виводим 1ю секцию
    // присоединяем вторую
    // заполняем параметры во 2й секции
   ......
конеццикла

// получаем координаты 1й секции верх, низ
// получаем область, где будет лежать рисунок (1я секция, верх, низ)
// полученная область.Объединить - получаем неприрывную область
// вычисляем высоту этой области в пикселях
// высоту рисунка делаем чуть меньше высоты области
// задаем параметры масштабирования рисунка


Сообщение отредактировал Vofka - 04.01.24, 14:02

Спасибо сказали: Svetas_2024,

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

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

Цитата(Svetas_2024 @ 03.01.24, 18:01) *
Vofka - можете хоть что-то подсказать.

Мне сложно подсказать (и думаю, что не только мне), т.к. вы показываете много кода, который трудно понять. Не потому, что он плохой или неправильный, а потому что его много и это часть конкретно вашего контекста. Попробуйте при возникновении проблемы воспроизвести ее на каком-то абстрактном маленьком примере. Шансы получить ответ в таком случае сильно возрастают.

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

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

Vofka
а как
можно получить координаты области? и "полученная область.Объединить"
Цитата
// получаем координаты 1й секции верх, низ
// получаем область, где будет лежать рисунок (1я секция, верх, низ)
// полученная область.Объединить - получаем неприрывную область
// вычисляем высоту этой области в пикселях
// высоту рисунка делаем чуть меньше высоты области
// задаем параметры масштабирования рисунка

sava1 Подменю пользователя
сообщение 04.01.24, 20:06
Сообщение #10

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

Вывести, присоединить возвращает область
У лбласти есть верх, низ, право,лево

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

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

sava1 @ Вчера, 18:58 * ,
Цитата
Для сч =1 по количествоСвойств
// виводим 1ю секцию
// присоединяем вторую
// заполняем параметры во 2й секции
......
конеццикла

// получаем координаты 1й секции верх, низ
// получаем область, где будет лежать рисунок (1я секция, верх, низ)
// полученная область.Объединить - получаем неприрывную область
// вычисляем высоту этой области в пикселях
// высоту рисунка делаем чуть меньше высоты области
// задаем параметры масштабирования рисунка


было


честно говоря получился хаос
стало


Макет = ЭтотОбъект.ПолучитьМакет("МакетКаталогПоЭлементам");

ОбластьКартинка11= Макет.ПолучитьОбласть("параметр|Шапка1");
ОбластьПараметр1= Макет.ПолучитьОбласть("параметр|Параметры1");
ОбластьКартинка22= Макет.ПолучитьОбласть("параметр|Шапка2");
ОбластьПараметр2= Макет.ПолучитьОбласть("параметр|Параметры2");

ОбластьШапка4.Параметры.Дата = ТекущаяДата();
ТабДок.Вывести(ОбластьШапка1);
ТабДок.Присоединить(ОбластьШапка2);
........

Для каждого строка из аа Цикл  //цикл по строкам массива элементов каталога

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

         КонецЕсли;    
    конеццикла;    

     Для каждого свойства_мас из строка[1].свойства Цикл  // элемент правый каталога
         Если      свойства_мас.выбор=Истина  Тогда
               ОбластьПараметр2.Параметры.ИмяДопПоля=свойства_мас.наименование;
               ОбластьПараметр2.Параметры.ЗначениеДопПоля=свойства_мас.значение;
               ТабДок.Присоединить(ОбластьПараметр2);
               ТабДок.Присоединить(ОбластьКартинка22);
                    
        КонецЕсли;    
    конеццикла;    
конеццикла;    

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


Svetas_2024 @ Сегодня, 20:49 * ,
картинка получилась за каждым параметром
а должно быть как на 1 рисунке (как было) - большая картинка, а справа параметры и так в 2 столбика - правый и левый элемент каталога.
А оно пошло вообще не так
1 цикл работает вниз по строкам
2 цикл в право по столбикам
а было раньше синхронно вниз 2 цикла...
вообще не понимаю.

Помогите пожалуйста
Заранее спасибо

Сообщение отредактировал Vofka - 05.01.24, 10:05

sava1 Подменю пользователя
сообщение 05.01.24, 9:32
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

Цитата(Svetas_2024 @ 04.01.24, 20:58) *
картинка получилась за каждым параметром


писАл
// получаем область, где будет лежать рисунок (1я секция, верх, низ)
// полученная область.Объединить - получаем неприрывную область
// вычисляем высоту этой области в пикселях
// высоту рисунка делаем чуть меньше высоты области

Спасибо сказали: Svetas_2024,

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

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

Svetas_2024 @ Вчера, 20:58 * ,
как после объединения областей обратиться к картинке? Объединённая область по координатам не видит параметра Рисунки. Хотя до объединения каждая область выводила Рисунки
ТабДок.Вывести(ОбластьШапка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;
                          
            ОбластьКартинка1.Рисунки.Картинка1.Картинка =  Изображение1;

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

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

Svetas_2024 Подменю пользователя
сообщение 05.01.24, 19:18
Сообщение #14

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

Svetas_2024 @ Сегодня, 10:07 * ,
вроде получилось
i=0;
    
        Для i = 1 По строка[0].свойства.Количество() Цикл
            
            если  строка[0].свойства[i-1].выбор=Истина  Тогда  
                
                ОбластьПараметр1.Параметры.ИмяДопПоля=строка[0].свойства[i-1].наименование;
                          
                ТабДок.Область(5+(i-1),3).ШиринаКолонки = ШиринаРисунка;
                ТабДок.Область(5+(i-1),3).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);   //имя,размер,полужирный,наклонный,подчеркивание,зачеркивание
                
                ТабДок.Область(5+(i-1),2).ШиринаКолонки  =ШиринаКол;
                ТабДок.Область(5+(i-1),2).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),1).ШиринаКолонки = ШиринаКол;
                ТабДок.Область(5+(i-1),1).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),1).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),2).ВысотаСтроки=ВысотаСтр;

                ОбластьПараметр1.Параметры.ЗначениеДопПоля=строка[0].свойства[i-1].значение;
              
                ТабДок.Вывести(ОбластьПараметр1);
                ТабДок.Присоединить(ОбластьКартинка11);
              
                ОбластьПараметр2.Параметры.ИмяДопПоля=строка[1].свойства[i-1].наименование;
                ОбластьПараметр2.Параметры.ЗначениеДопПоля=строка[1].свойства[i-1].значение;
                
                ТабДок.Область(5+(i-1),4).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),5).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),4).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),4).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),5).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),5).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),6).ШиринаКолонки = ШиринаРисунка;
                ТабДок.Область(5+(i-1),6).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

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

              ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н+1,6,НомерСтроки_к,6);
              ОбластьКартинка02.Объединить();
              
                             
              Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1,4,НомерСтроки_к,6);
              ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия);
              
              Рисунок2 =  ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
              Рисунок2.Картинка = Изображение2;
              Рисунок2.Расположить(ОбластьКартинка02);
              если Рисунок2.Высота>ВысотаРисунка тогда Рисунок2.Высота=ВысотаРисунка; конецесли;
              если Рисунок2.Ширина>ШиринаРисунка тогда Рисунок2.Ширина=ШиринаРисунка; конецесли;



     конеццикла;

Svetas_2024 Подменю пользователя
сообщение 08.01.24, 21:51
Сообщение #15

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

Цитата(sava1 @ 03.01.24, 18:58) *
Для сч =1 по количествоСвойств
    // виводим 1ю секцию
    // присоединяем вторую
    // заполняем параметры во 2й секции
   ......
конеццикла

// получаем координаты 1й секции верх, низ
// получаем область, где будет лежать рисунок (1я секция, верх, низ)
// полученная область.Объединить - получаем неприрывную область
// вычисляем высоту этой области в пикселях
// высоту рисунка делаем чуть меньше высоты области
// задаем параметры масштабирования рисунка



Больше спасибо, скажите, только , пожалуйста, куда тут пристроить тут
Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда
а то рисунок на стыке страниц разрывается на части... Заранее спасибо.

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

в цикле вывода строк - после формирования выводимой области, перед КонецЦикла

Спасибо сказали: Svetas_2024,

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

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

sava1 @ Сегодня, 8:55 * ,
но потом во время объединения рисунок залазит на шапку увеличивая свои размеры, а строки всё равно разбиваются...

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2715
Из: Проскуров
Спасибо сказали: 692 раз
Рейтинг: 670.9

всю область надо проверять (объединенную), а не каждую строку

Спасибо сказали: Svetas_2024,

Svetas_2024 Подменю пользователя
сообщение 09.01.24, 12:38
Сообщение #19

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

sava1 @ Сегодня, 10:13 * ,
несколько строк зависает и так на каждом листе можете подсказать, пожалуйста , где ошибка





НомерСтроки=5;
ШапкаСтрока= 3;
СчетчикШапки=0;


Для каждого строка из аа Цикл

    
i=0;
        Для i = 1 По строка[0].свойства.Количество() Цикл
            
            если  строка[0].свойства[i-1].выбор=Истина  Тогда  
                
            ОбластьПараметр1.Параметры.ИмяДопПоля=строка[0].свойства[i-1].наименование;
                          
                ТабДок.Область(5+(i-1),3).ШиринаКолонки = ШиринаРисунка;
                ТабДок.Область(5+(i-1),3).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);   //имя,размер,полужирный,наклонный,подчеркивание,зачеркивание
                
                ТабДок.Область(5+(i-1),2).ШиринаКолонки  =ШиринаКол;
                 ТабДок.Область(5+(i-1),2).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),1).ШиринаКолонки = ШиринаКол;
                            ТабДок.Область(5+(i-1),1).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),1).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),2).ВысотаСтроки=ВысотаСтр;

                            ОбластьПараметр1.Параметры.ЗначениеДопПоля=строка[0].свойства[i-1].значение;
                                           
                ОбластьПараметр2.Параметры.ИмяДопПоля=строка[1].свойства[i-1].наименование;
                ОбластьПараметр2.Параметры.ЗначениеДопПоля=строка[1].свойства[i-1].значение;
                
                ТабДок.Область(5+(i-1),4).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),5).ВысотаСтроки=ВысотаСтр;
                ТабДок.Область(5+(i-1),4).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),4).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),5).ШиринаКолонки =ШиринаКол;
                ТабДок.Область(5+(i-1),5).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);

                ТабДок.Область(5+(i-1),6).ШиринаКолонки = ШиринаРисунка;
                            ТабДок.Область(5+(i-1),6).Шрифт=Новый Шрифт("Arial",РазШрифта,Ложь,Ложь,Ложь,Ложь);
                ТабДок.Вывести(ОбластьПараметр1);
                            ТабДок.Присоединить(ОбластьКартинка11);

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

              ОбластьКартинка02 = ТабДок.Область(НомерСтроки_н+СчетчикШапки+1,6,НомерСтроки_к+СчетчикШапки,6);
              ОбластьКартинка02.Объединить();
                         
              Линия = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
              ОбластьКарточки2 =ТабДок.Область(НомерСтроки_н+1+СчетчикШапки,4,НомерСтроки_к+СчетчикШапки,6);
                         ОбластьКарточки2.Обвести(Линия, Линия, Линия, Линия);
              
              Рисунок2 =  ТабДок.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
              Рисунок2.Картинка = Изображение2;
              Рисунок2.Расположить(ОбластьКартинка02);
              если Рисунок2.Высота>ВысотаРисунка тогда Рисунок2.Высота=ВысотаРисунка; конецесли;
              если Рисунок2.Ширина>ШиринаРисунка тогда Рисунок2.Ширина=ШиринаРисунка; конецесли;

              
              МассивОбластей.Очистить();        
              МассивОбластей.Добавить(Макет.ПолучитьОбласть(НомерСтроки_н+1+СчетчикШапки,1,НомерСтроки_к+СчетчикШапки,6));
            
               Если Не ТабДок.ПроверитьВывод(МассивОбластей) Тогда    
                  ТабДок.ВывестиГоризонтальныйРазделительСтраниц();   // начнем новую страницу
                  ТабДок.Вывести(ОбластьШапка1);          //область шапка
                  ТабДок.Присоединить(ОбластьШапка2);     //область шапка
                  ТабДок.Присоединить(ОбластьШапка3);     //область шапка
                  ТабДок.Присоединить(ОбластьШапка4);     //область шапка
                  
                  МассивОбластей.Очистить();
                  СчетчикШапки=СчетчикШапки+ ШапкаСтрока;
               КонецЕсли;    
          
             конеццикла;    
ТабДок.НижнийКолонтитул.НачальнаяСтраница = 1;
ТабДок.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ТабДок.НижнийКолонтитул.ТекстВЦентре= строка(ИмяПользователя())+" [&Дата] - [&Время]";
ТабДок.НижнийКолонтитул.ТекстСправа="Страница [&НомерСтраницы] из [&СтраницВсего]";
ТабДок.РазмерКолонтитулаСнизу=РазмКолонтитул;
ТабДок.ПолеСлева=ПолеСлев;
ТабДок.ПолеСверху=ПолеСверх;
ТабДок.ПолеСнизу=ПолеСниз;
ТабДок.ПолеСправа=ПолеСправ;

ТабДок.Автомасштаб=истина;
ТабДок.НижнийКолонтитул.Выводить = Истина;      

ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Истина;
ТабДок.ТолькоПросмотр = Истина;
ТабДок.ОриентацияСтраницы=ОриентацияСтраницы.Ландшафт;
ТабДок.ЭкземпляровНаСтранице=ЭкземНаСтранице; //на листе будет размещено 2 страницы
ТабДок.РазмерСтраницы=  "A4";
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();


получается несколько строк зависает на отдельной странице и так на каждой странице



первый вариант зависают строки после 1 листа, на всех остальных 2 вариант. Подскажите, пожалуйста, как такое устранить ...
Никак не могу найти почему

Сообщение отредактировал Vofka - 09.01.24, 13:27

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


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

 

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