|
ТОРГ-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
|
попробую найти
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |