Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 12:12

Печатная форма, цена не округляется...

Автор MaxPoi, 18 июл 2019, 14:52

0 Пользователей и 1 гость просматривают эту тему.

MaxPoi

Добрый день.
Недавно выявилась проблема в Торговля+Склад редакция 9.2.
При реализации товара (отображение в редактировании Реализация купли продажи)
товар отображается с нормальными ценами:

Как только посылаю на печать, то отображается другая цена:


Открыл я печатную форму:
//******************************************************************************
// Печать(Докум)
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//
Процедура Печать(Докум, Устройство=0, КолвоКопий=1)
Перем НачПовт, КонПовт;

ИсхТабл = СоздатьОбъект("Таблица");
НачПовт = 0; КонПовт = 0;

// секция Заголовок

ИсхТабл.ВывестиСекцию("Заголовок");
НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Заголовок");

// Секция Поставщик
Поставщик = СокрЛП(Докум.Фирма.ЮрЛицо.ПолнНаименование) + " " + глПредставлениеАдреса(Докум.Фирма.ЮрЛицо.ЮрАдрес);
ИсхТабл.ВывестиСекцию("Поставщик");
НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Поставщик");


// Секция Покупатель
Если ПустоеЗначение(Докум.Контрагент) = 0 Тогда
Покупатель = СокрЛП(Докум.Контрагент.ЮрФизЛицо.ПолнНаименование) + " " + глПредставлениеАдреса(Докум.Контрагент.ЮрФизЛицо.ЮрАдрес);
Иначе
Покупатель = "";
КонецЕсли;

// Секция Склад
//Если ПустоеЗначение(Докум.Склад) = 0 Тогда
// Склад = СокрЛП(Докум.Склад);
//Иначе
// Склад = "";
//КонецЕсли;

ИсхТабл.ВывестиСекцию("Покупатель");
//ИсхТабл.ВывестиСекцию("Склад");
НачПовт = НачПовт + ИсхТабл.ВысотаСекции("Покупатель");

СекцСкидка = ?(ПустоеЗначение(Докум.Скидка) = 0, "Скидка", "");

// Секция Шапка таблицы
ИсхТабл.ВывестиСекцию("ШапкаТаблицы" + СекцСкидка);
КонПовт = НачПовт + ИсхТабл.ВысотаСекции("ШапкаТаблицы" + СекцСкидка);
ИсхТабл.ПовторятьПриПечатиСтроки(НачПовт + 1, КонПовт);
         
// выводим табличную часть
НомСтроки = 0;
Докум.ВыбратьСтроки();

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

СуммаИтог = Докум.Итог("Сумма");

// секция Итого
ИсхТабл.ВывестиСекцию("Итого"); 

//секция Вес
итВес=0;
Пока Докум.ПолучитьСтроку() = 1 Цикл
Вес=Докум.Количество*Докум.Единица.Вес;
итВес=итВес+Вес;
КонецЦикла;

ИсхТабл.ВывестиСекцию("Единица");

// секция ИтогоНДС
Если Докум.УчитыватьНДС = 1 Тогда
СуммаНДСИтог = Докум.Итог("СуммаНДС");
Если Докум.СуммаВклНДС = 0 Тогда
СуммаИтог = СуммаИтог + СуммаНДСИтог;
КонецЕсли;
ИсхТабл.ВывестиСекцию("ИтогоНДС");
КонецЕсли;

// секция ИтогоНП
Если Докум.УчитыватьНП = 1 Тогда
СуммаНПИтог = Докум.Итог("СуммаНП");
Если Докум.СуммаВклНП = 0 Тогда
СуммаИтог = СуммаИтог + СуммаНПИтог;
КонецЕсли;
ИсхТабл.ВывестиСекцию("ИтогоНП");
КонецЕсли;

     // секция ИтогоМест
ИтогоМест = Докум.Итог("Количество");
ИсхТабл.ВывестиСекцию("ИтогоМест");

// секция СуммаПрописью
ИсхТабл.ВывестиСекцию("СуммаПрописью");

// секция Подписи
ИсхТабл.ВывестиСекцию("Подписи");

Если Устройство = 0 Тогда
ИсхТабл.Опции(0,0,0,0,"ОпцииПечатиРеализация");
Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
ИсхТабл.ТолькоПросмотр(1);
Иначе
ИсхТабл.ТолькоПросмотр(0);
КонецЕсли;
ИсхТабл.Показать(глНазваниеДокументаВжурнале(Докум),""); 
Иначе     
ИсхТабл.ПараметрыСтраницы(,,,,,,,,,1,,);
ИсхТабл.КоличествоЭкземпляров(КолвоКопий);
ИсхТабл.Напечатать(0);
КонецЕсли;

КонецПроцедуры // Печать()


//******************************************************************************
// ПоКнопкеПечать()
//
// Параметры:
//  Нет
//
// Возвращаемое значение:
//  Нет
//
// Описание:
//
Процедура ПоКнопкеПечать()

Если Док.Выбран() = 0 Тогда
    Предупреждение("Не выбран документ!", 60);
Возврат;
КонецЕсли;

Печать(Док);

КонецПроцедуры // ПоКнопкеПечать()

//******************************************************************************
// Предопределенная процедура
//
Процедура ПриОткрытии()

Если ПустоеЗначение(Форма.Параметр) = 0 Тогда

Докум      = Форма.Параметр.Получить("Контекст");
Устройство = Форма.Параметр.Получить("Устройство");
КолвоКопий = Форма.Параметр.Получить("КоличествоКопий");

Печать(Докум, Устройство, КолвоКопий);
Статусвозврата(0);
Возврат;
КонецЕсли;


КонецПроцедуры // ПриОткрытии()

Ничего толком не понял...
Перешел на вкладку "Таблица"


там в поле указан параметр
?(Докум.Единица.Коэффициент = 0, 0, Докум.Цена / Докум.Единица.Коэффициент)


Подскажите пожалуйста, как можно исправить?

MaxPoi

понял, что менеджеры имели ввиду...
В той форме надо что-бы писалось с цесятичными значениями...
К примеру там пишется 35, а надо что-бы писалось 35.00
А там где пишется 40.99166666666666666667, то что-бы округлялось математически 40.99

Вот... Подскажите как сделать пожалуйста
Добавлено: 18 июл 2019, 15:29


Нашел решение с округлением..
В печатной форме
?(Докум.Единица.Коэффициент = 0, 0, Докум.Цена / Докум.Единица.Коэффициент)
добавил параметр #Ч19.2
Получилось:
?(Докум.Единица.Коэффициент = 0, 0, Докум.Цена / Докум.Единица.Коэффициент)#Ч19.2

Пока только такое решение нашел.

alexandr_ll

Цитата: MaxPoi от 18 июл 2019, 15:18Докум.Цена / Докум.Единица.Коэффициент

Окр(Докум.Цена / Докум.Единица.Коэффициент,2,1)

Теги:
Рейтинг@Mail.ru

Поиск