|
Внешняя печатная форма Маршрутного листа Ут 11 | ☑ | ||
---|---|---|---|---|
0
Lessberg
07.08.16
✎
17:41
|
Добрый день! Делаю ВПФ для маршрутного листа без использования запросов.
Делаю все на основании СсылкаНаДокумент, соответственно имею в распоряжении все реквизиты документа и его таб.частей. В макет полностью используется реквизиты документа и реквизиты табличной части "Маршрут". Застрял на том, что в документе несколько табличных частей. При выводе строк таблицы "Маршрут" мне надо так же выводить документ основание. Он находится в другой табличной части "РаспоряжениЯ", под реквизитом РаяпоряжениЕ. В табличной части "Маршрут" есть реквизит "КлючСвязи". Он выдает информацию следующего рода "c656f00d-71b1-44da-ae21-73f223446100". Пробовал преобразовывать его в ГУИД и искать документ по гуид, но не находит объекты такие. В общем помогите пожалуйста разобраться, как в одной строке вывести данные из двух табличных частей одного документа. Спасибо! |
|||
1
Lessberg
07.08.16
✎
17:43
|
Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Макет"; Макет = ПолучитьМакет("Макет"); Заголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); Строка = Макет.ПолучитьОбласть("Строка"); //ЗАГОЛОВОК ДОКУМЕНТА ЯЗД = Заголовок.Параметры; ЯЗД.Заголовок = СсылкаНаДокумент; ТабличныйДокумент.Вывести(Заголовок); //ШАПКА ДОКУМЕНТА ЯШ = Шапка.Параметры; ЯШ.ТранспортноеСредство = СсылкаНаДокумент.ТранспортноеСредство; ЯШ.Водитель = СсылкаНаДокумент.Водитель; ЯШ.Склад = СсылкаНаДокумент.Склад; ЯШ.Приоритет = СсылкаНаДокумент.Приоритет; ЯШ.Экспедитор = СсылкаНаДокумент.КурьерЭкспедитор; ЯШ.НачалоРейсаПлан = СсылкаНаДокумент.ДатаВремяРейсаПланС; ЯШ.КонецРейсаПлан = СсылкаНаДокумент.ДатаВремяРейсаПланПо; ЯШ.НачалоРейсаФакт = СсылкаНаДокумент.ДатаВремяРейсаФактС; ЯШ.КонецРейсаФакт = СсылкаНаДокумент.ДатаВремяРейсаФактПо; ТабличныйДокумент.Вывести(Шапка); //СТРОКИ ТАБЛИЦЫ ЯС = Строка.Параметры; Для Каждого СтрокаТЧ Из СсылкаНаДокумент.Маршрут Цикл ЯС.Номер = СтрокаТч.НомерСтроки; ЯС.Адрес = СтрокаТЧ.Адрес; ЯС.Зона = СтрокаТЧ.Зона; ЯС.ВремяС = СтрокаТЧ.ВремяС; ЯС.ВремяПо = СтрокаТЧ.ВремяПо; ЯС.ДополнительнаяИнформация = СтрокаТЧ.ДополнительнаяИнформация; ТабличныйДокумент.Вывести(Строка); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции Вот как сейчас реализовано. Пока без вывода документа основания. |
|||
2
Звездец
07.08.16
✎
17:54
|
сформировать строку и вывести, можно прямо в макете, не понятно в чем проблема. Запросы не используешь по религиозным соображениям что ли?
|
|||
3
Lessberg
07.08.16
✎
18:02
|
https://pp.vk.me/c630027/v630027375/46b0c/Qj0lXD5HOIE.jpg
Колонки №,АДрес,Зона, ВРемяС,ВремяПО,ДопИнформация - Это табличная часть "Маршрут", документа "ЗаданиеНаПеревозку" Другие колонки - это ТабЧасть "Распоряжения". Я не пойму как мне в одной строке вывести данные из двух разных Таблиц документа. И более того, данные взаимосвязаны. |
|||
4
Lessberg
07.08.16
✎
18:03
|
Пример на изображении, это стандартная печатная форма.
Запросы не использую, потому что хочу без него сделать. |
|||
5
Звездец
07.08.16
✎
18:03
|
получай данные, склеивай в строку и выводи
или циклы ты еще не освоил так же как и запросы? |
|||
6
Звездец
07.08.16
✎
18:04
|
(4) когда захочешь с крыши прыгать мы это тоже должны оценить? методологически правильно получать данные запросом
|
|||
7
Chameleon1980
07.08.16
✎
18:04
|
само название реквизита ни о чем не подсказывает "КлючСвязи" ? вероятно это и есть связь между строками разных ТЧ.
Запросами их тащие |
|||
8
Lessberg
07.08.16
✎
18:13
|
(7) Так я пытался этот реквизит раскрутить. Значения выше приводил, которое реквизит дает. 36 символов. Пробовал получать ссылки по этик GUID. Но не находил объекты.
ЯС = Строка.Параметры; Для Каждого СтрокаТЧ Из СсылкаНаДокумент.Маршрут Цикл ЯС.Номер = СтрокаТч.НомерСтроки; ЯС.Адрес = СтрокаТЧ.Адрес; ЯС.Зона = СтрокаТЧ.Зона; ЯС.ВремяС = СтрокаТЧ.ВремяС; ЯС.ВремяПо = СтрокаТЧ.ВремяПо; ЯС.ДополнительнаяИнформация = СтрокаТЧ.ДополнительнаяИнформация; НовыйGUID = Новый УникальныйИдентификатор(СтрокаТЧ.КлючСвязи); ЯС.Заказ = Документы.ЗаказКлиента.ПолучитьСсылку(НовыйGUID); ЯС.Реализация = СтрокаТЧ.КлючСвязи; ТабличныйДокумент.Вывести(Строка); КонецЦикла; |
|||
9
Chameleon1980
07.08.16
✎
18:42
|
(8) а в запросе можно было соединение двух таблиц по этому реквизиту забабахать и получить по реквизиту этому из первой и второй таблицы нужные строки
|
|||
10
Chameleon1980
07.08.16
✎
18:55
|
(0) что-то я не нашел ни в ут 11.1 ни в ут 11.2 такого дока.
для интереса посмотреть хотел |
|||
11
Lessberg
07.08.16
✎
18:59
|
(10) Документ "ЗаданиеНаПеревозку" Есть как в Ут11.1 так и в 11.2
Да еще бы знать как там таблицы в запросе соединять. Одно дело простой запрос, а другое уже более сложный. Не вникал в суть пока. Первые шаги делаю, так то. |
|||
12
Chameleon1980
07.08.16
✎
19:00
|
(11) почитайте Е.А. Хрусталеву "Язык запросов".
на просторах есть немало видео по запросам. |
|||
13
Chameleon1980
07.08.16
✎
19:03
|
+(12) запросы вам все-равно на будущее нужны будут. Есть моменты где без них никак. И возьмите для себя (для изучения и отладок запросов) консоли запросов.
|
|||
14
Chameleon1980
07.08.16
✎
19:12
|
можно для начала так:
ВЫБРАТЬ ЗаданиеНаПеревозкуМаршрут.Ссылка КАК Ссылка, ЗаданиеНаПеревозкуМаршрут.Адрес КАК Адрес, ЗаданиеНаПеревозкуМаршрут.Зона КАК Зона, ЗаданиеНаПеревозкуМаршрут.ВремяС КАК ВремяС, ЗаданиеНаПеревозкуМаршрут.ВремяПо КАК ВремяПо, ЗаданиеНаПеревозкуРаспоряжения.Распоряжение КАК Распоряжение, ЗаданиеНаПеревозкуРаспоряжения.ПолучательОтправитель КАК ПолучательОтправитель, ЗаданиеНаПеревозкуРаспоряжения.Перевозчик КАК Перевозчик ИЗ Документ.ЗаданиеНаПеревозку.Распоряжения КАК ЗаданиеНаПеревозкуРаспоряжения ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаданиеНаПеревозку.Маршрут КАК ЗаданиеНаПеревозкуМаршрут ПО (ЗаданиеНаПеревозкуРаспоряжения.Ссылка = ЗаданиеНаПеревозкуМаршрут.Ссылка) И (ЗаданиеНаПеревозкуРаспоряжения.КлючСвязи = ЗаданиеНаПеревозкуМаршрут.КлючСвязи) ГДЕ ЗаданиеНаПеревозкуМаршрут.Ссылка = &Ссылка |
|||
15
Lessberg
07.08.16
✎
19:16
|
Спасибо за литературу, лишнем не будет! Понятно дело, что с запросами проще, тем более когда конструктор есть, которые и макет сразу сделает (параметры как минимум накидает).
В общем я бросил это дело и сделал иначе. Создал ВПФ на основе типовой печатной формы, разобрался что к чему. Так к слову заказ уже выводился. Мне всего то надо было приделать документ реализации, у которого основние заказ. Вот немного кода такого добавил и все заработало, осталось ток макет подправить. Реализация = Документы.РеализацияТоваровУслуг.НайтиПоРеквизиту("ЗаказКлиента",Выборка.Распоряжение); ЗаполняемаяОбласть.Параметры.Реализация = Реализация; Изначально почему с нуля решил все делать.. Думал проще с нуля все написать, чем разобраться в типовом коде( что и куда там), но оказалось иначе. Надо изучать запросы, чтобы с нуля делать самому :) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |