Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вычисления в модуле печатной формы
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
k.fasad2015
Добрый день. Ситуация наверное стандартная, я сисадмин - требуют подправить 1С.

Нужно в модуле печатной формы счета провести вычисления - есть значения в строках: количество товара и сумма, надо поделить сумму на количество и получить цену, как это сделать?

Как получить значение ячейки количество? Я нашел цикл в котором нужно вычислять ПечЦена:

    Пока ПолучитьСтроку()=1 Цикл                
        Если Набор.Выбран()=1 Тогда
            Если ПустоеЗначение(ВСоставе)=1 Тогда
                Таб.ВывестиСекцию("ВСоставе");
                ВСоставе=Набор;
            ИначеЕсли ВСоставе<>Набор Тогда
                Таб.ВывестиСекцию("ВСоставе");
                ВСоставе=Набор;
            КонецЕсли;
        Иначе
            Если ПустоеЗначение(ВСоставе)=0 Тогда
                ВСоставе=0;
            КонецЕсли;
        КонецЕсли;      
        ПечЦена = глФРМ(глПересчет(ЦенаБезНДС,Валюта,Курс,ВП,ДатаДок),ВП,0); // старая строка  
        // старая строка - ПечСумма = глФРМ(глПересчет(СуммаБезСкидки,Валюта,Курс,ВП,ДатаДок),ВП,0);  
                           ПечСумма = глФРМ(глПересчет(СуммаСНДС,Валюта,Курс,ВП,ДатаДок),ВП,0);
                        
                            
        Таб.ВывестиСекцию("Строка");
        Ном = Ном+1;
    КонецЦикла;


Я уверен что это делается как-то элементарно, но тонкостей 1С я не знаю.
Sharzem
k.fasad2015 @ Сегодня, 9:17 необходимо зарегистрироваться для просмотра ссылки,
А где количество ?
Заскриньте лучше и выложите сам шаблон (таблицу) печ. формы.
k.fasad2015
Sharzem @ Сегодня, 10:25 необходимо зарегистрироваться для просмотра ссылки,

Я не знаю, этот кусок кода из стандартного модуля счета, в этом же и вопрос как получить его значение?

Вот скрин


 ! 

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


Сумма у меня есть, нужно взять количество, поделить на него сумму и получить цену.

Если писать вот так:

ПечЦена = ПечСумма/Формат(Количество,"Ч14.3");


или

ПечЦена = ПечСумма/Количество


В консоль пишет ошибку:

ПечЦена = ПечСумма/Формат(Количество,"Ч14.3");          
{Документ.Счет.Форма.Модуль(235)}: Операция деления не определена для строковых величин
sava1
Цена = Формат(?(Количество=0,0,Сумма/Количество),"ч14.3")
k.fasad2015
sava1 @ Сегодня, 11:11 необходимо зарегистрироваться для просмотра ссылки,

Пробовал по разному ругается:

Цена = Формат(?(Количество=0,0,Сумма<<?>>/Количество),"ч14.3");          
{Документ.Счет.Форма.Модуль(235)}: Переменная не определена (Сумма)
ПечЦена = Формат(?(Количество=0,0,Сумма<<?>>/Количество),"ч14.3");          
{Документ.Счет.Форма.Модуль(236)}: Переменная не определена (Сумма)
<<?>>ПечЦена = Формат(?(Количество=0,0,Сумма/Количество),"ч14.3");          
{Документ.Счет.Форма.Модуль(237)}: Переменная не определена (ПечЦена)
<<?>>Цена = Формат(?(Количество=0,0,Сумма/Количество),"ч14.3");          
{Документ.Счет.Форма.Модуль(237)}: Переменная не определена (Цена)


Разобрался, вот так работает:

ПечЦена = глФРМ(глПересчет(СуммаСНДС,Валюта,Курс,ВП,ДатаДок)/Количество,ВП,0);

daveal
ПечЦена = глФРМ(глПересчет(?(Количество=0,0,СуммаСНДС/Количество),Валюта,Курс,ВП,ДатаДок),ВП,0);

или
ПечЦена = глФРМ(глПересчет(?(Количество=0,0,СуммаБезНДС/Количество),Валюта,Курс,ВП,ДатаДок),ВП,0);


В зависимости от того какая цена нужна (с/без НДС)
Можно просто

ПечЦена = Формат(?(Количество=0,0,СуммаСНДС/Количество),"ч14.3");

Если не нужен пересчет валюты
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.