Имя: Пароль:
1C
1С v8
ПечатнаяФорма
0 Dmitriy1C_
Rookie
 
02.06.21
21:28
Есть документ ЗаявкаНаТранспорт. Нем есть реквизит НомерЗаказа, который ссылкается на документ с заказом
хочу сделать печатную форму
&НаСервере
Функция ТоварнаяНакладнаяНаСервере(Ссылка)
    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    Макет = Документы.ЗаявкаНаТранспорт.ПолучитьМакет("Макет");
    
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗаявкаНаТранспорт.Номер КАК Номер,
        |    ЗаявкаНаТранспорт.Дата КАК Дата,
        |    ЗаявкаНаТранспорт.Покупатель КАК Покупатель,
        |    ЗаявкаНаТранспорт.Покупатель.Телефон КАК Телефон,
        |    ЗаявкаНаТранспорт.Покупатель.Адрес КАК Адрес,
        |    ЗаявкаНаТранспорт.НомерЗаказа.Заказ.(
        |        НомерСтроки КАК НомерСтроки,
        |        Товар КАК Товар,
        |        Цена КАК Цена,
        |        Количество КАК Количество,
        |        Сумма КАК Сумма
        |    ) КАК НомерЗаказа,
        |    ЗаявкаНаТранспорт.НомерЗаказа.Итог КАК Итог
        |ИЗ
        |    Документ.ЗаявкаНаТранспорт КАК ЗаявкаНаТранспорт";
    
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    
    ОбластьШапка.Параметры.Номер = Выборка.Номер;
    ОбластьШапка.Параметры.Дата = Выборка.Дата;
    ОбластьШапка.Параметры.Покупатель = Выборка.Покупатель;
    ОбластьШапка.Параметры.Телефон = Выборка.Телефон;
    ОбластьШапка.Параметры.Адрес = Выборка.Адрес;
    ТабличныйДокумент.Вывести(ОбластьШапка);
    
    ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
    ТабличныйДокумент.Вывести(ОбластьШапкаТаблицы);
    
    ОбластьТаблица = Макет.ПолучитьОбласть("Таблица");
    
    Пока Выборка.Следующий() Цикл
        
        ОбластьТаблица.Параметры.НомерСтроки = Выборка.НомерСтроки;
        ОбластьТаблица.Параметры.Товар =  Выборка.Товар;
        ОбластьТаблица.Параметры.Цена = Выборка.Цена;
        ОбластьТаблица.Параметры.Количество = Выборка.Количество;
        ОбластьТаблица.Параметры.Сумма = Выборка.Сумма;
        ТабличныйДокумент.Вывести(ОбластьТаблица);
        
    КонецЦикла;
    
    ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
    ОбластьПодвал.Параметры.Итог = Выборка.Итог;
    ТабличныйДокумент.Вывести(ОбластьПодвал);
    
    Возврат ТабличныйДокумент;
    
КонецФункции

&НаКлиенте
Процедура ТоварнаяНакладная(Команда)
    ТаблДок = ТоварнаяНакладнаяНаСервере(Объект.Ссылка);
    ТаблДок.Показать("ЗаявкаНаТранспорт");
КонецПроцедуры
1 vicof
 
02.06.21
21:59
Делай, разрешаю
2 Chameleon1980
 
03.06.21
05:09
ммм. чтож. не возражаю.
3 Иванович Михаил
 
03.06.21
05:12
Можно.
4 Mankubus
 
03.06.21
06:42
1. не хватает условия в запросе. По всем документам выбираешь данные, а нужно только по тому который печатаем
2.

Выборка = Запрос.Выполнить().Выбрать();
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьШапка.Параметры.Номер = Выборка.Номер;

перед тем как использовать поля выборки нужно сделать Выборка.Следующий()
3. заполнение строк таблицы сделано не правильно. там будет еще одна выборка, а не та же самая что и для шапки
посмотри как сделано в типовых печатных формах.
5 Масянька
 
03.06.21
08:32
+(4) Если вилы читать книжки, или хотя СП, смотри в типовых. Там много чего есть.
6 ДенисЧ
 
03.06.21
08:34
(5) Ой... От кого я это вижу? )))
7 Масянька
 
03.06.21
09:09
(6) От меня.
Я и книжки читаю (в данный момент "Сердце хирурга"), и в СП заглядываю, и из типовых код дергаю. Там много чего есть...
А что?