Коллеги, доброго всем дня!
прошу помощи:
Имеем: 1С Бух, Справочник Договоры дополнен еще одним реквизитом - проекты. Учет по проектам орагнизован вокруг договора-проекта.
Необходимо оранизовать подбор номенклатуры по заданному договором проекту в реализации.
Задача - инструментом "подбор" в Реализации вывести перечень номенклатуры соответствующих требованию = Берем только ту номенклатуру, которая относится к конкретному проекту, указанному в договоре данной реализации.
Функция ПолучитьСписокСчетов(Знач СписокСчетов, Знач СписокСубконто, Знач ПоказыватьЗабалансовые)
Запрос = Новый Запрос;
Исключения = Новый Массив;
Исключения.Добавить(ПланыСчетов.Хозрасчетный.Продажи); // 90
Исключения.Добавить(ПланыСчетов.Хозрасчетный.ГТД);
Исключения.Добавить(ПланыСчетов.Хозрасчетный.МатериальныеЦенностиВЭксплуатации); // МЦ
Запрос.УстановитьПараметр("СписокСубконто", СписокСубконто); ///!?
Запрос.УстановитьПараметр("Исключения", Исключения);
Запрос.УстановитьПараметр("Номенклатура",
Если СписокСчетов.Количество() <> 0 Тогда
Запрос.УстановитьПараметр("СписокСчетов", СписокСчетов);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйВидыСубконто.Ссылка
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
|ГДЕ
| ХозрасчетныйВидыСубконто.ВидСубконто В(&СписокСубконто)
| И НЕ ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Исключения)
| И НЕ ХозрасчетныйВидыСубконто.Ссылка.ЗапретитьИспользоватьВПроводках
| И ХозрасчетныйВидыСубконто.Ссылка.Количественный
| И НЕ ХозрасчетныйВидыСубконто.ТолькоОбороты"
+ ?(ПоказыватьЗабалансовые, "", " И НЕ ХозрасчетныйВидыСубконто.Ссылка.Забалансовый")
+?(СписокСчетов.Количество() = 0, "", " И ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ (&СписокСчетов)");
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Не могу понять как задать правильно параметр
прошу помощи:
Имеем: 1С Бух, Справочник Договоры дополнен еще одним реквизитом - проекты. Учет по проектам орагнизован вокруг договора-проекта.
Необходимо оранизовать подбор номенклатуры по заданному договором проекту в реализации.
Задача - инструментом "подбор" в Реализации вывести перечень номенклатуры соответствующих требованию = Берем только ту номенклатуру, которая относится к конкретному проекту, указанному в договоре данной реализации.
Функция ПолучитьСписокСчетов(Знач СписокСчетов, Знач СписокСубконто, Знач ПоказыватьЗабалансовые)
Запрос = Новый Запрос;
Исключения = Новый Массив;
Исключения.Добавить(ПланыСчетов.Хозрасчетный.Продажи); // 90
Исключения.Добавить(ПланыСчетов.Хозрасчетный.ГТД);
Исключения.Добавить(ПланыСчетов.Хозрасчетный.МатериальныеЦенностиВЭксплуатации); // МЦ
Запрос.УстановитьПараметр("СписокСубконто", СписокСубконто); ///!?
Запрос.УстановитьПараметр("Исключения", Исключения);
Запрос.УстановитьПараметр("Номенклатура",
Если СписокСчетов.Количество() <> 0 Тогда
Запрос.УстановитьПараметр("СписокСчетов", СписокСчетов);
КонецЕсли;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ХозрасчетныйВидыСубконто.Ссылка
|ИЗ
| ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
|ГДЕ
| ХозрасчетныйВидыСубконто.ВидСубконто В(&СписокСубконто)
| И НЕ ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ(&Исключения)
| И НЕ ХозрасчетныйВидыСубконто.Ссылка.ЗапретитьИспользоватьВПроводках
| И ХозрасчетныйВидыСубконто.Ссылка.Количественный
| И НЕ ХозрасчетныйВидыСубконто.ТолькоОбороты"
+ ?(ПоказыватьЗабалансовые, "", " И НЕ ХозрасчетныйВидыСубконто.Ссылка.Забалансовый")
+?(СписокСчетов.Количество() = 0, "", " И ХозрасчетныйВидыСубконто.Ссылка В ИЕРАРХИИ (&СписокСчетов)");
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
КонецФункции
Не могу понять как задать правильно параметр
По теме из базы знаний
- Консоль запросов + ТЗ как параметры
- Расширение управляемой формы для отчета. Несколько действий с параметром "Отбор".
- Практика: Передаем произвольный параметр и открываем форму выбранной нами дополнительной обработки
- Обход по группировкам в запросе, соединение таблиц, параметры в запросе, выгрузка прайс-листа в Excel, PDF, Docx, TXT
- Установка необязательного параметра запроса
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура ПолеНачалоВыбора(Элемент, СтандартнаяОбработка)
//что то типа такого
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаПроектовДляНоменклатурыСрезПоследних.НоменклатураПроекта
|ИЗ
| РегистрСведений.УстановкаПроектовДляНоменклатуры.СрезПоследних(
| ,
| Период > &Датапроекта
| И Проект = &Проект) КАК УстановкаПроектовДляНоменклатурыСрезПоследних
|
|СГРУППИРОВАТЬ ПО
| УстановкаПроектовДляНоменклатурыСрезПоследних.НоменклатураПроекта";
Запрос.УстановитьПараметр("Датапроекта", Датапроекта);
Запрос.УстановитьПараметр("Проект", Проект);
//Выгружаете куда надо
Список = Новый СписокЗначений;
Список .ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"));
// открытие формы с выбором без иерархии,
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора();
ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.Отбор.Ссылка.Значение = Список ;
ФормаВыбора.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
ФормаВыбора.Открыть();
Конецпроцедуры
//что то типа такого
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| УстановкаПроектовДляНоменклатурыСрезПоследних.НоменклатураПроекта
|ИЗ
| РегистрСведений.УстановкаПроектовДляНоменклатуры.СрезПоследних(
| ,
| Период > &Датапроекта
| И Проект = &Проект) КАК УстановкаПроектовДляНоменклатурыСрезПоследних
|
|СГРУППИРОВАТЬ ПО
| УстановкаПроектовДляНоменклатурыСрезПоследних.НоменклатураПроекта";
Запрос.УстановитьПараметр("Датапроекта", Датапроекта);
Запрос.УстановитьПараметр("Проект", Проект);
//Выгружаете куда надо
Список = Новый СписокЗначений;
Список .ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Ссылка"));
// открытие формы с выбором без иерархии,
СтандартнаяОбработка = Ложь;
ФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора();
ФормаВыбора.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
ФормаВыбора.Отбор.Ссылка.Значение = Список ;
ФормаВыбора.Отбор.Ссылка.Использование = Истина;
ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
ФормаВыбора.Открыть();
Конецпроцедуры
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот