|
Обращение к полям ФормаДокумента из печатной формы. | ☑ | ||
---|---|---|---|---|
0
LastSoldier
24.09.14
✎
14:33
|
Всем привет!
1С 8.3.5.1119 УТ 11.1.7.56 В документ "Сборка товара" были добавлены два поля "Цена" и "Сумма" и создано поле надписи, которое берет сумму всех всего товара, путь к данным этого поле "Объект.Товары.Итогол_Сумма". В таблицу товары добавлены "ол_РозничнаяЦена" и "ол_Сумма". Данные "ол_РозничнаяЦена" и "ол_Сумма" так же переносятся в печатную форму, а вот не могу перенести сумму документа в печатную форму, добавлял в "Функция ПечатьСборкаТоваров(МассивОбъектов, ОбъектыПечати)" в запрос строку "Итогол_Сумма КАК ол_СуммаДокумента," но он пишет что поле "Итогол_Сумма" не найдено, как к нему обратиться чтобы получить сумму? |
|||
1
LastSoldier
24.09.14
✎
14:33
|
Функция ПечатьСборкаТоваров(МассивОбъектов, ОбъектыПечати)
ДопКолонка = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки(); ВыводитьДопКолонку = ЗначениеЗаполнено(ДопКолонка); ЗапросПоДокументам = Новый Запрос; ЗапросПоДокументам.УстановитьПараметр("МассивОбъектов", МассивОбъектов); ЗапросПоДокументам.Текст = " |ВЫБРАТЬ | Документ.Ссылка КАК Ссылка, | Документ.Номер КАК Номер, | Документ.Дата КАК Дата, | Документ.Склад КАК Склад, | Документ.Организация КАК Организация, | ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление, | ПРЕДСТАВЛЕНИЕ(Документ.Организация) КАК ОрганизацияПредставление, | Документ.Организация.Префикс КАК Префикс, | ПРЕДСТАВЛЕНИЕ(Документ.Ответственный) КАК ОтветственныйПредставление, | " + ?(ВыводитьДопКолонку, "Документ.Номенклатура." + ДопКолонка +" КАК ДопКолонка,", "") + " | Документ.Номенклатура КАК Номенклатура, | Документ.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление, | Документ.Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление, | | ВЫБОР КОГДА Документ.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка) ТОГДА | ПРЕДСТАВЛЕНИЕ(Документ.Номенклатура.ЕдиницаИзмерения) | ИНАЧЕ | ПРЕДСТАВЛЕНИЕ(Документ.Упаковка) | КОНЕЦ КАК Упаковка, | Документ.КоличествоУпаковок КАК Количество, | Документ.ТипОперации КАК ТипОперации, | Документ.Товары.( | | НомерСтроки КАК НомерСтроки, | " + ?(ВыводитьДопКолонку, "Номенклатура." + ДопКолонка +" КАК ДопКолонка,", "") + " | Номенклатура КАК Номенклатура, | Номенклатура.НаименованиеПолное КАК НоменклатураПредставление, | Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление, | Характеристика КАК Характеристика, | ВЫБОР | КОГДА Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка) ТОГДА | ПРЕДСТАВЛЕНИЕССЫЛКИ(Номенклатура.ЕдиницаИзмерения) | ИНАЧЕ | ПРЕДСТАВЛЕНИЕССЫЛКИ(Упаковка) | КОНЕЦ КАК Упаковка, | КоличествоУпаковок КАК Количество, | //#Область ол_ЗаполнениеРозничнойЦены | Итогол_Сумма КАК ол_СуммаДокумента, | ол_РозничнаяЦена КАК ол_Цена, | ол_Сумма КАК ол_Сумма //#КонецОбласти | | ) КАК ТаблицаТовары |ИЗ | Документ.СборкаТоваров КАК Документ | |ГДЕ | Документ.Ссылка В(&МассивОбъектов) |УПОРЯДОЧИТЬ ПО | Дата, Ссылка, НомерСтроки |"; РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс"); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СборкаТоваров"; Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.СборкаТоваров.ПФ_MXL_СборкаТоваров"); Если ВыводитьДопКолонку Тогда ОбластьШапки = "ШапкаСДопКолонкой"; ОбластьСтроки = "СтрокаСДопКолонкой"; Иначе ОбластьШапки = "ШапкаТаблицы"; ОбластьСтроки = "Строка"; Конецесли; ПервыйДокумент = Истина; ВыборкаДокументы = ЗапросПоДокументам.Выполнить().Выбрать(); Пока ВыборкаДокументы.Следующий() Цикл НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1; Если Не ПервыйДокумент Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; // Вывод заголовка. ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ВыборкаДокументы); ОбластьМакета = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, Строка(ВыборкаДокументы.ТипОперации)); ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДокумент, Макет, ОбластьМакета, ВыборкаДокументы.Ссылка); ТабДокумент.Вывести(ОбластьМакета); // Вывод комплекта. Если ВыводитьДопКолонку Тогда ОбластьМакета = Макет.ПолучитьОбласть("КомплектКод"); ОбластьМакета.Параметры.ДопКолонка = ДопКолонка + ":"; ОбластьМакета.Параметры.ЗначениеДопКолонки = ВыборкаДокументы.ДопКолонка; ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета = Макет.ПолучитьОбласть("Комплект"); ОбластьМакета.Параметры.Комплект = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати( ВыборкаДокументы.НоменклатураПредставление, ВыборкаДокументы.ХарактеристикаПредставление); ОбластьМакета.Параметры.Количество = Строка(ВыборкаДокументы.Количество) + " " + ВыборкаДокументы.Упаковка; ТабДокумент.Вывести(ОбластьМакета); // Вывод шапки отчета. ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки); Если ВыводитьДопКолонку Тогда ОбластьМакета.Параметры.ДопКолонка = ДопКолонка; КонецЕсли; ТабДокумент.Вывести(ОбластьМакета); // Вывод строк документа. ВыборкаПоСтрокам = ВыборкаДокументы.ТаблицаТовары.Выбрать(); Пока ВыборкаПоСтрокам.Следующий() Цикл ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки); ОбластьМакета.Параметры.Заполнить(ВыборкаПоСтрокам); ОбластьМакета.Параметры.НоменклатураПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати( ВыборкаПоСтрокам.НоменклатураПредставление, ВыборкаПоСтрокам.ХарактеристикаПредставление); ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; #Область ол_ЗаполнениеИтогов // Вывод итогов. ол_ОбластьМакета = Макет.ПолучитьОбласть("ол_Итого"); ол_ОбластьМакета.Параметры.ол_СуммаДокумента = Формат(ВыборкаДокументы.ол_СуммаДокумента); ТабДокумент.Вывести(ол_ОбластьМакета); #КонецОбласти // Вывод подписей. ОбластьМакета = Макет.ПолучитьОбласть("Подписи"); ОбластьМакета.Параметры.ОтветственныйПредставление = "/"+ ВыборкаДокументы.ОтветственныйПредставление + "/"; ТабДокумент.Вывести(ОбластьМакета); УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументы.Ссылка); КонецЦикла; Возврат ТабДокумент; КонецФункции |
|||
2
LastSoldier
24.09.14
✎
14:35
|
||||
3
Wobland
24.09.14
✎
14:36
|
ТЧ.Итог("ол_Сумма")
или СУММА(ол_Сумма) в запросе |
|||
4
Wobland
24.09.14
✎
14:37
|
||||
5
LastSoldier
24.09.14
✎
14:42
|
Так через "ЗапросПоДокументам" не надо обращаться?
Обратиться перед? #Область ол_ЗаполнениеИтогов // Вывод итогов. ол_ОбластьМакета = Макет.ПолучитьОбласть("ол_Итого"); ол_ОбластьМакета.Параметры.ол_СуммаДокумента = Формат(ВыборкаДокументы.ол_СуммаДокумента); ТабДокумент.Вывести(ол_ОбластьМакета); #КонецОбласти |
|||
6
LastSoldier
24.09.14
✎
14:53
|
Если прописывать в запросе так, то вылетает куча ошибок
| Итог("ол_Сумма") КАК ол_СуммаДокумента, |
|||
7
Wobland
24.09.14
✎
14:54
|
(6) а что за Итог()?
|
|||
8
LastSoldier
24.09.14
✎
15:01
|
Попробовал так СУММА(ол_Сумма), пишет {Документ.СборкаТоваров.МодульМенеджера(2986)}: Ошибка при вызове метода контекста (Выполнить)
ВыборкаДокументы = ЗапросПоДокументам.Выполнить().Выбрать(); по причине: {(26, 3)}: Поле не входит в группу "НомерСтроки" <<?>>НомерСтроки КАК НомерСтроки, |
|||
9
barrgand
24.09.14
✎
15:12
|
(8) Оставь запрос. не твое это. Используй 1-ое из (3)
|
|||
10
LastSoldier
24.09.14
✎
15:45
|
Первое то же не получилось (
|
|||
11
Wobland
24.09.14
✎
15:46
|
(10) почему?
|
|||
12
LastSoldier
24.09.14
✎
16:30
|
А как в моем варианте добавить это поле в групировку "НомерСтроки"?
Чтобы не было этой ошибки "Поле не входит в группу "НомерСтроки"" |
|||
13
LastSoldier
29.09.14
✎
11:10
|
(11) Так как вы писали не получилось.
Но вот как я написал ол_ОбластьМакета.Параметры.ол_СуммаДокумента =ВыборкаДокументы.Ссылка.Товары.итог("ол_Сумма"); и это рабочий вариант вместо этого ол_ОбластьМакета.Параметры.ол_СуммаДокумента = Формат(ВыборкаДокументы.ол_СуммаДокумента); |
|||
14
Ерепень
29.09.14
✎
11:17
|
не за что
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |