1С 8.2 УТ 10.3
Имеется форма документа (ЗаказПокупателя)
В нее необходимо вывести Номер и дату реализации ( в поле ПолеРеализацияТоваровУслуг и ПолеДатаРеализации соответственно).
Не нашел реквизитов Номер и Дата у документа реализация, поэтому решил выводить запросом.
Например запрос Номера:
Процедура ОтборРеализация()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Номер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Номер = &Номер";
Запрос.УстановитьПараметр("Номер", Номер);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
ЭлементыФормы.ПолеРеализацияТоваровУслуг.Значение = ВыборкаДетальныеЗаписи.Номер
КонецЦикла;
КонецПроцедуры
Vzonder @ Сегодня, 17:57
,
ВАУ...
Батенька, да вам бы не мешало немного подучится. Например Гилева посмотреть (Spec8.ru).
// Получаем ссылку на документ
РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(Номер);
// Заганяем ссылку документа на форму
ЭлементыФормы.ПолеРеализацияТоваровУслуг.Значение = РеализацияОбъект;
// Ну и другие элементы документа (кроме табличных - они в цикле)
ЭлементыФормы.ПолеВидОперации.Значение = РеализацияОбъект.ВидОперации;
ЭлементыФормы.ПолеГрузополучатель.Значение = РеализацияОбъект.Грузополучатель;
kum12neon @ Вчера, 0:21
,
Огромное пасибо.
Все получилось.
Реализовал так:
Процедура ОтборРеализация()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Номер
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Номер = &Номер";
Запрос.УстановитьПараметр("Номер", Номер);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НомерДок = ВыборкаДетальныеЗаписи.Номер
КонецЦикла;
ДатаРеализ = Дата;
РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, ДатаРеализ);
РеквизитПолеРеализацияТоваровУслуг = РеализацияОбъект;
ЭлементыФормы.ПолеДатаРеализации.Значение = РеализацияОбъект.Дата;
КонецПроцедуры
Процедура Кнопка1Нажатие(Элемент)
ДатаРеализ = Дата;
РеализацияОбъект = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(НомерДок, ДатаРеализ);
Если НЕ РеализацияОбъект.Пустая() Тогда
РеализацияОбъект.ПолучитьОбъект().ПолучитьФорму("ФормаДокумента_AnytosЛогистикаПечать").Открыть();
КонецЕсли;
КонецПроцедуры
Дата = ТекущаяДата();
Записать();
УниверсальныеМеханизмы.ОткрытьФормуВыбораПечатныхФормОбъекта(ЭтотОбъект, ЭтаФорма);
Закрыть();
Не понимаю, зачем вы запросом (или по другому) получаете реализацию, если уже знаете ее номер. Кстати это неправильный подход, т.к. если у вас нумерация в пределах года (или другой периодичности), то толку от поиска по номеру.
Логично запросом искать реализацию по ссылке через документ основание, тогда будет найдена точно нужная реализация.
Запрос = Новый Запрос("ВЫБРАТЬ
| РеализацияТоваровУслуг.Номер,
| РеализацияТоваровУслуг.Дата
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Сделка = &Сделка");
Запрос.УстановитьПараметр("Сделка", СсылкаНаЗаказ);
Результат = Запрос.Выполнить().Выгрузить()[0];
ЗдесьБудетДата = Результат.Дата;
ЗдесьБудеНомер = Результат.Номер;
Запрос = Новый Запрос("ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Сделка = &Сделка");
Запрос.УстановитьПараметр("Сделка", СсылкаНаЗаказ);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ФормаД = Выборка.Ссылка.ПолучитьФорму("ФормаДокумента_AnytosЛогистикаПечать");
ФормаД.Открыть();
КонецЕсли;
Полностью согласен с logist .
Запрос тут ненужен. Создаешь реквизит. Накручиваешь простое условие на него и Все)))
Выводишь на форму этот реквизит.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua