Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2025, 08:23

Вывод на печать журнала документов

Автор Moelders, 12 сен 2017, 11:32

0 Пользователей и 1 гость просматривают эту тему.

Moelders

Доброго времени суток!

Я в 1С совсем новичок, многие вещи совсем темный лес.
Подскажите, пожалуйста.

Имеется конфигурация под путевые листы. Несколько справочников и документ(путевой лист). Мне нужно создать реестр, в котором будет выводится перечень путевых листов. На данный момент реализовано это через журнал документов.

Проблема:
Журнал печатает абсолютно все записи, выборку по определенным критериям сделать я не могу.

Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = ЖурналыДокументов.Реестр.ПолучитьМакет("Реестр");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПутевойЛист.Автомобиль,
| ПутевойЛист.Водитель,
| ПутевойЛист.Дата,
| ПутевойЛист.Номер,
| ПутевойЛист.ПокСпВозвращ,
| ПутевойЛист.ПокСпВыезд,
|   ПутевойЛист.Водитель.ТабельныйНомер КАК ТабНомер,
| ПутевойЛист.Автомобиль.ГосНомер КАК ГосНомер
|ИЗ
|
| Документ.ПутевойЛист КАК ПутевойЛист";
//|ГДЕ
//| ПутевойЛист.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

Шапка = Макет.ПолучитьОбласть("Шапка");
Основное = Макет.ПолучитьОбласть("Основное");


ТабДок = Новый ТабличныйДокумент();
ТабДок.АвтоМасштаб = Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.Очистить();


Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());

ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;

Основное.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Основное, Выборка.Уровень());

ВставлятьРазделительСтраниц = Ложь;
КонецЦикла;

//}}
КонецПроцедуры


Если я убираю комментирование строк

|ГДЕ
| ПутевойЛист.Ссылка В (&Ссылка)";

то он не выводит ни одной записи вообще.

Помогите, пожалуйста. Если можно, с кодом.

oleg-x

А что из себя представляет ссылка?
Массив, ТаблицаЗначений, Список или просто одна ссылка?
Скорее всего где то здесь косяк
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Moelders

Цитата: oleg-x от 12 сен 2017, 12:10
А что из себя представляет ссылка?
Массив, ТаблицаЗначений, Список или просто одна ссылка?
Скорее всего где то здесь косяк

Честно - не знаю.
Т.к. в журнале документов отсутствует конструктор печати, то код конструктора я брал из документа(в нем ссылки работают) и вносил правки. Реестр ссылается на документ, документ на справочники. Получается Ссылка на ссылку?

Если строить запрос сразу на справочник, то выдает ошибку.

Это код запроса в самом документе. Здесь все работает.
Процедура Печать(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Печать)
Макет = Документы.ПутевойЛист.ПолучитьМакет("ЛицСт");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПутевойЛист.Автомобиль КАК МаркаАМ,
| ПутевойЛист.Автомобиль.ГосНомер КАК ГосНомер,
| ПутевойЛист.Водитель.ТабельныйНомер КАК ТабНомер,
| ПутевойЛист.Водитель.Удостоверение КАК Удостоверение,
| ПутевойЛист.Водитель.Класс КАК Класс,
| ПутевойЛист.Водитель КАК Водитель,
| ПутевойЛист.Горючее,
| ПутевойЛист.Дата,
| ПутевойЛист.Номер КАК ПЛ_Номер,
| ПутевойЛист.ПокСпВозвращ,
| ПутевойЛист.ПокСпВыезд
|ИЗ
| Документ.ПутевойЛист КАК ПутевойЛист
|
|ГДЕ
|   
| ПутевойЛист.Ссылка В(&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

oleg-x

ЦитироватьЧестно - не знаю.
Поставь точку остановки, и через отладку посмотри какой тип имеет параметр ссылка.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Moelders

Цитата: oleg-x от 12 сен 2017, 13:53
Поставь точку остановки, и через отладку посмотри какой тип имеет параметр ссылка.

Ссылка имеет тип "Неопределенно".


oleg-x

Вот и ответ, сюда не приходит ссылка ни в каком виде.
Смотри код, который обращается к данной процедуре
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Moelders

Цитата: oleg-x от 12 сен 2017, 14:46
Вот и ответ, сюда не приходит ссылка ни в каком виде.
Смотри код, который обращается к данной процедуре

К документу приходит ссылка типа массив.

А как назначить тип ссылке в журнале документов, подскажите пожалуйста.

oleg-x

Цитата: Moelders от 12 сен 2017, 16:00
Цитата: oleg-x от 12 сен 2017, 14:46
Вот и ответ, сюда не приходит ссылка ни в каком виде.
Смотри код, который обращается к данной процедуре

К документу приходит ссылка типа массив.

А как назначить тип ссылке в журнале документов, подскажите пожалуйста.
К какому документу? У вас в эту процедуру ссылка(ни массив, ни список) не приходит, имеет тип неопределено. Но сказать ничего нельзя, так как я не провидец, каким образом формируется параметр для данной процедуры.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Moelders

Цитата: oleg-x от 12 сен 2017, 16:40
К какому документу? У вас в эту процедуру ссылка(ни массив, ни список) не приходит, имеет тип неопределено. Но сказать ничего нельзя, так как я не провидец, каким образом формируется параметр для данной процедуры.

Есть документ "Путевой лист". Листинг выше.
На его основании создан журнал документов "Реестр".

В печатной форме документа, созданной конструктором, ссылка в виде массива приходит. Но в журнал - нет, т.к. код был в него тупо скопирован из документа. У журнала документов нет конструктора печати(в моем случае по крайней мере). поэтому я его скопипастил с документа.

Больше никакого кода нет. Разве что команды на печать.

Может как-то по-другому пишется процедура и запрос?
И вообще предназначен ли журнал документов для печати? Или для этого другие вещи используются?

oleg-x

Можно печатать откуда угодно, но для этого надо писать код, а не тупо копировать.
У Вас процедура
Процедура Печать(ТабДок, Ссылка) Экспорт //параметр ссылка
Так вот этот параметр у тебя неопределен.
Приходит он из другой процедуры. Ищи обращение к этой процедуре и передай корректный параметр.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск