|
Создание печатной формы | ☑ | ||
---|---|---|---|---|
0
ppkmlite
21.11.14
✎
22:51
|
Здравствуйте. Создаю печатную форму(акт). На макете должен выбираться контрагент, договор(либо иное основание возникновения обязательств) и в табличной части
все документы оказания услуг, товаров , работ по этому договору. Я сделала так Процедура АктНажатие(Элемент) ТабДок = ПечатьАкта(ТабДок); ТабДок.ТолькоПросмотр = Истина; КонецПроцедуры Функция ПечатьАкта(ТабДок); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = Справочники.Договоры.ПолучитьМакет("Макет1"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МЗ_Покупка.Материалы.( | Ссылка КАК Материал, | ПРЕДСТАВЛЕНИЕ(МЗ_Покупка.Материалы.Ссылка), | Количество, | ЕдиницаИзмерения, | ПРЕДСТАВЛЕНИЕ(МЗ_Покупка.Материалы.ЕдиницаИзмерения), | Сумма | ), |ИЗ | Документ.МЗ_ПокупкаКАК МЗ_Покупка, Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); МатериалыОбластьШапкаТаблицы = Макет.ПолучитьОбласть("МатериалыШапкаТаблицы"); МатериалыОбластьПодвалТаблицы = Макет.ПолучитьОбласть("МатериалыПодвалТаблицы"); МатериалыОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("МатериалыДетали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); ТабДок.НачатьГруппуСтрок(); ТабДок.Вывести(МатериалыОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); МатериалыВыборкаДетальныеЗаписи = ВыборкаДетальныеЗаписи.Материалы.Выбрать(); Пока МатериалыВыборкаДетальныеЗаписи.Следующий() Цикл МатериалыОбластьДетальныхЗаписей.Параметры.Заполнить(МатериалыВыборкаДетальныеЗаписи); ТабДок.Вывести(МатериалыОбластьДетальныхЗаписей, МатериалыВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.Вывести(МатериалыОбластьПодвалТаблицы); ТабДок.Вывести(КапвложенияОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); Как мне в запросе прописать, что нужно отбирать только документы по выбранному договору в шапке? |
|||
1
ppkmlite
21.11.14
✎
22:57
|
Помогите новичку разобраться
|
|||
2
marvak
21.11.14
✎
22:58
|
(0)
А в каком месте вызываешь АктНажатие(Элемент)? Это документ, внешняя обработка или что? |
|||
3
marvak
21.11.14
✎
22:58
|
(2)+
То есть из чьей формы? |
|||
4
stix2010
21.11.14
✎
23:04
|
ужас вот они "нетлёнщики":
ГДЕ Документ.МЗ_ПокупкаКАК.Договор= &Договор |
|||
5
stix2010
21.11.14
✎
23:04
|
только выборку по табличной части не так пишут
|
|||
6
stix2010
21.11.14
✎
23:05
|
ошибся ГДЕ Документ.МЗ_Покупка.Договор= &Договор, если в документе реквизит договор
|
|||
7
marvak
21.11.14
✎
23:05
|
аа, ну видимо это обработка, есть реквизиты Договор, Контрагент.
Тогда видимо так ВЫБРАТЬ МЗ_ПокупкаМатериалы.Ссылка КАК Материал, ПРЕДСТАВЛЕНИЕ(МЗ_ПокупкаМатериалы.Ссылка), МЗ_ПокупкаМатериалы.ЕдиницаИзмерения, ПРЕДСТАВЛЕНИЕ(МЗ_ПокупкаМатериалы.ЕдиницаИзмерения, МЗ_ПокупкаМатериалы.Количество, МЗ_ПокупкаМатериалы.Сумма ИЗ Документ.МЗ_Покупка.Материалы КАК МЗ_ПокупкаМатериалы ГДЕ Документ.МЗ_Покупка.Договор = &Договор А параметр Договор устанавливаешь в реквизит обработки Договор |
|||
8
marvak
21.11.14
✎
23:06
|
(7)+
вернее так ГДЕ МЗ_ПокупкаМатериалы.Ссылка.Договор = &Договор |
|||
9
ppkmlite
22.11.14
✎
11:32
|
Акт нажатие-это кнопка на форме элемента справочника Договоры.
|
|||
10
ppkmlite
22.11.14
✎
13:46
|
Нужно, чтобы на форме элемента справочника договоры была кнопка(акты), при нажатии на которую выходили все документы выполненных работ, оказанных услуг по этому договору.
Создала запрос, в котором пытаюсь обратиться(сделать отбор по договору) |ГДЕ | МЗ_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3 | И ОС_Покупка.СубконтоСчетКредита3 = &СубконтоСчетКредита3 | И УслугиСтороннихОрганизаций.Договор = &Договор"; Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка); Запрос.УстановитьПараметр("Договор",ссылка); //Запрос.УстановитьПараметр("" Результат = Запрос.Выполнить().Выбрать(); Но получается я в отборе обращаюсь к договорам в документе покупка, акты, а мне нужно к договору, на форме которого я нахожусь, ?!Как праввильно сделать?!! |
|||
11
ppkmlite
23.11.14
✎
21:40
|
Продолжаю делать печатную форму на форме элемента справочника договоры.
Переделала запрос, вместо соединеия, сделала объединение,отладила в консоли,выводит наименования услуг, ос,мз. Как мне на макет вывести наименование договора, то есть как мне к нему обратиться, если я нахожусь в модуле, на форме самого этого договора? Мне в запросе его выбирать или же создавать новую переменную? Подскажите. Функция ПечатьАкта(ТабДок) Экспорт //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Макет = Справочники.Договоры.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |УслугиОказанныеУслуги.Номенклатура, |УслугиОказанныеУслуги.ЕдиницаИзмерения, |УслугиОказанныеУслуги.Количество, |УслугиОказанныеУслуги.Сумма, |NULL КАК ВнеоборотныйАктив |ИЗ |Документ.УслугиОказанные.Услуги КАК УслугиОказанныеУслуги |ГДЕ |УслугиОказанныеУслуги.СубконтоСчетКредита3 = УслугиОказанныеУслуги.СубконтоСчетКредита3 |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ |МЗ_ПокупкаМатериалы.Номенклатура, |МЗ_ПокупкаМатериалы.ЕдиницаИзмерения, |МЗ_ПокупкаМатериалы.Количество, |МЗ_ПокупкаМатериалы.Сумма, |NULL |ИЗ |Документ.МЗ_Покупка.Материалы КАК МЗ_ПокупкаМатериалы |ГДЕ |МЗ_ПокупкаМатериалы.Ссылка.СубконтоСчетКредита3 = МЗ_ПокупкаМатериалы.Ссылка.СубконтоСчетКредита3 |ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ |NULL, |NULL, |ОС_ПокупкаКапвложения.Количество, |ОС_ПокупкаКапвложения.Сумма, |ОС_ПокупкаКапвложения.ВнеоборотныйАктив |ИЗ |Документ.ОС_Покупка.Капвложения КАК ОС_ПокупкаКапвложения |ГДЕ |ОС_ПокупкаКапвложения.Ссылка.СубконтоСчетКредита3 = ОС_ПокупкаКапвложения.Ссылка.СубконтоСчетКредита3 "; Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка); Запрос.УстановитьПараметр("СубконтоСчетКредита3",ссылка); Запрос.УстановитьПараметр("СубконтоСчетКредита3",Ссылка); //Запрос.УстановитьПараметр("ДоговорСпр",ссылка); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ТабДок.НачатьАвтогруппировкуСтрок(); ТабДок.НачатьГруппуСтрок(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); ТабДок.Вывести(ОбластьПодвал); //ТабДок.НачатьАвтогруппировкуСтрок(); //ТабДок.Вывести(ОбластьДетальныхЗаписей); //ОбластьЗаголовок.Параметры.Заполнить(ВыборкаДетальныеЗаписи); //ТабДок.Вывести(ОбластьШапкаТаблицы); КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок(); Возврат ТабДок; КонецФункции |
|||
12
marvak
23.11.14
✎
22:58
|
(11)
Договор вытаскивается через "Ссылка". Наименование договора через "Ссылка.Наименование". Данный договор должен быть записан, чтобы ссылка была непустой. Вообще тебе следует все таки немного получше освоить предмет. А то ответ на твой вроде бы простой вопрос может вылиться в целую лекцию по основам 1С. А тут так не принято. :) |
|||
13
Cyberhawk
23.11.14
✎
23:03
|
Без фото не взлетит
|
|||
14
ppkmlite
24.11.14
✎
13:33
|
Хорошо, спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |