|
Вывод реквизита номенклатуры в печатный отчет по документу реализации УТ 11 | ☑ | ||
---|---|---|---|---|
0
Nikitich_NS
01.11.14
✎
17:17
|
Добрый вечер.
Помогите пожалуйста по такому вопросу: УТ11, документ РеализацияТоваровУслуг. Сделал ему комманду печати товарного чека. Подцепил шаблон, всё как надо. Информацию из документа (номенклатура, количество, серийник) берёт исправно. Но в гарантийнике помимо этого должно выводить срок гарантии по каждой позиции номенклатуры. Данные о сроке гарантии хранятся в самой номенклатуре (добавил дополнительный реквизит). В общем не могу справиться с выдёргиванием в гарантийник этого самого реквизита со сроком гарантии. Вот ниже код процедуры вывода гарантийника, как заставить процедуру забирать в документ то, что мне надо??? [code] Процедура ГарантийныйТалон(ТабДок, Ссылка) Экспорт //{{_КОНСТРУКТОР_ПЕЧАТИ(ГарантийныйТалон) Макет = Документы.РеализацияТоваровУслуг.ПолучитьМакет("ГарантийныйТалон"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Дата, | РеализацияТоваровУслуг.Номер, | РеализацияТоваровУслуг.Товары.( | НомерСтроки, | Номенклатура, | Количество, | Примечание | ) |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка В (&Ссылка)"; Запрос.Параметры.Вставить("Ссылка", Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); Шапка = Макет.ПолучитьОбласть("Шапка"); ОбластьЗапасыШапка = Макет.ПолучитьОбласть("ЗапасыШапка"); ОбластьЗапасы = Макет.ПолучитьОбласть("Запасы"); Подвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; Пока Выборка.Следующий() Цикл Если ВставлятьРазделительСтраниц Тогда ТабДок.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ОбластьЗаголовок.Параметры.Заполнить(Выборка); ТабДок.Вывести(ОбластьЗаголовок); Шапка.Параметры.Заполнить(Выборка); ТабДок.Вывести(Шапка, Выборка.Уровень()); ТабДок.Вывести(ОбластьЗапасыШапка); ВыборкаТовары = Выборка.Товары.Выбрать(); Пока ВыборкаТовары.Следующий() Цикл ОбластьЗапасы.Параметры.Заполнить(ВыборкаТовары); ТабДок.Вывести(ОбластьЗапасы, ВыборкаТовары.Уровень()); КонецЦикла; Подвал.Параметры.Заполнить(Выборка); ТабДок.Вывести(Подвал); ВставлятьРазделительСтраниц = Истина; КонецЦикла; //}} КонецПроцедуры [/code] PS Реквизит "Примечание" - это для серийного номера. |
|||
1
vicof
01.11.14
✎
17:58
|
| РеализацияТоваровУслуг.Товары.(
| НомерСтроки, | Номенклатура, | Номенклатура.СрокГарантии, | Количество, |
|||
2
Nikitich_NS
01.11.14
✎
18:08
|
(1) Не помогает к сожалению((( Может для Вашего метода решения нужно добавить поле гарантии в документ? Ибо его там нету, у меня гарантия редактируется непосредственно в карточке объекта номенклатуры...
Если нужно добавить в документ соответствующее поле - так же прошу помощи в алгоритме действий, уже пытался это сделать ранее и потерпел неудачу(( |
|||
3
КонецЕсли
01.11.14
✎
18:16
|
| РеализацияТоваровУслуг.Товары.(
| НомерСтроки, | Номенклатура, | Номенклатура."(добавил дополнительный реквизит)" как Примечание, | Количество, |
|||
4
Nikitich_NS
02.11.14
✎
14:40
|
(3)
[code] {Документ.РеализацияТоваровУслуг.МодульМенеджера(12579)}: Ошибка при вызове метода контекста (Выполнить) Выборка = Запрос.Выполнить().Выбрать(); по причине: {(7, 16)}: Ожидается выражение "," Номенклатура.<<?>>"Гарантия" КАК Гарантия, [/code] да и мне не кажется что этот вариант конструктивно отличается от первого варианта... |
|||
5
Mankubus
02.11.14
✎
17:15
|
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка.Дата, | РеализацияТоваровУслуг.Ссылка.Номер, | РеализацияТоваровУслуг.НомерСтроки, | РеализацияТоваровУслуг.Номенклатура, | РеализацияТоваровУслуг.Количество, | РеализацияТоваровУслуг.Примечание | |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка В (&Ссылка)"; |
|||
6
Mankubus
02.11.14
✎
17:17
|
+(5) |РеализацияТоваровУслуг.Номенклатура.Гарантия,
забыл |
|||
7
КонецЕсли
02.11.14
✎
18:04
|
Вообще тут трудный случай
|
|||
8
Nikitich_NS
03.11.14
✎
09:18
|
Если бы это был SQL я бы выбрал так:
SELECT Номенклатура.Гарантия FROM Номенклатура, РеализацияТоваровУслуг WHERE Номенклатура.Код=РеализацияТоваровУслуг.Товары.Код Но в выборках 1с я к сожалению не силён((( Помогите пожалуйста! |
|||
9
Nikitich_NS
03.11.14
✎
12:41
|
Я тут покумекал, почитал и начал смотреть в сторону соединительных запросов. Видимо каши мало ел, раз сразу об этом не подумал(( Получилось у меня вот что:
Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Дата, | РеализацияТоваровУслуг.Номер, | РеализацияТоваровУслуг.Товары.( | НомерСтроки, | Номенклатура, | Количество, | Примечание | ), | Номенклатура.Гарантия КАК Гарантия |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура | ПО РеализацияТоваровУслуг.Товары.Номенклатура = Номенклатура.Ссылка |ГДЕ | РеализацияТоваровУслуг.Ссылка В (&Ссылка)"; Но конструкция всё одно не работает, говорит якобы нельзя обращаться к табличной части (РеализацияТоваровУслуг.Товары.Номенклатура в строке ПО). Опять в ступоре, помогите, как ассоциировать элемент номенклатуры в справочнике с элементом табличной части документа? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |