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