|
внешняя печатная форма для требование-накладной | ☑ | ||
---|---|---|---|---|
0
NovichokAlena
21.08.15
✎
11:22
|
Здравствуйте, для внешней печатной формы нужно сделать колонки "остаток нзп", который берется из регистра накопления "материалы в производстве".
запрос добавила, параметры установила, но при печати ВПФ нужная колонка остается пустой. что еще нужно добавить? 1С:Предприятие 8.3, УПП 1.3 Функция Печать() Экспорт Если НЕ СсылкаНаОбъект.Проведен Тогда // Добавлен новый макет с дерективой не утверждено // Закоментировано предыдущия обработка в случее не проведенного документа //Предупреждение("Запрещена печать непроведенного документа"); //ТабДокумент = Новый ТабличныйДокумент; //Возврат ТабДокумент; КонецЕсли; ПараметрКоманды = Новый Массив; ПараметрКоманды.Добавить(СсылкаНаОбъект); МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(СсылкаНаОбъект); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("М11"); КоличествоЭкземпляров = 1; НаПринтер = Ложь; УниверсальныеМеханизмы.НапечататьДокумент(ПечатьМ11ТН(МассивОбъектов), КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект), СсылкаНаОбъект); КонецФункции Функция ПечатьМ11ТН(МассивОбъектов) Экспорт ТекстЗапроса_Шапка = "ВЫБРАТЬ | Ссылка.Номер КАК НомерДокумента, | Ссылка.Дата КАК ДатаДокумента, | Ссылка.Дата КАК ДатаСоставления, | Ссылка.Организация, | Ссылка.Склад, | Ссылка.ПодразделениеОрганизации КАК Подразделение | //ПОЛЕ_КорСчет, ВЫБОР КОГДА КОЛИЧЕСТВО(РАЗЛИЧНЫЕ СчетЗатрат) = 1 ТОГДА | //ПОЛЕ_КорСчет МИНИМУМ(СчетЗатрат) | //ПОЛЕ_КорСчет ИНАЧЕ """" КОНЕЦ КАК КоррСчет |ИЗ | Документ.ТребованиеНакладная КАК ТребованиеНакладная | |ГДЕ | ТребованиеНакладная.Ссылка = &ТекущийДокумент |//ПОЛЕ_КорСчет СГРУППИРОВАТЬ ПО Ссылка"; ТекстЗапроса_Материалы = "ВЫБРАТЬ | ТребованиеНакладная.Номенклатура, | ВЫРАЗИТЬ(ТребованиеНакладная.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК МатериалНаименование, | ТребованиеНакладная.Заказ, | ТребованиеНакладная.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование, | ТребованиеНакладная.ЕдиницаИзмерения.ЕдиницаПоКлассификатору.Код КАК ЕдиницаИзмеренияКод, | ТребованиеНакладная.Характеристика, | ТребованиеНакладная.Серия, | ТребованиеНакладная.Количество, | ТребованиеНакладная.Счет, | ТребованиеНакладная.НомерСтроки КАК НомерСтроки, | ВЫРАЗИТЬ(ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Стоимость, 0) * ТребованиеНакладная.Количество * ТребованиеНакладная.Коэффициент / ЕСТЬNULL(ТребованиеНакладная.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ТаблицаСебестоимостиОбороты.Количество, 1) КАК ЧИСЛО(15, 2)) КАК Сумма |ИЗ | (ВЫБРАТЬ | ТребованиеНакладная.Номенклатура КАК Номенклатура, | ТребованиеНакладная.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ТребованиеНакладная.Коэффициент КАК Коэффициент, | ТребованиеНакладная.Счет КАК Счет, | ТребованиеНакладная.Заказ КАК Заказ, | ТребованиеНакладная.ХарактеристикаНоменклатуры КАК Характеристика, | ТребованиеНакладная.СерияНоменклатуры КАК Серия, | СУММА(ТребованиеНакладная.Количество) КАК Количество, | МИНИМУМ(ТребованиеНакладная.НомерСтроки) КАК НомерСтроки | ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладная | ГДЕ | ТребованиеНакладная.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ТребованиеНакладная.Номенклатура, | ТребованиеНакладная.ЕдиницаИзмерения, | ТребованиеНакладная.Коэффициент, | ТребованиеНакладная.ХарактеристикаНоменклатуры, | ТребованиеНакладная.СерияНоменклатуры, | ТребованиеНакладная.Заказ, | ТребованиеНакладная.Счет) КАК ТребованиеНакладная | ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаСебестоимостиОбороты КАК ТаблицаСебестоимостиОбороты | ПО ТребованиеНакладная.Номенклатура = ТаблицаСебестоимостиОбороты.Номенклатура | И (ТаблицаСебестоимостиОбороты.Регистратор = &Регистратор) | И (ТребованиеНакладная.Характеристика = ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры | ИЛИ ТаблицаСебестоимостиОбороты.ХарактеристикаНоменклатуры = ""Не используется"") | И (ТребованиеНакладная.Серия = ТаблицаСебестоимостиОбороты.СерияНоменклатуры | ИЛИ ТаблицаСебестоимостиОбороты.СерияНоменклатуры = ""Не используется"") | И (ТребованиеНакладная.Счет = ТаблицаСебестоимостиОбороты.СчетУчета | ИЛИ ТаблицаСебестоимостиОбороты.СчетУчета = ""Не используется"") |ГДЕ | (ТаблицаСебестоимостиОбороты.Регистратор = &ТекущийДокумент | ИЛИ ТаблицаСебестоимостиОбороты.Регистратор ЕСТЬ NULL ) | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; ///// Запрос = Новый Запрос; Запрос.УстановитьПараметр("Дата", СсылкаНаОбъект.Дата); Запрос.УстановитьПараметр("Подразделение", СсылкаНаОбъект.Подразделение); Запрос.УстановитьПараметр("Затрата",СсылкаНаОбъект.Номенклатура); Запрос.УстановитьПараметр("Заказ",СсылкаНаОбъект.Материалы); Запрос.Текст = "ВЫБРАТЬ | МатериалыВПроизводствеОстатки.КоличествоОстаток КАК НЗП |ИЗ | РегистрНакопления.МатериалыВПроизводстве.Остатки( | &Дата, | Заказ = ЗНАЧЕНИЕ(Документ.ЗаказНаПроизводство.ПустаяСсылка) | И Затрата = &Затрата | И Подразделение = &Подразделение) КАК МатериалыВПроизводствеОстатки"; Результат = запрос.Выполнить(); /// ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ТребованиеНакладная_М11"; // Вывод заголовка // изменения по непроведенному документа Если НЕ СсылкаНаОбъект.Проведен Тогда Макет = ПолучитьМакет("М11_не_утвержден"); ИНАЧЕ Макет = ПолучитьМакет("М11"); КОНЕЦЕСЛИ; //Макет = ПолучитьМакет("М11"); //конец изменения ПервыйДокумент = Истина; Для Каждого Ссылка Из МассивОбъектов Цикл Если Не ПервыйДокумент Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", Ссылка); Запрос.Текст = ТекстЗапроса_Шапка; Если Ссылка.ОтражатьВБухгалтерскомУчете Тогда Запрос.Текст = СтрЗаменить(Запрос.Текст, "Документ.ТребованиеНакладная", "Документ.ТребованиеНакладная.Материалы"); Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ПОЛЕ_КорСчет", ""); Иначе Запрос.Текст = СтрЗаменить(Запрос.Текст,"Ссылка.", ""); Запрос.Текст = СтрЗаменить(Запрос.Текст,"ПодразделениеОрганизации", "Подразделение"); КонецЕсли; Шапка = Запрос.Выполнить().Выбрать(); Шапка.Следующий(); СтруктраПараметров = Новый Структура(); СтруктраПараметров.Вставить("ТекущийДокумент", Ссылка); СтруктраПараметров.Вставить("Регистратор", Ссылка); СтруктраПараметров.Вставить("НачГраница", Новый Граница(Ссылка.Дата, ВидГраницы.Включая)); ТекстЗапроса = ТекстЗапроса_Материалы; ТаблицаЗатрат = УправлениеЗапасами.ПолучитьТаблицуЗатратДляПечатиИЗаполненияДокументов(Ссылка, ТекстЗапроса, СтруктраПараметров); Если ТаблицаЗатрат = Неопределено Тогда Продолжить; КонецЕсли; Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Заголовок = "ТРЕБОВАНИЕ-НАКЛАДНАЯ № " + Строка(Шапка.НомерДокумента); Область.Параметры.Заполнить(Шапка); Область.Параметры.ПредставлениеПодразделения = Ссылка.Подразделение; ФИООтветственного = СсылкаНаОбъект.Ответственный; Область.Параметры.ФИООтветственного = ФИООтветственного; СведенияОбОрганизации = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.ДатаДокумента); ТабДокумент.Вывести(Область); Для Каждого ВыборкаПоСтрокам Из ТаблицаЗатрат Цикл Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Заполнить(ВыборкаПоСтрокам); Область.Параметры.ДокЗаказ = ?(ЗначениеЗаполнено(ВыборкаПоСтрокам.Заказ),"№" + ОбщегоНазначения.ПолучитьНомерНаПечать(ВыборкаПоСтрокам.Заказ) + " от " + Формат(ВыборкаПоСтрокам.Заказ.Дата,"ДЛФ=D"), ""); Область.Параметры.Цена = ?( ВыборкаПоСтрокам.Количество = 0, ВыборкаПоСтрокам.Сумма, Окр(ВыборкаПоСтрокам.Сумма / ВыборкаПоСтрокам.Количество, 2, 1)); Область.Параметры.МатериалНаименование = СокрЛП(ВыборкаПоСтрокам.МатериалНаименование);// + ФормированиеПечатныхФормСервер.ПредставлениеСерий(ВыборкаПоСтрокам); ТабДокумент.Вывести(Область); КонецЦикла; Область = Макет.ПолучитьОбласть("Подвал"); ТабДокумент.Вывести(Область); //УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Ссылка); КонецЦикла; Возврат ТабДокумент; КонецФункции // ПечатьМ11() |
|||
1
Апош
21.08.15
✎
11:26
|
например, параметр в ячейку макета
|
|||
2
Альбатрос
21.08.15
✎
11:27
|
Если запрос возвращает данные, то проверь, что имя поля в запросе совпадает с именем параметра в макете. Это если вывод вот здесь происходит:
Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Заполнить(ВыборкаПоСтрокам); |
|||
3
NovichokAlena
21.08.15
✎
11:30
|
(1) параметр в ячейке макета есть
|
|||
4
NovichokAlena
21.08.15
✎
11:33
|
(2)вот я и не могу понять, где это вывод должен происходить..
в области "строка"..но как прописать не знаю |
|||
5
Галахад
гуру
21.08.15
✎
11:33
|
Результат = запрос.Выполнить();
Эта вижу, а где это используется не вижу. |
|||
6
Альбатрос
21.08.15
✎
11:35
|
(4) Вот здесь: Область.Параметры.Заполнить(ВыборкаПоСтрокам);
Заполнение параметров макета происходит из выборки запроса по тем полям, где совпали имена. |
|||
7
Альбатрос
21.08.15
✎
11:39
|
А, понятно... ты просто написала свой запрос никак не связав его с основным =))))
|
|||
8
NovichokAlena
21.08.15
✎
11:41
|
(7) ну как бы да и поэтому прошу помочь объяснить как это сделать
|
|||
9
Альбатрос
21.08.15
✎
11:43
|
(8) Взять свой свеженаписанный шедевр и связать с основным текстом запроса левым соединением по номенклатуре и подразделению
|
|||
10
Альбатрос
21.08.15
✎
11:50
|
+) Ты короче попробуй и выложи текст запроса сюда. Мы тут поможем, на ошибки укажем.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |