Имя: Пароль:
1C
1С v8
Формула в запросе не верно считает
,
0 Яна93
 
30.07.13
14:11
Всем привет! В 1С8 конфигурация Бухгалтерия предприятия (редакция 2.0 (2.0.47.7))- захожу в Документы - Реализация товаров и услуг - далее выбираю один из созданых реализаций..и в колонке Цена все цены указаны не верно..но количество и сумма верны.. Из-за чего может такое произойти? Ведь Сумма расчитывается из произведения Цена*Количество. Выходит, что он считает верную сумму а цену проставляет не верную..ну вот к примеру: Количество = 2 466,560 , Цена = 998,62 , Сумма = 70 603,51. Из этих данных верно указано только Количество и Сумма, а Цену он подставил не верную..

данный вопрос я задавала ранее на другом сайте..- http://forum-1c.ru/index.php?topic=29674.msg88630#msg88630


Нашла ту самую обработку которая проставляет значения в колонки данного документа..

Процедура     СформироватьДокументы(Знач ИмяДокумента, Знач БазаДляФормирования)
    
    Перем Запрос;
    Перем ПакетДанных;
    
    Перем ВыборкаШапкиДокументаКонтрагенты, ВыборкаШапкиДокументаДоговорыКонтрагентов, ВыборкаТоваров, ВыборкаУдаляемыхДокументов, ВыборкаУдаляемыхСчетФактур;
    
    Перем Документ;
    Перем СчетФактура;
        
    
    Состояние("Формирование документов вида: " +Метаданные.Документы[ИмяДокумента].Синоним);
    
    Запрос =Новый Запрос;
        
    Запрос.Текст ="ВЫБРАТЬ
                  |    БазаДляФормированияДокументов.Контрагент,
                  |    БазаДляФормированияДокументов.ДоговорКонтрагента,
                  |    БазаДляФормированияДокументов.ГрузополучательКонтрагент,
                  |    БазаДляФормированияДокументов.Склад,
                  |    БазаДляФормированияДокументов.Принципал,
                  |    БазаДляФормированияДокументов.СтавкаНДС,
                  |    БазаДляФормированияДокументов.ДоговорПринципала,
                  |    БазаДляФормированияДокументов.Номенклатура,
                  |    БазаДляФормированияДокументов.Количество,
                  |    БазаДляФормированияДокументов.СуммаСУчетомСкидки
                  |ПОМЕСТИТЬ БазаДляФормированияДокументов
                  |ИЗ
                  |    &БазаДляФормированияДокументов КАК БазаДляФормированияДокументов
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    Документы.Ссылка КАК Документ,
                  |    СчетФактураВыданный.Ссылка КАК СчетФактура
                  |ПОМЕСТИТЬ УдаляемыеДокументы
                  |ИЗ
                  |    &ИмяТаблициВидаФормируемогоДокумента КАК Документы
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СчетФактураВыданный
                  |        ПО (СчетФактураВыданный.ДокументОснование = Документы.Ссылка)
                  |ГДЕ
                  |    Документы.Дата = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ)
                  |    И Документы.ДатаНН = НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)
                  |    И Документы.ДатаКН = НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ)
                  |    И Документы.Комментарий ПОДОБНО ""Сформирован обработкой формирования документов""
                  |    И Документы.Контрагент В
                  |            (ВЫБРАТЬ
                  |                БазаДляФормированияДокументов.Контрагент
                  |            ИЗ
                  |                БазаДляФормированияДокументов)
                  |    И Документы.ДоговорКонтрагента В
                  |            (ВЫБРАТЬ
                  |                БазаДляФормированияДокументов.ДоговорКонтрагента
                  |            ИЗ
                  |                БазаДляФормированияДокументов)
                  |    И Документы.Номер ПОДОБНО &ПрефиксСчетФактуры + ""%""
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    МАКСИМУМ(НАЧАЛОПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК Дата,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРеализацияТоваров.ПродажаКомиссия)) КАК ВидОперации,
                  |    МАКСИМУМ(НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ)) КАК ДатаНН,
                  |    МАКСИМУМ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)) КАК ДатаКН,
                  |    МАКСИМУМ(&Организация) КАК Организация,
                  |    МАКСИМУМ(ИСТИНА) КАК ОтражатьВНалоговомУчете,
                  |    МАКСИМУМ(&БухСчет_6204) КАК СчетУчетаРасчетовСКонтрагентом,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоАвансамПолученным)) КАК СчетУчетаРасчетовПоАвансам,
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты) КАК Контрагент,
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов) КАК ДоговорКонтрагента,
                  |    БазаДляФормированияДокументов.ГрузополучательКонтрагент КАК Грузополучатель,
                  |    МАКСИМУМ(&Грузоотправитель) КАК Грузоотправитель,
                  |    МАКСИМУМ(&Ответственный) КАК Ответственный,
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов КАК ВалютаДокумента,
                  |    МАКСИМУМ(ИСТИНА) КАК УчитыватьНДС,
                  |    МАКСИМУМ(ИСТИНА) КАК СуммаВключаетНДС,
                  |    БазаДляФормированияДокументов.Склад,
                  |    БазаДляФормированияДокументов.Принципал,
                  |    БазаДляФормированияДокументов.СтавкаНДС,
                  |    БазаДляФормированияДокументов.ДоговорПринципала,
                  |    БазаДляФормированияДокументов.Номенклатура,
                  |    СУММА(БазаДляФормированияДокументов.Количество) КАК Количество,
                  |    СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки) КАК Сумма,
                  |    СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки / БазаДляФормированияДокументов.Количество) КАК Цена,
                  |    СУММА(ВЫРАЗИТЬ(ВЫБОР
                  |                КОГДА БазаДляФормированияДокументов.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС)
                  |                    ТОГДА 0
                  |                ИНАЧЕ БазаДляФормированияДокументов.СуммаСУчетомСкидки * 18 / 118
                  |            КОНЕЦ КАК ЧИСЛО(15, 2))) КАК СуммаНДС,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ТоварыНаСкладах)) КАК СчетУчета,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.ВыручкаНеЕНВД)) КАК СчетДоходов,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.СебестоимостьПродажНеЕНВД)) КАК СчетРасходов,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Продажи_НДС)) КАК СчетУчетаНДСПоРеализации,
                  |    МАКСИМУМ(""Сформирован обработкой формирования документов"") КАК Комментарий,
                  |    МАКСИМУМ(ЗНАЧЕНИЕ(Перечисление.СпособыЗачетаАвансов.Автоматически)) КАК СпособЗачетаАвансов
                  |ПОМЕСТИТЬ ДанныеДокументов
                  |ИЗ
                  |    БазаДляФормированияДокументов КАК БазаДляФормированияДокументов
                  |ГДЕ
                  |    ВЫБОР
                  |            КОГДА &ИмяФормируемогоДокумента В (&ИменаДокументовРаботающиеСНДС)
                  |                ТОГДА НЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка))
                  |            ИНАЧЕ БазаДляФормированияДокументов.СтавкаНДС В (ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.БезНДС), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС0), ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.ПустаяСсылка))
                  |        КОНЕЦ
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.Контрагент КАК Справочник.Контрагенты),
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов),
                  |    БазаДляФормированияДокументов.Склад,
                  |    БазаДляФормированияДокументов.Принципал,
                  |    БазаДляФормированияДокументов.СтавкаНДС,
                  |    БазаДляФормированияДокументов.ДоговорПринципала,
                  |    БазаДляФормированияДокументов.Номенклатура,
                  |    БазаДляФормированияДокументов.ГрузополучательКонтрагент,
                  |    ВЫРАЗИТЬ(БазаДляФормированияДокументов.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ВалютаВзаиморасчетов
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ДанныеДокументов.Дата КАК Дата,
                  |    ДанныеДокументов.ВидОперации КАК ВидОперации,
                  |    ДанныеДокументов.ДатаНН КАК ДатаНН,
                  |    ДанныеДокументов.ДатаКН КАК ДатаКН,
                  |    ДанныеДокументов.Организация КАК Организация,
                  |    ДанныеДокументов.ОтражатьВНалоговомУчете КАК ОтражатьВНалоговомУчете,
                  |    ДанныеДокументов.СчетУчетаРасчетовСКонтрагентом КАК СчетУчетаРасчетовСКонтрагентом,
                  |    ДанныеДокументов.СчетУчетаРасчетовПоАвансам КАК СчетУчетаРасчетовПоАвансам,
                  |    ДанныеДокументов.Контрагент КАК Контрагент,
                  |    ДанныеДокументов.ДоговорКонтрагента КАК ДоговорКонтрагента,
                  |    ДанныеДокументов.Грузополучатель КАК Грузополучатель,
                  |    ДанныеДокументов.Грузоотправитель КАК Грузоотправитель,
                  |    ДанныеДокументов.Ответственный КАК Ответственный,
                  |    ДанныеДокументов.ВалютаДокумента КАК ВалютаДокумента,
                  |    ДанныеДокументов.УчитыватьНДС КАК УчитыватьНДС,
                  |    ДанныеДокументов.СуммаВключаетНДС КАК СуммаВключаетНДС,
                  |    ДанныеДокументов.Склад,
                  |    ДанныеДокументов.Принципал,
                  |    ДанныеДокументов.СтавкаНДС,
                  |    ДанныеДокументов.ДоговорПринципала,
                  |    ДанныеДокументов.Номенклатура,
                  |    ДанныеДокументов.Количество,
                  |    ДанныеДокументов.Сумма КАК Сумма,
                  |    ДанныеДокументов.Цена КАК Цена,
                  |    ДанныеДокументов.СуммаНДС,
                  |    ДанныеДокументов.СчетУчета,
                  |    ДанныеДокументов.СчетДоходов,
                  |    ДанныеДокументов.СчетРасходов,
                  |    ДанныеДокументов.СчетУчетаНДСПоРеализации,
                  |    ДанныеДокументов.Комментарий КАК Комментарий,
                  |    ДанныеДокументов.СпособЗачетаАвансов КАК СпособЗачетаАвансов
                  |ИЗ
                  |    ДанныеДокументов КАК ДанныеДокументов
                  |ИТОГИ
                  |    МАКСИМУМ(Дата),
                  |    МАКСИМУМ(ВидОперации),
                  |    МАКСИМУМ(ДатаНН),
                  |    МАКСИМУМ(ДатаКН),
                  |    МАКСИМУМ(Организация),
                  |    МАКСИМУМ(ОтражатьВНалоговомУчете),
                  |    МАКСИМУМ(СчетУчетаРасчетовСКонтрагентом),
                  |    МАКСИМУМ(СчетУчетаРасчетовПоАвансам),
                  |    МАКСИМУМ(Грузополучатель),
                  |    МАКСИМУМ(Грузоотправитель),
                  |    МАКСИМУМ(Ответственный),
                  |    МАКСИМУМ(ВалютаДокумента),
                  |    МАКСИМУМ(УчитыватьНДС),
                  |    МАКСИМУМ(СуммаВключаетНДС),
                  |    СУММА(Сумма),
                  |    МАКСИМУМ(Комментарий),
                  |    МАКСИМУМ(СпособЗачетаАвансов)
                  |ПО
                  |    Контрагент,
                  |    ДоговорКонтрагента
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    УдаляемыеДокументы.Документ,
                  |    УдаляемыеДокументы.СчетФактура КАК СчетФактура
                  |ИЗ
                  |    УдаляемыеДокументы КАК УдаляемыеДокументы
                  |ИТОГИ ПО
                  |    СчетФактура
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |УНИЧТОЖИТЬ ДанныеДокументов
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |УНИЧТОЖИТЬ УдаляемыеДокументы";
    Запрос.Текст =СтрЗаменить(Запрос.Текст, "&ИмяТаблициВидаФормируемогоДокумента", "Документ." +ИмяДокумента);
                  
    Запрос.УстановитьПараметр("НачалоПериода",                     НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",                     КонецПериода);
    Запрос.УстановитьПараметр("Организация",                     Организация);
    Запрос.УстановитьПараметр("БухСчет_6204",                     ПланыСчетов.Хозрасчетный.НайтиПоКоду("62.04") );
    Запрос.УстановитьПараметр("Грузоотправитель",                 Грузоотправитель);
    Запрос.УстановитьПараметр("Ответственный",                     ПараметрыСеанса.ТекущийПользователь);
    Запрос.УстановитьПараметр("БазаДляФормированияДокументов",     БазаДляФормирования);
    Запрос.УстановитьПараметр("ПрефиксСчетФактуры",             ПрефиксСчетФактуры+РазделительПрефиксаИНомера);
    Запрос.УстановитьПараметр("ИмяФормируемогоДокумента",         ИмяДокумента);
    Запрос.УстановитьПараметр("ИменаДокументовРаботающиеСНДС",     мИменаДокументовРаботающиеСНДС);
    Запрос.УстановитьПараметр("ИменаДокументовОтражаемыеНаЗабалансовомСчете",     ИменаДокументовОтражаемыеНаЗабалансовомСчете);
    
    
    ПакетДанных =Запрос.ВыполнитьПакет();
    ВыборкаШапкиДокументаКонтрагенты     =ПакетДанных[3].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    ВыборкаУдаляемыхСчетФактур            =ПакетДанных[4].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаУдаляемыхСчетФактур.Следующий() Цикл
        
        Если ВыборкаУдаляемыхСчетФактур.СчетФактура <> Null Тогда
            Сообщить("Удаление " +ВыборкаУдаляемыхСчетФактур.СчетФактура, СтатусСообщения.Внимание);
            ВыборкаУдаляемыхСчетФактур.СчетФактура.ПолучитьОбъект().Удалить()
        КонецЕсли;
        
        ВыборкаУдаляемыхДокументов =ВыборкаУдаляемыхСчетФактур.Выбрать();
        Пока ВыборкаУдаляемыхДокументов.Следующий() Цикл
            Сообщить("Удаление " +ВыборкаУдаляемыхДокументов.Документ, СтатусСообщения.Внимание);
            ВыборкаУдаляемыхДокументов.Документ.ПолучитьОбъект().Удалить();
            
            ОбработкаПрерыванияПользователя()
        КонецЦикла;
        
        ОбработкаПрерыванияПользователя()
    КонецЦикла;
    ОбновитьНумерациюОбъектов(Метаданные.Документы[ИмяДокумента]);
                              
    
    Пока ВыборкаШапкиДокументаКонтрагенты.Следующий() Цикл
        
        ВыборкаШапкиДокументаДоговорыКонтрагентов =ВыборкаШапкиДокументаКонтрагенты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
        Пока ВыборкаШапкиДокументаДоговорыКонтрагентов.Следующий() Цикл
        
            Документ =Документы[ИмяДокумента].СоздатьДокумент();
            Документ.Номер =ПолучитьНомерНовогоДокумента(ИмяДокумента);
                                    
            ЗаполнитьЗначенияСвойств(Документ, ВыборкаШапкиДокументаДоговорыКонтрагентов);
                        
            ВыборкаТоваров =ВыборкаШапкиДокументаДоговорыКонтрагентов.Выбрать();
            Пока ВыборкаТоваров.Следующий() Цикл
                ЗаполнитьЗначенияСвойств(Документ.Товары.Добавить(), ВыборкаТоваров)
            КонецЦикла;
            
            
            Попытка
                Документ.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный)
            Исключение
                Попытка
                    Документ.Записать(РежимЗаписиДокумента.Запись)
                Исключение
                    ВызватьИсключение ИмяДокумента +" по номером " +Документ.Номер +" уже существует"
                КонецПопытки
            КонецПопытки;
            
            
            СчетФактура =Документы.СчетФактураВыданный.СоздатьДокумент();
            СчетФактура.Заполнить(Документ.Ссылка);
            СчетФактура.ВидСчетаФактуры =Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию;
            СчетФактура.Номер             =Документ.Номер;
            СчетФактура.Записать( ?( Документ.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись), РежимПроведенияДокумента.Неоперативный);
            
            Сообщить("Сформирован документ " +Документ.Ссылка +", он " +Формат(Документ.Проведен, "БЛ='не проведен'; БИ=проведен") +" и " +СчетФактура.Ссылка);
            
            ОбработкаПрерыванияПользователя()
        КонецЦикла
    КонецЦикла;
    
КонецПроцедуры // СформироватьДокументы()






Здесь пробывала изменять формулу в строке - |    СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки / БазаДляФормированияДокументов.Количество) КАК Цена,

но безуспешно..так же не правильная цена выходила.. Помогите пожалуйста
1 exwill
 
30.07.13
14:14
(0) Там вроде бы еще и коэффициент имеется.
2 Яна93
 
30.07.13
14:15
(1) Какой коэфициент? как он связан с формулой?
3 Steini
 
30.07.13
14:18
мимопроходил: а в БазаДляФормирования нет задвоившихся строк?
4 Яна93
 
30.07.13
14:22
В Функции? Вроде нет...на всякий случай вот

Функция     БазаДляФормированияДокументов() // Тип:ТаблицаЗначений

    Перем Запрос;
    
    Перем Скидки;
    Перем НоваяСтрока;
    
    Перем Контрагент;
    Перем Эмитент;
    Перем ТочкаОбслуживания;
    
    Перем СтрокаКонтрагента, СтрокаЭмитента, СтрокаТочкиОбслуживания, СтрокаНоменклатуры;
    Перем НайденыеСтроки;
        
            
    Запрос =Новый Запрос;
    Запрос.Текст ="ВЫБРАТЬ
                  |    ВЫРАЗИТЬ(NULL КАК Справочник.Организации) КАК Организация,
                  |    ВЫРАЗИТЬ(NULL КАК Справочник.Контрагенты) КАК Контрагент,
                  |    ВЫРАЗИТЬ(NULL КАК Справочник.Ю_ТочкиОбслуживания) КАК ТочкаОбслуживания,
                  |    ВЫРАЗИТЬ(NULL КАК Справочник.Ю_Эмитенты) КАК Эмитент,
                  |    ВЫРАЗИТЬ(NULL КАК Справочник.Номенклатура) КАК Номенклатура,
                  |    ВЫРАЗИТЬ(NULL КАК ЧИСЛО(3, 1)) КАК Скидка,
                  |    ВЫРАЗИТЬ(NULL КАК БУЛЕВО) КАК ЭтоСуммоваяСкидка";
    Скидки =Запрос.Выполнить().Выгрузить().СкопироватьКолонки();
    
    Для каждого СтрокаКонтрагента Из БазаСкидок.Строки Цикл
        Контрагент =СтрокаКонтрагента.Контрагент;
        
        Если СтрокаКонтрагента.Строки.Найти(Истина, "Обрабатывать", Истина) = Неопределено Тогда
            Продолжить
        КонецЕсли;
        
        Для каждого СтрокаЭмитента Из СтрокаКонтрагента.Строки Цикл
            Эмитент =СтрокаЭмитента.Контрагент;
            
            Если СтрокаЭмитента.Строки.Найти(Истина, "Обрабатывать", Истина) = Неопределено Тогда
                Продолжить
            КонецЕсли;
        
            Для каждого СтрокаТочкиОбслуживания Из СтрокаЭмитента.Строки Цикл
                ТочкаОбслуживания =СтрокаТочкиОбслуживания.Контрагент;
                
                Если СтрокаТочкиОбслуживания.Строки.Найти(Истина, "Обрабатывать", Истина) = Неопределено Тогда
                    Продолжить
                КонецЕсли;
                
                Для каждого СтрокаНоменклатуры Из СтрокаТочкиОбслуживания.Строки Цикл
                    Номенклатура =СтрокаНоменклатуры.Контрагент;    
                    
                    Если СтрокаНоменклатуры.Обрабатывать Тогда
                        НоваяСтрока =Скидки.Добавить();
                        
                        НоваяСтрока.Организация         =Организация;
                        НоваяСтрока.Контрагент             =Контрагент;
                        НоваяСтрока.Эмитент             =Эмитент;
                        НоваяСтрока.ТочкаОбслуживания     =ТочкаОбслуживания;
                        НоваяСтрока.Номенклатура         =Номенклатура;
                        НоваяСтрока.Скидка                 =СтрокаНоменклатуры.Скидка;
                        НоваяСтрока.ЭтоСуммоваяСкидка     =СтрокаНоменклатуры.ЭтоСуммоваяСкидка
                        
                    КонецЕсли
                КонецЦикла
            КонецЦикла
        КонецЦикла
    КонецЦикла;
                  
    
    Запрос.Текст ="ВЫБРАТЬ
                  |    ВЫРАЗИТЬ(Скидки.Контрагент КАК Справочник.Контрагенты) КАК Контрагент,
                  |    ВЫРАЗИТЬ(Скидки.Организация КАК Справочник.Организации) КАК Организация,
                  |    ВЫРАЗИТЬ(Скидки.ТочкаОбслуживания КАК Справочник.Ю_ТочкиОбслуживания) КАК ТочкаОбслуживания,
                  |    ВЫРАЗИТЬ(Скидки.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
                  |    ВЫРАЗИТЬ(Скидки.Скидка КАК ЧИСЛО(3, 1)) КАК Скидка,
                  |    Скидки.ЭтоСуммоваяСкидка
                  |ПОМЕСТИТЬ Скидки
                  |ИЗ
                  |    &Скидки КАК Скидки
                  |
                  |ИНДЕКСИРОВАТЬ ПО
                  |    Контрагент,
                  |    Организация,
                  |    ТочкаОбслуживания,
                  |    Номенклатура
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ОборотыТранзакций.Контрагент,
                  |    ОборотыТранзакций.ДоговорКонтрагента,
                  |    ОборотыТранзакций.ДоговорПринципала,
                  |    ОборотыТранзакций.Номенклатура,
                  |    ОборотыТранзакций.Количество,
                  |    ОборотыТранзакций.Сумма,
                  |    ОборотыТранзакций.ТочкаОбслуживания,
                  |    ОборотыТранзакций.СуммаСкидки КАК СуммаСкидкиНаТО,
                  |    ОборотыТранзакций.СуммаСУчетом КАК СуммаСУчетомНаТО,
                  |    ОборотыТранзакций.Контрагент.Ю_Грузополучатель КАК ГрузополучательКонтрагент,
                  |    ОборотыТранзакций.ТочкаОбслуживания.Эмитент КАК ЭмитентТочкаОблслуживания,
                  |    ВЫБОР
                  |        КОГДА ОборотыТранзакций.Сумма * ЕСТЬNULL(Скидки.Скидка, 0) = 0
                  |            ТОГДА 0
                  |        ИНАЧЕ ВЫБОР
                  |                КОГДА Скидки.ЭтоСуммоваяСкидка
                  |                    ТОГДА ОборотыТранзакций.Количество * Скидки.Скидка
                  |                ИНАЧЕ ОборотыТранзакций.Сумма * ЕСТЬNULL(Скидки.Скидка, 0) / 100
                  |            КОНЕЦ
                  |    КОНЕЦ КАК СуммаСкидки,
                  |    ЕСТЬNULL(Скидки.Скидка, 0) КАК ПроцентСкидки,
                  |    ОборотыТранзакций.Сумма - ВЫБОР
                  |        КОГДА ОборотыТранзакций.Сумма * ЕСТЬNULL(Скидки.Скидка, 0) = 0
                  |            ТОГДА 0
                  |        ИНАЧЕ ВЫБОР
                  |                КОГДА Скидки.ЭтоСуммоваяСкидка
                  |                    ТОГДА ОборотыТранзакций.Количество * ЕСТЬNULL(Скидки.Скидка, 0)
                  |                ИНАЧЕ ОборотыТранзакций.Сумма * ЕСТЬNULL(Скидки.Скидка, 0) / 100
                  |            КОНЕЦ
                  |    КОНЕЦ КАК СуммаСУчетомСкидки,
                  |    Ю_СкладыПринципалов.Склад,
                  |    Ю_СкладыПринципалов.СтавкаНДС,
                  |    ОборотыТранзакций.Принципал
                  |ИЗ
                  |    (ВЫБРАТЬ
                  |        Ю_ТранзакцииОбороты.Контрагент КАК Контрагент,
                  |        Ю_ТранзакцииОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
                  |        Ю_ТранзакцииОбороты.ДоговорПринципала КАК ДоговорПринципала,
                  |        Ю_ТранзакцииОбороты.Номенклатура КАК Номенклатура,
                  |        СУММА(Ю_ТранзакцииОбороты.КоличествоОборот) КАК Количество,
                  |        СУММА(Ю_ТранзакцииОбороты.СуммаНаТООборот) КАК Сумма,
                  |        Ю_ТранзакцииОбороты.ТочкаОбслуживания КАК ТочкаОбслуживания,
                  |        СУММА(Ю_ТранзакцииОбороты.СуммаСкидкиОборот) КАК СуммаСкидки,
                  |        СУММА(Ю_ТранзакцииОбороты.СуммаСУчетомСкидкиОборот) КАК СуммаСУчетом,
                  |        Ю_ТранзакцииОбороты.Принципал КАК Принципал
                  |    ИЗ
                  |        РегистрНакопления.Ю_Транзакции.Обороты(
                  |                НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ),
                  |                КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ),
                  |                Период,
                  |                (Контрагент, Номенклатура, ТочкаОбслуживания) В
                  |                    (ВЫБРАТЬ
                  |                        Скидки.Контрагент,
                  |                        Скидки.Номенклатура,
                  |                        Скидки.ТочкаОбслуживания
                  |                    ИЗ
                  |                        Скидки)) КАК Ю_ТранзакцииОбороты
                  |    
                  |    СГРУППИРОВАТЬ ПО
                  |        Ю_ТранзакцииОбороты.ДоговорКонтрагента,
                  |        Ю_ТранзакцииОбороты.ДоговорПринципала,
                  |        Ю_ТранзакцииОбороты.Номенклатура,
                  |        Ю_ТранзакцииОбороты.Контрагент,
                  |        Ю_ТранзакцииОбороты.ТочкаОбслуживания,
                  |        Ю_ТранзакцииОбороты.Принципал) КАК ОборотыТранзакций
                  |        ЛЕВОЕ СОЕДИНЕНИЕ Скидки КАК Скидки
                  |        ПО ОборотыТранзакций.Контрагент = Скидки.Контрагент
                  |            И ОборотыТранзакций.ТочкаОбслуживания = Скидки.ТочкаОбслуживания
                  |            И ОборотыТранзакций.Номенклатура = Скидки.Номенклатура
                  |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Ю_СкладыПринципалов КАК Ю_СкладыПринципалов
                  |        ПО ОборотыТранзакций.ДоговорПринципала = Ю_СкладыПринципалов.ДоговорПринципала
                  |            И ОборотыТранзакций.Принципал = Ю_СкладыПринципалов.Принципал";
    Запрос.УстановитьПараметр("НачалоПериода",     НачалоПериода);
    Запрос.УстановитьПараметр("КонецПериода",     КонецПериода);
    Запрос.УстановитьПараметр("Скидки",         Скидки);
    
    Возврат Запрос.Выполнить().Выгрузить()
    
КонецФункции // БазаДляФормированияДокументов()
5 Grobik
 
30.07.13
14:31
Такая красавица. Жалко я русских конф не знаю :(

Код ошибки:     10076262      
     Дата публикации:     30 октября 2012 г.      
     Описание:     В случае отражения реализации товаров и услуг в одном документе "Реализация товаров и услуг" по договору в валюте или у.е., в печатных формах "Торг-12" и "Акт об оказании услуг" формируются неверные суммы.
6 Grobik
 
30.07.13
14:33
Код ошибки:     10096480      
     Дата публикации:     20 декабря 2011 г.      
     Описание:     В печатных формах документа "Реализация товаров и услуг" по договорам в валюте и в условных единицах (ТОРГ-12, акт об оказании услуг) выводятся неправильые рублевые суммы, если в документе есть строки по комиссионным товарам или услугам.
Для определения общей рублевой суммы при формировании печатных форм учитываются только собственные товары и услуги, поэтому итоговая сумма в печатной форме всегда меньше, чем должна быть.
7 Grobik
 
30.07.13
14:36
http://forum-1c.ru/index.php?action=dlattach;topic=29674.0;attach=4099

Посмотрел картинку. Обе ошибки непричем. Жалко я русских конф не знаю и не имею.
8 Яна93
 
30.07.13
14:37
(5) Спасибо, Grobik за то, что откликнулся..
9 Яна93
 
30.07.13
14:43
Как указала выше Не верно проставляется цена..в нашем примере Количество = 2 466,560 , Цена = 998,62 , Сумма = 70 603,51, а должно быть так Цена = 70 603,51/2 466,560 (сумма делить на количество) и правильная цена получилась бы равной 28 рублей..а у меня в документе цена получилась 998,62..:(
10 Grobik
 
30.07.13
14:48
К сожалению ничего похожего на БП 2 нету.
Но считаю что 998,62 / 28,62 = курс рубля к юсд не случайным.
11 Grobik
 
30.07.13
14:53
Помогите же кто нить! Фото то в наличии.
12 an_str
 
30.07.13
14:59
Хм...а может цена персчитывается по какому-нить курсу? договор в руб?
13 Steini
 
30.07.13
14:59
Ну я по своему опыту, если в запросе есть деление и СУММА() и результат не такой, то скорее всего задвоенные строки, ибо сумма частных не равна частному сумм.
Поэтому мой совет - найти программиста, и в отладчике посмотреть, что возвращает БазаДляФормированияДокументов()

П.С.: а это точно функция из типовой бухи, не дописана ли кем?
14 dk
 
30.07.13
15:01
СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки) / СУММА(БазаДляФормированияДокументов.Количество) КАК Цена
15 wPa
 
30.07.13
15:03
(13) да вряд ли
И Документы.Комментарий ПОДОБНО ""Сформирован обработкой формирования документов""
16 wPa
 
30.07.13
15:08
(15) + или в 1С набрали студентов пишущих хард-кодом
17 Пеппи
 
30.07.13
15:11
Яна, ну зачем вы пользуетесь неизвестными обработками?
18 Яна93
 
30.07.13
15:15
(17) Да вот половина базы переделанная :( а в чем ошибка не нашла..
19 an_str
 
30.07.13
15:22
(18) а в документе, если нажать на "Цены и валюта..." стоят какие-нибудь галочки "Пересчитать цены по валюте" и т.д.?
20 Яна93
 
30.07.13
15:28
(19) Галочки стоят только на Учитывыть НДС и Суммы вкл.НДС..выше указана Валюта: руб...галочек нет больше
21 Ненавижу 1С
 
гуру
30.07.13
15:33
см (14), а
СУММА(БазаДляФормированияДокументов.СуммаСУчетомСкидки / БазаДляФормированияДокументов.Количество) КАК Цена
бред
22 Яна93
 
30.07.13
15:35
(14) (21) ошибку дала :
{Форма.ФормированиеДокументов.Форма(511)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    ПакетДанных =Запрос.ВыполнитьПакет();
по причине:
{(70, 2)}: Синтаксическая ошибка "СУММА(ВЫРАЗИТЬ(ВЫБОР"
<<?>>СУММА(ВЫРАЗИТЬ(ВЫБОР
23 Яна93
 
30.07.13
15:36
(22) Ой..запятую не поставила..сейчас попробую снова..
24 Яна93
 
30.07.13
15:48
Все работает! Спасибо, ДРУЗЬЯ МОИ за помощь!!! Отдельная благодарность dk который написал код (14) и  Ненавижу 1С (21) благодаря которому я обратила внимание на отсутствие запятой))
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.