Имя: Пароль:
1C
1С v8
Очистить поле табличного документа
,
0 Sem0709
 
24.08.17
02:53
Здравствуйте.

В отчёте Поле табличного документа (ЭлементыФормы.Результат)
При каждом повторном формировании отображаемая таблица съезжает вниз.

ЭлементыФормы.Результат.Очистить(); //стоит

Заполняю из дерева значений, колонки/строки перед новым формированием очищаю.

Чего ещё не делаю ?
1 Sem0709
 
24.08.17
02:55
Вывожу так

        Если Счетчик < 5 Тогда
            ЭлементыФормы.Результат.Присоединить(ОбластьТорговыйОбъект);
            Счетчик = Счетчик + 1;
        Иначе
            ЭлементыФормы.Результат.Вывести(ОбластьТорговыйОбъект);
            Счетчик = 1;
        КонецЕсли;
2 1dvd
 
24.08.17
06:11
в каком смысле "съезжает"?
3 1dvd
 
24.08.17
06:12
и это, перед выводом Счетчик обнуляешь?
4 Sem0709
 
24.08.17
07:28
(2)Каждое новое формирование заполняется дальше места предыдущего формирования.
(3)Обнуляю, даже убираю - не помогает
5 Sem0709
 
24.08.17
07:32
(2) + то есть "данных" на поле нет - оно очищено, но повторное формирование продолжает к нему присоединять
6 Sem0709
 
24.08.17
07:39
Наверное, так проще

ЭлементыФормы.Результат.Очистить();
        
Макет = ПолучитьМакет("Макет");
    
ОбластьТорговыйОбъект = Макет.ПолучитьОбласть("Шапка|ТорговыйОбъект");
ТО = Справочники.ТорговыеОбъекты.Выбрать();

Счетчик = 0;
    
Пока ТО.Следующий() Цикл
        ОбластьТорговыйОбъект.Параметры.НаСкладеПО = ТаблицаБаланса.Строки[0]["ДатаПО" + ТО.Код];
        ОбластьТорговыйОбъект.Параметры.НаСкладеС = ТаблицаБаланса.Строки[0]["ДатаС" + ТО.Код];
        ОбластьТорговыйОбъект.Параметры.НаСкладеРАЗ = ТаблицаБаланса.Строки[0]["ДатаРАЗ" + ТО.Код];

        Если Счетчик < 5 Тогда
            ЭлементыФормы.Результат.Присоединить(ОбластьТорговыйОбъект);
            Счетчик = Счетчик + 1;
        Иначе
            ЭлементыФормы.Результат.Вывести(ОбластьТорговыйОбъект);
            Счетчик = 1;
        КонецЕсли;
        
КонецЦикла;
7 1dvd
 
24.08.17
07:45
(6) т.е. ты сначала присоединяешь, а потом выводишь? Надо наоборот
8 Sem0709
 
24.08.17
08:30
(7) Точняк, спасибо! Я даже не думал в эту сторону.

Условие вывода дурацкое получилось, но работает.

Если Счетчик = 1 Тогда
  
ЭлементыФормы.Результат.Вывести(ОбластьТорговыйОбъект);
     Счетчик = Счетчик + 1;
ИначеЕсли Счетчик = 5 Тогда            
  
  ЭлементыФормы.Результат.Присоединить(ОбластьТорговыйОбъект);
    Счетчик = 1;
Иначе            
  
  ЭлементыФормы.Результат.Присоединить(ОбластьТорговыйОбъект);
    Счетчик = Счетчик + 1;
КонецЕсли;
9 1dvd
 
24.08.17
08:33
(8) пойдёт :)
10 Zmich
 
24.08.17
08:34
(8). Проще через % - остаток от деления:
Если Счетчик % 5 = 1 Тогда
  ЭлементыФормы.Результат.Вывести(ОбластьТорговыйОбъект);
Иначе
  ЭлементыФормы.Результат.Присоединить(ОбластьТорговыйОбъект);
КонецЕсли;
Счетчик = Счетчик + 1;
11 Sem0709
 
24.08.17
08:45
(10) я подумал про деление, не допетрил как реализовать)

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