|
Помогите с печатной формой!!! | ☑ | ||
---|---|---|---|---|
0
Wirtox
06.12.12
✎
11:00
|
Получил задание нужно сделать два макета для документа РасходнаяНакладная :
1 макет нужно было сделать в конструкторе макетов, а второй нужно сделать на основе первого макета только добавить колонку остаток на складе. (Остаток на складе рассчитывается из регистра накоплений ОстаткиТоваров) Вот код Процедура Печать(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(Печать) Макет = Документы.РасходнаяНакладная.ПолучитьМакет("Печать"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладная.Дата, | РасходнаяНакладная.Номер, | РасходнаяНакладная.Организация, | РасходнаяНакладная.Склад, | РасходнаяНакладная.ТаблРасходнаяНакладная.( | НомерСтроки, | Номенклатура, | Серия, | ЕдиницыИзмерения, | Количество | ) |ИЗ | Документ.РасходнаяНакладная КАК РасходнаяНакладная |ГДЕ | РасходнаяНакладная.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТаблРасходнаяНакладнаяШапка = Макет.ПолучитьОбласть("ТаблРасходнаяНакладнаяШапка"); ОбластьТаблРасходнаяНакладная = Макет.ПолучитьОбласть("ТаблРасходнаяНакладная"); Подвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьТаблРасходнаяНакладнаяШапка); ВыборкаТаблРасходнаяНакладная = Выборка.ТаблРасходнаяНакладная.Выбрать(); Пока ВыборкаТаблРасходнаяНакладная.Следующий() Цикл ОбластьТаблРасходнаяНакладная.Параметры.НомерСтроки = ВыборкаТаблРасходнаяНакладная.НомерСтроки; ОбластьТаблРасходнаяНакладная.Параметры.Номенклатура = ВыборкаТаблРасходнаяНакладная.Номенклатура; ОбластьТаблРасходнаяНакладная.Параметры.Серия = ВыборкаТаблРасходнаяНакладная.Серия; ОбластьТаблРасходнаяНакладная.Параметры.ЕдиницыИзмерения = ВыборкаТаблРасходнаяНакладная.ЕдиницыИзмерения; ОбластьТаблРасходнаяНакладная.Параметры.Количество = ВыборкаТаблРасходнаяНакладная.Количество; Для Каждого ТекСтр Из Ссылка Цикл ТекНоменклатура = Ссылка.ТаблРасходнаяНакладная.Номенклатура; ТекКоличество = Ссылка.ТаблРасходнаяНакладная.Количество; Запрос = новый Запрос("ВЫБРАТЬ |ОстаткиТоваровОстатки.КоличествоОстаток, |ОстаткиТоваровОстатки.Номенклатура.Наименование |ИЗ |РегистрНакопления.ОстаткиТоваров.Остатки(, ) КАК ОстаткиТоваровОстатки |ГДЕ |ОстаткиТоваровОстатки.Номенклатура.Ссылка = &Сылка"); Запрос.УстановитьПараметр("Сылка", ТекНоменклатура); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда КолОст = Выборка.КоличествоОстаток - ТекКоличество; КонецЕсли КонецЦикла; ОбластьТаблРасходнаяНакладная.Параметры.Остаток = КолОст; ТабДок.Вывести(ОбластьТаблРасходнаяНакладная); //ОбластьТаблРасходнаяНакладная.Параметры.Заполнить(ВыборкаТаблРасходнаяНакладная); //ТабДок.Вывести(ОбластьТаблРасходнаяНакладная, ВыборкаТаблРасходнаяНакладная.Уровень()); КонецЦикла; Подвал.Параметры.Заполнить(Выборка); ТабДок.Вывести(Подвал); ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры |
|||
1
Undefined vs NULL
06.12.12
✎
11:01
|
(0) запрос в тройном цикле это клево
|
|||
2
Cube
06.12.12
✎
11:01
|
(0) Где вопрос?
|
|||
3
butterbean
06.12.12
✎
11:01
|
(0) молодец, теперь вставь этот код в обработку печати
|
|||
4
YHVVH
06.12.12
✎
11:01
|
(0) тебя сейчас порвут за запрос в цикле
|
|||
5
Wirtox
06.12.12
✎
11:01
|
вот на что ругается
{Документ.РасходнаяНакладная.МодульМенеджера(55)}: Поле объекта не обнаружено (ТаблРасходнаяНакладная) ТекНоменклатура = Ссылка.ТаблРасходнаяНакладная.Номенклатура; |
|||
6
Wirtox
06.12.12
✎
11:03
|
как это исправить?
|
|||
7
Cube
06.12.12
✎
11:03
|
(5) Красавчик, чо:
Для Каждого ТекСтр Из Ссылка Цикл... А потом ещё и запрос... Расстрелять!) |
|||
8
Wobland
06.12.12
✎
11:03
|
(6) мозгом!!!
|
|||
9
Undefined vs NULL
06.12.12
✎
11:04
|
дайте мне это развидеть!
|
|||
10
YHVVH
06.12.12
✎
11:04
|
(8) а если его нет?
|
|||
11
Wirtox
06.12.12
✎
11:05
|
а если серьезно просто очень нужно
|
|||
12
Cube
06.12.12
✎
11:07
|
(11) Если серьезно:
Для начала, нужно написать ОДИН нормальный запрос, который соберет все необходимые данные. Потом просто вывести эти данные в печатную форму. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |