Как написать программно, чтобы цена выводилась в таблице при формировании отчета?

Новая тема
"Имеется отчет, при его формировании выводится таблица с ФИО пациента, Процедурами которые он прошел, Количество процедур, Цена и Стоимость.<br>ФИО, Наименования процедур и их Количество выводится в таблице, теперь нужно добавить графы Цена и Стоимость. Цена должна выводиться из справочника Тариф, ну а Стоимость - из произведения Цены и Количества. Прикрепляю скрины... помогите пожалуйста...<br> <br> <br>Т = СоздатьОбъект("Таблица");<br>    тзПроцедуры = СоздатьОбъект("ТаблицаЗначений");<br>    тзПроцедуры.НоваяКолонка("Контрагент");<br>    тзПроцедуры.НоваяКолонка("ФИО");<br>    тзПроцедуры.НоваяКолонка("Цена", "Число");<br>    СпрТарифы.ВыбратьЭлементы();<br>    Пока СпрТарифы.ПолучитьЭлемент() = 1 Цикл<br>        Колонка = "к" + СокрЛП(СпрТарифы.Код);<br>        тзПроцедуры.НоваяКолонка(Колонка, "Число");<br>    КонецЦикла;<br>    //тзПроцедуры.Выгрузить(ТТТ);<br><br>    Док = СоздатьОбъект("Документ.СтатКартаПациента");<br>    Если ПустоеЗначение(Контрагент) = 1 Тогда<br>        Док.ВыбратьДокументы(НачДата, КонДата);<br>        Пока Док.ПолучитьДокумент() = 1 Цикл<br>            //Сообщить(Док.НомерДок);<br>            Док.ВыбратьСтроки();<br>            Пока Док.ПолучитьСтроку() = 1 Цикл<br>                Если СокрЛП(Док.КодПроцедуры) = """" Тогда<br>                    Продолжить;<br>                КонецЕсли;<br>                тзПроцедуры.НоваяСтрока();<br>                тзПроцедуры.ФИО         = Док.Пациент;<br>                тзПроцедуры.Контрагент    = Док.Авиакомпания;<br>                тзПроцедуры.Цена        = Док.Цена;<br>                КодПроцедуры = СокрЛП(Док.КодПроцедуры.Код);<br>                //Сообщить(КодПроцедуры);<br>                тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПроцедуры), 1);<br>            КонецЦикла;<br>        КонецЦикла;<br>    Иначе<br>        Док.ВыбратьДокументы(НачДата, КонДата);<br>        Пока Док.ПолучитьДокумент() = 1 Цикл<br>            Если Док.Авиакомпания <> Контрагент Тогда<br>                Продолжить;<br>            КонецЕсли;<br>            Док.ВыбратьСтроки();<br>            Пока Док.ПолучитьСтроку() = 1 Цикл<br>                Если СокрЛП(Док.КодПроцедуры) = """" Тогда<br>                    Продолжить;<br>                КонецЕсли;<br>                тзПроцедуры.НоваяСтрока();<br>                тзПроцедуры.ФИО         = Док.Пациент;<br>                тзПроцедуры.Контрагент    = Док.Авиакомпания;<br>                тзПроцедуры.Цена        = Док.Цена;<br>                КодПроцедуры = СокрЛП(Док.КодПроцедуры.Код);<br>                //Сообщить(КодПроцедуры);<br>                тзПроцедуры.УстановитьЗначение(тзПроцедуры.НомерСтроки, "к" + СокрЛП(КодПроцедуры), 1);<br>            КонецЦикла;<br>        КонецЦикла;<br>    КонецЕсли;<br><br>    //Сообщить(тзПроцедуры.КоличествоКолонок());<br><br>    // формируем список колонок для свертки *************************************************************<br>    //тзПроцедуры.Выгрузить(ТТТ);<br>    СписокКолонок = "Цена";<br>    Для а = 4 По тзПроцедуры.КоличествоКолонок() - 3 Цикл<br>        СписокКолонок = СписокКолонок + "," + СокрЛП(а);<br>    КонецЦикла;<br>    тзПроцедуры.Свернуть("ФИО,Контрагент", СписокКолонок);<br>    тзПроцедуры.Сортировать("Контрагент,ФИО");<br>    //тзПроцедуры.Выгрузить(ТТТ);<br><br>    // удаляем лишние колонки без итогов<br>    а=4;<br>    Пока а <= тзПроцедуры.КоличествоКолонок() Цикл<br>        Если тзПроцедуры.Итог(а) = 0 Тогда<br>            тзПроцедуры.УдалитьКолонку(а);        //удаляем строку, но "а" не увеличиваем, т.к. следующая строка у нас и есть "а"<br>        Иначе<br>            а = а + 1;                         //увеличиваем а (для перехода на след. строку)<br>        КонецЕсли;<br>    КонецЦикла;<br>    //тзПроцедуры.Выгрузить(ТТТ);<br><br>    // выводим на печать ********************************************************************************<br>    // шапка<br>    Т.ВывестиСекцию("Шапка|ФИО");<br>    Т.ПрисоединитьСекцию("Шапка|Контрагент");<br>    Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл<br>        КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);<br>        КодПроцедуры = Прав(КодПроцедуры, 6);<br>        СпрТарифы.НайтиПоКоду(КодПроцедуры);<br>        КодПроцедуры = СпрТарифы.ТекущийЭлемент().ПолноеНаименование;<br>        <br>    <br>        СпрТарифы.НайтиПоКоду(КодПроцедуры);<br>        Цена = СпрТарифы.ТекущийЭлемент().Цена;<br>        //Итог = тзПроцедуры.Итог(а);<br>        //Если Итог <> 0 Тогда<br>            Т.ПрисоединитьСекцию("Шапка|Процедуры");<br>        //КонецЕсли;<br><br>    КонецЦикла;<br>    Т.ПрисоединитьСекцию("Шапка|Цена");<br>    Т.ПрисоединитьСекцию("Шапка|ИтогоПоПациенту");<br><br>    // строки<br>    тзПроцедуры.ВыбратьСтроки();<br>    Пока тзПроцедуры.ПолучитьСтроку() = 1 Цикл<br>        Т.ВывестиСекцию("Строка|ФИО");<br>        Т.ПрисоединитьСекцию("Строка|Контрагент");<br><br>        ИтогоПоПациенту = 0;<br>        Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл<br>            Посещения = тзПроцедуры.ПолучитьЗначение(тзПроцедуры.НомерСтроки, а);<br>            Т.ПрисоединитьСекцию("Строка|Процедуры");<br>            ИтогоПоПациенту = ИтогоПоПациенту + Посещения;<br>        КонецЦикла;<br><br>        Т.ПрисоединитьСекцию("Строка|Цена");<br>        Т.ПрисоединитьСекцию("Строка|ИтогоПоПациенту");<br>    КонецЦикла;<br><br>     <br>         <br><br>    // подвал<br>    Т.ВывестиСекцию("Подвал|ФИО");<br>    Т.ПрисоединитьСекцию("Подвал|Контрагент");<br>    //Т.ПрисоединитьСекцию("Шапка|Контрагент");<br>    Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл<br>        ИтогоПосещений = тзПроцедуры.Итог(а);<br>       СпрПрейскурант.НайтиПоКоду(КодПроцедуры);<br>        Цена = СпрПрейскурант.ТекущийЭлемент().Цена;<br>        Цена = СпрПрейскурант.Цена.Получить();<br>        Т.ПрисоединитьСекцию("Подвал|Процедуры");<br>    КонецЦикла;<br>    Т.ПрисоединитьСекцию("Подвал|Цена");<br>    Т.ПрисоединитьСекцию("Подвал|ИтогоПоПациенту");<br><br>    Т.Опции(0);<br>    Т.Показать();<br>КонецПроцедуры"
Проверьте значение ячейки с ценой в макете
там нет ошибки, ошибка в программе... да я заметила, там не определена переменная ЦенаПроцедуры, а в макете Цена... я меняла названия, скрины просто разные по дате, но я все исправила, и все равно строка Цена у меня пустует(( вы праверьте пожалуйста, правильно ли я написала в конфигурации программу... может забыла что то?
Я не вижу в Вашей программе ничего с ЦенаПроцедуры.<br>Сохраните. Закройте. Откройте и еще раз пройтитесь с отладчиком.
вместо ЦенаПроцедуры, у меня сейчас стоит Цена... и в макете таблицы я все исправила
Может быть в справочнике Тарифы у Вас все же ЦенаПроцедуры?
нет( в справочнике Тарифы у меня Цена
"По видимому, строки таблицы выводятся этим участком кода:<br> <br><pre>  // строки   тзПроцедуры.ВыбратьСтроки();   Пока тзПроцедуры.ПолучитьСтроку() = 1 Цикл       Т.ВывестиСекцию("Строка|ФИО");       Т.ПрисоединитьСекцию("Строка|Контрагент");       ИтогоПоПациенту = 0;       Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл           Посещения = тзПроцедуры.ПолучитьЗначение(тзПроцедуры.НомерСтроки, а);           Т.ПрисоединитьСекцию("Строка|Процедуры");           ИтогоПоПациенту = ИтогоПоПациенту + Посещения;       КонецЦикла;       Т.ПрисоединитьСекцию("Строка|Цена");       Т.ПрисоединитьСекцию("Строка|ИтогоПоПациенту");   КонецЦикла;</pre><br><br>В нем не вижу, чтобы где-то была переменная "Цена", которая используется в макете. Видимо ее тут надо куда-то вставить."
спасибо большое за подсказку, с этим я уже разобралась и сдала этот отчет))) все равно спасибо что уделили время на просмотр кода!
"Для а = 4 По тзПроцедуры.КоличествоКолонок() Цикл<br>      ИтогоПосещений = тзПроцедуры.Итог(а);<br>      КодПроцедуры = тзПроцедуры.ПолучитьПараметрыКолонки(а);<br>      КодПрейскуранта = Сред(КодПроцедуры, 2, 1);<br>      КодПроцедуры = Прав(КодПроцедуры, 6);<br>      СпрПрейскурант.НайтиПоКоду(КодПрейскуранта);<br>      СпрТарифы.ИспользоватьВладельца(СпрПрейскурант.ТекущийЭлемент());<br><br>      СпрТарифы.НайтиПоКоду(КодПроцедуры);<br>       Цена =СпрТарифы.Цена.получить(НачДата);<br>      сумма = Цена*ИтогоПосещений;<br>      Т.ПрисоединитьСекцию("Подвал|Процедуры");<br>      ИтогоПосещений=0;<br>      Цена=0;<br>КонецЦикла;<br> <br>мне помогли, и Цену и Стоимость добавили, все работает отлично! спасибо!"
Читают тему
(гостей: 1)

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