|
Добавление столбца в печатную форму | ☑ | ||
---|---|---|---|---|
0
neo-55555
22.04.15
✎
08:31
|
Доброе утро, друзья. Помогите, пожалуйста,разобраться с проблемой.
В Маршрутных листах отображается состояние накладной "Доставлено" и т.д. Хотел бы это выгружать в печатную форму. Написал код, не пойму в чем ошибка: Функция Печать() Экспорт Если не СсылкаНаОбъект.Проведен Тогда ВызватьИсключение "Складские накладные нельзя печатать для непроведенного документа"; КонецЕсли; Макет = ПолучитьМакет("Макет"); Запрос = Новый Запрос( "ВЫБРАТЬ | МаршрутныйЛистСостав.Документ.Контрагент КАК Контрагент, | МаршрутныйЛистСостав.Документ КАК Накладная, | МаршрутныйЛистСостав.Документ КАК Состояние |ИЗ | Документ.МаршрутныйЛист.Состав КАК МаршрутныйЛистСостав |ГДЕ | МаршрутныйЛистСостав.Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект); Макет = ПолучитьМакет("Макет"); Таб = Новый ТабличныйДокумент; Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Номер = СсылкаНаОбъект.Номер; Область.Параметры.Дата = Формат(СсылкаНаОбъект.Дата,"ДЛФ=D"); Область.Параметры.Водитель = СсылкаНаОбъект.Водитель.Наименование+" ____________________________________/подпись/"; Таб.Вывести(Область); Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Состояние = СсылкаНаОбъект.Состояние; Выборка = Запрос.Выполнить().Выбрать(); Ном = 1; Пока Выборка.Следующий() Цикл Область.Параметры.Заполнить(Выборка); Область.Параметры.Ном = Ном; Ном = Ном+1; Таб.Вывести(Область); КонецЦикла; Возврат Таб; КонецФункции |
|||
1
Вася Чез
22.04.15
✎
08:32
|
(0) а в чём ошибка?
|
|||
2
Остап Сулейманович
22.04.15
✎
08:33
|
(0) "Написал код, не пойму в чем ошибка" А кто сказал, что в коде ошибка?
|
|||
3
neo-55555
22.04.15
✎
08:33
|
состояние в печатной форме пустое. Он не берет его из маршрутного листа. Не пойму почему
|
|||
4
neo-55555
22.04.15
✎
08:35
|
Вот я и не знаю в чем проблема, помогите разобраться. Плиз
|
|||
5
Остап Сулейманович
22.04.15
✎
08:36
|
(3) В макете поле "Состояние" в какой секции? "Строка" или "Шапка"?
|
|||
6
Вася Чез
22.04.15
✎
08:36
|
(3) запрос выбирает состояния? поюзай консоль запросов и посмотри выборку, ну или в коде отладчиком глянь
|
|||
7
neo-55555
22.04.15
✎
08:37
|
В макете "Состояние" в секции Строка
|
|||
8
Остап Сулейманович
22.04.15
✎
08:37
|
(6) У него каша в выводе областей макета. А не в запросе.
|
|||
9
ILM
гуру
22.04.15
✎
08:38
|
Исправь в запросе
| МаршрутныйЛистСостав.Состояние КАК Состояние |
|||
10
ILM
гуру
22.04.15
✎
08:39
|
| МаршрутныйЛистСостав.Ссылка.Состояние КАК Состояние
Вернее вот так |
|||
11
Остап Сулейманович
22.04.15
✎
08:40
|
(9) Да. Точно.
|
|||
12
neo-55555
22.04.15
✎
08:41
|
Всё равно "Состояние" пустое значение выдает
|
|||
13
Вася Чез
22.04.15
✎
08:45
|
(12) как вы так код пишите? не проверили запрос и сразу пустой результат суете в макет. Накладная тоже пустое поле?
|
|||
14
neo-55555
22.04.15
✎
08:50
|
"Накладная" выходит нормально. Т.е. список накладных, содержащий маршрутный лист
|
|||
15
Вася Чез
22.04.15
✎
08:50
|
(14) а какой тип у Состояния? строка?
|
|||
16
neo-55555
22.04.15
✎
08:52
|
Да, строка
|
|||
17
neo-55555
22.04.15
✎
09:11
|
А что в Макете может быть не так? Если код верный
|
|||
18
surpriz
22.04.15
✎
09:11
|
В запросе выьираешь состояние из табличной части. Дальше: сначала устанавливаешь состояние из документа:
"Область.Параметры.Состояние = СсылкаНаОбъект.Состояние; " А потом затираеши это состояние текстом "Область.Параметры.Заполнить(Выборка); " |
|||
19
neo-55555
22.04.15
✎
09:20
|
В итоге код получился:
Функция Печать() Экспорт Если не СсылкаНаОбъект.Проведен Тогда ВызватьИсключение "Складские накладные нельзя печатать для непроведенного документа"; КонецЕсли; Макет = ПолучитьМакет("Макет"); Запрос = Новый Запрос( "ВЫБРАТЬ | МаршрутныйЛистСостав.Документ.Контрагент КАК Контрагент, | МаршрутныйЛистСостав.Документ КАК Накладная, | МаршрутныйЛистСостав.Ссылка.Состояние КАК Состояние |ИЗ | Документ.МаршрутныйЛист.Состав КАК МаршрутныйЛистСостав |ГДЕ | МаршрутныйЛистСостав.Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект); Макет = ПолучитьМакет("Макет"); Таб = Новый ТабличныйДокумент; Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Номер = СсылкаНаОбъект.Номер; Область.Параметры.Дата = Формат(СсылкаНаОбъект.Дата,"ДЛФ=D"); Область.Параметры.Водитель = СсылкаНаОбъект.Водитель.Наименование+" ____________________________________/подпись/"; Таб.Вывести(Область); Область = Макет.ПолучитьОбласть("Строка"); Выборка = Запрос.Выполнить().Выбрать(); Область.Параметры.Состояние = СсылкаНаОбъект.Состояние; Область.Параметры.Заполнить(Выборка); Ном = 1; Пока Выборка.Следующий() Цикл Область.Параметры.Заполнить(Выборка); Область.Параметры.Ном = Ном; Ном = Ном+1; Таб.Вывести(Область); КонецЦикла; Возврат Таб; КонецФункции |
|||
20
neo-55555
22.04.15
✎
09:21
|
Все равно столбец "Состояние" не заполняется
|
|||
21
surpriz
22.04.15
✎
09:32
|
МаршрутныйЛистСостав.Документ.Состояние КАК Состояние
|
|||
22
surpriz
22.04.15
✎
09:32
|
этот вариант уже предложили в (10)
|
|||
23
neo-55555
22.04.15
✎
09:36
|
Теперь ошибку выдает:
Не удалось сформировать внешнюю печатную форму! Ошибка при вызове метода контекста (Выполнить): {(4, 34)}: Поле не найдено "МаршрутныйЛистСостав.Документ.Состояние" МаршрутныйЛистСостав.Документ.<<?>>Состояние КАК Состояние |
|||
24
surpriz
22.04.15
✎
09:39
|
ответ (10) смотри
|
|||
25
neo-55555
22.04.15
✎
09:44
|
Блин, я походу туплю... Всё равно не заполняется "Состояние"
|
|||
26
Вася Чез
22.04.15
✎
09:45
|
МаршрутныйЛистСостав.Состояние.Ссылка КАК Состояние
это если Состояние реквизит документа |
|||
27
surpriz
22.04.15
✎
09:46
|
или вот этот кусок:
Область.Параметры.Состояние = СсылкаНаОбъект.Состояние; ПОСЛЕ Область.Параметры.Заполнить(Выборка); |
|||
28
neo-55555
22.04.15
✎
09:49
|
Ура. Всё получилось. В Итоге Запрос был не правильный. Нужно было написать: МаршрутныйЛистСостав.Состояние.Ссылка КАК Состояние.
А код выглядит теперь так: Функция Печать() Экспорт Если не СсылкаНаОбъект.Проведен Тогда ВызватьИсключение "Складские накладные нельзя печатать для непроведенного документа"; КонецЕсли; Макет = ПолучитьМакет("Макет"); Запрос = Новый Запрос( "ВЫБРАТЬ | МаршрутныйЛистСостав.Документ.Контрагент КАК Контрагент, | МаршрутныйЛистСостав.Документ КАК Накладная, | МаршрутныйЛистСостав.Состояние.Ссылка КАК Состояние |ИЗ | Документ.МаршрутныйЛист.Состав КАК МаршрутныйЛистСостав |ГДЕ | МаршрутныйЛистСостав.Ссылка = &Ссылка"); Запрос.УстановитьПараметр("Ссылка",СсылкаНаОбъект); Макет = ПолучитьМакет("Макет"); Таб = Новый ТабличныйДокумент; Область = Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Номер = СсылкаНаОбъект.Номер; Область.Параметры.Дата = Формат(СсылкаНаОбъект.Дата,"ДЛФ=D"); Область.Параметры.Водитель = СсылкаНаОбъект.Водитель.Наименование+" ____________________________________/подпись/"; Таб.Вывести(Область); Область = Макет.ПолучитьОбласть("Строка"); Выборка = Запрос.Выполнить().Выбрать(); Область.Параметры.Состояние = СсылкаНаОбъект.Состояние; Область.Параметры.Заполнить(Выборка); Ном = 1; Пока Выборка.Следующий() Цикл Область.Параметры.Заполнить(Выборка); Область.Параметры.Ном = Ном; Ном = Ном+1; Таб.Вывести(Область); КонецЦикла; Возврат Таб; КонецФункции |
|||
29
neo-55555
22.04.15
✎
09:49
|
Всем большое спасибо, за помощь!
|
|||
30
Вася Чез
22.04.15
✎
09:50
|
(28) я победил)
|
|||
31
neo-55555
22.04.15
✎
10:00
|
Спасибо, Вася Чез
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |