Имя: Пароль:
1C
1С v8
ТОРГ-12 выводит бредовую "цену" на часть товаров
0 demous
 
08.12.11
14:30
8.2 упп, впф на торг-12 к реализации товаров и услуг, есть два вида товаров, это вино и ягуар, на вино все выводится всерно, а на ягуар при формировании впф воводится какая-то бредовая "цена", при этом в стандартной форме все выводится верно, а в впф нет, изменения были минимальны, менялась дата и нмоер документа, все остальное осталось преждним, ни как не могу понять в чем проблема... вот сам код


Перем ВидФормы Экспорт;
Перем НаименованиеФормы    Экспорт;
Перем РелизФормы    Экспорт;
Перем ДатаИзмененияФормы Экспорт;
Перем КомментарийФормы Экспорт;
Перем НазваниеКнопки Экспорт;
Перем НазваниеМеню Экспорт;
Перем КартинкаКнопки Экспорт;

Функция КонвертироватьКоличество(Товар="",Единица="",Количество,ЕдиницаВ)
   
   Если (Товар = "") или (Единица = "") Тогда
       Возврат 0;
   КонецЕсли;
   Если Единица.ЕдиницаПоКлассификатору = ЕдиницаВ Тогда
       Возврат Количество;
   КонецЕсли;
   ЕдТовара = "";
   Если ТипЗнч(ЕдиницаВ) = Тип("СправочникСсылка.ЕдиницыИзмерения") Тогда
       ЕдТовара = ЕдиницаВ;
   Иначе
       СпрЕд = Справочники.ЕдиницыИзмерения;
       Выб=СпрЕд.Выбрать(,Товар);
       Пока Выб.Следующий() Цикл
           Если Выб.ПометкаУдаления Тогда
               Продолжить;
           КонецЕсли;
           Если Выб.ЕдиницаПоКлассификатору = ЕдиницаВ Тогда
               ЕдТовара = Выб.Ссылка;
               Прервать;
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;
   Если ЕдТовара = "" Тогда
       Возврат 0;
   КонецЕсли;
   Возврат Окр(Количество * Единица.Коэффициент / ?(ЕдТовара.Коэффициент = 0, 1, ЕдТовара.Коэффициент),3);
   
КонецФункции //КонвертироватьКоличество

// Функция формирует табличный документ с печатной формой накладной,
// разработанной методистами
//
// Возвращаемое значение:
//  Табличный документ - печатная форма накладной
//
Функция ПечатьТОРГ12(ВыбДокумент,БезУслуг = Ложь)

   ЕдиницаИзмеренияВеса = Константы.ЕдиницаИзмеренияВеса.Получить();
   ЕдиницаИзмеренияШтуки = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");
   
   мВалютаРегламентированногоУчета   = Константы.ВалютаРегламентированногоУчета.Получить();
   
   ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить();
   Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда
       ТоварКод = "Артикул";
   Иначе
       ТоварКод = "Код";
   КонецЕсли;
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ДатаСреза",          ВыбДокумент.Дата);
   Запрос.УстановитьПараметр("СтруктурнаяЕдиница", ВыбДокумент.Склад);
   Запрос.УстановитьПараметр("ТекущийДокумент",    ВыбДокумент.Ссылка);
   Запрос.УстановитьПараметр("ПустойКонтрагент",   Справочники.Контрагенты.ПустаяСсылка());
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номер,
   |    РеализацияТоваровУслуг.Дата КАК ДатаДокумента,
   |    РеализацияТоваровУслуг.Организация,
   |    РеализацияТоваровУслуг.Организация КАК ЮрФизЛицо,
   |    РеализацияТоваровУслуг.Организация КАК Поставщик,
   |    РеализацияТоваровУслуг.Организация КАК Контрагент,
   |    РеализацияТоваровУслуг.Организация КАК Руководители,
   |    РеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки,
   |    ВЫБОР
   |        КОГДА РеализацияТоваровУслуг.Грузополучатель = &ПустойКонтрагент
   |            ТОГДА РеализацияТоваровУслуг.Контрагент
   |        ИНАЧЕ РеализацияТоваровУслуг.Грузополучатель
   |    КОНЕЦ КАК Грузополучатель,
   |    ВЫБОР
   |        КОГДА РеализацияТоваровУслуг.Грузоотправитель = &ПустойКонтрагент
   |            ТОГДА РеализацияТоваровУслуг.Организация
   |        ИНАЧЕ РеализацияТоваровУслуг.Грузоотправитель
   |    КОНЕЦ КАК Грузоотправитель,
   |    РеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчет,
   |    РеализацияТоваровУслуг.Контрагент КАК Покупатель,
   |    РеализацияТоваровУслуг.Контрагент КАК Плательщик,
   |    РеализацияТоваровУслуг.Сделка,
   |    РеализацияТоваровУслуг.ДоговорКонтрагента.Представление КАК Основание,
   |    РеализацияТоваровУслуг.ДоговорКонтрагента.ВедениеВзаиморасчетов КАК ВедениеВзаиморасчетов,
   |    ОтветственныеЛица.ФизическоеЛицо КАК ОтветственноеЛицо,
   |    РеализацияТоваровУслуг.Подразделение,
   |   РеализацияТоваровУслуг.ДоговорКонтрагента.Номер КАК НомерДоговора,
   |   РеализацияТоваровУслуг.ДоговорКонтрагента.Дата КАК ДатаДоговора,
   |    РеализацияТоваровУслуг.ВалютаДокумента,
   |    РеализацияТоваровУслуг.КурсВзаиморасчетов КАК Курс,
   |    РеализацияТоваровУслуг.КратностьВзаиморасчетов КАК Кратность,
   |    РеализацияТоваровУслуг.УчитыватьНДС,
   |    РеализацияТоваровУслуг.СуммаВключаетНДС,
   |    РеализацияТоваровУслуг.ОтпускРазрешил,
   |    РеализацияТоваровУслуг.ОтпускПроизвел,
   |    РеализацияТоваровУслуг.ДоверенностьНомер,
   |    РеализацияТоваровУслуг.ДоверенностьДата,
   |    РеализацияТоваровУслуг.ДоверенностьВыдана,
   |    РеализацияТоваровУслуг.ДоверенностьЧерезКого    
   |ИЗ
   |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтветственныеЛица.СрезПоследних(&ДатаСреза, СтруктурнаяЕдиница = &СтруктурнаяЕдиница) КАК ОтветственныеЛица
   |        ПО (ОтветственныеЛица.СтруктурнаяЕдиница = РеализацияТоваровУслуг.Склад)
   |ГДЕ
   |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент";
   
   Шапка = Запрос.Выполнить().Выбрать();
   Шапка.Следующий();
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", ВыбДокумент.Ссылка);
   
   // Вычислим курс документа для печати
   Если ВыбДокумент.ДоговорКонтрагента.РасчетыВУсловныхЕдиницах И ВыбДокумент.ДоговорКонтрагента.ВестиПоДокументамРасчетовСКонтрагентом Тогда
       
       ЗапросКурсАванса = Новый Запрос;
       ЗапросКурсАванса.УстановитьПараметр("ДокументСсылка", ВыбДокумент.Ссылка);
       ЗапросКурсАванса.Текст =
       "ВЫБРАТЬ
       |    Док.СуммаВзаиморасчетов,
       |    Док.СуммаРегл
       |ИЗ
       |    Документ.РеализацияТоваровУслуг.ДокументыРасчетовСКонтрагентом КАК Док
       |ГДЕ Док.Ссылка = &ДокументСсылка
       |ИТОГИ СУММА(СуммаВзаиморасчетов), СУММА(СуммаРегл) ПО ОБЩИЕ";
       
       Выборка = ЗапросКурсАванса.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
       Если Выборка.Следующий() Тогда
           КурсОплаты                 = ?(Выборка.СуммаВзаиморасчетов = 0, 0, Выборка.СуммаРегл/Выборка.СуммаВзаиморасчетов);
           ВыборкаСуммаВзаиморасчетов = Выборка.СуммаВзаиморасчетов;
           ВыборкаСуммаРегл           = Выборка.СуммаРегл;
       Иначе
           КурсОплаты                 = 0;
           ВыборкаСуммаВзаиморасчетов = 0;
           ВыборкаСуммаРегл           = 0;
       КонецЕсли;
       
       СуммаВзаиморасчетов = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(УчетНДС.ПолучитьСуммуДокументаСНДС(ВыбДокумент),
       ВыбДокумент.ВалютаДокумента, ВыбДокумент.ДоговорКонтрагента.ВалютаВзаиморасчетов,
       ЗаполнениеДокументов.КурсДокумента(ВыбДокумент, мВалютаРегламентированногоУчета), ВыбДокумент.КурсВзаиморасчетов,
       ЗаполнениеДокументов.КратностьДокумента(ВыбДокумент, мВалютаРегламентированногоУчета), ВыбДокумент.КратностьВзаиморасчетов);
       НеоплаченнаяСумма = СуммаВзаиморасчетов - ВыборкаСуммаВзаиморасчетов;
       Если НеоплаченнаяСумма > 0 Тогда
           КурсДляПечати = (НеоплаченнаяСумма * ВыбДокумент.КурсВзаиморасчетов + ВыборкаСуммаРегл)/(НеоплаченнаяСумма + ВыборкаСуммаВзаиморасчетов);
       Иначе
           КурсДляПечати = КурсОплаты;
       КонецЕсли;
       
       Если КурсДляПечати = 0 Тогда
           Запрос.УстановитьПараметр("Курс",      ВыбДокумент.КурсВзаиморасчетов);
           Запрос.УстановитьПараметр("Кратность", ?(ВыбДокумент.КратностьВзаиморасчетов=0,1,ВыбДокумент.КратностьВзаиморасчетов));
       Иначе
           Запрос.УстановитьПараметр("Курс",      КурсДляПечати);
           Запрос.УстановитьПараметр("Кратность", 1);
       КонецЕсли;
       
   ИначеЕсли ВыбДокумент.ВалютаДокумента = ВыбДокумент.ДоговорКонтрагента.ВалютаВзаиморасчетов Тогда
       
       // Документ оформлен в валюте взаиморасчетов
       Запрос.УстановитьПараметр("Курс", ВыбДокумент.КурсВзаиморасчетов);
       Запрос.УстановитьПараметр("Кратность", ?(ВыбДокумент.КратностьВзаиморасчетов=0,1,ВыбДокумент.КратностьВзаиморасчетов));
       
   Иначе
       
       // Документ оформлен в валюте регламентированного учета
       Запрос.УстановитьПараметр("Курс",      1);
       Запрос.УстановитьПараметр("Кратность", 1);
       
   КонецЕсли;
   
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВложенныйЗапрос.Номенклатура                                  КАК Номенклатура,
   |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
   |    ВложенныйЗапрос.Номенклатура." + ТоварКод + "                 КАК ТоварКод,
   |    ВложенныйЗапрос.ЕдиницаИзмерения.Представление                КАК БазоваяЕдиницаНаименование,
   |    ВложенныйЗапрос.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код  КАК БазоваяЕдиницаКодПоОКЕИ,
   |    ВложенныйЗапрос.ЕдиницаИзмерения     КАК ЕдиницаИзмерения,
   |    ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление            КАК ВидУпаковки,
   |    ВложенныйЗапрос.КоэффициентМест / ВложенныйЗапрос.Коэффициент КАК КоличествоВОдномМесте,
   |    ВЫБОР
   |        КОГДА ВложенныйЗапрос.КоличествоМест > 0 ТОГДА ВложенныйЗапрос.КоличествоМест * ВложенныйЗапрос.ЕдиницаИзмеренияМест.Вес
   |        ИНАЧЕ ВложенныйЗапрос.Количество * ВложенныйЗапрос.ЕдиницаИзмерения.Вес
   |    КОНЕЦ КАК МассаБрутто,
   |    ВложенныйЗапрос.Характеристика       КАК Характеристика,
   |    ВложенныйЗапрос.Серия                КАК Серия,
   |    ВложенныйЗапрос.СтавкаНДС            КАК СтавкаНДС,
   |    ВложенныйЗапрос.Цена                 КАК Цена,    
   |    ВЫБОР
   |        КОГДА((ВложенныйЗапрос.ПроцентСкидкиНаценки = 0) И
   |              (ВложенныйЗапрос.ПроцентАвтоматическихСкидок = 0))
   |    ТОГДА ЛОЖЬ
   |    ИНАЧЕ Истина
   |    КОНЕЦ                                КАК ЕстьСкидкиПоСтроке,
   |    ВложенныйЗапрос.Количество           КАК Количество,
   |    ВложенныйЗапрос.КоличествоМест       КАК КоличествоМест,
   |    ВложенныйЗапрос.Сумма                КАК Сумма,
   |    ВложенныйЗапрос.СуммаНДС             КАК СуммаНДС,
   |    ВложенныйЗапрос.НомерСтроки          КАК НомерСтроки,
   |    ВложенныйЗапрос.Метка                КАК Метка
   |ИЗ
   |
   |    (
   |    ВЫБРАТЬ
   |        РеализацияТоваровУслуг.Номенклатура,
   |        РеализацияТоваровУслуг.Коэффициент,
   |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
   |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
   |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест.Коэффициент     КАК КоэффициентМест,
   |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры           КАК Характеристика,
   |        РеализацияТоваровУслуг.СерияНоменклатуры                    КАК Серия,
   |        РеализацияТоваровУслуг.СтавкаНДС,
   |        РеализацияТоваровУслуг.Цена * &Курс / &Кратность            КАК Цена,
   |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
   |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок,
   |        СУММА(РеализацияТоваровУслуг.КоличествоМест)                    КАК Количество,
   |        СУММА(РеализацияТоваровУслуг.КоличествоМест)                КАК КоличествоМест,
   |        СУММА(РеализацияТоваровУслуг.Сумма    * &Курс / &Кратность) КАК Сумма,
   |        СУММА(РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность) КАК СуммаНДС,
   |        МИНИМУМ(РеализацияТоваровУслуг.НомерСтроки)                 КАК НомерСтроки,
   |        0                                                           КАК Метка
   |    ИЗ
   |        Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
   |    ГДЕ
   |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |
   |СГРУППИРОВАТЬ ПО
   |        РеализацияТоваровУслуг.Номенклатура,
   |        РеализацияТоваровУслуг.Коэффициент,
   |        РеализацияТоваровУслуг.ЕдиницаИзмерения,
   |        РеализацияТоваровУслуг.ЕдиницаИзмеренияМест,
   |        РеализацияТоваровУслуг.ХарактеристикаНоменклатуры,
   |        РеализацияТоваровУслуг.СерияНоменклатуры,
   |        РеализацияТоваровУслуг.СтавкаНДС,
   |        РеализацияТоваровУслуг.Цена,
   |        РеализацияТоваровУслуг.ПроцентСкидкиНаценки,
   |        РеализацияТоваровУслуг.ПроцентАвтоматическихСкидок
   |    ) КАК ВложенныйЗапрос
   |";
   
   Если НЕ БезУслуг Тогда
       
       СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("РеализацияТоваровУслуг");
       
       Запрос.Текст = Запрос.Текст + "
       |
       |ОБЪЕДИНИТЬ ВСЕ
       |
       |ВЫБРАТЬ
       |    РеализацияТоваровУслуг.Номенклатура                  КАК Номенклатура,
       |    " + СтрокаВыборкиПоляСодержания + "                  КАК ТоварНаименование,
       |    РеализацияТоваровУслуг.Номенклатура." + ТоварКод + " КАК ТоварКод,
       |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление КАК БазоваяЕдиницаНаименование,
       |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ,
       |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения,
       |    NULL                                                 КАК ВидУпаковки,
       |    NULL                                                 КАК КоличествоВОдномМесте,
       |    0                                                    КАК МассаБрутто,
       |    NULL                                                 КАК Характеристика,
       |    NULL                                                 КАК Серия,
       |    РеализацияТоваровУслуг.СтавкаНДС                     КАК СтавкаНДС,
       |    РеализацияТоваровУслуг.Цена * &Курс / &Кратность     КАК Цена,
       |    ВЫБОР
       |        КОГДА(РеализацияТоваровУслуг.ПроцентСкидкиНаценки = 0)
       |    ТОГДА ЛОЖЬ
       |    ИНАЧЕ Истина
       |    КОНЕЦ                                                КАК ЕстьСкидкиПоСтроке,
       |    РеализацияТоваровУслуг.Количество                    КАК Количество,
       |    NULL                                                 КАК КоличествоМест,
       |    РеализацияТоваровУслуг.Сумма    * &Курс / &Кратность КАК Сумма,
       |    РеализацияТоваровУслуг.СуммаНДС * &Курс / &Кратность КАК СуммаНДС,
       |    РеализацияТоваровУслуг.НомерСтроки                   КАК НомерСтроки,
       |    1                                                    КАК Метка
       |ИЗ
       |    Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслуг
       |
       |ГДЕ
       |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
       |";
   КонецЕсли;
   
   Запрос.Текст = Запрос.Текст + "
   |
   |ОБЪЕДИНИТЬ ВСЕ
   |
   |ВЫБРАТЬ
   |    РеализацияТоваровУслуг.Номенклатура                    КАК Номенклатура,
   |    ВЫРАЗИТЬ(РеализацияТоваровУслуг.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК ТоварНаименование,
   |    РеализацияТоваровУслуг.Номенклатура." + ТоварКод + "   КАК ТоварКод,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление               КАК БазоваяЕдиницаНаименование,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК БазоваяЕдиницаКодПоОКЕИ,
   |    РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков                             КАК ЕдиницаИзмерения,
   |    NULL                                                  КАК ВидУпаковки,
   |    NULL                                                  КАК КоличествоВОдномМесте,
   |    РеализацияТоваровУслуг.Количество * РеализацияТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Вес КАК МассаБрутто,
   |    NULL                                                  КАК Характеристика,
   |    NULL                                                  КАК Серия,
   |    ""Без НДС""                                           КАК СтавкаНДС,
   |    РеализацияТоваровУслуг.Цена * &Курс / &Кратность      КАК Цена,
   |    Ложь                                                  КАК ЕстьСкидкиПоСтроке,
   |    РеализацияТоваровУслуг.Количество                     КАК Количество,
   |    NULL                                                  КАК КоличествоМест,
   |    РеализацияТоваровУслуг.Сумма * &Курс / &Кратность     КАК Сумма,
   |    0                                                     КАК СуммаНДС,
   |    РеализацияТоваровУслуг.НомерСтроки                    КАК НомерСтроки,
   |    2                                                     КАК Метка
   |ИЗ
   |    Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслуг
   |
   |ГДЕ
   |    РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |
   |
   |УПОРЯДОЧИТЬ ПО Метка ВОЗР, НомерСтроки ВОЗР
   |
   |";
   
   ЗапросТовары = Запрос.Выполнить().Выгрузить();
   ТабДокумент  = Новый ТабличныйДокумент;
   
   // Зададим параметры макета
   ТабДокумент.ПолеСверху              = 0;
   ТабДокумент.ПолеСлева               = 0;
   ТабДокумент.ПолеСнизу               = 0;
   ТабДокумент.ПолеСправа              = 0;
   ТабДокумент.РазмерКолонтитулаСверху = 0;
   ТабДокумент.РазмерКолонтитулаСнизу  = 0;
   ТабДокумент.АвтоМасштаб             = Истина;
   ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Ландшафт;
   
   ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_ТОРГ12";
   
   Макет = ПолучитьМакет("ОсновнойМакет");
   
   // Выводим общие реквизиты шапки
   СведенияОПоставщике       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.ЮрФизЛицо,        Шапка.ДатаДокумента,, Шапка.БанковскийСчет);
   СведенияОПокупателе       = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель,       Шапка.ДатаДокумента);
   СведенияОГрузополучателе  = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузополучатель,  Шапка.ДатаДокумента);
   СведенияОГрузоотправитель = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Грузоотправитель, Шапка.ДатаДокумента);
   
   ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
   ОбластьМакета.Параметры.Заполнить(Шапка);
   ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
   ОбластьМакета.Параметры.ДатаДокумента  = Шапка.ДатаДокумента;
   ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка);
   ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата  = Шапка.ДатаДокумента;
   //Добавлены Номер и Дата Договора Контрагента Марьян Д.А.
   ОбластьМакета.Параметры.НомерДоговора = Шапка.НомерДоговора;
   ОбластьМакета.Параметры.ДатаДоговора = Шапка.ДатаДоговора;

       
   ОбластьМакета.Параметры.Основание = Шапка.Основание;
   
   //Если Шапка.ЮрФизЛицо = Шапка.Грузоотправитель Тогда
   //    ОбластьМакета.Параметры.ПредставлениеОрганизации = ОписаниеОрганизации(СведенияОПоставщике);
   //Иначе
       ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
   //КонецЕсли;
   
   ОбластьМакета.Параметры.ПредставлениеПодразделения = Шапка.Подразделение;
   
   ОбластьМакета.Параметры.ПредставлениеГрузополучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ИНН,КПП,ФактическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
   
   //Если СокрЛП(Шапка.АдресДоставки) <> "" Тогда
   //    ОбластьМакета.Параметры.АдресДоставки = ПолучитьПредставлениеАдресаПоСтрока(Шапка.АдресДоставки);
   //Иначе
   //    ОбластьМакета.Параметры.АдресДоставки = ОписаниеОрганизации(СведенияОГрузополучателе, "ФактическийАдрес");
   //КонецЕсли;
   
   ОбластьМакета.Параметры.ПредставлениеПоставщика  = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике,"ПолноеНаименование,ИНН,КПП,Свидетельство,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
   ОбластьМакета.Параметры.ПредставлениеПлательщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе,"ПолноеНаименование,ИНН,КПП,Свидетельство,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет");
   
   Если Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоЗаказам
       И Шапка.ВедениеВзаиморасчетов <> Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоСчетам Тогда
       ОбластьМакета.Параметры.Основание = Шапка.Основание;
               
   Иначе
       Если ЗначениеЗаполнено(Шапка.Сделка) Тогда
           ОбластьМакета.Параметры.Основание = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка.Сделка, Строка(Шапка.Сделка.Метаданные().Синоним));
                       
       КонецЕсли;
   КонецЕсли;
   
   // Выводим всевозможные коды
   ОбластьМакета.Параметры.ОрганизацияПоОКПО     = СведенияОПоставщике.КодПоОКПО;
   ОбластьМакета.Параметры.ВидДеятельностиПоОКДП = Шапка.Грузополучатель.ОсновнойВидДеятельности;
   ОбластьМакета.Параметры.ГрузополучательПоОКПО = СведенияОПокупателе.КодПоОКПО;
   ОбластьМакета.Параметры.ПоставщикПоОКПО       = СведенияОПоставщике.КодПоОКПО;
   ОбластьМакета.Параметры.ПлательщикПоОКПО      = СведенияОПокупателе.КодПоОКПО;
   //ОбластьМакета.Параметры.ТранспортнаяНакладнаяНомер = "";
   //ОбластьМакета.Параметры.ТранспортнаяНакладнаяДата  = "";
   
   ТабДокумент.Вывести(ОбластьМакета);
   
   НомерСтраницы   = 1;
   
   КоличествоСтрок = ЗапросТовары.Количество();
   
   // инициализация итогов по странице
   ИтогоМассаБруттоНаСтранице = 0;
   ИтогоМестНаСтранице        = 0;
   ИтогоКоличествоНаСтранице  = 0;
   //>> Селезнев А.А. 090908
   ИтогоКоличествоШтНаСтранице  = 0;
   //<<
   ИтогоСуммаНаСтранице       = 0;
   ИтогоНДСНаСтранице         = 0;
   ИтогоСуммаСНДСНаСтранице   = 0;
   
   // инициализация итогов по документу
   ИтогоМассаБрутто = 0;
   ИтогоМест        = 0;
   ИтогоКоличество  = 0;
   //>> Селезнев А.А. 090908
   ИтогоКоличествоШт  = 0;
   //<<
   ИтогоСуммаСНДС   = 0;
   ИтогоСумма       = 0;
   ИтогоНДС         = 0;
   НомерСтроки      = 0;
   
   // Создаем массив для проверки вывода
   МассивВыводимыхОбластей = Новый Массив;
   
   // Выводим многострочную часть докмента
   ЗаголовокТаблицы        = Макет.ПолучитьОбласть("ЗаголовокТаб");
   ОбластьМакета           = Макет.ПолучитьОбласть("Строка");
   ОбластьИтоговПоСтранице = Макет.ПолучитьОбласть("ИтогоПоСтранице");
   ОбластьПодвала          = Макет.ПолучитьОбласть("Подвал");
   ОбластьМакетаВсего      = Макет.ПолучитьОбласть("Всего");
   Для Каждого ВыборкаСтрок Из ЗапросТовары Цикл
       
       Если НЕ ЗначениеЗаполнено(ВыборкаСтрок.Номенклатура) Тогда
           Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное);
           Продолжить;
       КонецЕсли;
       
       НомерСтроки = НомерСтроки + 1;
       
       ОбластьМакета.Параметры.Заполнить(ВыборкаСтрок);
       ОбластьМакета.Параметры.Номер             = ЗапросТовары.Индекс(ВыборкаСтрок) + 1;
       ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ВыборкаСтрок.ТоварНаименование)
       + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрок)
       + ?(ВыборкаСтрок.Метка = 2, " (возвратная тара)", "");
       
       ОбластьМакета.Параметры.Артикул=ВыборкаСтрок.Номенклатура.Артикул;
       ОбластьМакета.Параметры.Код=ВыборкаСтрок.Номенклатура.Код;
       ОбластьМакета.Параметры.ВидУпаковки=ВыборкаСтрок.ВидУпаковки;
       
       Если НЕ ЗначениеЗаполнено(ЕдиницаИзмеренияВеса) Тогда
           МассаБрутто = 0;
       Иначе
           МассаБрутто = ВыборкаСтрок.МассаБрутто;
           МассаБрутто = ?(МассаБрутто <> Неопределено И МассаБрутто <> NULL, МассаБрутто, 0);
       КонецЕсли;
       
       Мест        = ВыборкаСтрок.КоличествоМест;
       Мест        = ?(Мест <> Неопределено И Мест <> NULL, Мест, 0);
       
       
       //>> Селезнев А.А. 090908
       Количество  = ВыборкаСтрок.Количество;
       //Количество  = КонвертироватьКоличество(ВыборкаСтрок.Номенклатура,ВыборкаСтрок.ЕдиницаИзмерения,ВыборкаСтрок.Количество,ЕдиницаИзмеренияВеса);
       КоличествоШт  = КонвертироватьКоличество(ВыборкаСтрок.Номенклатура,ВыборкаСтрок.ЕдиницаИзмерения,ВыборкаСтрок.Количество,ЕдиницаИзмеренияШтуки);
       ОбластьМакета.Параметры.Количество = Количество;
       //ОбластьМакета.Параметры.КоличествоШт = КоличествоШт;
       //<<
       СуммаСНДС   = Окр((ВыборкаСтрок.Сумма + ?(Шапка.СуммаВключаетНДС, 0, ВыборкаСтрок.СуммаНДС)), 2);
       СуммаНДС    = Окр(ВыборкаСтрок.СуммаНДС, 2);
       СуммаБезНДС = СуммаСНДС  - СуммаНДС;
       
       ОбластьМакета.Параметры.МассаБрутто = МассаБрутто;
       ОбластьМакета.Параметры.СуммаСНДС   = СуммаСНДС;
       ОбластьМакета.Параметры.СуммаНДС    = СуммаНДС;
       ОбластьМакета.Параметры.СтавкаНДС   = ВыборкаСтрок.СтавкаНДС;
       ОбластьМакета.Параметры.СуммаБезНДС = СуммаБезНДС;
       
       Если Шапка.СуммаВключаетНДС
           Или ВыборкаСтрок.ЕстьСкидкиПоСтроке Тогда
           ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
       Иначе
           //ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
           ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);
       КонецЕсли;
       
       Если НомерСтроки = 1 Тогда // первая срока
           
           ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
           ТабДокумент.Вывести(ЗаголовокТаблицы);
           
       Иначе
           
           МассивВыводимыхОбластей.Очистить();
           МассивВыводимыхОбластей.Добавить(ОбластьМакета);
           МассивВыводимыхОбластей.Добавить(ОбластьИтоговПоСтранице);
           Если НомерСтроки = КоличествоСтрок Тогда
               МассивВыводимыхОбластей.Добавить(ОбластьПодвала);
           КонецЕсли;        
           
           Если НомерСтроки <> 1 И НЕ ТабДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда
               
               ОбластьИтоговПоСтранице.Параметры.ИтогМассаБруттоПоСтранице = ИтогоМассаБруттоНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогМестПоСтранице        = ИтогоМестНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоПоСтранице  = ИтогоКоличествоНаСтранице;
               //>> Селезнев А.А. 090908
               //ОбластьИтоговПоСтранице.Параметры.ИтогКоличествоШтПоСтранице  = ИтогоКоличествоШтНаСтранице;
               //<<
               ОбластьИтоговПоСтранице.Параметры.ИтогСуммыПоСтранице       = ИтогоСуммаНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогНДСПоСтранице         = ИтогоНДСНаСтранице;
               ОбластьИтоговПоСтранице.Параметры.ИтогСуммыСНДСПоСтранице   = ИтогоСуммаСНДСНаСтранице;
               
               ТабДокумент.Вывести(ОбластьИтоговПоСтранице);
               
               // очистим итоги по странице
               ИтогоМассаБруттоНаСтранице = 0;
               ИтогоМестНаСтранице        = 0;
               ИтогоКоличествоНаСтранице  = 0;
               //>> Селезнев А.А. 090908
               ИтогоКоличествоШтНаСтранице  = 0;
               //<<
               ИтогоСуммаНаСтранице       = 0;
               ИтогоНДСНаСтранице         = 0;
               ИтогоСуммаСНДСНаСтранице   = 0;
               
               НомерСтраницы = НомерСтраницы + 1;
               ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
               ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы;
               ТабДокумент.Вывести(ЗаголовокТаблицы);
               
           КонецЕсли;
           
       КонецЕсли;
       
       ТабДокумент.Вывести(ОбластьМакета);
       
       // увеличим итоги по странице
       ИтогоМассаБруттоНаСтранице = ИтогоМассаБруттоНаСтранице + МассаБрутто;
       ИтогоМестНаСтранице        = ИтогоМестНаСтранице        + Мест;
       ИтогоКоличествоНаСтранице  = ИтогоКоличествоНаСтранице  + Количество;
       //>&g
1 rrunover
 
08.12.11
14:40
Судя по датам правки в комментариях были они давно. Конфу обновляли? ВПФ делали один-в-один со стандартной? Код сравнивали?
2 demous
 
08.12.11
14:43
Просто компания находится на поддержке двух организаций, и два месяца как я работаю штатным... то есть изменения вносятся с трех сторон, на взаимодополняющейся основе... да, 1 в 1, единственное в запросе добавлялись данные из справочника "договоконтрагентов" на дату и номер дока, изменялиьс лица на " отпуск разрешил, отпуск произвел, и гл бух.. поменялись на текст...!"
3 demous
 
08.12.11
14:44
но это во всяком случае с моей стороны.. остальные правки все описаны, и к цене они отношения на мой взгляд не имели, то есть чем обусловленно данное явление не понять
4 demous
 
08.12.11
14:44
цена товара 30.15 а выводит 45838.75
5 Галахад
 
гуру
08.12.11
14:45
Жесть какая-то. Ну кто забесплатно будет столько читать?
6 rrunover
 
08.12.11
14:45
И да, проясните по поводу:

[....]
Количество  = ВыборкаСтрок.Количество;
//Количество  = КонвертироватьКоличество(ВыборкаСтрок.Номенклатура,ВыборкаСтрок.ЕдиницаИзмерения,ВыборкаСтрок.Количество,ЕдиницаИзмеренияВеса);

КоличествоШт  = КонвертироватьКоличество(ВыборкаСтрок.Номенклатура,ВыборкаСтрок.ЕдиницаИзмерения,ВыборкаСтрок.Количество,ЕдиницаИзмеренияШтуки);
ОбластьМакета.Параметры.Количество = Количество;
//ОбластьМакета.Параметры.КоличествоШт = КоличествоШт;
[....]

и

//ОбластьМакета.Параметры.Цена = ВыборкаСтрок.Цена;
ОбластьМакета.Параметры.Цена = ?(Количество = 0, 0, СуммаБезНДС / Количество);

Мысль есть: надо решить, что будете использовать в качестве отправной точки Количество или КоличествоШт.
7 demous
 
08.12.11
14:48
ну я не заставляю всех помогать... три месяца назад только вообще заинтересовался 1С, и пока еще возникает много вопросов в ходе работы... обращаюсь тут к тем, кому не жалко оказать помощь, алчность минуя
8 demous
 
08.12.11
14:50
rrunover
то есть проблема может быть в "количестве" ?
беда в том что только на часть товаров выпадает неверная цена, а на большую часть все верно.. причем эта "непонятная" цена падает только на одного контрагента..
9 acsent
 
08.12.11
14:53
Валютная?
10 demous
 
08.12.11
14:53
в смысле?
11 rrunover
 
08.12.11
14:55
(10) договор у "кривого" контрагента в валюте?
12 demous
 
08.12.11
14:59
валюта - рубли
13 rrunover
 
08.12.11
15:04
Зайдем с другой стороны. "Кривой" товар отгружается _всегда_ и _исключительно_ только этому контрагенту? Если "кривой" товар отгрузить другому, цена нормальная показывается?
14 demous
 
08.12.11
15:05
щас попробую
15 rrunover
 
08.12.11
15:07
+(13) все-таки надо не просто проверить код ВПФ и стандартной ПФ, а убедиться, что последняя измененная ВПФ = последняя сохраненная в конфе. Забыл как в УПП называется обработка, которая в себе внешние ПФ содержит ...
16 demous
 
08.12.11
15:33
сорри что долго, вызывали... вообщем смена контрагента ни чего не дала.. все по прежднему... измененную впф "перезалил" всетак же
17 hhhh
 
08.12.11
15:45
(16) ну вроде цена у вас СуммаБезНДС / Количество. То есть смотрите в сторону этих полей.
18 Hostess_
of_Love
 
08.12.11
15:52
запрос проверяли? пробовали отладчиком проверить? может глюк с кратностью?
19 demous
 
08.12.11
15:55
отладчик молчит... учугубляет ситуацию то, что только на одного контрагента цена играет в собственном воображении... но ни чего странного я в нем не аншел(((
20 Hostess_
of_Love
 
08.12.11
16:03
ну не знаю... я делала ВПФ для ТОРГ-12 и не сталкивалась с таким
21 hhhh
 
08.12.11
16:17
(19) но количество проверили в этой строчке? И сумму без НДС?
22 demous
 
08.12.11
16:17
Hostess_of_Love а нет возможности посмотреть эту впф ?
23 Hostess_
of_Love
 
08.12.11
16:40
попробую найти
Закон Брукера: Даже маленькая практика стоит большой теории.