Добрый день!
Есть процедура печати в модуле менеджера. помимо данных из документа Дефектная ведомость нужно вывести в Табдок данные из другого документа - Комиссия.
Не могу вытащить Подразделение из документа Деф Ведомость, чтобы вставить в запрос как параметр. Пробовала по разному, и уже запуталась
Есть процедура печати в модуле менеджера. помимо данных из документа Дефектная ведомость нужно вывести в Табдок данные из другого документа - Комиссия.
роцедура АктСписанияТМЦ(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(Акт списания ТМЦ)
Макет = Документы.РасчетноДефектнаяВедомость.ПолучитьМакет("АктСписанияТМЦ");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасчетноДефектнаяВедомость.Дата,
| РасчетноДефектнаяВедомость.КонтейнерныйТерминал,
| РасчетноДефектнаяВедомость.Номер,
| РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.(
| Материалы,
| Количество,
| Материалы.Цена КАК Цена,
| Материалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
| Материалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
| Материалы.НоменклатурныйНомер КАК НоменклатурныйНомер,
| РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Количество * РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Материалы.Цена КАК Сумма
| ),
| РасчетноДефектнаяВедомость.НомерКонтейнера,
| РасчетноДефектнаяВедомость.МатериальноОтвететсвенноеЛицо КАК МатЛицо,
| РасчетноДефектнаяВедомость.МатериальноОтвететсвенноеЛицо.Должность КАК МатЛицоДолжность
|ИЗ
| Документ.РасчетноДефектнаяВедомость КАК РасчетноДефектнаяВедомость
|ГДЕ
| РасчетноДефектнаяВедомость.Ссылка В(&Ссылка)
| И РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Использованны = &Истина";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Запрос.Параметры.Вставить("Истина", Истина);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗатраченныеМатериалыШапка = Макет.ПолучитьОбласть("ЗатраченныеМатериалыШапка");
ОбластьЗатраченныеМатериалы = Макет.ПолучитьОбласть("ЗатраченныеМатериалы");
Подвал = Макет.ПолучитьОбласть("Подвал");
Комиссия = Макет.ПолучитьОбласть("Комиссия");
МЛицо = Макет.ПолучитьОбласть("МатЛицо");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
////////////////////////////////////////////
КТ = Выборка.КонтейнерныйТерминал;
//////////////////////////////////////////
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ОбластьЗаголовок.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
///////////////////////////////////////////////////
сыль = Ссылка[0].Ссылка;
Котэ = сыль.КонтейнерныйТерминал;
///////////////////////////////////////////////////////
ТабДок.Вывести(ОбластьЗатраченныеМатериалыШапка);
ВыборкаЗатраченныеМатериалы = Выборка.ЗатраченныеМатериалы.Выбрать();
Пока ВыборкаЗатраченныеМатериалы.Следующий() Цикл
ОбластьЗатраченныеМатериалы.Параметры.Заполнить(ВыборкаЗатраченныеМатериалы);
ТабДок.Вывести(ОбластьЗатраченныеМатериалы, ВыборкаЗатраченныеМатериалы.Уровень());
КонецЦикла;
ТабДок.Вывести(Подвал);
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос1 = Новый Запрос;
Запрос1.Текст =
"ВЫБРАТЬ
| КомиссияСотрудники.Сотрудник КАК КомиссияСотрудник,
| КомиссияСотрудники.Должность КАК КомиссияДолжность
|ИЗ
| Документ.Комиссия.Сотрудники КАК КомиссияСотрудники
|ГДЕ
| КомиссияСотрудники.Ссылка.Подразделение = &Подразделение";
Запрос1.УстановитьПараметр("Подразделение", КТ);
Результат = Запрос1.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Комиссия.Параметры.Заполнить(Результат);
ТабДок.Вывести(Комиссия, Результат.Уровень());
КонецЦикла;
//ЧленыКомиссии = ОбщегоНазначения.ПолучитьЧленовКомиссии(КТ);
////
////
// Шапка.Параметры.ЧленыКомиссии = ЧленыКомиссии;
Млицо.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Млицо, Выборка.Уровень());
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
ПоказатьНе могу вытащить Подразделение из документа Деф Ведомость, чтобы вставить в запрос как параметр. Пробовала по разному, и уже запуталась
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) в каком реквизите документа хранится Подразделение?
Судя по коду, должно в реквизите КонтейнерныйТерминал, тогда вроде бы правильно, но и
То есть в запрос параметром передается какая-то коллекция? (скорей всего массив)
Соответственно результат первого запроса пустой
PS
а тут зачем получается реквизит, который уже получен в запросе? (это кстати неявный запрос к БД).
Удивительные создания
Судя по коду, должно в реквизите КонтейнерныйТерминал, тогда вроде бы правильно, но
Запрос.Параметры.Вставить("Ссылка", Ссылка);
сыль = Ссылка[0].Ссылка
То есть в запрос параметром передается какая-то коллекция? (скорей всего массив)
Соответственно результат первого запроса пустой
PS
Котэ = сыль.КонтейнерныйТерминал;
а тут зачем получается реквизит, который уже получен в запросе? (это кстати неявный запрос к БД).
Удивительные создания
Котэ
сыль
(1) Я дико извиняюсь, но вот это вот что за...
1. Если ты планируешь формировать запрос или с признаком ИСТИНА или с признаком ЛОЖЬ - тебе нужно обращаться к реквизиту элемента. Если ты планируешь делать отбор только по одному значению ИСТИНА, то укажи это в условии в самом СКД
2. Реквизит, по которому ты связываешь в запросе объекты конфигурации не является параметром.
3. Если хочешь чтобы тебе помогали - не используй "смешные" локальные переменные. Никто не будет искать в коде что такое "Котэ"
| И РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Использованны = &Истина";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Запрос.Параметры.Вставить("Истина", Истина);
1. Если ты планируешь формировать запрос или с признаком ИСТИНА или с признаком ЛОЖЬ - тебе нужно обращаться к реквизиту элемента. Если ты планируешь делать отбор только по одному значению ИСТИНА, то укажи это в условии в самом СКД
2. Реквизит, по которому ты связываешь в запросе объекты конфигурации не является параметром.
3. Если хочешь чтобы тебе помогали - не используй "смешные" локальные переменные. Никто не будет искать в коде что такое "Котэ"
Запрос.Параметры.Вставить("Истина", Истина);
капец...Если в док-те есть реквизит подразделение, то он доступен через точку по ссылке, если надо пересеч данные документа с другим через параметр, то нужно левое соединение в запросе
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот