![]() |
![]() |
|
Тор16 в УТ 10.3 без цены и сумм, как получить цену? | ☑ | ||
---|---|---|---|---|
0
ded20ded
16.01.13
✎
14:54
|
Тор16 в УТ 10.3 без цены и сумм, как получить цену? по партиям провел но все равно данные без цены
|
|||
1
ded20ded
16.01.13
✎
15:03
|
ап
|
|||
2
chelentano
16.01.13
✎
15:10
|
(0) чо?
|
|||
3
ded20ded
16.01.13
✎
15:11
|
почему проставляется без суммы?
|
|||
4
ded20ded
16.01.13
✎
15:11
|
без цены
|
|||
5
iceman2112
16.01.13
✎
15:22
|
программист?
|
|||
6
ded20ded
16.01.13
✎
15:49
|
если есть кусок кода то поправлю
|
|||
7
ded20ded
16.01.13
✎
15:49
|
скопирую и вставлю
|
|||
8
ded20ded
16.01.13
✎
15:54
|
// Формирует унифицированную форму ТОРГ-16
// // Возвращаемое значение: // Табличный документ - унифицировання форма ТОРГ-16 // Функция ПечатьТОРГ16() ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ТоварКод = "Артикул"; Иначе ТоварКод = "Код"; КонецЕсли; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ВидСкладаНТТ", Перечисления.ВидыСкладов.НТТ); Запрос.Текст = "ВЫБРАТЬ | Номер КАК Номер, | Дата КАК ДатаДокумента, | Организация, | Организация КАК Руководители, | Склад, | Склад.Представление КАК ПредставлениеСклада, | Подразделение КАК Подразделение, | Подразделение.Представление КАК ПредставлениеПодразделения, | Основание КАК Основание, | СуммаДокумента, | Константы.ВалютаРегламентированногоУчета КАК ВалютаДокумента, | Товары.( | Номенклатура, | Номенклатура.НаименованиеПолное КАК ТоварНаименование, | Номенклатура."+ ТоварКод + " КАК ТоварКод, | Количество, | КоличествоМест, | Качество, | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование, | ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ, | ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМестНаименование, | ЕдиницаИзмерения.Вес КАК МассаОдногоМеста, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Стоимость, | ХарактеристикаНоменклатуры КАК Характеристика, | СерияНоменклатуры КАК Серия | ), | ВозвратнаяТара.( | Номенклатура, | Номенклатура.НаименованиеПолное КАК ТоварНаименование, | Номенклатура."+ ТоварКод + " КАК ТоварКод, | Количество, | Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмеренияНаименование, | Номенклатура.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКодПоОКЕИ, | Номенклатура.ЕдиницаХраненияОстатков.Вес КАК МассаОдногоМеста, | 0 КАК Цена, | 0 КАК Стоимость | ) |ИЗ | Документ.СписаниеТоваров КАК СписаниеТоваров, Константы | |ГДЕ | СписаниеТоваров.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО | Товары.НомерСтроки, | ВозвратнаяТара.НомерСтроки |"; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); Макет = ПолучитьОбщийМакет("ТОРГ16"); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТоваров_ТОРГ16"; // Выводим общие реквизиты шапки ОписаниеОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента); ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.ДатаДокумента = Шапка.ДатаДокумента; ОбластьМакета.Параметры.НомерДокумента = ОбщегоНазначения.ПолучитьНомерНаПечать(Шапка); ОбластьМакета.Параметры.ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(ОписаниеОрганизации); ОбластьМакета.Параметры.ОрганизацияПоОКПО = ОписаниеОрганизации.КодПоОКПО; Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизации(Шапка.Руководители, Шапка.ДатаДокумента,); Руководитель = Руководители.Руководитель; Бухгалтер = Руководители.ГлавныйБухгалтер; ОбластьМакета.Параметры.ФИОРуководителя = Руководитель; ТабДокумент.Вывести(ОбластьМакета); СтрокНаСтранице = 23; СтрокШапки = 11; СтрокПодвала = 0; НомерСтраницы = 1; Ном = 0; ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать(); КоличествоСтрок = ВыборкаСтрокТовары.Количество() + ВыборкаСтрокТара.Количество(); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; // Выводим заголовок таблицы ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицыПервогоЛиста"); ТабДокумент.Вывести(ЗаголовокТаблицы); ОбластьМакета = Макет.ПолучитьОбласть("СтрокаПервогоЛиста"); // Товары ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ИтогоСтоимостьПоСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); ОбластьМакета.Параметры.ДатаСписанияТовара = Шапка.ДатаДокумента; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; // Тара ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать(); Пока ВыборкаСтрокТара.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ИтогоСтоимостьПоСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТара); ОбластьМакета.Параметры.ДатаСписанияТовара = Шапка.ДатаДокумента; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; СтрокНаСтранице = 27; СтрокШапки = 5; СтрокПодвала = 11; НомерСтраницы = 1; Ном = 0; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); НомерСтраницы = НомерСтраницы + 1; ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицыВторогоЛиста"); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); Если КоличествоСтрок = 1 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + КоличествоСтрок + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + КоличествоСтрок - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; ИтогоСтоимость = 0; // Выводим многострочную часть докмента ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста"); // Товары ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ИтогоСтоимостьПоСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); КоличествоМест = Формат(ВыборкаСтрокТовары.Количество, "ЧЦ=15; ЧДЦ=3"); Если ВыборкаСтрокТовары.КоличествоМест <> 0 И ЗначениеЗаполнено(ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование) Тогда КоличествоМест = КоличествоМест + Символы.ПС + " (" + Формат(ВыборкаСтрокТовары.КоличествоМест,"ЧЦ=15; ЧДЦ=0") + " " + ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование + ")"; КонецЕсли; ОбластьМакета.Параметры.КоличествоМест = КоличествоМест; ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); МассаНетто = ВыборкаСтрокТовары.МассаОдногоМеста * ВыборкаСтрокТовары.КоличествоМест; ОбластьМакета.Параметры.МассаНетто = МассаНетто; ТабДокумент.Вывести(ОбластьМакета); // Обновим итоги по документу ИтогоСтоимость = ИтогоСтоимость + ВыборкаСтрокТовары.Стоимость; КонецЦикла; // Тара ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать(); Пока ВыборкаСтрокТара.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТара.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ИтогоСтоимостьПоСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТара); ОбластьМакета.Параметры.КоличествоМест = Формат(ВыборкаСтрокТара.Количество, "ЧЦ=15; ЧДЦ=3"); ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТара.ТоварНаименование + " (возвратная тара)"; ТабДокумент.Вывести(ОбластьМакета); // Обновим итоги по документу ИтогоСтоимость = ИтогоСтоимость + ВыборкаСтрокТара.Стоимость; КонецЦикла; // Выводим итоги по документу в общем ОбластьМакета = Макет.ПолучитьОбласть("Итого"); ОбластьМакета.Параметры.Итого = ИтогоСтоимость; ТабДокумент.Вывести(ОбластьМакета); // Выводим подвал документа ОбластьМакета = Макет.ПолучитьОбласть("Подвал"); ОбластьМакета.Параметры.Заполнить(Шапка); ОбластьМакета.Параметры.СуммаСписанияПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(ИтогоСтоимость, Шапка.ВалютаДокумента); ТабДокумент.Вывести(ОбластьМакета); // Зададим параметры макета ТабДокумент.ПолеСверху = 0; ТабДокумент.ПолеСлева = 0; ТабДокумент.ПолеСнизу = 0; ТабДокумент.ПолеСправа = 0; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; Возврат ТабДокумент; КонецФункции // ПечатьТОРГ16() |
|||
9
ded20ded
16.01.13
✎
15:54
|
где тут что поправить
|
|||
10
ded20ded
16.01.13
✎
22:15
|
ап
|
|||
11
ДенисЧ
16.01.13
✎
22:31
|
нуна в регистры таки лезьть
|
|||
12
ded20ded
16.01.13
✎
22:42
|
Денис, а что именно смотреть какой регистр на предмет чего?
|
|||
13
ДенисЧ
16.01.13
✎
22:46
|
в регистр партий, очевидно... на предмет сумм, которые таки очень нужны
|
|||
14
DozaT
16.01.13
✎
22:58
|
данные в табличный документ выводятся из заспроса, а в запросе данные берутся из документа. причем тут регистры. у вас в документе в табличной Части Товары, цена проставленна? если да, значит здесь дело в этом месте, цена обнуляется так как склад не тот
| ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Стоимость, |
|||
15
ded20ded
16.01.13
✎
23:01
|
ну и как быть инвентаризацию делаю по обычному оптовому складу
Акт списания печатается с ценой так как цену берет из табличной части на прямую из документа а Торг 16 с нулями весь |
|||
16
ded20ded
16.01.13
✎
23:02
|
что правильно поправить в запросе
| ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Стоимость, чтобы цена и сумма взялись из запроса? |
|||
17
ded20ded
16.01.13
✎
23:02
|
из табличной части документа
|
|||
18
DozaT
16.01.13
✎
23:04
|
как заполняется ТЧ документа ТОРГ16. этот код скиньте.
|
|||
19
DozaT
16.01.13
✎
23:04
|
не печатная форма, как вы привели выше, а именно ТЧ.
|
|||
20
ded20ded
16.01.13
✎
23:08
|
DozaT, все делается в одной функции скинул ранее
в этот отчет попадает все ценами и суммами // Функция формирует табличный документ с печатной формой накладной, // разработанной методистами // // Возвращаемое значение: // Табличный документ - печатная форма накладной // Функция ПечатьСписаниеТоваров() ПараметрыПечати = ПолучитьДанныеДляПечатиСписанияТоваров(); Если ПараметрыПечати.ЭтоСкладНТТ Тогда ИмяШапки = "ШапкаТаблицы"; ИмяСтроки = "Строка"; Иначе ИмяШапки = "ШапкаТаблицыНТТ"; ИмяСтроки = "СтрокаНТТ"; КонецЕсли; ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеТоваров_Накладная"; Макет = ПолучитьМакет("Накладная"); // Выводим шапку накладной ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьМакета = Макет.ПолучитьОбласть("РевизитыОрганизации"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); ОбластьНомера = Макет.ПолучитьОбласть(ИмяШапки + "|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть(ИмяШапки + "|КолонкаКодов"); ОбластьТовар = Макет.ПолучитьОбласть(ИмяШапки + "|Товар"); ОбластьМест = Макет.ПолучитьОбласть(ИмяШапки + "|Мест"); ОбластьДанных = Макет.ПолучитьОбласть(ИмяШапки + "|Данные"); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабДокумент.Присоединить(ОбластьТовар); ОбластьКолонкаТовар = Макет.Область("Товар"); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки); Иначе ОбластьКолонкаТовар.ШиринаКолонки = ОбластьКолонкаТовар.ШиринаКолонки + Макет.Область("КолонкаКодов").ШиринаКолонки + ?(ПараметрыПечати.ФлагПечатиМест, 0, Макет.Область("R14C5").ШиринаКолонки + Макет.Область("R14C6").ШиринаКолонки); КонецЕсли; Если ПараметрыПечати.ФлагПечатиМест Тогда ТабДокумент.Присоединить(ОбластьМест); КонецЕсли; ТабДокумент.Присоединить(ОбластьДанных); ОбластьНомера = Макет.ПолучитьОбласть(ИмяСтроки + "|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть(ИмяСтроки + "|КолонкаКодов"); ОбластьТовар = Макет.ПолучитьОбласть(ИмяСтроки + "|Товар"); ОбластьМест = Макет.ПолучитьОбласть(ИмяСтроки + "|Мест"); ОбластьДанных = Макет.ПолучитьОбласть(ИмяСтроки + "|Данные"); СуммаИтого = 0; Ном = 0; // Товары и тара Для каждого ПараметрыПозиции Из ПараметрыПечати.Позиции Цикл Если НЕ ЗначениеЗаполнено(ПараметрыПозиции.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; ОбластьНомера.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ОбластьКодов.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ОбластьТовар.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьТовар); Если ПараметрыПечати.ФлагПечатиМест Тогда ОбластьМест.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьМест); КонецЕсли; ОбластьДанных.Параметры.Заполнить(ПараметрыПозиции); ТабДокумент.Присоединить(ОбластьДанных); КонецЦикла; // Вывести Итого ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки"); ОбластьКодов = Макет.ПолучитьОбласть("Итого|КолонкаКодов"); ОбластьТовар = Макет.ПолучитьОбласть("Итого|Товар"); ОбластьМест = Макет.ПолучитьОбласть("Итого|Мест"); ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные"); ТабДокумент.Вывести(ОбластьНомера); Если ПараметрыПечати.ВыводитьКоды Тогда ТабДокумент.Присоединить(ОбластьКодов); КонецЕсли; ТабДокумент.Присоединить(ОбластьТовар); Если ПараметрыПечати.ФлагПечатиМест Тогда ТабДокумент.Присоединить(ОбластьМест); КонецЕсли; ОбластьДанных.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Присоединить(ОбластьДанных); // Вывести Сумму прописью ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью"); ОбластьМакета.Параметры.Заполнить(ПараметрыПечати); ТабДокумент.Вывести(ОбластьМакета); // Вывести подписи ОбластьМакета = Макет.ПолучитьОбласть("Подписи"); ТабДокумент.Вывести(ОбластьМакета); Возврат ТабДокумент; КонецФункции // ПечатьСписаниеТоваров() |
|||
21
DozaT
16.01.13
✎
23:11
|
код этой функции скиньте
ПараметрыПечати = ПолучитьДанныеДляПечатиСписанияТоваров(); |
|||
22
DozaT
16.01.13
✎
23:16
|
и эта функция что печатает? Акт списания?
|
|||
23
DozaT
16.01.13
✎
23:19
|
ну что там? еще 5 минут и спать
|
|||
24
ded20ded
16.01.13
✎
23:21
|
// Функция помещает в структуру все данные, отображаемые при печати документа.
// Вызывается из функции ПечатьСписаниеТоваров и из веб-приложения // // Возвращаемое значение: // Структура // Функция ПолучитьДанныеДляПечатиСписанияТоваров() Экспорт ПараметрыПечати = Новый Структура; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.УстановитьПараметр("ВидСкладаНТТ", Перечисления.ВидыСкладов.НТТ); Запрос.Текст = "ВЫБРАТЬ | Номер, | Дата, | Организация, | Склад, | Склад.Представление КАК ПредставлениеСклада, | Подразделение КАК Подразделение, | Подразделение.Представление КАК ПредставлениеПодразделения, | СуммаДокумента, | Константы.ВалютаРегламентированногоУчета ВалютаДокумента, | Товары.( | НомерСтроки, | Номенклатура, | Номенклатура.НаименованиеПолное КАК Товар, | Номенклатура.Код КАК Код, | Номенклатура.Артикул КАК Артикул, | Номенклатура.ВестиПартионныйУчетПоСериям КАК ВестиПартионныйУчетПоСериям, | КоличествоМест, | Количество, | Качество, | ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения, | ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМест, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Цена | ИНАЧЕ 0 | КОНЕЦ КАК Цена, | ВЫБОР | КОГДА Склад.ВидСклада = &ВидСкладаНТТ ТОГДА Сумма | ИНАЧЕ 0 | КОНЕЦ КАК Сумма, | ХарактеристикаНоменклатуры КАК Характеристика, | СерияНоменклатуры КАК Серия, | Коэффициент | ), | ВозвратнаяТара.( | НомерСтроки, | Номенклатура, | Номенклатура.НаименованиеПолное КАК Товар, | Номенклатура.Код КАК Код, | Номенклатура.Артикул КАК Артикул, | Номенклатура.ВестиПартионныйУчетПоСериям КАК ВестиПартионныйУчетПоСериям, | НЕОПРЕДЕЛЕНО КАК Характеристика, | НЕОПРЕДЕЛЕНО КАК Серия, | НЕОПРЕДЕЛЕНО КАК Качество, | Количество, | Номенклатура.ЕдиницаХраненияОстатков.Представление КАК ЕдиницаИзмерения, | 0 КАК Цена, | 0 КАК Сумма, | 1 КАК Коэффициент | ) |ИЗ | Документ.СписаниеТоваров КАК СписаниеТоваров, | Константы | |ГДЕ | СписаниеТоваров.Ссылка = &ТекущийДокумент | |УПОРЯДОЧИТЬ ПО | Товары.НомерСтроки, | ВозвратнаяТара.НомерСтроки |"; ПараметрыПечати.Вставить("ЭтоСкладНТТ", (ПолучитьТекущийВидСклада() = Перечисления.ВидыСкладов.НТТ)); Если ПараметрыПечати.ЭтоСкладНТТ Тогда ВалютаПечати = мВалютаРегламентированногоУчета; Иначе ВалютаПечати = глЗначениеПеременной("ВалютаУправленческогоУчета"); ТаблицаСтоимости = ПолучитьТаблицуСтоимостиТоваров(); ТаблицаСтоимости.Индексы.Добавить("Номенклатура,Характеристика,Серия,Качество"); КонецЕсли; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); ВыборкаСтрокТара = Шапка.ВозвратнаяТара.Выбрать(); // Выводим шапку накладной ПараметрыПечати.Вставить("ТекстЗаголовка", ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Списание товаров")); ПараметрыПечати.Вставить("ПредставлениеОрганизации", ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "ПолноеНаименование,")); ПараметрыПечати.Вставить("ПредставлениеПодразделения", Шапка.ПредставлениеПодразделения); ПараметрыПечати.Вставить("ПредставлениеСклада", Шапка.ПредставлениеСклада); ДопКолонка = Константы.ДополнительнаяКолонкаПечатныхФормДокументов.Получить(); Если ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Артикул Тогда ПараметрыПечати.Вставить("ВыводитьКоды", Истина); ПараметрыПечати.Вставить("ИмяКолонкиКодов", "Артикул"); ИначеЕсли ДопКолонка = Перечисления.ДополнительнаяКолонкаПечатныхФормДокументов.Код Тогда ПараметрыПечати.Вставить("ВыводитьКоды", Истина); ПараметрыПечати.Вставить("ИмяКолонкиКодов", "Код"); Иначе ПараметрыПечати.Вставить("ВыводитьКоды", Ложь); КонецЕсли; ПараметрыПечати.Вставить("ФлагПечатиМест", (Товары.Итог("КоличествоМест") > 0)); Позиции = Новый Массив; СуммаИтого = 0; Ном = 0; // Товары Пока ВыборкаСтрокТовары.Следующий() Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТовары.Номенклатура); Ном = Ном + 1; ПараметрыПозиции.Вставить("НомерСтроки", Ном); Если ПараметрыПечати.ВыводитьКоды Тогда Если ПараметрыПечати.ИмяКолонкиКодов = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТовары.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТовары.Товар + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)); Если ПараметрыПечати.ФлагПечатиМест Тогда ПараметрыПозиции.Вставить("КоличествоМест", ВыборкаСтрокТовары.КоличествоМест); ПараметрыПозиции.Вставить("ЕдиницаИзмеренияМест", ВыборкаСтрокТовары.ЕдиницаИзмеренияМест); КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТовары.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТовары.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТовары.Цена); ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТовары.Сумма); Если ПараметрыПечати.ЭтоСкладНТТ Тогда Сумма = ВыборкаСтрокТовары.Сумма; Иначе Сумма = ПолучитьСтоимостьТовара(ТаблицаСтоимости, ВыборкаСтрокТовары); ПараметрыПозиции.Сумма = Сумма; КонецЕсли; СуммаИтого = СуммаИтого + Сумма; #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции); #КонецЕсли Позиции.Добавить(ПараметрыПозиции); КонецЦикла; // Тара Пока ВыборкаСтрокТара.Следующий() Цикл ПараметрыПозиции = Новый Структура; ПараметрыПозиции.Вставить("Номенклатура", ВыборкаСтрокТара.Номенклатура); Ном = Ном + 1; ПараметрыПозиции.Вставить("НомерСтроки", Ном); Если ПараметрыПечати.ВыводитьКоды Тогда Если ПараметрыПечати.ИмяКолонкиКодов = "Артикул" Тогда ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТара.Артикул); Иначе ПараметрыПозиции.Вставить("Артикул", ВыборкаСтрокТара.Код); КонецЕсли; КонецЕсли; ПараметрыПозиции.Вставить("Товар", ВыборкаСтрокТара.Товар + " (возвратная тара)"); Если ПараметрыПечати.ФлагПечатиМест Тогда ПараметрыПозиции.Вставить("КоличествоМест", 0); ПараметрыПозиции.Вставить("ЕдиницаИзмеренияМест", Справочники.ЕдиницыИзмерения.ПустаяСсылка()); КонецЕсли; ПараметрыПозиции.Вставить("Количество", ВыборкаСтрокТара.Количество); ПараметрыПозиции.Вставить("ЕдиницаИзмерения", ВыборкаСтрокТара.ЕдиницаИзмерения); ПараметрыПозиции.Вставить("Цена", ВыборкаСтрокТара.Цена); ПараметрыПозиции.Вставить("Сумма", ВыборкаСтрокТара.Сумма); Если ПараметрыПечати.ЭтоСкладНТТ Тогда Сумма = ВыборкаСтрокТара.Сумма; Иначе Сумма = ПолучитьСтоимостьТовара(ТаблицаСтоимости, ВыборкаСтрокТара); ПараметрыПозиции.Сумма = Сумма; КонецЕсли; СуммаИтого = СуммаИтого + Сумма; #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПозиции); #КонецЕсли Позиции.Добавить(ПараметрыПозиции); КонецЦикла; ПараметрыПечати.Вставить("Позиции", Позиции); ПараметрыПечати.Вставить("Всего", ОбщегоНазначения.ФорматСумм(СуммаИтого)); // Вывести Сумму прописью ПараметрыПечати.Вставить("ИтоговаяСтрока", "Всего наименований " + Ном + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаИтого, ВалютаПечати)); ПараметрыПечати.Вставить("СуммаПрописью", ОбщегоНазначения.СформироватьСуммуПрописью(СуммаИтого, ВалютаПечати)); #Если ВнешнееСоединение Тогда WEBПриложения.ПодготовитьСтруктуруДляВнешнегоСоединения(ПараметрыПечати); #КонецЕсли Возврат ПараметрыПечати; КонецФункции //ПолучитьДанныеДляПечатиСписанияТоваров() |
|||
25
ded20ded
16.01.13
✎
23:21
|
успел?
|
|||
26
DozaT
16.01.13
✎
23:22
|
да
|
|||
27
ded20ded
16.01.13
✎
23:23
|
(20) акт списания (8) Торг16
|
|||
28
DozaT
16.01.13
✎
23:25
|
такс. а в самой ТЧ документа колонка цена заполнена?
|
|||
29
ded20ded
16.01.13
✎
23:26
|
// Возвращает стоимость товара
// Функция ПолучитьСтоимостьТовара(Таблица, ТекСтрока) СтруктураПоиска = Новый Структура; СтруктураПоиска.Вставить("Номенклатура", ТекСтрока.Номенклатура); СтруктураПоиска.Вставить("Характеристика", ТекСтрока.Характеристика); Если ТекСтрока.ВестиПартионныйУчетПоСериям Тогда СтруктураПоиска.Вставить("Серия", ТекСтрока.Серия); Иначе СтруктураПоиска.Вставить("Серия", Справочники.СерииНоменклатуры.ПустаяСсылка()); КонецЕсли; СтруктураПоиска.Вставить("Качество", ТекСтрока.Качество); НаборСтрок = Таблица.НайтиСтроки(СтруктураПоиска); КолСписать = ТекСтрока.Количество; Стоимость = 0; Для Каждого Строка Из НаборСтрок Цикл Если КолСписать >= Строка.Количество Тогда Стоимость = Стоимость + Строка.Стоимость; КолСписать = КолСписать - Строка.Количество; Строка.Стоимость = 0; Строка.Количество = 0; Иначе Если Не Строка.Количество = 0 Тогда СумСписать = Окр(Строка.Стоимость * КолСписать / Строка.Количество * ТекСтрока.Коэффициент, 2, 1); Стоимость = Стоимость + СумСписать; Строка.Стоимость = Строка.Стоимость - СумСписать; Строка.Количество = Строка.Количество - КолСписать; Иначе Стоимость = Стоимость + Строка.Стоимость; Строка.Стоимость = 0; КонецЕсли; КонецЕсли; КонецЦикла; Возврат Стоимость; КонецФункции // ПолучитьСтоимостьПоПартиямТоваров() |
|||
30
ded20ded
16.01.13
✎
23:26
|
да заполнена но она не видема
|
|||
31
ded20ded
16.01.13
✎
23:26
|
с (20) печать идет
|
|||
32
ded20ded
16.01.13
✎
23:26
|
с ценой
|
|||
33
ded20ded
16.01.13
✎
23:28
|
ладно DozaT, спасибо за помощь завтра тему пну, у самого голова уже не варит
|
|||
34
DozaT
16.01.13
✎
23:29
|
посмотрите в макете эту область "СтрокаПервогоЛиста"
есть ли там параметр Цена |
|||
35
DozaT
16.01.13
✎
23:30
|
макет ТОРГ16
|
|||
36
DozaT
16.01.13
✎
23:31
|
должно выглядеть так <Цена>
|
|||
37
ded20ded
16.01.13
✎
23:31
|
есть цена в макете он только в общих лежит
|
|||
38
ded20ded
16.01.13
✎
23:32
|
только она Цена в СтрокаВторогоЛиста
|
|||
39
DozaT
16.01.13
✎
23:32
|
вот)
|
|||
40
ded20ded
16.01.13
✎
23:34
|
тут собака где изменить?
|
|||
41
ded20ded
16.01.13
✎
23:36
|
// Выводим многострочную часть докмента
ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста"); // Товары ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); Пока ВыборкаСтрокТовары.Следующий() Цикл |
|||
42
ded20ded
16.01.13
✎
23:38
|
тут вроде все верно
// Выводим многострочную часть докмента ОбластьМакета = Макет.ПолучитьОбласть("СтрокаВторогоЛиста"); // Товары ВыборкаСтрокТовары = Шапка.Товары.Выбрать(); Пока ВыборкаСтрокТовары.Следующий() Цикл Если НЕ ЗначениеЗаполнено(ВыборкаСтрокТовары.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Ном = Ном + 1; //Начинаем новую страницу, если предыдущая строка была последней на странице //или пора переносить последнюю строку на последнюю страницу с подвалом. ЦелаяСтраница = (СтрокШапки + Ном - 1) / СтрокНаСтранице; Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (Ном = КоличествоСтрок)) Тогда ИтогоСтоимостьПоСтранице = 0; НомерСтраницы = НомерСтраницы + 1; ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары); КоличествоМест = Формат(ВыборкаСтрокТовары.Количество, "ЧЦ=15; ЧДЦ=3"); Если ВыборкаСтрокТовары.КоличествоМест <> 0 И ЗначениеЗаполнено(ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование) Тогда КоличествоМест = КоличествоМест + Символы.ПС + " (" + Формат(ВыборкаСтрокТовары.КоличествоМест,"ЧЦ=15; ЧДЦ=0") + " " + ВыборкаСтрокТовары.ЕдиницаИзмеренияМестНаименование + ")"; КонецЕсли; ОбластьМакета.Параметры.КоличествоМест = КоличествоМест; ОбластьМакета.Параметры.ТоварНаименование = ВыборкаСтрокТовары.ТоварНаименование + ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары); МассаНетто = ВыборкаСтрокТовары.МассаОдногоМеста * ВыборкаСтрокТовары.КоличествоМест; ОбластьМакета.Параметры.МассаНетто = МассаНетто; ТабДокумент.Вывести(ОбластьМакета); только вот цену ни как не могу понять где выводят |
|||
43
ded20ded
16.01.13
✎
23:41
|
ВыборкаСтрокТовары.Стоимость и ВыборкаСтрокТовары.Цена в отладчике возращает 0
|
|||
44
DozaT
16.01.13
✎
23:45
|
Шапка = Запрос.Выполнить().Выбрать();
поставьте здесь точку останова. а лучше добавьте здесь строчку результатТЗ = Запрос.Выполнить().Выгрузить() |
|||
45
DozaT
16.01.13
✎
23:46
|
да выводится цена. что-то с результатом запроса. на этой строцке посмотрите, таблицузначений. заполнена ли там цена
|
|||
46
DozaT
16.01.13
✎
23:47
|
на выгрузить тоску останова поставьте
|
|||
47
DozaT
16.01.13
✎
23:49
|
все я спать. сегодня позже зайду
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |