Проблема с заполнением табличной части

Новая тема
"Здравствуйте. В 1С:Бухгалтерия 7.7 имеется документ. При нажатии кнопки "Заполнить" должна заполняться табличная часть и одновременно выводиться отчет. Проблема в том, что когда реквизит табличной части формы совпадает с именем ячейки в таблице отчета, наименование ОС перестает выводится. Вместо этого выводятся пустые ячейки.

Вот код процедуры:    

Перем Ит, м, мв, итм, г, гт, мср;
Перем аморт10;
Перем оно65, оно175;
Перем Таб;
Перем бухнач, налнач;
Перем разн, уменьш65, уменьш175, сумманарит;
Перем итог;
//*******************************************
Процедура Заполнить()
       Ном=1;
   амортпремит=0;
оно65ит=0;
оно175ит=0;
бухначит=0;
налначит=0;
разнит=0;
уменьш65ит=0;
уменьш175ит=0;

  Таб=СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ПовторятьПриПечатиСтроки(Таб.ВысотаСекции("Заголовок")+1,Таб.ВысотаСекции("Заголовок")+Таб.ВысотаСекции("Шапка"));
Таб.ВывестиСекцию("Заголовок");
Таб.ВывестиСекцию("Шапка");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.ОсновныеСредства,,,);
Ит.ВыполнитьЗапрос(Д1,Д2);

спрОС = СоздатьОбъект("Справочник.ОсновныеСредства");

спрОС.ВыбратьЭлементы();
Пока СпрОС.ПолучитьЭлемент() = 1 Цикл

ИнвНомер = спрОС.Код;
НаименованиеП= спрОС.Наименование;
ГодВВЭкспл = спрОС.ДатаВводаВЭксплуатацию;
БалансСтоимость = спрОС.ПервоначальнаяСтоимость.Получить(Д2);
сз=спрОС.СчетЗатрат.Получить(Д2);
СрокИсп=спрОС.СрокПолезногоИспользования.Получить(Д2);


аморт10=БалансСтоимость*10/100;
БалансСтоимостьН=БалансСтоимость-аморт10;
оно65=аморт10*6.5/100;
оно175=аморт10*17.5/100;
м=ДатаМесяц(Д2);
мв=ДатаМесяц(ГодВВЭкспл);
г=ДатаГод(ГодВВЭкспл);
гт=ДатаГод(Д2);
гд1=ДатаГод(Д1);
мд1=ДатаМесяц(Д1);
мт=ДатаМесяц(ТекущаяДата());
гс=ДатаГод(ТекущаяДата());
Если гт>г Тогда
итм=12-мв+м;
Иначе
итм=м-мв;
итог=(оно65+оно175);
КонецЕсли;
Если СрокИсп > 0 Тогда
бухнач=БалансСтоимость/СрокИсп;
налнач=БалансСтоимостьН/СрокИсп;
КонецЕсли;
разн=бухнач-налнач;
уменьш65=разн*6.5/100;
уменьш175=разн*17.5/100;
сумманарит=(Окр(уменьш65,2)+Окр(уменьш175,2))*итм;
Если м-мд1 > 0 Тогда
Если итог<>сумманарит Тогда
Если БалансСтоимость>=10000 Тогда
Если г>2005 Тогда
  Если (Лев(сз,2) > "44") или (Лев(сз,2) < "44") Тогда        
  Если г<=гт Тогда
Если ГодВВЭкспл>Д1 Тогда
  Если  (мв < м) Тогда
  НоваяСтрока();
  НомерПП=Ном;
ИнвНомер=ИнвНомер;
Наименование=НаименованиеП;
ВводВЭксплуатацию=ГодВВЭкспл;
СрокИсп=СрокИсп;
ПервНачСтоим=БалансСтоимость;
АмортПрем10=аморт10;
СтоимНалУч=БалансСтоимостьН;
ОНО65=оно65;
ОНО175=оно175;
СумНачБухУч=бухнач;
СумНачНалУч=налнач;
Разница=разн;
УменьшОНО65=уменьш65;
УменьшОНО175=уменьш175;
ОНО=сумманарит;  


амортпремит=Окр(амортпремит+аморт10,2);
оно65ит=Окр(оно65ит+оно65,2);
оно175ит=Окр(оно175ит+оно175,2);
бухначит=Окр(бухначит+бухнач*(м-мв),2);
налначит=Окр(налначит+налнач*(м-мв),2);
разнит=Окр(разнит+разн,2);
уменьш65ит=Окр(уменьш65ит+уменьш65*(м-мв),2);
уменьш175ит=Окр(уменьш175ит+уменьш175*(м-мв),2);
КонецЕсли;
КонецЕсли;
  КонецЕсли;
                КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;

Иначе  
Если итог<>сумманарит Тогда
Если БалансСтоимость>=10000 Тогда
Если г>2005 Тогда
  Если (Лев(сз,2) > "44") или (Лев(сз,2) < "44") Тогда        
  Если  (мв = мд1-1) Тогда
 
  НоваяСтрока();
  НомерПП=Ном;
ИнвНомер=ИнвНомер;
Наименование=НаименованиеП;
ВводВЭксплуатацию=ГодВВЭкспл;
СрокИсп=СрокИсп;
ПервНачСтоим=БалансСтоимость;
АмортПрем10=аморт10;
СтоимНалУч=БалансСтоимостьН;
ОНО65=оно65;
ОНО175=оно175;
СумНачБухУч=бухнач;
СумНачНалУч=налнач;
Разница=разн;
УменьшОНО65=уменьш65;
УменьшОНО175=уменьш175;
ОНО=сумманарит;

амортпремит=амортпремит+аморт10;
              оно65ит=оно65ит+оно65;
оно175ит=оно175ит+оно175;
бухначит=бухначит+бухнач*(м-мв);
налначит=налначит+налнач*(м-мв);
разнит=разнит+разн;
уменьш65ит=уменьш65ит+уменьш65*(м-мв);
уменьш175ит=уменьш175ит+уменьш175*(м-мв);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Пока ПолучитьСтроку() =1 Цикл
Таб.ВывестиСекцию("Строка");
Ном=Ном+1;
КонецЦикла;

Таб.ВывестиСекцию("Подвал");
Таб.ВывестиСекцию("Подписи");
Таб.ПараметрыСтраницы(2,50,1,10,10,10,0);
Таб.ТолькоПросмотр(1);
Таб.Опции(0,0,6,0);
Таб.Показать("Ведомость учета ОС");
КонецПроцедуры      "
>>реквизит табличной части формы совпадает с именем ячейки в таблице отчета
А почему нельзя переименовать ячейку, чтобы имена не совпадали?
"Введите строку
> Таб.ВывестиСекцию("Строка");

в предыдущий цикл по перебору ОС (если формируется новая строка).


"
Нет! Так тоже не получается. Дело в том что он выводит все суммы и числа правильно, а вот столбец наименование пустой. Ничего не понимаю....




Проверьте что стоит в отчете у ячейки с "наименованием". Тип должен быть выражение.


>Проблема в том, что когда реквизит табличной части
>формы совпадает с именем ячейки в таблице отчета, наименование ОС
>перестает выводится.
Это не связанно.
Зачем вообще присваивать имя ячейки (к тому же в приведенном примере не видно чтобы вы обращались к поименнованной области) при выводе на печать.





У ячейки тип - выражение.

Ладно. Ну с этим отчетом. Я просто хочу вывести ОС за определенный период в табличную часть. При нажатии кнопки заполнить у меня выводятся все нужные мне ОС и цифры тоже, а поле наименование почему-то пустое.

"Какой тип столбца в табличной части документа, судя по тому что вы присваиваете СпрОС.Наименование, то тип должен быть строка, иначе
Наименование=СпрОС.Текущийэлемент()
А имена как раз и могут совпадать, потому как для вывода на печать табличной части достаточно

ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;

"
Читают тему
(гостей: 1)

Быстрый переход