При формировании заказа на производство по потребностям бывает интересно понять, откуда система взяла такие цифры.
Отчет работает в версиях 2.1.х, 2.2.х
&НаКлиенте
Процедура _РасчетОбеспеченияПотребностей(Команда) Экспорт
ТекущиеДанные = Элементы.ЗаказыКОбеспечению.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
Вариант = _ПолучитьВариантОтчетаРасчетОбеспечения();
Если Вариант = Неопределено Тогда
ВызватьИсключение "Не найден внешний отчет ""Расчет обеспечения потребностей""";
КонецЕсли;
Настройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
Элемент = Настройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Номенклатура");
Элемент.ПравоеЗначение = ТекущиеДанные.Номенклатура;
Элемент.Использование = Истина;
Элемент.ИдентификаторПользовательскойНастройки = "bff985fd-e13c-4387-97bd-459f40cf1a08";
Элемент = Настройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Характеристика");
Элемент.ПравоеЗначение = ТекущиеДанные.Характеристика;
Элемент.Использование = Истина;
Элемент.ИдентификаторПользовательскойНастройки = "707550ee-f327-47a0-bc1e-40939dfb4c1f";
Элемент = Настройки.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Элемент.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДатаОтгрузки");
Элемент.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно;
Элемент.ПравоеЗначение = ФильтрКОтгрузкеНеПозднее;
Элемент.Использование = Истина;
Элемент.ИдентификаторПользовательскойНастройки = "968def38-943b-4fc8-bf64-4381dcec340b";
ДопПараметры = Новый Структура;
ДопПараметры.Вставить("ПользовательскиеНастройки", Настройки);
ДопПараметры.Вставить("СформироватьПриОткрытии", Истина);
ВариантыОтчетовКлиент.ОткрытьФормуОтчета(ЭтотОбъект, Вариант, ДопПараметры);
КонецПроцедуры
&НаСервере
Функция _ПолучитьВариантОтчетаРасчетОбеспечения()
Запрос = Новый Запрос;
Запрос.Параметры.Вставить("ИмяОбъекта", "РасчетОбеспеченияПотребностей");
Запрос.Текст =
"ВЫБРАТЬ
| Спр.Ссылка
|ИЗ
| Справочник.ДополнительныеОтчетыИОбработки КАК Спр
|ГДЕ
| Спр.ИмяОбъекта = &ИмяОбъекта
| И НЕ Спр.ПометкаУдаления";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Неопределено;
Иначе
Возврат Результат.Выгрузить()[0][0];
КонецЕсли;
КонецФункции