Добрый день. Есть документ с комплектацией номенклатуры, при печати гарантийного талона из этого документа, в поле "срок гарантии" заносятся данные из константы (число 12). Срок гарантии зависит от целиСборки (реквизит документа).
ОбластьКомплектующие.Параметры.Гарантия = Константы.СрокГарантии.Получить();
Процедура ГарТалон(ТабДок, Ссылка) Экспорт
//{{_КОНСТРУКТОР_ПЕЧАТИ(ГарТалон)
Макет = Документы.СборкаПК.ПолучитьМакет("ГарТалон");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СборкаПК.Дата,
| СборкаПК.Номер,
| СборкаПК.ЦельСборки,
| СборкаПК.Ответственный,
| СборкаПК.СобранныйПК.(
| Номенклатура,
| Артикул,
| Серия
| ),
| СборкаПК.Комплектующие.(
| НомерСтроки,
| Номенклатура,
| Артикул,
| Количество,
| СерийныйНомер
| )
|ИЗ
| Документ.СборкаПК КАК СборкаПК
|ГДЕ
| СборкаПК.Ссылка В (&Ссылка)";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСобранныйПКШапка = Макет.ПолучитьОбласть("СобранныйПКШапка");
ОбластьСПК = Макет.ПолучитьОбласть("СобранныйПК1");
ОбластьСобранныйПК = Макет.ПолучитьОбласть("СобранныйПК");
ОбластьКомплектующиеШапка = Макет.ПолучитьОбласть("КомплектующиеШапка");
ОбластьКомплектующие = Макет.ПолучитьОбласть("Комплектующие");
Подвал = Макет.ПолучитьОбласть("Подвал");
ТабДок.Очистить();
ВставлятьРазделительСтраниц = Ложь;
Пока Выборка.Следующий() Цикл
Если ВставлятьРазделительСтраниц Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ОбластьЗаголовок.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьЗаголовок);
Шапка.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Шапка, Выборка.Уровень());
ТабДок.Вывести(ОбластьСобранныйПКШапка);
ВыборкаСобранныйПК = Выборка.СобранныйПК.Выбрать();
Пока ВыборкаСобранныйПК.Следующий() Цикл
ОбластьСобранныйПК.Параметры.Заполнить(ВыборкаСобранныйПК);
ОбластьСПК.Параметры.Заполнить(ВыборкаСобранныйПК);
ТабДок.Вывести(ОбластьСобранныйПК, ВыборкаСобранныйПК.Уровень());
ТабДок.Вывести(ОбластьСПК, ВыборкаСобранныйПК.Уровень());
КонецЦикла;
ТабДок.Вывести(ОбластьКомплектующиеШапка);
ВыборкаКомплектующие = Выборка.Комплектующие.Выбрать();
Пока ВыборкаКомплектующие.Следующий() Цикл
ОбластьКомплектующие.Параметры.Заполнить(ВыборкаКомплектующие);
// сюда добавить условие выбора константы со сроком гарантии
//// Если Выборка.НайтиСледующий("Тендер, ") Тогда
//// ОбластьКомплектующие.Параметры.Гарантия = Константы.СрокГарантииТендер.Получить();
//// Иначе
//// ОбластьКомплектующие.Параметры.Гарантия = Константы.СрокГарантии.Получить();
////
//// КонецЕсли;
ОбластьКомплектующие.Параметры.Гарантия = Константы.СрокГарантии.Получить();
ТабДок.Вывести(ОбластьКомплектующие, ВыборкаКомплектующие.Уровень());
КонецЦикла;
Подвал.Параметры.Заполнить(Выборка);
ТабДок.Вывести(Подвал);
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
//}}
КонецПроцедуры
Evgeniux @ Сегодня, 14:07
,
ЦельСборки это реквизит чего, документа Документ.СборкаПК?
Если да, то добавьте в запрос ЦельСборки.
Если это реквизит другого документа, то ещё один запрос надо делать.
andreydv87 @ Сегодня, 14:31
,
да, ЦельСборки это реквизит документа СборкаПК (Документ.СборкаПК).
andreydv87 @ Сегодня, 14:31
,
"ВЫБРАТЬ
| СборкаПК.Дата,
| СборкаПК.Номер,
| СборкаПК.ЦельСборки,
denis84 @ Вчера, 16:58
,
Поправка
Если Выборка.ЦельСборки = "некое значение" тогда
volodya1122 @ Вчера, 11:31
,
спасибо, разобрался. Но в таком виде не работает
Если Выборка.ЦельСборки = "некое значение" тогда
Если ВРег (Выборка.ЦельСборки) = ВРег("некое значение") Тогда
Evgeniux @ Сегодня, 9:48
,
Так какой тип данных у реквизита ЦельСборки?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua