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